@assistant-ui/react 0.5.57 → 0.5.58
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 +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +27 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +48 -27
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.mjs
CHANGED
@@ -2345,19 +2345,40 @@ var AssistantRuntimeProviderImpl = ({ children, runtime }) => {
|
|
2345
2345
|
var AssistantRuntimeProvider = memo(AssistantRuntimeProviderImpl);
|
2346
2346
|
|
2347
2347
|
// src/context/providers/TextContentPartProvider.tsx
|
2348
|
-
import { useState as useState9 } from "react";
|
2348
|
+
import { useEffect as useEffect5, useState as useState9 } from "react";
|
2349
2349
|
import { create as create11 } from "zustand";
|
2350
2350
|
import { jsx as jsx9 } from "react/jsx-runtime";
|
2351
|
-
var
|
2351
|
+
var COMPLETE_STATUS = {
|
2352
|
+
type: "complete"
|
2353
|
+
};
|
2354
|
+
var RUNNING_STATUS = {
|
2355
|
+
type: "running"
|
2356
|
+
};
|
2357
|
+
var TextContentPartProvider = ({ children, text, isRunning }) => {
|
2352
2358
|
const [context] = useState9(() => {
|
2353
2359
|
const useContentPart2 = create11(() => ({
|
2354
|
-
status:
|
2360
|
+
status: isRunning ? RUNNING_STATUS : COMPLETE_STATUS,
|
2355
2361
|
part: { type: "text", text }
|
2356
2362
|
}));
|
2357
2363
|
return {
|
2358
2364
|
useContentPart: useContentPart2
|
2359
2365
|
};
|
2360
2366
|
});
|
2367
|
+
useEffect5(() => {
|
2368
|
+
const state = context.useContentPart.getState();
|
2369
|
+
const textUpdated = state.part.text !== text;
|
2370
|
+
const targetTextPart = textUpdated ? { type: "text", text } : state.part;
|
2371
|
+
const targetStatus = isRunning ? RUNNING_STATUS : COMPLETE_STATUS;
|
2372
|
+
const statusUpdated = state.status !== targetStatus;
|
2373
|
+
if (!textUpdated && !statusUpdated) return;
|
2374
|
+
writableStore(context.useContentPart).setState(
|
2375
|
+
{
|
2376
|
+
part: targetTextPart,
|
2377
|
+
status: targetStatus
|
2378
|
+
},
|
2379
|
+
true
|
2380
|
+
);
|
2381
|
+
}, [context, isRunning, text]);
|
2361
2382
|
return /* @__PURE__ */ jsx9(ContentPartContext.Provider, { value: context, children });
|
2362
2383
|
};
|
2363
2384
|
|
@@ -2452,11 +2473,11 @@ var useSwitchToNewThread = () => {
|
|
2452
2473
|
};
|
2453
2474
|
|
2454
2475
|
// src/model-config/useAssistantTool.tsx
|
2455
|
-
import { useEffect as
|
2476
|
+
import { useEffect as useEffect6 } from "react";
|
2456
2477
|
var useAssistantTool = (tool) => {
|
2457
2478
|
const assistantActionsStore = useAssistantActionsStore();
|
2458
2479
|
const toolUIsStore = useToolUIsStore();
|
2459
|
-
|
2480
|
+
useEffect6(() => {
|
2460
2481
|
const { toolName, render, ...rest } = tool;
|
2461
2482
|
const config = {
|
2462
2483
|
tools: {
|
@@ -2485,10 +2506,10 @@ var makeAssistantTool = (tool) => {
|
|
2485
2506
|
};
|
2486
2507
|
|
2487
2508
|
// src/model-config/useAssistantToolUI.tsx
|
2488
|
-
import { useEffect as
|
2509
|
+
import { useEffect as useEffect7 } from "react";
|
2489
2510
|
var useAssistantToolUI = (tool) => {
|
2490
2511
|
const toolUIsStore = useToolUIsStore();
|
2491
|
-
|
2512
|
+
useEffect7(() => {
|
2492
2513
|
if (!tool) return;
|
2493
2514
|
const { toolName, render } = tool;
|
2494
2515
|
return toolUIsStore.getState().setToolUI(toolName, render);
|
@@ -2506,10 +2527,10 @@ var makeAssistantToolUI = (tool) => {
|
|
2506
2527
|
};
|
2507
2528
|
|
2508
2529
|
// src/model-config/useAssistantInstructions.tsx
|
2509
|
-
import { useEffect as
|
2530
|
+
import { useEffect as useEffect8 } from "react";
|
2510
2531
|
var useAssistantInstructions = (instruction) => {
|
2511
2532
|
const actionsStore = useAssistantActionsStore();
|
2512
|
-
|
2533
|
+
useEffect8(() => {
|
2513
2534
|
const config = {
|
2514
2535
|
system: instruction
|
2515
2536
|
};
|
@@ -3048,11 +3069,11 @@ import { composeEventHandlers as composeEventHandlers3 } from "@radix-ui/primiti
|
|
3048
3069
|
|
3049
3070
|
// src/utils/hooks/useOnComposerFocus.tsx
|
3050
3071
|
import { useCallbackRef as useCallbackRef2 } from "@radix-ui/react-use-callback-ref";
|
3051
|
-
import { useEffect as
|
3072
|
+
import { useEffect as useEffect9 } from "react";
|
3052
3073
|
var useOnComposerFocus = (callback) => {
|
3053
3074
|
const callbackRef = useCallbackRef2(callback);
|
3054
3075
|
const threadComposerStore = useThreadComposerStore();
|
3055
|
-
|
3076
|
+
useEffect9(() => {
|
3056
3077
|
return threadComposerStore.getState().onFocus(() => {
|
3057
3078
|
callbackRef();
|
3058
3079
|
});
|
@@ -3281,24 +3302,24 @@ MessagePrimitiveIf.displayName = "MessagePrimitive.If";
|
|
3281
3302
|
import { memo as memo2 } from "react";
|
3282
3303
|
|
3283
3304
|
// src/context/providers/ContentPartProvider.tsx
|
3284
|
-
import { useEffect as
|
3305
|
+
import { useEffect as useEffect10, useState as useState11 } from "react";
|
3285
3306
|
import { create as create12 } from "zustand";
|
3286
3307
|
import { jsx as jsx20 } from "react/jsx-runtime";
|
3287
|
-
var
|
3308
|
+
var COMPLETE_STATUS2 = {
|
3288
3309
|
type: "complete"
|
3289
3310
|
};
|
3290
3311
|
var toContentPartStatus = (message, partIndex, part) => {
|
3291
|
-
if (message.role !== "assistant") return
|
3312
|
+
if (message.role !== "assistant") return COMPLETE_STATUS2;
|
3292
3313
|
const isLastPart = partIndex === Math.max(0, message.content.length - 1);
|
3293
3314
|
if (part.type !== "tool-call") {
|
3294
3315
|
if ("reason" in message.status && message.status.reason === "tool-calls" && isLastPart)
|
3295
3316
|
throw new Error(
|
3296
3317
|
"Encountered unexpected requires-action status. This is likely an internal bug in assistant-ui."
|
3297
3318
|
);
|
3298
|
-
return isLastPart ? message.status :
|
3319
|
+
return isLastPart ? message.status : COMPLETE_STATUS2;
|
3299
3320
|
}
|
3300
3321
|
if (!!part.result) {
|
3301
|
-
return
|
3322
|
+
return COMPLETE_STATUS2;
|
3302
3323
|
}
|
3303
3324
|
return message.status;
|
3304
3325
|
};
|
@@ -3328,7 +3349,7 @@ var useContentPartContext2 = (partIndex) => {
|
|
3328
3349
|
);
|
3329
3350
|
return { useContentPart: useContentPart2 };
|
3330
3351
|
});
|
3331
|
-
|
3352
|
+
useEffect10(() => {
|
3332
3353
|
const syncContentPart = (message) => {
|
3333
3354
|
const newState = getContentPartState(
|
3334
3355
|
message,
|
@@ -3535,7 +3556,7 @@ var {
|
|
3535
3556
|
} = createContextStoreHook(useMessageAttachmentContext, "useAttachment");
|
3536
3557
|
|
3537
3558
|
// src/context/providers/MessageAttachmentProvider.tsx
|
3538
|
-
import { useEffect as
|
3559
|
+
import { useEffect as useEffect11, useState as useState12 } from "react";
|
3539
3560
|
import { create as create13 } from "zustand";
|
3540
3561
|
import { jsx as jsx24 } from "react/jsx-runtime";
|
3541
3562
|
var getAttachment = ({ message }, useAttachment2, partIndex) => {
|
@@ -3557,7 +3578,7 @@ var useMessageAttachmentContext2 = (partIndex) => {
|
|
3557
3578
|
return { type: "message", useAttachment: useAttachment2 };
|
3558
3579
|
}
|
3559
3580
|
);
|
3560
|
-
|
3581
|
+
useEffect11(() => {
|
3561
3582
|
const syncAttachment = (messageState) => {
|
3562
3583
|
const newState = getAttachment(
|
3563
3584
|
messageState,
|
@@ -3677,7 +3698,7 @@ import { Slot } from "@radix-ui/react-slot";
|
|
3677
3698
|
import {
|
3678
3699
|
forwardRef as forwardRef16,
|
3679
3700
|
useCallback as useCallback17,
|
3680
|
-
useEffect as
|
3701
|
+
useEffect as useEffect12,
|
3681
3702
|
useRef as useRef4
|
3682
3703
|
} from "react";
|
3683
3704
|
import TextareaAutosize from "react-textarea-autosize";
|
@@ -3730,7 +3751,7 @@ var ComposerPrimitiveInput = forwardRef16(
|
|
3730
3751
|
textareaRef.current.value.length
|
3731
3752
|
);
|
3732
3753
|
}, [autoFocusEnabled]);
|
3733
|
-
|
3754
|
+
useEffect12(() => focus(), [focus]);
|
3734
3755
|
useOnComposerFocus(() => {
|
3735
3756
|
if (composerStore.getState().type === "thread") {
|
3736
3757
|
focus();
|
@@ -3778,7 +3799,7 @@ var ComposerPrimitiveAddAttachment = createActionButton(
|
|
3778
3799
|
import { memo as memo4 } from "react";
|
3779
3800
|
|
3780
3801
|
// src/context/providers/ComposerAttachmentProvider.tsx
|
3781
|
-
import { useEffect as
|
3802
|
+
import { useEffect as useEffect13, useState as useState13 } from "react";
|
3782
3803
|
import { create as create14 } from "zustand";
|
3783
3804
|
import { jsx as jsx29 } from "react/jsx-runtime";
|
3784
3805
|
var getAttachment2 = ({ attachments }, useAttachment2, partIndex) => {
|
@@ -3798,7 +3819,7 @@ var useComposerAttachmentContext2 = (partIndex) => {
|
|
3798
3819
|
return { type: "composer", useAttachment: useAttachment2 };
|
3799
3820
|
}
|
3800
3821
|
);
|
3801
|
-
|
3822
|
+
useEffect13(() => {
|
3802
3823
|
const syncAttachment = (composer) => {
|
3803
3824
|
const newState = getAttachment2(
|
3804
3825
|
composer,
|
@@ -3971,11 +3992,11 @@ var useOnResizeContent = (callback) => {
|
|
3971
3992
|
|
3972
3993
|
// src/utils/hooks/useOnScrollToBottom.tsx
|
3973
3994
|
import { useCallbackRef as useCallbackRef4 } from "@radix-ui/react-use-callback-ref";
|
3974
|
-
import { useEffect as
|
3995
|
+
import { useEffect as useEffect14 } from "react";
|
3975
3996
|
var useOnScrollToBottom = (callback) => {
|
3976
3997
|
const callbackRef = useCallbackRef4(callback);
|
3977
3998
|
const threadViewportStore = useThreadViewportStore();
|
3978
|
-
|
3999
|
+
useEffect14(() => {
|
3979
4000
|
return threadViewportStore.getState().onScrollToBottom(() => {
|
3980
4001
|
callbackRef();
|
3981
4002
|
});
|
@@ -4048,7 +4069,7 @@ ThreadPrimitiveViewport.displayName = "ThreadPrimitive.Viewport";
|
|
4048
4069
|
import { memo as memo5 } from "react";
|
4049
4070
|
|
4050
4071
|
// src/context/providers/MessageProvider.tsx
|
4051
|
-
import { useEffect as
|
4072
|
+
import { useEffect as useEffect15, useState as useState14 } from "react";
|
4052
4073
|
import { create as create17 } from "zustand";
|
4053
4074
|
|
4054
4075
|
// src/context/stores/EditComposer.ts
|
@@ -4174,7 +4195,7 @@ var useMessageContext2 = (messageIndex) => {
|
|
4174
4195
|
});
|
4175
4196
|
return { useMessage: useMessage2, useMessageUtils: useMessageUtils2, useEditComposer: useEditComposer2 };
|
4176
4197
|
});
|
4177
|
-
|
4198
|
+
useEffect15(() => {
|
4178
4199
|
const syncMessage = (thread) => {
|
4179
4200
|
const newState = getMessageState(
|
4180
4201
|
thread,
|