@assistant-ui/react 0.1.11 → 0.2.0
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/experimental.d.mts +1 -113
 - package/dist/experimental.d.ts +1 -113
 - package/dist/experimental.js +0 -183
 - package/dist/experimental.js.map +1 -1
 - package/dist/experimental.mjs +0 -88
 - package/dist/experimental.mjs.map +1 -1
 - package/dist/index.d.mts +316 -100
 - package/dist/index.d.ts +316 -100
 - package/dist/index.js +1142 -931
 - package/dist/index.js.map +1 -1
 - package/dist/index.mjs +1189 -926
 - package/dist/index.mjs.map +1 -1
 - package/package.json +6 -4
 - package/dist/ThreadActions-BLcKtagX.d.mts +0 -98
 - package/dist/ThreadActions-BLcKtagX.d.ts +0 -98
 - package/dist/chunk-KUACYNLE.mjs +0 -85
 - package/dist/chunk-KUACYNLE.mjs.map +0 -1
 
    
        package/dist/experimental.d.mts
    CHANGED
    
    | 
         @@ -1,114 +1,2 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { M as ModelConfigProvider, f as ThreadMessage, e as Unsubscribe, a as ToolCallContentPartComponent, c as ThreadState, d as ThreadActionsState, n as Tool } from './ThreadActions-BLcKtagX.mjs';
         
     | 
| 
       2 
     | 
    
         
            -
            export { o as ImageContentPart, I as ImageContentPartComponent, s as ImageContentPartProps, g as ModelConfig, T as TextContentPartComponent, r as TextContentPartProps, p as ToolCallContentPart, b as ToolCallContentPartProps, q as UIContentPart, U as UIContentPartComponent, t as UIContentPartProps } from './ThreadActions-BLcKtagX.mjs';
         
     | 
| 
       3 
     | 
    
         
            -
            import { UseBoundStore, StoreApi } from 'zustand';
         
     | 
| 
       4 
     | 
    
         
            -
            import { ReactNode } from 'react';
         
     | 
| 
       5 
     | 
    
         
            -
            import 'zod';
         
     | 
| 
       6 
1 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
                getModelConfig: ModelConfigProvider;
         
     | 
| 
       9 
     | 
    
         
            -
                registerModelConfigProvider: (provider: ModelConfigProvider) => () => void;
         
     | 
| 
       10 
     | 
    
         
            -
            }>;
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            type ContentPartState = Readonly<{
         
     | 
| 
       13 
     | 
    
         
            -
                status: "in_progress" | "done" | "error";
         
     | 
| 
       14 
     | 
    
         
            -
                part: ThreadMessage["content"][number];
         
     | 
| 
       15 
     | 
    
         
            -
            }>;
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
            type MessageState = Readonly<{
         
     | 
| 
       18 
     | 
    
         
            -
                message: Readonly<ThreadMessage>;
         
     | 
| 
       19 
     | 
    
         
            -
                parentId: string | null;
         
     | 
| 
       20 
     | 
    
         
            -
                branches: readonly string[];
         
     | 
| 
       21 
     | 
    
         
            -
                isLast: boolean;
         
     | 
| 
       22 
     | 
    
         
            -
            }>;
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
            type BaseComposerState = Readonly<{
         
     | 
| 
       25 
     | 
    
         
            -
                value: string;
         
     | 
| 
       26 
     | 
    
         
            -
                setValue: (value: string) => void;
         
     | 
| 
       27 
     | 
    
         
            -
            }>;
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
            type ReadonlyStore<T> = UseBoundStore<Omit<StoreApi<T>, "setState" | "destroy" | "getInitialState">>;
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
            type EditComposerState = BaseComposerState & Readonly<{
         
     | 
| 
       32 
     | 
    
         
            -
                isEditing: boolean;
         
     | 
| 
       33 
     | 
    
         
            -
                edit: () => void;
         
     | 
| 
       34 
     | 
    
         
            -
                send: () => void;
         
     | 
| 
       35 
     | 
    
         
            -
                cancel: () => boolean;
         
     | 
| 
       36 
     | 
    
         
            -
            }>;
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
            type ComposerState = BaseComposerState & Readonly<{
         
     | 
| 
       39 
     | 
    
         
            -
                isEditing: true;
         
     | 
| 
       40 
     | 
    
         
            -
                send: () => void;
         
     | 
| 
       41 
     | 
    
         
            -
                cancel: () => boolean;
         
     | 
| 
       42 
     | 
    
         
            -
            }>;
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
            type ThreadViewportState = Readonly<{
         
     | 
| 
       45 
     | 
    
         
            -
                isAtBottom: boolean;
         
     | 
| 
       46 
     | 
    
         
            -
                scrollToBottom: () => void;
         
     | 
| 
       47 
     | 
    
         
            -
                onScrollToBottom: (callback: () => void) => Unsubscribe;
         
     | 
| 
       48 
     | 
    
         
            -
            }>;
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
            type AssistantToolUIsState = Readonly<{
         
     | 
| 
       51 
     | 
    
         
            -
                getToolUI: (toolName: string) => ToolCallContentPartComponent | null;
         
     | 
| 
       52 
     | 
    
         
            -
                setToolUI: (toolName: string, render: ToolCallContentPartComponent) => () => void;
         
     | 
| 
       53 
     | 
    
         
            -
            }>;
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
            type AssistantContextValue = {
         
     | 
| 
       56 
     | 
    
         
            -
                useModelConfig: ReadonlyStore<AssistantModelConfigState>;
         
     | 
| 
       57 
     | 
    
         
            -
                useToolUIs: ReadonlyStore<AssistantToolUIsState>;
         
     | 
| 
       58 
     | 
    
         
            -
            };
         
     | 
| 
       59 
     | 
    
         
            -
            declare const useAssistantContext: () => AssistantContextValue;
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
            type ThreadContextValue = {
         
     | 
| 
       62 
     | 
    
         
            -
                useThread: ReadonlyStore<ThreadState>;
         
     | 
| 
       63 
     | 
    
         
            -
                useThreadActions: ReadonlyStore<ThreadActionsState>;
         
     | 
| 
       64 
     | 
    
         
            -
                useComposer: ReadonlyStore<ComposerState>;
         
     | 
| 
       65 
     | 
    
         
            -
                useViewport: ReadonlyStore<ThreadViewportState>;
         
     | 
| 
       66 
     | 
    
         
            -
            };
         
     | 
| 
       67 
     | 
    
         
            -
            declare const useThreadContext: () => ThreadContextValue;
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
            type ComposerContextValue = {
         
     | 
| 
       70 
     | 
    
         
            -
                useComposer: ReadonlyStore<EditComposerState | ComposerState>;
         
     | 
| 
       71 
     | 
    
         
            -
                type: "edit" | "new";
         
     | 
| 
       72 
     | 
    
         
            -
            };
         
     | 
| 
       73 
     | 
    
         
            -
            declare const useComposerContext: () => ComposerContextValue;
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
            type MessageUtilsState = Readonly<{
         
     | 
| 
       76 
     | 
    
         
            -
                inProgressIndicator: ReactNode | null;
         
     | 
| 
       77 
     | 
    
         
            -
                setInProgressIndicator: (value: ReactNode | null) => void;
         
     | 
| 
       78 
     | 
    
         
            -
                isCopied: boolean;
         
     | 
| 
       79 
     | 
    
         
            -
                setIsCopied: (value: boolean) => void;
         
     | 
| 
       80 
     | 
    
         
            -
                isHovering: boolean;
         
     | 
| 
       81 
     | 
    
         
            -
                setIsHovering: (value: boolean) => void;
         
     | 
| 
       82 
     | 
    
         
            -
            }>;
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
            type MessageContextValue = {
         
     | 
| 
       85 
     | 
    
         
            -
                useMessage: ReadonlyStore<MessageState>;
         
     | 
| 
       86 
     | 
    
         
            -
                useMessageUtils: ReadonlyStore<MessageUtilsState>;
         
     | 
| 
       87 
     | 
    
         
            -
                useEditComposer: ReadonlyStore<EditComposerState>;
         
     | 
| 
       88 
     | 
    
         
            -
            };
         
     | 
| 
       89 
     | 
    
         
            -
            declare const useMessageContext: () => MessageContextValue;
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
            type ContentPartContextValue = {
         
     | 
| 
       92 
     | 
    
         
            -
                useContentPart: ReadonlyStore<ContentPartState>;
         
     | 
| 
       93 
     | 
    
         
            -
            };
         
     | 
| 
       94 
     | 
    
         
            -
            declare const useContentPartContext: () => ContentPartContextValue;
         
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
       96 
     | 
    
         
            -
            declare const useAssistantInstructions: (instruction: string) => void;
         
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
            type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {
         
     | 
| 
       99 
     | 
    
         
            -
                toolName: string;
         
     | 
| 
       100 
     | 
    
         
            -
                render?: ToolCallContentPartComponent<TArgs, TResult>;
         
     | 
| 
       101 
     | 
    
         
            -
            };
         
     | 
| 
       102 
     | 
    
         
            -
            declare const useAssistantTool: <TArgs, TResult>(tool: AssistantToolProps<TArgs, TResult>) => void;
         
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
            type AssistantToolUIProps<TArgs, TResult> = {
         
     | 
| 
       105 
     | 
    
         
            -
                toolName: string;
         
     | 
| 
       106 
     | 
    
         
            -
                render: ToolCallContentPartComponent<TArgs, TResult>;
         
     | 
| 
       107 
     | 
    
         
            -
            };
         
     | 
| 
       108 
     | 
    
         
            -
            declare const useAssistantToolUI: (tool: AssistantToolUIProps<any, any> | null) => void;
         
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
            declare const makeAssistantTool: <TArgs, TResult>(tool: AssistantToolProps<TArgs, TResult>) => () => null;
         
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
       112 
     | 
    
         
            -
            declare const makeAssistantToolUI: <TArgs, TResult>(tool: AssistantToolUIProps<TArgs, TResult>) => () => null;
         
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
            export { type AssistantContextValue, type AssistantModelConfigState, type AssistantToolProps, type AssistantToolUIProps, type ComposerContextValue, type ComposerState, type ContentPartContextValue, type ContentPartState, type EditComposerState, type MessageContextValue, type MessageState, ModelConfigProvider, type ThreadContextValue, ThreadState, type ThreadViewportState, ToolCallContentPartComponent, makeAssistantTool, makeAssistantToolUI, useAssistantContext, useAssistantInstructions, useAssistantTool, useAssistantToolUI, useComposerContext, useContentPartContext, useMessageContext, useThreadContext };
         
     | 
| 
      
 2 
     | 
    
         
            +
            export {  }
         
     | 
    
        package/dist/experimental.d.ts
    CHANGED
    
    | 
         @@ -1,114 +1,2 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { M as ModelConfigProvider, f as ThreadMessage, e as Unsubscribe, a as ToolCallContentPartComponent, c as ThreadState, d as ThreadActionsState, n as Tool } from './ThreadActions-BLcKtagX.js';
         
     | 
| 
       2 
     | 
    
         
            -
            export { o as ImageContentPart, I as ImageContentPartComponent, s as ImageContentPartProps, g as ModelConfig, T as TextContentPartComponent, r as TextContentPartProps, p as ToolCallContentPart, b as ToolCallContentPartProps, q as UIContentPart, U as UIContentPartComponent, t as UIContentPartProps } from './ThreadActions-BLcKtagX.js';
         
     | 
| 
       3 
     | 
    
         
            -
            import { UseBoundStore, StoreApi } from 'zustand';
         
     | 
| 
       4 
     | 
    
         
            -
            import { ReactNode } from 'react';
         
     | 
| 
       5 
     | 
    
         
            -
            import 'zod';
         
     | 
| 
       6 
1 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
                getModelConfig: ModelConfigProvider;
         
     | 
| 
       9 
     | 
    
         
            -
                registerModelConfigProvider: (provider: ModelConfigProvider) => () => void;
         
     | 
| 
       10 
     | 
    
         
            -
            }>;
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            type ContentPartState = Readonly<{
         
     | 
| 
       13 
     | 
    
         
            -
                status: "in_progress" | "done" | "error";
         
     | 
| 
       14 
     | 
    
         
            -
                part: ThreadMessage["content"][number];
         
     | 
| 
       15 
     | 
    
         
            -
            }>;
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
            type MessageState = Readonly<{
         
     | 
| 
       18 
     | 
    
         
            -
                message: Readonly<ThreadMessage>;
         
     | 
| 
       19 
     | 
    
         
            -
                parentId: string | null;
         
     | 
| 
       20 
     | 
    
         
            -
                branches: readonly string[];
         
     | 
| 
       21 
     | 
    
         
            -
                isLast: boolean;
         
     | 
| 
       22 
     | 
    
         
            -
            }>;
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
            type BaseComposerState = Readonly<{
         
     | 
| 
       25 
     | 
    
         
            -
                value: string;
         
     | 
| 
       26 
     | 
    
         
            -
                setValue: (value: string) => void;
         
     | 
| 
       27 
     | 
    
         
            -
            }>;
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
            type ReadonlyStore<T> = UseBoundStore<Omit<StoreApi<T>, "setState" | "destroy" | "getInitialState">>;
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
            type EditComposerState = BaseComposerState & Readonly<{
         
     | 
| 
       32 
     | 
    
         
            -
                isEditing: boolean;
         
     | 
| 
       33 
     | 
    
         
            -
                edit: () => void;
         
     | 
| 
       34 
     | 
    
         
            -
                send: () => void;
         
     | 
| 
       35 
     | 
    
         
            -
                cancel: () => boolean;
         
     | 
| 
       36 
     | 
    
         
            -
            }>;
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
            type ComposerState = BaseComposerState & Readonly<{
         
     | 
| 
       39 
     | 
    
         
            -
                isEditing: true;
         
     | 
| 
       40 
     | 
    
         
            -
                send: () => void;
         
     | 
| 
       41 
     | 
    
         
            -
                cancel: () => boolean;
         
     | 
| 
       42 
     | 
    
         
            -
            }>;
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
            type ThreadViewportState = Readonly<{
         
     | 
| 
       45 
     | 
    
         
            -
                isAtBottom: boolean;
         
     | 
| 
       46 
     | 
    
         
            -
                scrollToBottom: () => void;
         
     | 
| 
       47 
     | 
    
         
            -
                onScrollToBottom: (callback: () => void) => Unsubscribe;
         
     | 
| 
       48 
     | 
    
         
            -
            }>;
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
            type AssistantToolUIsState = Readonly<{
         
     | 
| 
       51 
     | 
    
         
            -
                getToolUI: (toolName: string) => ToolCallContentPartComponent | null;
         
     | 
| 
       52 
     | 
    
         
            -
                setToolUI: (toolName: string, render: ToolCallContentPartComponent) => () => void;
         
     | 
| 
       53 
     | 
    
         
            -
            }>;
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
            type AssistantContextValue = {
         
     | 
| 
       56 
     | 
    
         
            -
                useModelConfig: ReadonlyStore<AssistantModelConfigState>;
         
     | 
| 
       57 
     | 
    
         
            -
                useToolUIs: ReadonlyStore<AssistantToolUIsState>;
         
     | 
| 
       58 
     | 
    
         
            -
            };
         
     | 
| 
       59 
     | 
    
         
            -
            declare const useAssistantContext: () => AssistantContextValue;
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
            type ThreadContextValue = {
         
     | 
| 
       62 
     | 
    
         
            -
                useThread: ReadonlyStore<ThreadState>;
         
     | 
| 
       63 
     | 
    
         
            -
                useThreadActions: ReadonlyStore<ThreadActionsState>;
         
     | 
| 
       64 
     | 
    
         
            -
                useComposer: ReadonlyStore<ComposerState>;
         
     | 
| 
       65 
     | 
    
         
            -
                useViewport: ReadonlyStore<ThreadViewportState>;
         
     | 
| 
       66 
     | 
    
         
            -
            };
         
     | 
| 
       67 
     | 
    
         
            -
            declare const useThreadContext: () => ThreadContextValue;
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
            type ComposerContextValue = {
         
     | 
| 
       70 
     | 
    
         
            -
                useComposer: ReadonlyStore<EditComposerState | ComposerState>;
         
     | 
| 
       71 
     | 
    
         
            -
                type: "edit" | "new";
         
     | 
| 
       72 
     | 
    
         
            -
            };
         
     | 
| 
       73 
     | 
    
         
            -
            declare const useComposerContext: () => ComposerContextValue;
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
            type MessageUtilsState = Readonly<{
         
     | 
| 
       76 
     | 
    
         
            -
                inProgressIndicator: ReactNode | null;
         
     | 
| 
       77 
     | 
    
         
            -
                setInProgressIndicator: (value: ReactNode | null) => void;
         
     | 
| 
       78 
     | 
    
         
            -
                isCopied: boolean;
         
     | 
| 
       79 
     | 
    
         
            -
                setIsCopied: (value: boolean) => void;
         
     | 
| 
       80 
     | 
    
         
            -
                isHovering: boolean;
         
     | 
| 
       81 
     | 
    
         
            -
                setIsHovering: (value: boolean) => void;
         
     | 
| 
       82 
     | 
    
         
            -
            }>;
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
            type MessageContextValue = {
         
     | 
| 
       85 
     | 
    
         
            -
                useMessage: ReadonlyStore<MessageState>;
         
     | 
| 
       86 
     | 
    
         
            -
                useMessageUtils: ReadonlyStore<MessageUtilsState>;
         
     | 
| 
       87 
     | 
    
         
            -
                useEditComposer: ReadonlyStore<EditComposerState>;
         
     | 
| 
       88 
     | 
    
         
            -
            };
         
     | 
| 
       89 
     | 
    
         
            -
            declare const useMessageContext: () => MessageContextValue;
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
            type ContentPartContextValue = {
         
     | 
| 
       92 
     | 
    
         
            -
                useContentPart: ReadonlyStore<ContentPartState>;
         
     | 
| 
       93 
     | 
    
         
            -
            };
         
     | 
| 
       94 
     | 
    
         
            -
            declare const useContentPartContext: () => ContentPartContextValue;
         
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
       96 
     | 
    
         
            -
            declare const useAssistantInstructions: (instruction: string) => void;
         
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
            type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {
         
     | 
| 
       99 
     | 
    
         
            -
                toolName: string;
         
     | 
| 
       100 
     | 
    
         
            -
                render?: ToolCallContentPartComponent<TArgs, TResult>;
         
     | 
| 
       101 
     | 
    
         
            -
            };
         
     | 
| 
       102 
     | 
    
         
            -
            declare const useAssistantTool: <TArgs, TResult>(tool: AssistantToolProps<TArgs, TResult>) => void;
         
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
            type AssistantToolUIProps<TArgs, TResult> = {
         
     | 
| 
       105 
     | 
    
         
            -
                toolName: string;
         
     | 
| 
       106 
     | 
    
         
            -
                render: ToolCallContentPartComponent<TArgs, TResult>;
         
     | 
| 
       107 
     | 
    
         
            -
            };
         
     | 
| 
       108 
     | 
    
         
            -
            declare const useAssistantToolUI: (tool: AssistantToolUIProps<any, any> | null) => void;
         
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
            declare const makeAssistantTool: <TArgs, TResult>(tool: AssistantToolProps<TArgs, TResult>) => () => null;
         
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
       112 
     | 
    
         
            -
            declare const makeAssistantToolUI: <TArgs, TResult>(tool: AssistantToolUIProps<TArgs, TResult>) => () => null;
         
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
            export { type AssistantContextValue, type AssistantModelConfigState, type AssistantToolProps, type AssistantToolUIProps, type ComposerContextValue, type ComposerState, type ContentPartContextValue, type ContentPartState, type EditComposerState, type MessageContextValue, type MessageState, ModelConfigProvider, type ThreadContextValue, ThreadState, type ThreadViewportState, ToolCallContentPartComponent, makeAssistantTool, makeAssistantToolUI, useAssistantContext, useAssistantInstructions, useAssistantTool, useAssistantToolUI, useComposerContext, useContentPartContext, useMessageContext, useThreadContext };
         
     | 
| 
      
 2 
     | 
    
         
            +
            export {  }
         
     | 
    
        package/dist/experimental.js
    CHANGED
    
    | 
         @@ -1,185 +1,2 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            "use strict";
         
     | 
| 
       2 
     | 
    
         
            -
            var __defProp = Object.defineProperty;
         
     | 
| 
       3 
     | 
    
         
            -
            var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
         
     | 
| 
       4 
     | 
    
         
            -
            var __getOwnPropNames = Object.getOwnPropertyNames;
         
     | 
| 
       5 
     | 
    
         
            -
            var __hasOwnProp = Object.prototype.hasOwnProperty;
         
     | 
| 
       6 
     | 
    
         
            -
            var __export = (target, all) => {
         
     | 
| 
       7 
     | 
    
         
            -
              for (var name in all)
         
     | 
| 
       8 
     | 
    
         
            -
                __defProp(target, name, { get: all[name], enumerable: true });
         
     | 
| 
       9 
     | 
    
         
            -
            };
         
     | 
| 
       10 
     | 
    
         
            -
            var __copyProps = (to, from, except, desc) => {
         
     | 
| 
       11 
     | 
    
         
            -
              if (from && typeof from === "object" || typeof from === "function") {
         
     | 
| 
       12 
     | 
    
         
            -
                for (let key of __getOwnPropNames(from))
         
     | 
| 
       13 
     | 
    
         
            -
                  if (!__hasOwnProp.call(to, key) && key !== except)
         
     | 
| 
       14 
     | 
    
         
            -
                    __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
         
     | 
| 
       15 
     | 
    
         
            -
              }
         
     | 
| 
       16 
     | 
    
         
            -
              return to;
         
     | 
| 
       17 
     | 
    
         
            -
            };
         
     | 
| 
       18 
     | 
    
         
            -
            var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
            // src/experimental.ts
         
     | 
| 
       21 
     | 
    
         
            -
            var experimental_exports = {};
         
     | 
| 
       22 
     | 
    
         
            -
            __export(experimental_exports, {
         
     | 
| 
       23 
     | 
    
         
            -
              makeAssistantTool: () => makeAssistantTool,
         
     | 
| 
       24 
     | 
    
         
            -
              makeAssistantToolUI: () => makeAssistantToolUI,
         
     | 
| 
       25 
     | 
    
         
            -
              useAssistantContext: () => useAssistantContext,
         
     | 
| 
       26 
     | 
    
         
            -
              useAssistantInstructions: () => useAssistantInstructions,
         
     | 
| 
       27 
     | 
    
         
            -
              useAssistantTool: () => useAssistantTool,
         
     | 
| 
       28 
     | 
    
         
            -
              useAssistantToolUI: () => useAssistantToolUI,
         
     | 
| 
       29 
     | 
    
         
            -
              useComposerContext: () => useComposerContext,
         
     | 
| 
       30 
     | 
    
         
            -
              useContentPartContext: () => useContentPartContext,
         
     | 
| 
       31 
     | 
    
         
            -
              useMessageContext: () => useMessageContext,
         
     | 
| 
       32 
     | 
    
         
            -
              useThreadContext: () => useThreadContext
         
     | 
| 
       33 
     | 
    
         
            -
            });
         
     | 
| 
       34 
     | 
    
         
            -
            module.exports = __toCommonJS(experimental_exports);
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
            // src/context/react/AssistantContext.ts
         
     | 
| 
       37 
     | 
    
         
            -
            var import_react = require("react");
         
     | 
| 
       38 
     | 
    
         
            -
            var AssistantContext = (0, import_react.createContext)(
         
     | 
| 
       39 
     | 
    
         
            -
              null
         
     | 
| 
       40 
     | 
    
         
            -
            );
         
     | 
| 
       41 
     | 
    
         
            -
            var useAssistantContext = () => {
         
     | 
| 
       42 
     | 
    
         
            -
              const context = (0, import_react.useContext)(AssistantContext);
         
     | 
| 
       43 
     | 
    
         
            -
              if (!context)
         
     | 
| 
       44 
     | 
    
         
            -
                throw new Error(
         
     | 
| 
       45 
     | 
    
         
            -
                  "This component must be used within an AssistantRuntimeProvider."
         
     | 
| 
       46 
     | 
    
         
            -
                );
         
     | 
| 
       47 
     | 
    
         
            -
              return context;
         
     | 
| 
       48 
     | 
    
         
            -
            };
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
            // src/context/react/ThreadContext.ts
         
     | 
| 
       51 
     | 
    
         
            -
            var import_react2 = require("react");
         
     | 
| 
       52 
     | 
    
         
            -
            var ThreadContext = (0, import_react2.createContext)(null);
         
     | 
| 
       53 
     | 
    
         
            -
            var useThreadContext = () => {
         
     | 
| 
       54 
     | 
    
         
            -
              const context = (0, import_react2.useContext)(ThreadContext);
         
     | 
| 
       55 
     | 
    
         
            -
              if (!context)
         
     | 
| 
       56 
     | 
    
         
            -
                throw new Error(
         
     | 
| 
       57 
     | 
    
         
            -
                  "This component must be used within an AssistantRuntimeProvider."
         
     | 
| 
       58 
     | 
    
         
            -
                );
         
     | 
| 
       59 
     | 
    
         
            -
              return context;
         
     | 
| 
       60 
     | 
    
         
            -
            };
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
            // src/context/react/ComposerContext.ts
         
     | 
| 
       63 
     | 
    
         
            -
            var import_react4 = require("react");
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
            // src/context/react/MessageContext.ts
         
     | 
| 
       66 
     | 
    
         
            -
            var import_react3 = require("react");
         
     | 
| 
       67 
     | 
    
         
            -
            var MessageContext = (0, import_react3.createContext)(null);
         
     | 
| 
       68 
     | 
    
         
            -
            var useMessageContext = () => {
         
     | 
| 
       69 
     | 
    
         
            -
              const context = (0, import_react3.useContext)(MessageContext);
         
     | 
| 
       70 
     | 
    
         
            -
              if (!context)
         
     | 
| 
       71 
     | 
    
         
            -
                throw new Error(
         
     | 
| 
       72 
     | 
    
         
            -
                  "This component can only be used inside a component passed to <ThreadPrimitive.Messages components={...} />."
         
     | 
| 
       73 
     | 
    
         
            -
                );
         
     | 
| 
       74 
     | 
    
         
            -
              return context;
         
     | 
| 
       75 
     | 
    
         
            -
            };
         
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
            // src/context/react/ComposerContext.ts
         
     | 
| 
       78 
     | 
    
         
            -
            var useComposerContext = () => {
         
     | 
| 
       79 
     | 
    
         
            -
              const { useComposer } = useThreadContext();
         
     | 
| 
       80 
     | 
    
         
            -
              const { useEditComposer } = (0, import_react4.useContext)(MessageContext) ?? {};
         
     | 
| 
       81 
     | 
    
         
            -
              return (0, import_react4.useMemo)(
         
     | 
| 
       82 
     | 
    
         
            -
                () => ({
         
     | 
| 
       83 
     | 
    
         
            -
                  useComposer: useEditComposer ?? useComposer,
         
     | 
| 
       84 
     | 
    
         
            -
                  type: useEditComposer ? "edit" : "new"
         
     | 
| 
       85 
     | 
    
         
            -
                }),
         
     | 
| 
       86 
     | 
    
         
            -
                [useEditComposer, useComposer]
         
     | 
| 
       87 
     | 
    
         
            -
              );
         
     | 
| 
       88 
     | 
    
         
            -
            };
         
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
            // src/context/react/ContentPartContext.ts
         
     | 
| 
       91 
     | 
    
         
            -
            var import_react5 = require("react");
         
     | 
| 
       92 
     | 
    
         
            -
            var ContentPartContext = (0, import_react5.createContext)(
         
     | 
| 
       93 
     | 
    
         
            -
              null
         
     | 
| 
       94 
     | 
    
         
            -
            );
         
     | 
| 
       95 
     | 
    
         
            -
            var useContentPartContext = () => {
         
     | 
| 
       96 
     | 
    
         
            -
              const context = (0, import_react5.useContext)(ContentPartContext);
         
     | 
| 
       97 
     | 
    
         
            -
              if (!context)
         
     | 
| 
       98 
     | 
    
         
            -
                throw new Error(
         
     | 
| 
       99 
     | 
    
         
            -
                  "This component can only be used inside a component passed to <MessagePrimitive.Content components={...} >."
         
     | 
| 
       100 
     | 
    
         
            -
                );
         
     | 
| 
       101 
     | 
    
         
            -
              return context;
         
     | 
| 
       102 
     | 
    
         
            -
            };
         
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
            // src/model-config/useAssistantInstructions.tsx
         
     | 
| 
       105 
     | 
    
         
            -
            var import_react6 = require("react");
         
     | 
| 
       106 
     | 
    
         
            -
            var useAssistantInstructions = (instruction) => {
         
     | 
| 
       107 
     | 
    
         
            -
              const { useModelConfig } = useAssistantContext();
         
     | 
| 
       108 
     | 
    
         
            -
              const registerModelConfigProvider = useModelConfig(
         
     | 
| 
       109 
     | 
    
         
            -
                (s) => s.registerModelConfigProvider
         
     | 
| 
       110 
     | 
    
         
            -
              );
         
     | 
| 
       111 
     | 
    
         
            -
              (0, import_react6.useEffect)(() => {
         
     | 
| 
       112 
     | 
    
         
            -
                const config = {
         
     | 
| 
       113 
     | 
    
         
            -
                  system: instruction
         
     | 
| 
       114 
     | 
    
         
            -
                };
         
     | 
| 
       115 
     | 
    
         
            -
                return registerModelConfigProvider(() => config);
         
     | 
| 
       116 
     | 
    
         
            -
              }, [registerModelConfigProvider, instruction]);
         
     | 
| 
       117 
     | 
    
         
            -
            };
         
     | 
| 
       118 
     | 
    
         
            -
             
     | 
| 
       119 
     | 
    
         
            -
            // src/model-config/useAssistantTool.tsx
         
     | 
| 
       120 
     | 
    
         
            -
            var import_react7 = require("react");
         
     | 
| 
       121 
     | 
    
         
            -
            var useAssistantTool = (tool) => {
         
     | 
| 
       122 
     | 
    
         
            -
              const { useModelConfig, useToolUIs } = useAssistantContext();
         
     | 
| 
       123 
     | 
    
         
            -
              const registerModelConfigProvider = useModelConfig(
         
     | 
| 
       124 
     | 
    
         
            -
                (s) => s.registerModelConfigProvider
         
     | 
| 
       125 
     | 
    
         
            -
              );
         
     | 
| 
       126 
     | 
    
         
            -
              const setToolUI = useToolUIs((s) => s.setToolUI);
         
     | 
| 
       127 
     | 
    
         
            -
              (0, import_react7.useEffect)(() => {
         
     | 
| 
       128 
     | 
    
         
            -
                const { toolName, render, ...rest } = tool;
         
     | 
| 
       129 
     | 
    
         
            -
                const config = {
         
     | 
| 
       130 
     | 
    
         
            -
                  tools: {
         
     | 
| 
       131 
     | 
    
         
            -
                    [tool.toolName]: rest
         
     | 
| 
       132 
     | 
    
         
            -
                  }
         
     | 
| 
       133 
     | 
    
         
            -
                };
         
     | 
| 
       134 
     | 
    
         
            -
                const unsub1 = registerModelConfigProvider(() => config);
         
     | 
| 
       135 
     | 
    
         
            -
                const unsub2 = render ? setToolUI(toolName, render) : void 0;
         
     | 
| 
       136 
     | 
    
         
            -
                return () => {
         
     | 
| 
       137 
     | 
    
         
            -
                  unsub1();
         
     | 
| 
       138 
     | 
    
         
            -
                  unsub2?.();
         
     | 
| 
       139 
     | 
    
         
            -
                };
         
     | 
| 
       140 
     | 
    
         
            -
              }, [registerModelConfigProvider, setToolUI, tool]);
         
     | 
| 
       141 
     | 
    
         
            -
            };
         
     | 
| 
       142 
     | 
    
         
            -
             
     | 
| 
       143 
     | 
    
         
            -
            // src/model-config/useAssistantToolUI.tsx
         
     | 
| 
       144 
     | 
    
         
            -
            var import_react8 = require("react");
         
     | 
| 
       145 
     | 
    
         
            -
            var useAssistantToolUI = (tool) => {
         
     | 
| 
       146 
     | 
    
         
            -
              const { useToolUIs } = useAssistantContext();
         
     | 
| 
       147 
     | 
    
         
            -
              const setToolUI = useToolUIs((s) => s.setToolUI);
         
     | 
| 
       148 
     | 
    
         
            -
              (0, import_react8.useEffect)(() => {
         
     | 
| 
       149 
     | 
    
         
            -
                if (!tool) return;
         
     | 
| 
       150 
     | 
    
         
            -
                const { toolName, render } = tool;
         
     | 
| 
       151 
     | 
    
         
            -
                return setToolUI(toolName, render);
         
     | 
| 
       152 
     | 
    
         
            -
              }, [setToolUI, tool]);
         
     | 
| 
       153 
     | 
    
         
            -
            };
         
     | 
| 
       154 
     | 
    
         
            -
             
     | 
| 
       155 
     | 
    
         
            -
            // src/model-config/makeAssistantTool.tsx
         
     | 
| 
       156 
     | 
    
         
            -
            var makeAssistantTool = (tool) => {
         
     | 
| 
       157 
     | 
    
         
            -
              const Tool = () => {
         
     | 
| 
       158 
     | 
    
         
            -
                useAssistantTool(tool);
         
     | 
| 
       159 
     | 
    
         
            -
                return null;
         
     | 
| 
       160 
     | 
    
         
            -
              };
         
     | 
| 
       161 
     | 
    
         
            -
              return Tool;
         
     | 
| 
       162 
     | 
    
         
            -
            };
         
     | 
| 
       163 
     | 
    
         
            -
             
     | 
| 
       164 
     | 
    
         
            -
            // src/model-config/makeAssistantToolUI.tsx
         
     | 
| 
       165 
     | 
    
         
            -
            var makeAssistantToolUI = (tool) => {
         
     | 
| 
       166 
     | 
    
         
            -
              const ToolUI = () => {
         
     | 
| 
       167 
     | 
    
         
            -
                useAssistantToolUI(tool);
         
     | 
| 
       168 
     | 
    
         
            -
                return null;
         
     | 
| 
       169 
     | 
    
         
            -
              };
         
     | 
| 
       170 
     | 
    
         
            -
              return ToolUI;
         
     | 
| 
       171 
     | 
    
         
            -
            };
         
     | 
| 
       172 
     | 
    
         
            -
            // Annotate the CommonJS export names for ESM import in node:
         
     | 
| 
       173 
     | 
    
         
            -
            0 && (module.exports = {
         
     | 
| 
       174 
     | 
    
         
            -
              makeAssistantTool,
         
     | 
| 
       175 
     | 
    
         
            -
              makeAssistantToolUI,
         
     | 
| 
       176 
     | 
    
         
            -
              useAssistantContext,
         
     | 
| 
       177 
     | 
    
         
            -
              useAssistantInstructions,
         
     | 
| 
       178 
     | 
    
         
            -
              useAssistantTool,
         
     | 
| 
       179 
     | 
    
         
            -
              useAssistantToolUI,
         
     | 
| 
       180 
     | 
    
         
            -
              useComposerContext,
         
     | 
| 
       181 
     | 
    
         
            -
              useContentPartContext,
         
     | 
| 
       182 
     | 
    
         
            -
              useMessageContext,
         
     | 
| 
       183 
     | 
    
         
            -
              useThreadContext
         
     | 
| 
       184 
     | 
    
         
            -
            });
         
     | 
| 
       185 
2 
     | 
    
         
             
            //# sourceMappingURL=experimental.js.map
         
     | 
    
        package/dist/experimental.js.map
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/experimental.ts","../src/context/react/AssistantContext.ts","../src/context/react/ThreadContext.ts","../src/context/react/ComposerContext.ts","../src/context/react/MessageContext.ts","../src/context/react/ContentPartContext.ts","../src/model-config/useAssistantInstructions.tsx","../src/model-config/useAssistantTool.tsx","../src/model-config/useAssistantToolUI.tsx","../src/model-config/makeAssistantTool.tsx","../src/model-config/makeAssistantToolUI.tsx"],"sourcesContent":["export type {\n  ImageContentPart,\n  ToolCallContentPart,\n  UIContentPart,\n} from \"./types/AssistantTypes\";\n\nexport type {\n  ModelConfigProvider,\n  ModelConfig,\n} from \"./utils/ModelConfigTypes\";\n\nexport type {\n  TextContentPartProps,\n  TextContentPartComponent,\n  ImageContentPartProps,\n  ImageContentPartComponent,\n  UIContentPartProps,\n  UIContentPartComponent,\n  ToolCallContentPartProps,\n  ToolCallContentPartComponent,\n} from \"./types/ContentPartComponentTypes\";\n\nexport * from \"./context\";\nexport { useAssistantInstructions } from \"./model-config/useAssistantInstructions\";\nexport {\n  useAssistantTool,\n  type AssistantToolProps,\n} from \"./model-config/useAssistantTool\";\nexport {\n  useAssistantToolUI,\n  type AssistantToolUIProps,\n} from \"./model-config/useAssistantToolUI\";\nexport { makeAssistantTool } from \"./model-config/makeAssistantTool\";\nexport { makeAssistantToolUI } from \"./model-config/makeAssistantToolUI\";\n","import { createContext, useContext } from \"react\";\nimport type { AssistantModelConfigState } from \"../stores/AssistantModelConfig\";\nimport type { AssistantToolUIsState } from \"../stores/AssistantToolUIs\";\nimport { ReadonlyStore } from \"../ReadonlyStore\";\n\nexport type AssistantContextValue = {\n  useModelConfig: ReadonlyStore<AssistantModelConfigState>;\n  useToolUIs: ReadonlyStore<AssistantToolUIsState>;\n};\n\nexport const AssistantContext = createContext<AssistantContextValue | null>(\n  null,\n);\n\nexport const useAssistantContext = (): AssistantContextValue => {\n  const context = useContext(AssistantContext);\n  if (!context)\n    throw new Error(\n      \"This component must be used within an AssistantRuntimeProvider.\",\n    );\n  return context;\n};\n","import { createContext, useContext } from \"react\";\nimport type { ComposerState } from \"../stores/Composer\";\nimport type { ThreadState } from \"../stores/Thread\";\nimport type { ThreadViewportState } from \"../stores/ThreadViewport\";\nimport { ThreadActionsState } from \"../stores/ThreadActions\";\nimport { ReadonlyStore } from \"../ReadonlyStore\";\n\nexport type ThreadContextValue = {\n  useThread: ReadonlyStore<ThreadState>;\n  useThreadActions: ReadonlyStore<ThreadActionsState>;\n  useComposer: ReadonlyStore<ComposerState>;\n  useViewport: ReadonlyStore<ThreadViewportState>;\n};\n\nexport const ThreadContext = createContext<ThreadContextValue | null>(null);\n\nexport const useThreadContext = (): ThreadContextValue => {\n  const context = useContext(ThreadContext);\n  if (!context)\n    throw new Error(\n      \"This component must be used within an AssistantRuntimeProvider.\",\n    );\n  return context;\n};\n","import { useContext, useMemo } from \"react\";\nimport { MessageContext } from \"./MessageContext\";\nimport { useThreadContext } from \"./ThreadContext\";\nimport type { ComposerState } from \"../stores/Composer\";\nimport type { EditComposerState } from \"../stores/EditComposer\";\nimport { ReadonlyStore } from \"../ReadonlyStore\";\n\nexport type ComposerContextValue = {\n  useComposer: ReadonlyStore<EditComposerState | ComposerState>;\n  type: \"edit\" | \"new\";\n};\n\nexport const useComposerContext = (): ComposerContextValue => {\n  const { useComposer } = useThreadContext();\n  const { useEditComposer } = useContext(MessageContext) ?? {};\n  return useMemo(\n    () => ({\n      useComposer: (useEditComposer ?? useComposer) as ReadonlyStore<\n        EditComposerState | ComposerState\n      >,\n      type: useEditComposer ? (\"edit\" as const) : (\"new\" as const),\n    }),\n    [useEditComposer, useComposer],\n  );\n};\n","import { createContext, useContext } from \"react\";\nimport type { MessageState } from \"../stores/Message\";\nimport type { EditComposerState } from \"../stores/EditComposer\";\nimport { ReadonlyStore } from \"../ReadonlyStore\";\nimport { MessageUtilsState } from \"../stores/MessageUtils\";\n\nexport type MessageContextValue = {\n  useMessage: ReadonlyStore<MessageState>;\n  useMessageUtils: ReadonlyStore<MessageUtilsState>;\n  useEditComposer: ReadonlyStore<EditComposerState>;\n};\n\nexport const MessageContext = createContext<MessageContextValue | null>(null);\n\nexport const useMessageContext = () => {\n  const context = useContext(MessageContext);\n  if (!context)\n    throw new Error(\n      \"This component can only be used inside a component passed to <ThreadPrimitive.Messages components={...} />.\",\n    );\n  return context;\n};\n","import { createContext, useContext } from \"react\";\nimport type { ContentPartState } from \"../stores/ContentPart\";\nimport { ReadonlyStore } from \"../ReadonlyStore\";\n\nexport type ContentPartContextValue = {\n  useContentPart: ReadonlyStore<ContentPartState>;\n};\n\nexport const ContentPartContext = createContext<ContentPartContextValue | null>(\n  null,\n);\n\nexport const useContentPartContext = (): ContentPartContextValue => {\n  const context = useContext(ContentPartContext);\n  if (!context)\n    throw new Error(\n      \"This component can only be used inside a component passed to <MessagePrimitive.Content components={...} >.\",\n    );\n  return context;\n};\n","\"use client\";\n\nimport { useEffect } from \"react\";\nimport { useAssistantContext } from \"../context/react/AssistantContext\";\n\nexport const useAssistantInstructions = (instruction: string) => {\n  const { useModelConfig } = useAssistantContext();\n  const registerModelConfigProvider = useModelConfig(\n    (s) => s.registerModelConfigProvider,\n  );\n  useEffect(() => {\n    const config = {\n      system: instruction,\n    };\n    return registerModelConfigProvider(() => config);\n  }, [registerModelConfigProvider, instruction]);\n};\n","\"use client\";\n\nimport { useEffect } from \"react\";\nimport { useAssistantContext } from \"../context/react/AssistantContext\";\nimport type { ToolCallContentPartComponent } from \"../types/ContentPartComponentTypes\";\nimport type { Tool } from \"../utils/ModelConfigTypes\";\n\nexport type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {\n  toolName: string;\n  render?: ToolCallContentPartComponent<TArgs, TResult>;\n};\n\nexport const useAssistantTool = <TArgs, TResult>(\n  tool: AssistantToolProps<TArgs, TResult>,\n) => {\n  const { useModelConfig, useToolUIs } = useAssistantContext();\n  const registerModelConfigProvider = useModelConfig(\n    (s) => s.registerModelConfigProvider,\n  );\n  const setToolUI = useToolUIs((s) => s.setToolUI);\n  useEffect(() => {\n    const { toolName, render, ...rest } = tool;\n    const config = {\n      tools: {\n        [tool.toolName]: rest,\n      },\n    };\n    const unsub1 = registerModelConfigProvider(() => config);\n    const unsub2 = render ? setToolUI(toolName, render) : undefined;\n    return () => {\n      unsub1();\n      unsub2?.();\n    };\n  }, [registerModelConfigProvider, setToolUI, tool]);\n};\n","\"use client\";\nimport { useEffect } from \"react\";\nimport { useAssistantContext } from \"../context/react/AssistantContext\";\nimport type { ToolCallContentPartComponent } from \"../types/ContentPartComponentTypes\";\n\nexport type AssistantToolUIProps<TArgs, TResult> = {\n  toolName: string;\n  render: ToolCallContentPartComponent<TArgs, TResult>;\n};\n\nexport const useAssistantToolUI = (\n  tool: AssistantToolUIProps<any, any> | null,\n) => {\n  const { useToolUIs } = useAssistantContext();\n  const setToolUI = useToolUIs((s) => s.setToolUI);\n  useEffect(() => {\n    if (!tool) return;\n    const { toolName, render } = tool;\n    return setToolUI(toolName, render);\n  }, [setToolUI, tool]);\n};\n","\"use client\";\nimport { type AssistantToolProps, useAssistantTool } from \"./useAssistantTool\";\n\nexport const makeAssistantTool = <TArgs, TResult>(\n  tool: AssistantToolProps<TArgs, TResult>,\n) => {\n  const Tool = () => {\n    useAssistantTool(tool);\n    return null;\n  };\n  return Tool;\n};\n","\"use client\";\nimport {\n  type AssistantToolUIProps,\n  useAssistantToolUI,\n} from \"./useAssistantToolUI\";\n\nexport const makeAssistantToolUI = <TArgs, TResult>(\n  tool: AssistantToolUIProps<TArgs, TResult>,\n) => {\n  const ToolUI = () => {\n    useAssistantToolUI(tool);\n    return null;\n  };\n  return ToolUI;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAA0C;AAUnC,IAAM,uBAAmB;AAAA,EAC9B;AACF;AAEO,IAAM,sBAAsB,MAA6B;AAC9D,QAAM,cAAU,yBAAW,gBAAgB;AAC3C,MAAI,CAAC;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO;AACT;;;ACrBA,IAAAA,gBAA0C;AAcnC,IAAM,oBAAgB,6BAAyC,IAAI;AAEnE,IAAM,mBAAmB,MAA0B;AACxD,QAAM,cAAU,0BAAW,aAAa;AACxC,MAAI,CAAC;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO;AACT;;;ACvBA,IAAAC,gBAAoC;;;ACApC,IAAAC,gBAA0C;AAYnC,IAAM,qBAAiB,6BAA0C,IAAI;AAErE,IAAM,oBAAoB,MAAM;AACrC,QAAM,cAAU,0BAAW,cAAc;AACzC,MAAI,CAAC;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO;AACT;;;ADTO,IAAM,qBAAqB,MAA4B;AAC5D,QAAM,EAAE,YAAY,IAAI,iBAAiB;AACzC,QAAM,EAAE,gBAAgB,QAAI,0BAAW,cAAc,KAAK,CAAC;AAC3D,aAAO;AAAA,IACL,OAAO;AAAA,MACL,aAAc,mBAAmB;AAAA,MAGjC,MAAM,kBAAmB,SAAoB;AAAA,IAC/C;AAAA,IACA,CAAC,iBAAiB,WAAW;AAAA,EAC/B;AACF;;;AExBA,IAAAC,gBAA0C;AAQnC,IAAM,yBAAqB;AAAA,EAChC;AACF;AAEO,IAAM,wBAAwB,MAA+B;AAClE,QAAM,cAAU,0BAAW,kBAAkB;AAC7C,MAAI,CAAC;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO;AACT;;;ACjBA,IAAAC,gBAA0B;AAGnB,IAAM,2BAA2B,CAAC,gBAAwB;AAC/D,QAAM,EAAE,eAAe,IAAI,oBAAoB;AAC/C,QAAM,8BAA8B;AAAA,IAClC,CAAC,MAAM,EAAE;AAAA,EACX;AACA,+BAAU,MAAM;AACd,UAAM,SAAS;AAAA,MACb,QAAQ;AAAA,IACV;AACA,WAAO,4BAA4B,MAAM,MAAM;AAAA,EACjD,GAAG,CAAC,6BAA6B,WAAW,CAAC;AAC/C;;;ACdA,IAAAC,gBAA0B;AAUnB,IAAM,mBAAmB,CAC9B,SACG;AACH,QAAM,EAAE,gBAAgB,WAAW,IAAI,oBAAoB;AAC3D,QAAM,8BAA8B;AAAA,IAClC,CAAC,MAAM,EAAE;AAAA,EACX;AACA,QAAM,YAAY,WAAW,CAAC,MAAM,EAAE,SAAS;AAC/C,+BAAU,MAAM;AACd,UAAM,EAAE,UAAU,QAAQ,GAAG,KAAK,IAAI;AACtC,UAAM,SAAS;AAAA,MACb,OAAO;AAAA,QACL,CAAC,KAAK,QAAQ,GAAG;AAAA,MACnB;AAAA,IACF;AACA,UAAM,SAAS,4BAA4B,MAAM,MAAM;AACvD,UAAM,SAAS,SAAS,UAAU,UAAU,MAAM,IAAI;AACtD,WAAO,MAAM;AACX,aAAO;AACP,eAAS;AAAA,IACX;AAAA,EACF,GAAG,CAAC,6BAA6B,WAAW,IAAI,CAAC;AACnD;;;ACjCA,IAAAC,gBAA0B;AASnB,IAAM,qBAAqB,CAChC,SACG;AACH,QAAM,EAAE,WAAW,IAAI,oBAAoB;AAC3C,QAAM,YAAY,WAAW,CAAC,MAAM,EAAE,SAAS;AAC/C,+BAAU,MAAM;AACd,QAAI,CAAC,KAAM;AACX,UAAM,EAAE,UAAU,OAAO,IAAI;AAC7B,WAAO,UAAU,UAAU,MAAM;AAAA,EACnC,GAAG,CAAC,WAAW,IAAI,CAAC;AACtB;;;ACjBO,IAAM,oBAAoB,CAC/B,SACG;AACH,QAAM,OAAO,MAAM;AACjB,qBAAiB,IAAI;AACrB,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ACLO,IAAM,sBAAsB,CACjC,SACG;AACH,QAAM,SAAS,MAAM;AACnB,uBAAmB,IAAI;AACvB,WAAO;AAAA,EACT;AACA,SAAO;AACT;","names":["import_react","import_react","import_react","import_react","import_react","import_react","import_react"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
         
     | 
    
        package/dist/experimental.mjs
    CHANGED
    
    | 
         @@ -1,89 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import {
         
     | 
| 
       2 
     | 
    
         
            -
              useAssistantContext,
         
     | 
| 
       3 
     | 
    
         
            -
              useComposerContext,
         
     | 
| 
       4 
     | 
    
         
            -
              useContentPartContext,
         
     | 
| 
       5 
     | 
    
         
            -
              useMessageContext,
         
     | 
| 
       6 
     | 
    
         
            -
              useThreadContext
         
     | 
| 
       7 
     | 
    
         
            -
            } from "./chunk-KUACYNLE.mjs";
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
            // src/model-config/useAssistantInstructions.tsx
         
     | 
| 
       10 
     | 
    
         
            -
            import { useEffect } from "react";
         
     | 
| 
       11 
     | 
    
         
            -
            var useAssistantInstructions = (instruction) => {
         
     | 
| 
       12 
     | 
    
         
            -
              const { useModelConfig } = useAssistantContext();
         
     | 
| 
       13 
     | 
    
         
            -
              const registerModelConfigProvider = useModelConfig(
         
     | 
| 
       14 
     | 
    
         
            -
                (s) => s.registerModelConfigProvider
         
     | 
| 
       15 
     | 
    
         
            -
              );
         
     | 
| 
       16 
     | 
    
         
            -
              useEffect(() => {
         
     | 
| 
       17 
     | 
    
         
            -
                const config = {
         
     | 
| 
       18 
     | 
    
         
            -
                  system: instruction
         
     | 
| 
       19 
     | 
    
         
            -
                };
         
     | 
| 
       20 
     | 
    
         
            -
                return registerModelConfigProvider(() => config);
         
     | 
| 
       21 
     | 
    
         
            -
              }, [registerModelConfigProvider, instruction]);
         
     | 
| 
       22 
     | 
    
         
            -
            };
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
            // src/model-config/useAssistantTool.tsx
         
     | 
| 
       25 
     | 
    
         
            -
            import { useEffect as useEffect2 } from "react";
         
     | 
| 
       26 
     | 
    
         
            -
            var useAssistantTool = (tool) => {
         
     | 
| 
       27 
     | 
    
         
            -
              const { useModelConfig, useToolUIs } = useAssistantContext();
         
     | 
| 
       28 
     | 
    
         
            -
              const registerModelConfigProvider = useModelConfig(
         
     | 
| 
       29 
     | 
    
         
            -
                (s) => s.registerModelConfigProvider
         
     | 
| 
       30 
     | 
    
         
            -
              );
         
     | 
| 
       31 
     | 
    
         
            -
              const setToolUI = useToolUIs((s) => s.setToolUI);
         
     | 
| 
       32 
     | 
    
         
            -
              useEffect2(() => {
         
     | 
| 
       33 
     | 
    
         
            -
                const { toolName, render, ...rest } = tool;
         
     | 
| 
       34 
     | 
    
         
            -
                const config = {
         
     | 
| 
       35 
     | 
    
         
            -
                  tools: {
         
     | 
| 
       36 
     | 
    
         
            -
                    [tool.toolName]: rest
         
     | 
| 
       37 
     | 
    
         
            -
                  }
         
     | 
| 
       38 
     | 
    
         
            -
                };
         
     | 
| 
       39 
     | 
    
         
            -
                const unsub1 = registerModelConfigProvider(() => config);
         
     | 
| 
       40 
     | 
    
         
            -
                const unsub2 = render ? setToolUI(toolName, render) : void 0;
         
     | 
| 
       41 
     | 
    
         
            -
                return () => {
         
     | 
| 
       42 
     | 
    
         
            -
                  unsub1();
         
     | 
| 
       43 
     | 
    
         
            -
                  unsub2?.();
         
     | 
| 
       44 
     | 
    
         
            -
                };
         
     | 
| 
       45 
     | 
    
         
            -
              }, [registerModelConfigProvider, setToolUI, tool]);
         
     | 
| 
       46 
     | 
    
         
            -
            };
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
            // src/model-config/useAssistantToolUI.tsx
         
     | 
| 
       49 
     | 
    
         
            -
            import { useEffect as useEffect3 } from "react";
         
     | 
| 
       50 
     | 
    
         
            -
            var useAssistantToolUI = (tool) => {
         
     | 
| 
       51 
     | 
    
         
            -
              const { useToolUIs } = useAssistantContext();
         
     | 
| 
       52 
     | 
    
         
            -
              const setToolUI = useToolUIs((s) => s.setToolUI);
         
     | 
| 
       53 
     | 
    
         
            -
              useEffect3(() => {
         
     | 
| 
       54 
     | 
    
         
            -
                if (!tool) return;
         
     | 
| 
       55 
     | 
    
         
            -
                const { toolName, render } = tool;
         
     | 
| 
       56 
     | 
    
         
            -
                return setToolUI(toolName, render);
         
     | 
| 
       57 
     | 
    
         
            -
              }, [setToolUI, tool]);
         
     | 
| 
       58 
     | 
    
         
            -
            };
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
            // src/model-config/makeAssistantTool.tsx
         
     | 
| 
       61 
     | 
    
         
            -
            var makeAssistantTool = (tool) => {
         
     | 
| 
       62 
     | 
    
         
            -
              const Tool = () => {
         
     | 
| 
       63 
     | 
    
         
            -
                useAssistantTool(tool);
         
     | 
| 
       64 
     | 
    
         
            -
                return null;
         
     | 
| 
       65 
     | 
    
         
            -
              };
         
     | 
| 
       66 
     | 
    
         
            -
              return Tool;
         
     | 
| 
       67 
     | 
    
         
            -
            };
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
            // src/model-config/makeAssistantToolUI.tsx
         
     | 
| 
       70 
     | 
    
         
            -
            var makeAssistantToolUI = (tool) => {
         
     | 
| 
       71 
     | 
    
         
            -
              const ToolUI = () => {
         
     | 
| 
       72 
     | 
    
         
            -
                useAssistantToolUI(tool);
         
     | 
| 
       73 
     | 
    
         
            -
                return null;
         
     | 
| 
       74 
     | 
    
         
            -
              };
         
     | 
| 
       75 
     | 
    
         
            -
              return ToolUI;
         
     | 
| 
       76 
     | 
    
         
            -
            };
         
     | 
| 
       77 
     | 
    
         
            -
            export {
         
     | 
| 
       78 
     | 
    
         
            -
              makeAssistantTool,
         
     | 
| 
       79 
     | 
    
         
            -
              makeAssistantToolUI,
         
     | 
| 
       80 
     | 
    
         
            -
              useAssistantContext,
         
     | 
| 
       81 
     | 
    
         
            -
              useAssistantInstructions,
         
     | 
| 
       82 
     | 
    
         
            -
              useAssistantTool,
         
     | 
| 
       83 
     | 
    
         
            -
              useAssistantToolUI,
         
     | 
| 
       84 
     | 
    
         
            -
              useComposerContext,
         
     | 
| 
       85 
     | 
    
         
            -
              useContentPartContext,
         
     | 
| 
       86 
     | 
    
         
            -
              useMessageContext,
         
     | 
| 
       87 
     | 
    
         
            -
              useThreadContext
         
     | 
| 
       88 
     | 
    
         
            -
            };
         
     | 
| 
       89 
1 
     | 
    
         
             
            //# sourceMappingURL=experimental.mjs.map
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":[ 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
         
     |