@assistant-ui/react 0.5.27 → 0.5.29
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/{AssistantTypes-BNB-knVq.d.mts → AssistantTypes-Bo5YKjhV.d.mts} +3 -1
- package/dist/{AssistantTypes-BNB-knVq.d.ts → AssistantTypes-Bo5YKjhV.d.ts} +3 -1
- package/dist/{chunk-NSPHKRLF.js → chunk-CTVBRM6C.js} +46 -14
- package/dist/chunk-CTVBRM6C.js.map +1 -0
- package/dist/{chunk-ZWRFAYHH.mjs → chunk-DXLSOE2J.mjs} +45 -13
- package/dist/chunk-DXLSOE2J.mjs.map +1 -0
- package/dist/edge.d.mts +3 -1
- package/dist/edge.d.ts +3 -1
- package/dist/edge.js +73 -44
- package/dist/edge.js.map +1 -1
- package/dist/edge.mjs +73 -44
- package/dist/edge.mjs.map +1 -1
- package/dist/index.d.mts +26 -4
- package/dist/index.d.ts +26 -4
- package/dist/index.js +65 -47
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +61 -43
- package/dist/index.mjs.map +1 -1
- package/dist/styles/index.css.map +1 -1
- package/package.json +7 -7
- package/dist/chunk-NSPHKRLF.js.map +0 -1
- package/dist/chunk-ZWRFAYHH.mjs.map +0 -1
package/dist/index.mjs
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
"use client";
|
2
2
|
import {
|
3
|
+
PipeableTransformStream,
|
3
4
|
mergeModelConfigs,
|
4
5
|
runResultStream,
|
6
|
+
streamPartEncoderStream,
|
5
7
|
toCoreMessage,
|
6
8
|
toCoreMessages,
|
7
9
|
toLanguageModelMessages,
|
8
10
|
toLanguageModelTools,
|
9
11
|
toolResultStream
|
10
|
-
} from "./chunk-
|
12
|
+
} from "./chunk-DXLSOE2J.mjs";
|
11
13
|
import {
|
12
14
|
__export
|
13
15
|
} from "./chunk-BJPOCE4O.mjs";
|
@@ -164,13 +166,11 @@ var getThreadStateFromRuntime = (runtime) => {
|
|
164
166
|
if (lastMessage?.role !== "assistant")
|
165
167
|
return Object.freeze({
|
166
168
|
isDisabled: runtime.isDisabled,
|
167
|
-
isRunning: false
|
168
|
-
unstable_canAppendNew: !runtime.isDisabled
|
169
|
+
isRunning: false
|
169
170
|
});
|
170
171
|
return Object.freeze({
|
171
172
|
isDisabled: runtime.isDisabled,
|
172
|
-
isRunning: lastMessage.status.type === "running"
|
173
|
-
unstable_canAppendNew: !runtime.isDisabled && lastMessage.status.type !== "running" && lastMessage.status.type !== "requires-action"
|
173
|
+
isRunning: lastMessage.status.type === "running"
|
174
174
|
});
|
175
175
|
};
|
176
176
|
var makeThreadStore = (runtimeRef) => {
|
@@ -274,7 +274,7 @@ var ThreadProvider = ({
|
|
274
274
|
const onThreadUpdate = () => {
|
275
275
|
const oldState = context.useThread.getState();
|
276
276
|
const state = getThreadStateFromRuntime(thread);
|
277
|
-
if (oldState.isDisabled !== state.isDisabled || oldState.isRunning !== state.isRunning
|
277
|
+
if (oldState.isDisabled !== state.isDisabled || oldState.isRunning !== state.isRunning) {
|
278
278
|
context.useThread.setState(
|
279
279
|
getThreadStateFromRuntime(thread),
|
280
280
|
true
|
@@ -680,7 +680,7 @@ var useComposerSend = () => {
|
|
680
680
|
const { useComposer } = useComposerContext();
|
681
681
|
const disabled = useCombinedStore(
|
682
682
|
[useThread, useComposer],
|
683
|
-
(t, c) =>
|
683
|
+
(t, c) => t.isRunning || !c.isEditing || c.value.length === 0
|
684
684
|
);
|
685
685
|
const callback = useCallback11(() => {
|
686
686
|
const composerState = useComposer.getState();
|
@@ -1578,8 +1578,8 @@ var ComposerPrimitiveInput = forwardRef12(
|
|
1578
1578
|
const handleKeyPress = (e) => {
|
1579
1579
|
if (isDisabled) return;
|
1580
1580
|
if (e.key === "Enter" && e.shiftKey === false) {
|
1581
|
-
const {
|
1582
|
-
if (
|
1581
|
+
const { isRunning } = useThread.getState();
|
1582
|
+
if (!isRunning) {
|
1583
1583
|
e.preventDefault();
|
1584
1584
|
textareaRef.current?.closest("form")?.requestSubmit();
|
1585
1585
|
}
|
@@ -2524,6 +2524,52 @@ var fromLanguageModelTools = (tools) => {
|
|
2524
2524
|
);
|
2525
2525
|
};
|
2526
2526
|
|
2527
|
+
// src/runtimes/edge/streams/utils/chunkByLineStream.ts
|
2528
|
+
function chunkByLineStream() {
|
2529
|
+
let buffer = "";
|
2530
|
+
return new TransformStream({
|
2531
|
+
transform(chunk, controller) {
|
2532
|
+
buffer += chunk;
|
2533
|
+
const lines = buffer.split("\n");
|
2534
|
+
for (let i = 0; i < lines.length - 1; i++) {
|
2535
|
+
controller.enqueue(lines[i]);
|
2536
|
+
}
|
2537
|
+
buffer = lines[lines.length - 1];
|
2538
|
+
},
|
2539
|
+
flush(controller) {
|
2540
|
+
if (buffer) {
|
2541
|
+
controller.enqueue(buffer);
|
2542
|
+
}
|
2543
|
+
}
|
2544
|
+
});
|
2545
|
+
}
|
2546
|
+
|
2547
|
+
// src/runtimes/edge/streams/utils/streamPartDecoderStream.ts
|
2548
|
+
var decodeStreamPart = (part) => {
|
2549
|
+
const index = part.indexOf(":");
|
2550
|
+
if (index === -1) throw new Error("Invalid stream part");
|
2551
|
+
return {
|
2552
|
+
type: part.slice(0, index),
|
2553
|
+
value: JSON.parse(part.slice(index + 1))
|
2554
|
+
};
|
2555
|
+
};
|
2556
|
+
function streamPartDecoderStream() {
|
2557
|
+
const decodeStream = new TransformStream({
|
2558
|
+
transform(chunk, controller) {
|
2559
|
+
controller.enqueue(decodeStreamPart(chunk));
|
2560
|
+
}
|
2561
|
+
});
|
2562
|
+
return new PipeableTransformStream((readable) => {
|
2563
|
+
return readable.pipeThrough(new TextDecoderStream()).pipeThrough(chunkByLineStream()).pipeThrough(decodeStream);
|
2564
|
+
});
|
2565
|
+
}
|
2566
|
+
|
2567
|
+
// src/runtimes/edge/streams/utils/index.ts
|
2568
|
+
var streamUtils = {
|
2569
|
+
streamPartEncoderStream,
|
2570
|
+
streamPartDecoderStream
|
2571
|
+
};
|
2572
|
+
|
2527
2573
|
// src/runtimes/edge/useEdgeRuntime.ts
|
2528
2574
|
import { useState as useState8 } from "react";
|
2529
2575
|
|
@@ -2532,9 +2578,8 @@ function assistantDecoderStream() {
|
|
2532
2578
|
const toolCallNames = /* @__PURE__ */ new Map();
|
2533
2579
|
let currentToolCall;
|
2534
2580
|
return new TransformStream({
|
2535
|
-
transform(
|
2536
|
-
|
2537
|
-
if (currentToolCall && code !== "2" /* ToolCallArgsTextDelta */ && code !== "E" /* Error */) {
|
2581
|
+
transform({ type, value }, controller) {
|
2582
|
+
if (currentToolCall && type !== "2" /* ToolCallArgsTextDelta */ && type !== "E" /* Error */) {
|
2538
2583
|
controller.enqueue({
|
2539
2584
|
type: "tool-call",
|
2540
2585
|
toolCallType: "function",
|
@@ -2544,7 +2589,7 @@ function assistantDecoderStream() {
|
|
2544
2589
|
});
|
2545
2590
|
currentToolCall = void 0;
|
2546
2591
|
}
|
2547
|
-
switch (
|
2592
|
+
switch (type) {
|
2548
2593
|
case "0" /* TextDelta */: {
|
2549
2594
|
controller.enqueue({
|
2550
2595
|
type: "text-delta",
|
@@ -2595,41 +2640,13 @@ function assistantDecoderStream() {
|
|
2595
2640
|
break;
|
2596
2641
|
}
|
2597
2642
|
default: {
|
2598
|
-
const unhandledType =
|
2643
|
+
const unhandledType = type;
|
2599
2644
|
throw new Error(`Unhandled chunk type: ${unhandledType}`);
|
2600
2645
|
}
|
2601
2646
|
}
|
2602
2647
|
}
|
2603
2648
|
});
|
2604
2649
|
}
|
2605
|
-
var parseStreamPart = (part) => {
|
2606
|
-
const index = part.indexOf(":");
|
2607
|
-
if (index === -1) throw new Error("Invalid stream part");
|
2608
|
-
return [
|
2609
|
-
part.slice(0, index),
|
2610
|
-
JSON.parse(part.slice(index + 1))
|
2611
|
-
];
|
2612
|
-
};
|
2613
|
-
|
2614
|
-
// src/runtimes/edge/streams/chunkByLineStream.ts
|
2615
|
-
function chunkByLineStream() {
|
2616
|
-
let buffer = "";
|
2617
|
-
return new TransformStream({
|
2618
|
-
transform(chunk, controller) {
|
2619
|
-
buffer += chunk;
|
2620
|
-
const lines = buffer.split("\n");
|
2621
|
-
for (let i = 0; i < lines.length - 1; i++) {
|
2622
|
-
controller.enqueue(lines[i]);
|
2623
|
-
}
|
2624
|
-
buffer = lines[lines.length - 1];
|
2625
|
-
},
|
2626
|
-
flush(controller) {
|
2627
|
-
if (buffer) {
|
2628
|
-
controller.enqueue(buffer);
|
2629
|
-
}
|
2630
|
-
}
|
2631
|
-
});
|
2632
|
-
}
|
2633
2650
|
|
2634
2651
|
// src/runtimes/edge/EdgeChatAdapter.ts
|
2635
2652
|
function asAsyncIterable(source) {
|
@@ -2667,7 +2684,7 @@ var EdgeChatAdapter = class {
|
|
2667
2684
|
if (result.status !== 200) {
|
2668
2685
|
throw new Error(`Status ${result.status}: ${await result.text()}`);
|
2669
2686
|
}
|
2670
|
-
const stream = result.body.pipeThrough(
|
2687
|
+
const stream = result.body.pipeThrough(streamPartDecoderStream()).pipeThrough(assistantDecoderStream()).pipeThrough(toolResultStream(config.tools, abortSignal)).pipeThrough(runResultStream());
|
2671
2688
|
let update;
|
2672
2689
|
for await (update of asAsyncIterable(stream)) {
|
2673
2690
|
yield update;
|
@@ -3901,6 +3918,7 @@ export {
|
|
3901
3918
|
getExternalStoreMessage,
|
3902
3919
|
makeAssistantTool,
|
3903
3920
|
makeAssistantToolUI,
|
3921
|
+
streamUtils,
|
3904
3922
|
toCoreMessage,
|
3905
3923
|
toCoreMessages,
|
3906
3924
|
toLanguageModelMessages,
|