@assistant-ui/ai-sdk 0.0.7 → 0.0.8
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/README.md +1 -1
- package/dist/adapters/aiSDKFormatAdapter.d.ts +2 -2
- package/dist/adapters/aiSDKFormatAdapter.d.ts.map +1 -0
- package/dist/adapters/vercelAttachmentAdapter.d.ts +1 -3
- package/dist/adapters/vercelAttachmentAdapter.d.ts.map +1 -1
- package/dist/adapters/vercelAttachmentAdapter.js +3 -3
- package/dist/adapters/vercelAttachmentAdapter.js.map +1 -1
- package/dist/aiSDKExtras.d.ts +4 -6
- package/dist/aiSDKExtras.d.ts.map +1 -1
- package/dist/converters/convertMessage.d.ts +32 -24
- package/dist/converters/convertMessage.d.ts.map +1 -1
- package/dist/converters/convertMessage.js +43 -9
- package/dist/converters/convertMessage.js.map +1 -1
- package/dist/converters/modelContentEnvelope.d.ts +6 -7
- package/dist/converters/modelContentEnvelope.d.ts.map +1 -1
- package/dist/converters/toCreateMessage.d.ts +2 -4
- package/dist/converters/toCreateMessage.d.ts.map +1 -1
- package/dist/converters/toolOutputConversion.d.ts +20 -22
- package/dist/converters/toolOutputConversion.d.ts.map +1 -1
- package/dist/hooks.d.ts +2 -4
- package/dist/hooks.d.ts.map +1 -1
- package/dist/index.d.ts +17 -14
- package/dist/index.d.ts.map +1 -0
- package/dist/index.native.d.ts +15 -12
- package/dist/index.native.d.ts.map +1 -0
- package/dist/model-context/injectInteractableContext.d.ts +2 -4
- package/dist/model-context/injectInteractableContext.d.ts.map +1 -1
- package/dist/model-context/injectQuoteContext.d.ts +1 -3
- package/dist/model-context/injectQuoteContext.d.ts.map +1 -1
- package/dist/runtime/AISDKChat.d.ts +2 -4
- package/dist/runtime/AISDKChat.d.ts.map +1 -1
- package/dist/runtime/AISDKChat.js +1 -1
- package/dist/runtime/AISDKThreads.d.ts +29 -31
- package/dist/runtime/AISDKThreads.d.ts.map +1 -1
- package/dist/runtime/AISDKThreads.js +22 -23
- package/dist/runtime/AISDKThreads.js.map +1 -1
- package/dist/runtime/sdkIdentity.d.ts +1 -3
- package/dist/runtime/sdkIdentity.d.ts.map +1 -1
- package/dist/runtime/sdkIdentity.js +1 -1
- package/dist/runtime/useAISDKRuntime.d.ts +69 -70
- package/dist/runtime/useAISDKRuntime.d.ts.map +1 -1
- package/dist/runtime/useAISDKRuntime.js +112 -56
- package/dist/runtime/useAISDKRuntime.js.map +1 -1
- package/dist/runtime/useChatRuntime.d.ts +6 -8
- package/dist/runtime/useChatRuntime.d.ts.map +1 -1
- package/dist/runtime/useChatRuntime.js +14 -10
- package/dist/runtime/useChatRuntime.js.map +1 -1
- package/dist/runtime/useChatThread.d.ts +94 -89
- package/dist/runtime/useChatThread.d.ts.map +1 -1
- package/dist/runtime/useChatThread.js +4 -5
- package/dist/runtime/useChatThread.js.map +1 -1
- package/dist/runtime/useExternalHistory.d.ts +7 -7
- package/dist/runtime/useExternalHistory.d.ts.map +1 -1
- package/dist/runtime/useExternalHistory.js +229 -59
- package/dist/runtime/useExternalHistory.js.map +1 -1
- package/dist/runtime/useResourceCleanup.d.ts +1 -3
- package/dist/runtime/useResourceCleanup.d.ts.map +1 -1
- package/dist/runtime/useResourceCleanup.js +38 -14
- package/dist/runtime/useResourceCleanup.js.map +1 -1
- package/dist/runtime/useStreamingTiming.d.ts +3 -5
- package/dist/runtime/useStreamingTiming.d.ts.map +1 -1
- package/dist/runtime/useStreamingTiming.js +1 -1
- package/dist/tools/frontendTools.d.ts +21 -23
- package/dist/tools/frontendTools.d.ts.map +1 -1
- package/dist/tools/generativeTools.d.ts +24 -26
- package/dist/tools/generativeTools.d.ts.map +1 -1
- package/dist/tools/mcp-stdio.node.d.ts +2 -2
- package/dist/tools/mcp-stdio.node.d.ts.map +1 -0
- package/dist/tools/mcp-stdio.unsupported.d.ts +2 -4
- package/dist/tools/mcp-stdio.unsupported.d.ts.map +1 -1
- package/dist/transport/AssistantChatTransport.d.ts +14 -16
- package/dist/transport/AssistantChatTransport.d.ts.map +1 -1
- package/dist/transport/resumable.d.ts +25 -27
- package/dist/transport/resumable.d.ts.map +1 -1
- package/dist/usage.d.ts +8 -10
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js.map +1 -1
- package/dist/utils/getVercelAIMessages.d.ts +2 -4
- package/dist/utils/getVercelAIMessages.d.ts.map +1 -1
- package/dist/utils/sliceMessagesUntil.d.ts +1 -3
- package/dist/utils/sliceMessagesUntil.d.ts.map +1 -1
- package/package.json +9 -8
- package/src/adapters/vercelAttachmentAdapter.test.ts +23 -0
- package/src/adapters/vercelAttachmentAdapter.ts +2 -2
- package/src/converters/convertMessage.test.ts +478 -3
- package/src/converters/convertMessage.ts +100 -14
- package/src/index.native.ts +1 -1
- package/src/index.ts +1 -1
- package/src/runtime/AISDKThreads.cloud.test.ts +60 -2
- package/src/runtime/AISDKThreads.test.ts +79 -46
- package/src/runtime/AISDKThreads.ts +1 -1
- package/src/runtime/useAISDKRuntime.approval.integration.test.tsx +51 -0
- package/src/runtime/useAISDKRuntime.approval.test.tsx +225 -9
- package/src/runtime/useAISDKRuntime.test.ts +275 -5
- package/src/runtime/useAISDKRuntime.ts +141 -37
- package/src/runtime/useAISDKRuntime.voice.test.tsx +50 -1
- package/src/runtime/useChatRuntime.integration.test.tsx +56 -0
- package/src/runtime/useChatRuntime.test.ts +5 -1
- package/src/runtime/useChatRuntime.ts +6 -2
- package/src/runtime/useChatThread.transport.test.tsx +149 -0
- package/src/runtime/useChatThread.ts +33 -5
- package/src/runtime/useExternalHistory.test.ts +943 -3
- package/src/runtime/useExternalHistory.ts +366 -14
- package/src/runtime/useResourceCleanup.ts +41 -15
- package/src/usage.ts +1 -1
|
@@ -57,6 +57,12 @@ export type ChatThreadEnvironment<UI_MESSAGE extends UIMessage = UIMessage> = {
|
|
|
57
57
|
isMainThread: boolean;
|
|
58
58
|
getThreadListItem: () => InitializableThreadListItem | undefined;
|
|
59
59
|
stopOnClientDestroy?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Aborts when the React component hosting the runtime is deleted. A nested
|
|
62
|
+
* runtime resolves the destroy signal of the provider above it, which
|
|
63
|
+
* outlives the nested component, so this stops the chat on its own unmount.
|
|
64
|
+
*/
|
|
65
|
+
hostDestroySignal?: AbortSignal | undefined;
|
|
60
66
|
/**
|
|
61
67
|
* An externally owned chat instance. State lives on the instance, so it
|
|
62
68
|
* survives the hosting resource unmounting; construction options are read
|
|
@@ -218,12 +224,25 @@ export const useChatThread = <UI_MESSAGE extends UIMessage = UIMessage>(
|
|
|
218
224
|
isMainThread,
|
|
219
225
|
getThreadListItem,
|
|
220
226
|
stopOnClientDestroy = true,
|
|
227
|
+
hostDestroySignal,
|
|
221
228
|
chat: externalChat,
|
|
222
229
|
messageRepositoryInstance,
|
|
223
230
|
} = env;
|
|
224
231
|
|
|
225
|
-
|
|
226
|
-
|
|
232
|
+
// Wiring below is per thread and mutated on the instance, so a transport
|
|
233
|
+
// shared across simultaneously mounted threads is last-writer-wins. A
|
|
234
|
+
// caller-owned chat is already bound to its own clone, so cloning again
|
|
235
|
+
// here would wire a copy the chat never sends through.
|
|
236
|
+
const sourceTransport = useMemo(
|
|
237
|
+
() =>
|
|
238
|
+
transportOptions === undefined
|
|
239
|
+
? new AssistantChatTransport()
|
|
240
|
+
: externalChat === undefined &&
|
|
241
|
+
transportOptions instanceof AssistantChatTransport
|
|
242
|
+
? transportOptions.__internal_clone()
|
|
243
|
+
: transportOptions,
|
|
244
|
+
[transportOptions, externalChat],
|
|
245
|
+
);
|
|
227
246
|
const transport = useDynamicChatTransport(sourceTransport);
|
|
228
247
|
|
|
229
248
|
const latestChatOptionsRef = useRef(chatOptions);
|
|
@@ -243,9 +262,13 @@ export const useChatThread = <UI_MESSAGE extends UIMessage = UIMessage>(
|
|
|
243
262
|
...(throttle !== undefined && { throttle }),
|
|
244
263
|
});
|
|
245
264
|
|
|
246
|
-
useResourceCleanup(
|
|
247
|
-
|
|
248
|
-
|
|
265
|
+
useResourceCleanup(
|
|
266
|
+
stopOnClientDestroy,
|
|
267
|
+
() => {
|
|
268
|
+
void chat.stop().catch(() => {});
|
|
269
|
+
},
|
|
270
|
+
hostDestroySignal,
|
|
271
|
+
);
|
|
249
272
|
|
|
250
273
|
const runtime = useAISDKRuntime(chat, {
|
|
251
274
|
adapters,
|
|
@@ -262,6 +285,11 @@ export const useChatThread = <UI_MESSAGE extends UIMessage = UIMessage>(
|
|
|
262
285
|
...(unstable_onBranchChange && { unstable_onBranchChange }),
|
|
263
286
|
});
|
|
264
287
|
|
|
288
|
+
// Wire in render, not an effect: a send from a descendant's mount effect
|
|
289
|
+
// runs before this hook's effect would (effects fire child-first), and must
|
|
290
|
+
// see a wired transport. The clone is per thread, so a discarded render's
|
|
291
|
+
// wiring is discarded with it and the committed render re-wires the same
|
|
292
|
+
// instance.
|
|
265
293
|
if (sourceTransport instanceof AssistantChatTransport) {
|
|
266
294
|
sourceTransport.setRuntime(runtime);
|
|
267
295
|
sourceTransport.__internal_setGetThreadListItem(getThreadListItem);
|