@assistant-ui/ai-sdk 0.0.6 → 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 +2 -5
- 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 +6 -9
- package/dist/aiSDKExtras.d.ts.map +1 -1
- package/dist/converters/convertMessage.d.ts +34 -25
- package/dist/converters/convertMessage.d.ts.map +1 -1
- package/dist/converters/convertMessage.js +78 -8
- package/dist/converters/convertMessage.js.map +1 -1
- package/dist/converters/modelContentEnvelope.d.ts +10 -12
- package/dist/converters/modelContentEnvelope.d.ts.map +1 -1
- package/dist/converters/toCreateMessage.d.ts +3 -6
- package/dist/converters/toCreateMessage.d.ts.map +1 -1
- package/dist/converters/toolOutputConversion.d.ts +22 -25
- package/dist/converters/toolOutputConversion.d.ts.map +1 -1
- package/dist/hooks.d.ts +4 -7
- 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 +3 -6
- package/dist/model-context/injectInteractableContext.d.ts.map +1 -1
- package/dist/model-context/injectQuoteContext.d.ts +2 -5
- package/dist/model-context/injectQuoteContext.d.ts.map +1 -1
- package/dist/runtime/AISDKChat.d.ts +4 -7
- package/dist/runtime/AISDKChat.d.ts.map +1 -1
- package/dist/runtime/AISDKChat.js +1 -1
- package/dist/runtime/AISDKThreads.d.ts +29 -32
- package/dist/runtime/AISDKThreads.d.ts.map +1 -1
- package/dist/runtime/AISDKThreads.js +26 -33
- package/dist/runtime/AISDKThreads.js.map +1 -1
- package/dist/runtime/sdkIdentity.d.ts +2 -5
- package/dist/runtime/sdkIdentity.d.ts.map +1 -1
- package/dist/runtime/sdkIdentity.js +1 -1
- package/dist/runtime/useAISDKRuntime.d.ts +72 -61
- package/dist/runtime/useAISDKRuntime.d.ts.map +1 -1
- package/dist/runtime/useAISDKRuntime.js +170 -56
- package/dist/runtime/useAISDKRuntime.js.map +1 -1
- package/dist/runtime/useChatRuntime.d.ts +8 -11
- 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 +100 -81
- package/dist/runtime/useChatThread.d.ts.map +1 -1
- package/dist/runtime/useChatThread.js +33 -13
- package/dist/runtime/useChatThread.js.map +1 -1
- package/dist/runtime/useExternalHistory.d.ts +8 -9
- package/dist/runtime/useExternalHistory.d.ts.map +1 -1
- package/dist/runtime/useExternalHistory.js +236 -58
- package/dist/runtime/useExternalHistory.js.map +1 -1
- package/dist/runtime/useResourceCleanup.d.ts +1 -4
- 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 +5 -8
- package/dist/runtime/useStreamingTiming.d.ts.map +1 -1
- package/dist/runtime/useStreamingTiming.js +1 -1
- package/dist/tools/frontendTools.d.ts +24 -27
- package/dist/tools/frontendTools.d.ts.map +1 -1
- package/dist/tools/generativeTools.d.ts +29 -32
- 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 -5
- package/dist/tools/mcp-stdio.unsupported.d.ts.map +1 -1
- package/dist/transport/AssistantChatTransport.d.ts +17 -20
- package/dist/transport/AssistantChatTransport.d.ts.map +1 -1
- package/dist/transport/resumable.d.ts +29 -32
- package/dist/transport/resumable.d.ts.map +1 -1
- package/dist/usage.d.ts +12 -15
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js.map +1 -1
- package/dist/utils/getVercelAIMessages.d.ts +3 -6
- package/dist/utils/getVercelAIMessages.d.ts.map +1 -1
- package/dist/utils/sliceMessagesUntil.d.ts +2 -5
- package/dist/utils/sliceMessagesUntil.d.ts.map +1 -1
- package/package.json +16 -14
- package/src/adapters/vercelAttachmentAdapter.test.ts +23 -0
- package/src/adapters/vercelAttachmentAdapter.ts +2 -2
- package/src/converters/convertMessage.test.ts +616 -3
- package/src/converters/convertMessage.ts +187 -12
- package/src/index.native.ts +1 -1
- package/src/index.ts +1 -1
- package/src/runtime/AISDKChat.test.ts +4 -5
- package/src/runtime/AISDKThreads.cloud.test.ts +60 -2
- package/src/runtime/AISDKThreads.test.ts +88 -51
- package/src/runtime/AISDKThreads.ts +4 -13
- package/src/runtime/useAISDKRuntime.approval.integration.test.tsx +338 -0
- package/src/runtime/useAISDKRuntime.approval.test.tsx +476 -4
- package/src/runtime/useAISDKRuntime.test.ts +282 -8
- package/src/runtime/useAISDKRuntime.ts +274 -46
- package/src/runtime/useAISDKRuntime.voice.test.tsx +319 -0
- package/src/runtime/useChatRuntime.integration.test.tsx +56 -0
- package/src/runtime/useChatRuntime.test.ts +77 -5
- package/src/runtime/useChatRuntime.ts +6 -2
- package/src/runtime/useChatThread.transport.test.tsx +149 -0
- package/src/runtime/useChatThread.ts +77 -10
- package/src/runtime/useExternalHistory.test.ts +989 -3
- package/src/runtime/useExternalHistory.ts +390 -24
- package/src/runtime/useResourceCleanup.ts +41 -15
- package/src/tools/generativeTools.test.ts +7 -1
- package/src/usage.ts +1 -1
package/dist/hooks.d.ts
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
//#region src/hooks.d.ts
|
|
1
|
+
import type { UseChatHelpers } from "@ai-sdk/react";
|
|
2
|
+
import type { UIMessage } from "ai";
|
|
4
3
|
/**
|
|
5
4
|
* Read the last AI SDK chat error object from the runtime extras.
|
|
6
5
|
* `undefined` when there is no error or the current thread is not backed by
|
|
7
6
|
* the AI SDK runtime.
|
|
8
7
|
*/
|
|
9
|
-
declare const useAISDKError: () => Error | undefined;
|
|
8
|
+
export declare const useAISDKError: () => Error | undefined;
|
|
10
9
|
/**
|
|
11
10
|
* The underlying `useChat` helpers object, for advanced views — reach
|
|
12
11
|
* `resumeStream`, `clearError`, or the raw `sendMessage` without forking the
|
|
13
12
|
* runtime hook. `undefined` when the current thread is not backed by the AI
|
|
14
13
|
* SDK runtime.
|
|
15
14
|
*/
|
|
16
|
-
declare const useAISDKChat: <UI_MESSAGE extends UIMessage = UIMessage>() => UseChatHelpers<UI_MESSAGE> | undefined;
|
|
17
|
-
//#endregion
|
|
18
|
-
export { useAISDKChat, useAISDKError };
|
|
15
|
+
export declare const useAISDKChat: <UI_MESSAGE extends UIMessage = UIMessage>() => UseChatHelpers<UI_MESSAGE> | undefined;
|
|
19
16
|
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAGpC;;;;GAIG;AACH,eAAO,MAAM,aAAa,yBAAmD,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,SAAS,SAAS,GAAG,SAAS,OAE/D,cAAc,CAAC,UAAU,CAAC,GAC1B,SAAS,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
/// <reference types="@assistant-ui/core/react" />
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export {
|
|
1
|
+
/// <reference types="@assistant-ui/core/react" preserve="true" />
|
|
2
|
+
export { useAISDKRuntime } from "./runtime/useAISDKRuntime.js";
|
|
3
|
+
export { useChatRuntime } from "./runtime/useChatRuntime.js";
|
|
4
|
+
export type { UseChatRuntimeOptions } from "./runtime/useChatRuntime.js";
|
|
5
|
+
export { AssistantChatTransport } from "./transport/AssistantChatTransport.js";
|
|
6
|
+
export { RESUMABLE_STREAM_ID_HEADER, createResumableSessionStorage, } from "./transport/resumable.js";
|
|
7
|
+
export type { AssistantChatResumableOptions, ResumableClientStorage, } from "./transport/resumable.js";
|
|
8
|
+
export { frontendTools, type FrontendTools } from "./tools/frontendTools.js";
|
|
9
|
+
export { injectQuoteContext } from "./model-context/injectQuoteContext.js";
|
|
10
|
+
export { unstable_injectInteractableContext } from "./model-context/injectInteractableContext.js";
|
|
11
|
+
export type { ThreadTokenUsage, TokenUsageExtractableMessage } from "./usage.js";
|
|
12
|
+
export { getThreadMessageTokenUsage, useThreadTokenUsage } from "./usage.js";
|
|
13
|
+
export { useAISDKChat, useAISDKError } from "./hooks.js";
|
|
14
|
+
export { AISDKToolkit, generativeTools, type AISDKToolkitOptions, type AISDKToolkitToolsOptions, type GenerativeToolsOptions, } from "./tools/generativeTools.js";
|
|
15
|
+
export { AISDKChat, type AISDKChatOptions } from "./runtime/AISDKChat.js";
|
|
16
|
+
export { AISDKThreads, type AISDKThreadsOptions } from "./runtime/AISDKThreads.js";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,qCAAkC;AAC5D,OAAO,EAAE,cAAc,EAAE,oCAAiC;AAC1D,YAAY,EAAE,qBAAqB,EAAE,oCAAiC;AACtE,OAAO,EAAE,sBAAsB,EAAE,8CAA2C;AAC5E,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,iCAA8B;AAC/B,YAAY,EACV,6BAA6B,EAC7B,sBAAsB,GACvB,iCAA8B;AAC/B,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,iCAA8B;AAC1E,OAAO,EAAE,kBAAkB,EAAE,8CAA2C;AACxE,OAAO,EAAE,kCAAkC,EAAE,qDAAkD;AAC/F,YAAY,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,mBAAgB;AAC9E,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,mBAAgB;AAC1E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAgB;AACtD,OAAO,EACL,YAAY,EACZ,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,mCAAgC;AACjC,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,+BAA4B;AACvE,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,kCAA+B"}
|
package/dist/index.native.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
/// <reference types="@assistant-ui/core/react" />
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export {
|
|
1
|
+
/// <reference types="@assistant-ui/core/react" preserve="true" />
|
|
2
|
+
export { useAISDKRuntime } from "./runtime/useAISDKRuntime.js";
|
|
3
|
+
export { useChatRuntime } from "./runtime/useChatRuntime.js";
|
|
4
|
+
export type { UseChatRuntimeOptions } from "./runtime/useChatRuntime.js";
|
|
5
|
+
export { AssistantChatTransport } from "./transport/AssistantChatTransport.js";
|
|
6
|
+
export { RESUMABLE_STREAM_ID_HEADER, createResumableSessionStorage, } from "./transport/resumable.js";
|
|
7
|
+
export type { AssistantChatResumableOptions, ResumableClientStorage, } from "./transport/resumable.js";
|
|
8
|
+
export { frontendTools, type FrontendTools } from "./tools/frontendTools.js";
|
|
9
|
+
export { injectQuoteContext } from "./model-context/injectQuoteContext.js";
|
|
10
|
+
export { unstable_injectInteractableContext } from "./model-context/injectInteractableContext.js";
|
|
11
|
+
export type { ThreadTokenUsage, TokenUsageExtractableMessage } from "./usage.js";
|
|
12
|
+
export { getThreadMessageTokenUsage, useThreadTokenUsage } from "./usage.js";
|
|
13
|
+
export { useAISDKChat, useAISDKError } from "./hooks.js";
|
|
14
|
+
export { AISDKChat, type AISDKChatOptions } from "./runtime/AISDKChat.js";
|
|
15
|
+
//# sourceMappingURL=index.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../src/index.native.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,qCAAkC;AAC5D,OAAO,EAAE,cAAc,EAAE,oCAAiC;AAC1D,YAAY,EAAE,qBAAqB,EAAE,oCAAiC;AACtE,OAAO,EAAE,sBAAsB,EAAE,8CAA2C;AAC5E,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,iCAA8B;AAC/B,YAAY,EACV,6BAA6B,EAC7B,sBAAsB,GACvB,iCAA8B;AAC/B,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,iCAA8B;AAC1E,OAAO,EAAE,kBAAkB,EAAE,8CAA2C;AACxE,OAAO,EAAE,kCAAkC,EAAE,qDAAkD;AAC/F,YAAY,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,mBAAgB;AAC9E,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,mBAAgB;AAC1E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAgB;AACtD,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,+BAA4B"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { UIMessage } from "ai";
|
|
2
|
-
import { Unstable_InteractableSnapshotEntry } from "@assistant-ui/core";
|
|
3
|
-
//#region src/model-context/injectInteractableContext.d.ts
|
|
1
|
+
import type { UIMessage } from "ai";
|
|
2
|
+
import { type Unstable_InteractableSnapshotEntry } from "@assistant-ui/core";
|
|
4
3
|
/**
|
|
5
4
|
* Injects interactable state snapshots into messages as model-visible text.
|
|
6
5
|
*
|
|
@@ -31,7 +30,5 @@ import { Unstable_InteractableSnapshotEntry } from "@assistant-ui/core";
|
|
|
31
30
|
* }
|
|
32
31
|
* ```
|
|
33
32
|
*/
|
|
34
|
-
declare function unstable_injectInteractableContext(messages: UIMessage[], format?: (item: Unstable_InteractableSnapshotEntry) => string): UIMessage[];
|
|
35
|
-
//#endregion
|
|
36
|
-
export { unstable_injectInteractableContext };
|
|
33
|
+
export declare function unstable_injectInteractableContext(messages: UIMessage[], format?: (item: Unstable_InteractableSnapshotEntry) => string): UIMessage[];
|
|
37
34
|
//# sourceMappingURL=injectInteractableContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectInteractableContext.d.ts","
|
|
1
|
+
{"version":3,"file":"injectInteractableContext.d.ts","sourceRoot":"","sources":["../../src/model-context/injectInteractableContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAGL,KAAK,kCAAkC,EACxC,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,SAAS,EAAE,EACrB,MAAM,GAAE,CACN,IAAI,EAAE,kCAAkC,KACrC,MAA4C,GAChD,SAAS,EAAE,CAkBb"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { UIMessage } from "ai";
|
|
2
|
-
//#region src/model-context/injectQuoteContext.d.ts
|
|
1
|
+
import type { UIMessage } from "ai";
|
|
3
2
|
/**
|
|
4
3
|
* Injects quote context into messages as markdown blockquotes.
|
|
5
4
|
*
|
|
@@ -21,7 +20,5 @@ import { UIMessage } from "ai";
|
|
|
21
20
|
* }
|
|
22
21
|
* ```
|
|
23
22
|
*/
|
|
24
|
-
declare function injectQuoteContext(messages: UIMessage[]): UIMessage[];
|
|
25
|
-
//#endregion
|
|
26
|
-
export { injectQuoteContext };
|
|
23
|
+
export declare function injectQuoteContext(messages: UIMessage[]): UIMessage[];
|
|
27
24
|
//# sourceMappingURL=injectQuoteContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectQuoteContext.d.ts","
|
|
1
|
+
{"version":3,"file":"injectQuoteContext.d.ts","sourceRoot":"","sources":["../../src/model-context/injectQuoteContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAepC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAyBrE"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
type AISDKChatOptions<UI_MESSAGE extends UIMessage = UIMessage> = ChatThreadOptions<UI_MESSAGE>;
|
|
1
|
+
import type { UIMessage } from "@ai-sdk/react";
|
|
2
|
+
import { type ChatThreadOptions } from "./useChatThread.js";
|
|
3
|
+
export type AISDKChatOptions<UI_MESSAGE extends UIMessage = UIMessage> = ChatThreadOptions<UI_MESSAGE>;
|
|
5
4
|
/**
|
|
6
5
|
* `AuiConfig` entry that runs the AI SDK chat as the `threads` scope. Hosts the
|
|
7
6
|
* same orchestration as `useChatRuntime` inside the client's own resource tree,
|
|
@@ -10,7 +9,5 @@ type AISDKChatOptions<UI_MESSAGE extends UIMessage = UIMessage> = ChatThreadOpti
|
|
|
10
9
|
* id is captured when the entry mounts, so a later `id` change in the options
|
|
11
10
|
* has no effect.
|
|
12
11
|
*/
|
|
13
|
-
declare const AISDKChat: <UI_MESSAGE extends UIMessage = UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>>(options?: AISDKChatOptions<UI_MESSAGE> | undefined) => import("@assistant-ui/tap").ResourceElement<import("@assistant-ui/store").ClientOutput<"threads">>;
|
|
14
|
-
//#endregion
|
|
15
|
-
export { AISDKChat, AISDKChatOptions };
|
|
12
|
+
export declare const AISDKChat: <UI_MESSAGE extends UIMessage = UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>>(options?: AISDKChatOptions<UI_MESSAGE> | undefined) => import("@assistant-ui/tap").ResourceElement<import("@assistant-ui/store").ClientOutput<"threads">>;
|
|
16
13
|
//# sourceMappingURL=AISDKChat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AISDKChat.d.ts","
|
|
1
|
+
{"version":3,"file":"AISDKChat.d.ts","sourceRoot":"","sources":["../../src/runtime/AISDKChat.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM/C,OAAO,EAAiB,KAAK,iBAAiB,EAAE,2BAAwB;AAExE,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,SAAS,GAAG,SAAS,IACnE,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAsBhC;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GA5BA,UAAU,SAAS,SAAS,gOA4BH,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useChatThread } from "./useChatThread.js";
|
|
3
|
+
import { generateId } from "ai";
|
|
3
4
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
4
5
|
import { useState } from "@assistant-ui/tap/react-shim";
|
|
5
|
-
import { generateId } from "ai";
|
|
6
6
|
import { resource, useResource } from "@assistant-ui/tap";
|
|
7
7
|
import { RuntimeAdapter, runtimeAdapterTransformScopes } from "@assistant-ui/core/store";
|
|
8
8
|
import { attachTransformScopes } from "@assistant-ui/store/client";
|
|
@@ -1,32 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ChatTransport } from "ai";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
onThreadIdChange?: ((threadId: string | undefined) => void) | undefined;
|
|
1
|
+
import type { UIMessage } from "@ai-sdk/react";
|
|
2
|
+
import type { ChatTransport } from "ai";
|
|
3
|
+
import type { AssistantCloud } from "assistant-cloud";
|
|
4
|
+
import { type ChatThreadOptions } from "./useChatThread.js";
|
|
5
|
+
export type AISDKThreadsOptions<UI_MESSAGE extends UIMessage = UIMessage> = Omit<ChatThreadOptions<UI_MESSAGE>, "id" | "transport" | "messages"> & {
|
|
6
|
+
/**
|
|
7
|
+
* The transport threads send through. A factory is invoked once per
|
|
8
|
+
* thread so each thread owns its instance. A plain
|
|
9
|
+
* `AssistantChatTransport` instance is cloned per thread (its
|
|
10
|
+
* assistant-ui wiring is per thread); any other transport instance is
|
|
11
|
+
* shared as-is. Defaults to one `AssistantChatTransport` per thread.
|
|
12
|
+
*/
|
|
13
|
+
transport?: ChatTransport<UI_MESSAGE> | (() => ChatTransport<UI_MESSAGE>) | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* When set, the thread list is a `RemoteThreadList` backed by this
|
|
16
|
+
* assistant-cloud. Omit it to keep the in-memory list. Every visited
|
|
17
|
+
* cloud thread stays mounted, so an in-flight run continues after a
|
|
18
|
+
* switch and stops on delete; per-thread history loads once per thread.
|
|
19
|
+
*/
|
|
20
|
+
cloud?: AssistantCloud | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Controlled thread id for the cloud list. Ignored without `cloud`.
|
|
23
|
+
*/
|
|
24
|
+
threadId?: string | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Called with the settled remote id when the cloud list changes thread.
|
|
27
|
+
*/
|
|
28
|
+
onThreadIdChange?: ((threadId: string | undefined) => void) | undefined;
|
|
30
29
|
};
|
|
31
30
|
/**
|
|
32
31
|
* `AuiConfig` entry that runs one AI SDK chat per thread. Hosts the same
|
|
@@ -41,7 +40,5 @@ type AISDKThreadsOptions<UI_MESSAGE extends UIMessage$1 = UIMessage$1> = Omit<Ch
|
|
|
41
40
|
* delete, and a freshly created thread titles itself. Model context is
|
|
42
41
|
* registered on every mounted thread.
|
|
43
42
|
*/
|
|
44
|
-
declare const AISDKThreads: <UI_MESSAGE extends UIMessage
|
|
45
|
-
//#endregion
|
|
46
|
-
export { AISDKThreads, AISDKThreadsOptions };
|
|
43
|
+
export declare const AISDKThreads: <UI_MESSAGE extends UIMessage = UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>>(options?: AISDKThreadsOptions<UI_MESSAGE> | undefined) => import("@assistant-ui/tap").ResourceElement<import("@assistant-ui/store").ClientOutput<"threads">>;
|
|
47
44
|
//# sourceMappingURL=AISDKThreads.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AISDKThreads.d.ts","
|
|
1
|
+
{"version":3,"file":"AISDKThreads.d.ts","sourceRoot":"","sources":["../../src/runtime/AISDKThreads.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAQ,SAAS,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAetD,OAAO,EAIL,KAAK,iBAAiB,EACvB,2BAAwB;AAKzB,MAAM,MAAM,mBAAmB,CAAC,UAAU,SAAS,SAAS,GAAG,SAAS,IACtE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,GAAG;IACrE;;;;;;OAMG;IACH,SAAS,CAAC,EACN,aAAa,CAAC,UAAU,CAAC,GACzB,CAAC,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,GACjC,SAAS,CAAC;IACd;;;;;OAKG;IACH,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACzE,CAAC;AA8KJ;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GAjEA,UAAU,SAAS,SAAS,mOAiEA,CAAC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { AssistantChatTransport } from "../transport/AssistantChatTransport.js";
|
|
3
3
|
import { useResourceCleanup } from "./useResourceCleanup.js";
|
|
4
|
-
import { splitChatThreadOptions, useChatThread } from "./useChatThread.js";
|
|
4
|
+
import { createChat, splitChatThreadOptions, useChatThread } from "./useChatThread.js";
|
|
5
5
|
import { AI_SDK_SDK } from "./sdkIdentity.js";
|
|
6
|
+
import { MessageRepository } from "@assistant-ui/core/internal";
|
|
6
7
|
import { useCloudThreadListAdapter } from "@assistant-ui/core/react";
|
|
7
8
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
8
9
|
import { useEffect, useState } from "@assistant-ui/tap/react-shim";
|
|
9
|
-
import { MessageRepository } from "@assistant-ui/core/internal";
|
|
10
10
|
import { useAui } from "@assistant-ui/store";
|
|
11
|
-
import { Chat } from "@ai-sdk/react";
|
|
12
11
|
import { resource, useResource, withKey } from "@assistant-ui/tap";
|
|
13
12
|
import { InMemoryThreadList, RemoteThreadList, inMemoryThreadListTransformScopes } from "@assistant-ui/core/store";
|
|
14
13
|
import { attachTransformScopes, useAssistantClientRef, useAssistantScopeEffect } from "@assistant-ui/store/client";
|
|
@@ -19,16 +18,11 @@ const createChatEntry = (threadId, options) => {
|
|
|
19
18
|
const { chatInit } = splitChatThreadOptions(options);
|
|
20
19
|
const transport = typeof options?.transport === "function" ? options.transport() : options?.transport === void 0 ? new AssistantChatTransport() : options.transport instanceof AssistantChatTransport ? options.transport.__internal_clone() : options.transport;
|
|
21
20
|
return {
|
|
22
|
-
chat:
|
|
21
|
+
chat: createChat({
|
|
23
22
|
...chatInit,
|
|
24
23
|
id: threadId,
|
|
25
|
-
transport
|
|
26
|
-
|
|
27
|
-
onData: (arg) => optionsRef.current?.onData?.(arg),
|
|
28
|
-
onFinish: (arg) => optionsRef.current?.onFinish?.(arg),
|
|
29
|
-
onError: (arg) => optionsRef.current?.onError?.(arg),
|
|
30
|
-
sendAutomaticallyWhen: (arg) => optionsRef.current?.sendAutomaticallyWhen?.(arg) ?? false
|
|
31
|
-
}),
|
|
24
|
+
transport
|
|
25
|
+
}, optionsRef),
|
|
32
26
|
transport,
|
|
33
27
|
repository: new MessageRepository(),
|
|
34
28
|
optionsRef
|
|
@@ -42,7 +36,7 @@ const getOrCreateChatEntry = (threadId, options, chats) => {
|
|
|
42
36
|
return created;
|
|
43
37
|
};
|
|
44
38
|
const useAISDKChatThread = (t0) => {
|
|
45
|
-
const $ = c(
|
|
39
|
+
const $ = c(38);
|
|
46
40
|
const { threadId, options, chats, cloud } = t0;
|
|
47
41
|
let t1;
|
|
48
42
|
if ($[0] !== cloud || $[1] !== options || $[2] !== threadId) {
|
|
@@ -123,44 +117,43 @@ const useAISDKChatThread = (t0) => {
|
|
|
123
117
|
$[25] = t8;
|
|
124
118
|
} else t8 = $[25];
|
|
125
119
|
let t9;
|
|
126
|
-
if ($[26] !== chat || $[27] !==
|
|
120
|
+
if ($[26] !== chat || $[27] !== repository || $[28] !== t8 || $[29] !== threadId) {
|
|
127
121
|
t9 = {
|
|
128
122
|
id: threadId,
|
|
129
123
|
isMainThread: true,
|
|
130
124
|
getThreadListItem: t8,
|
|
131
125
|
chat,
|
|
132
126
|
messageRepositoryInstance: repository,
|
|
133
|
-
stopOnClientDestroy:
|
|
127
|
+
stopOnClientDestroy: false
|
|
134
128
|
};
|
|
135
129
|
$[26] = chat;
|
|
136
|
-
$[27] =
|
|
137
|
-
$[28] =
|
|
138
|
-
$[29] =
|
|
139
|
-
$[30] =
|
|
140
|
-
|
|
141
|
-
} else t9 = $[31];
|
|
130
|
+
$[27] = repository;
|
|
131
|
+
$[28] = t8;
|
|
132
|
+
$[29] = threadId;
|
|
133
|
+
$[30] = t9;
|
|
134
|
+
} else t9 = $[30];
|
|
142
135
|
const runtime = useChatThread(t7, t9);
|
|
143
136
|
const clientRef = useAssistantClientRef();
|
|
144
137
|
let t10;
|
|
145
|
-
if ($[
|
|
138
|
+
if ($[31] !== clientRef || $[32] !== runtime) {
|
|
146
139
|
t10 = () => runtime.registerModelContextProvider(clientRef.current.modelContext());
|
|
147
|
-
$[
|
|
148
|
-
$[
|
|
149
|
-
$[
|
|
150
|
-
} else t10 = $[
|
|
140
|
+
$[31] = clientRef;
|
|
141
|
+
$[32] = runtime;
|
|
142
|
+
$[33] = t10;
|
|
143
|
+
} else t10 = $[33];
|
|
151
144
|
let t11;
|
|
152
|
-
if ($[
|
|
145
|
+
if ($[34] !== runtime) {
|
|
153
146
|
t11 = [runtime];
|
|
154
|
-
$[
|
|
155
|
-
$[
|
|
156
|
-
} else t11 = $[
|
|
147
|
+
$[34] = runtime;
|
|
148
|
+
$[35] = t11;
|
|
149
|
+
} else t11 = $[35];
|
|
157
150
|
useAssistantScopeEffect("modelContext", t10, t11);
|
|
158
151
|
let t12;
|
|
159
|
-
if ($[
|
|
152
|
+
if ($[36] !== runtime.thread) {
|
|
160
153
|
t12 = ThreadClient({ runtime: runtime.thread });
|
|
161
|
-
$[
|
|
162
|
-
$[
|
|
163
|
-
} else t12 = $[
|
|
154
|
+
$[36] = runtime.thread;
|
|
155
|
+
$[37] = t12;
|
|
156
|
+
} else t12 = $[37];
|
|
164
157
|
return useResource(t12);
|
|
165
158
|
};
|
|
166
159
|
const AISDKChatThread = resource(useAISDKChatThread);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AISDKThreads.js","names":["c","_c","resource","useResource","withKey","useEffect","useMemo","useState","Chat","UIMessage","ChatTransport","AssistantCloud","InMemoryThreadList","RemoteThreadList","inMemoryThreadListTransformScopes","ThreadClient","useCloudThreadListAdapter","attachTransformScopes","useAssistantClientRef","useAssistantScopeEffect","useAui","AssistantChatTransport","splitChatThreadOptions","useChatThread","ChatThreadOptions","MessageRepository","useResourceCleanup","AI_SDK_SDK","AISDKThreadsOptions","Omit","UI_MESSAGE","transport","cloud","threadId","onThreadIdChange","AISDKThreadChatOptions","ChatOptionsRef","current","ChatEntry","chat","repository","optionsRef","createChatEntry","options","chatInit","undefined","__internal_clone","id","onToolCall","arg","onData","onFinish","onError","sendAutomaticallyWhen","getOrCreateChatEntry","chats","Map","existing","get","created","set","useAISDKChatThread","t0","$","t1","owned","t2","t3","t4","t5","stop","catch","_temp","aui","t6","initialize","remoteId","externalId","fallbackItem","t7","t8","threadListItem","source","t9","isMainThread","getThreadListItem","messageRepositoryInstance","stopOnClientDestroy","runtime","clientRef","t10","registerModelContextProvider","modelContext","t11","t12","thread","AISDKChatThread","useAISDKThreads","threadOptions","_temp2","bindCloud","values","_temp3","cloudAdapter","sdk","element","adapter","backgroundThreads","onDelete","id_0","_temp4","delete","AISDKThreads"],"sources":["../../src/runtime/AISDKThreads.ts"],"sourcesContent":["\"use client\";\n\nimport { resource, useResource, withKey } from \"@assistant-ui/tap\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { Chat, type UIMessage } from \"@ai-sdk/react\";\nimport type { ChatTransport } from \"ai\";\nimport type { AssistantCloud } from \"assistant-cloud\";\nimport {\n InMemoryThreadList,\n RemoteThreadList,\n inMemoryThreadListTransformScopes,\n} from \"@assistant-ui/core/store\";\nimport { ThreadClient } from \"@assistant-ui/core/store/internal\";\nimport { useCloudThreadListAdapter } from \"@assistant-ui/core/react\";\nimport {\n attachTransformScopes,\n useAssistantClientRef,\n useAssistantScopeEffect,\n} from \"@assistant-ui/store/client\";\nimport { useAui } from \"@assistant-ui/store\";\nimport { AssistantChatTransport } from \"../transport/AssistantChatTransport\";\nimport {\n splitChatThreadOptions,\n useChatThread,\n type ChatThreadOptions,\n} from \"./useChatThread\";\nimport { MessageRepository } from \"@assistant-ui/core/internal\";\nimport { useResourceCleanup } from \"./useResourceCleanup\";\nimport { AI_SDK_SDK } from \"./sdkIdentity\";\n\nexport type AISDKThreadsOptions<UI_MESSAGE extends UIMessage = UIMessage> =\n Omit<ChatThreadOptions<UI_MESSAGE>, \"id\" | \"transport\" | \"messages\"> & {\n /**\n * The transport threads send through. A factory is invoked once per\n * thread so each thread owns its instance. A plain\n * `AssistantChatTransport` instance is cloned per thread (its\n * assistant-ui wiring is per thread); any other transport instance is\n * shared as-is. Defaults to one `AssistantChatTransport` per thread.\n */\n transport?:\n | ChatTransport<UI_MESSAGE>\n | (() => ChatTransport<UI_MESSAGE>)\n | undefined;\n /**\n * When set, the thread list is a `RemoteThreadList` backed by this\n * assistant-cloud. Omit it to keep the in-memory list. Every visited\n * cloud thread stays mounted, so an in-flight run continues after a\n * switch and stops on delete; per-thread history loads once per thread.\n */\n cloud?: AssistantCloud | undefined;\n /**\n * Controlled thread id for the cloud list. Ignored without `cloud`.\n */\n threadId?: string | undefined;\n /**\n * Called with the settled remote id when the cloud list changes thread.\n */\n onThreadIdChange?: ((threadId: string | undefined) => void) | undefined;\n };\n\ntype AISDKThreadChatOptions<UI_MESSAGE extends UIMessage = UIMessage> = Omit<\n AISDKThreadsOptions<UI_MESSAGE>,\n \"cloud\" | \"threadId\" | \"onThreadIdChange\"\n>;\n\ntype ChatOptionsRef<UI_MESSAGE extends UIMessage> = {\n current: AISDKThreadChatOptions<UI_MESSAGE> | undefined;\n};\n\ntype ChatEntry<UI_MESSAGE extends UIMessage> = {\n chat: Chat<UI_MESSAGE>;\n transport: ChatTransport<UI_MESSAGE>;\n repository: MessageRepository;\n optionsRef: ChatOptionsRef<UI_MESSAGE>;\n};\n\nconst createChatEntry = <UI_MESSAGE extends UIMessage>(\n threadId: string,\n options: AISDKThreadChatOptions<UI_MESSAGE> | undefined,\n): ChatEntry<UI_MESSAGE> => {\n const optionsRef: ChatOptionsRef<UI_MESSAGE> = { current: options };\n const { chatInit } = splitChatThreadOptions(\n options as ChatThreadOptions<UI_MESSAGE> | undefined,\n );\n const transport =\n typeof options?.transport === \"function\"\n ? options.transport()\n : options?.transport === undefined\n ? new AssistantChatTransport()\n : options.transport instanceof AssistantChatTransport\n ? options.transport.__internal_clone()\n : options.transport;\n return {\n chat: new Chat<UI_MESSAGE>({\n ...chatInit,\n id: threadId,\n transport,\n onToolCall: (arg) => optionsRef.current?.onToolCall?.(arg),\n onData: (arg) => optionsRef.current?.onData?.(arg),\n onFinish: (arg) => optionsRef.current?.onFinish?.(arg),\n onError: (arg) => optionsRef.current?.onError?.(arg),\n sendAutomaticallyWhen: (arg) =>\n optionsRef.current?.sendAutomaticallyWhen?.(arg) ?? false,\n }),\n transport,\n repository: new MessageRepository(),\n optionsRef,\n };\n};\n\nconst getOrCreateChatEntry = <UI_MESSAGE extends UIMessage>(\n threadId: string,\n options: AISDKThreadChatOptions<UI_MESSAGE> | undefined,\n chats: Map<string, ChatEntry<UI_MESSAGE>>,\n): ChatEntry<UI_MESSAGE> => {\n const existing = chats.get(threadId);\n if (existing) return existing;\n const created = createChatEntry(threadId, options);\n chats.set(threadId, created);\n return created;\n};\n\nconst useAISDKChatThread = <UI_MESSAGE extends UIMessage = UIMessage>({\n threadId,\n options,\n chats,\n cloud,\n}: {\n threadId: string;\n options: AISDKThreadChatOptions<UI_MESSAGE> | undefined;\n chats: Map<string, ChatEntry<UI_MESSAGE>>;\n cloud: boolean;\n}) => {\n const [owned] = useState(() =>\n cloud ? createChatEntry(threadId, options) : undefined,\n );\n const { chat, transport, repository, optionsRef } =\n owned ?? getOrCreateChatEntry(threadId, options, chats);\n\n useEffect(() => {\n if (cloud) optionsRef.current = options;\n });\n\n useEffect(() => {\n if (!cloud) return undefined;\n return () => {\n void chat.stop().catch(() => {});\n };\n }, [chat, cloud]);\n\n const aui = useAui();\n const fallbackItem = useMemo(\n () => ({\n initialize: async () => ({\n remoteId: threadId,\n externalId: undefined,\n }),\n }),\n [threadId],\n );\n const runtime = useChatThread(\n { ...options, transport } as ChatThreadOptions<UI_MESSAGE>,\n {\n id: threadId,\n isMainThread: true,\n getThreadListItem: () =>\n cloud\n ? aui.threadListItem.source\n ? aui.threadListItem\n : undefined\n : fallbackItem,\n chat,\n messageRepositoryInstance: repository,\n stopOnClientDestroy: cloud,\n },\n );\n\n const clientRef = useAssistantClientRef();\n useAssistantScopeEffect(\n \"modelContext\",\n () =>\n runtime.registerModelContextProvider(clientRef.current!.modelContext()),\n [runtime],\n );\n\n return useResource(ThreadClient({ runtime: runtime.thread }));\n};\n\nconst AISDKChatThread = resource(useAISDKChatThread);\n\nconst useAISDKThreads = <UI_MESSAGE extends UIMessage = UIMessage>(\n options?: AISDKThreadsOptions<UI_MESSAGE>,\n) => {\n const { cloud, threadId, onThreadIdChange, ...threadOptions } = options ?? {};\n const [chats] = useState(() => new Map<string, ChatEntry<UI_MESSAGE>>());\n const bindCloud = cloud !== undefined;\n\n useEffect(() => {\n for (const { optionsRef } of chats.values()) {\n optionsRef.current = threadOptions;\n }\n });\n\n useResourceCleanup(true, () => {\n for (const { chat } of chats.values()) {\n void chat.stop().catch(() => {});\n }\n });\n\n const cloudAdapter = useCloudThreadListAdapter({ cloud, sdk: AI_SDK_SDK });\n const thread = (id: string) => {\n const element = AISDKChatThread({\n threadId: id,\n options: threadOptions,\n chats,\n cloud: bindCloud,\n });\n return bindCloud ? withKey(id, element) : element;\n };\n\n return useResource(\n bindCloud\n ? RemoteThreadList({\n adapter: cloudAdapter,\n backgroundThreads: true,\n thread,\n threadId,\n onThreadIdChange,\n })\n : InMemoryThreadList({\n thread,\n onDelete: (id) => {\n void chats\n .get(id)\n ?.chat.stop()\n .catch(() => {});\n chats.delete(id);\n },\n }),\n );\n};\n\n/**\n * `AuiConfig` entry that runs one AI SDK chat per thread. Hosts the same\n * per-thread orchestration as {@link AISDKChat} inside the client's own\n * resource tree, so it works with any `AssistantClient` host, React or not.\n * Without `cloud`, threads live in memory for the client's lifetime and keep\n * their history across switches; only the visible thread is mounted, and a\n * switched-away chat keeps streaming into its stored state until it settles\n * or the thread is deleted. With `cloud`, the list is a\n * `RemoteThreadList` with `backgroundThreads`: every visited thread stays\n * mounted with its own history, a run continues after a switch and stops on\n * delete, and a freshly created thread titles itself. Model context is\n * registered on every mounted thread.\n */\nexport const AISDKThreads = resource(useAISDKThreads);\n\nattachTransformScopes(useAISDKThreads, inMemoryThreadListTransformScopes);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AISDKThreads.js","names":["c","_c","resource","useResource","withKey","useEffect","useMemo","useState","Chat","UIMessage","ChatTransport","AssistantCloud","InMemoryThreadList","RemoteThreadList","inMemoryThreadListTransformScopes","ThreadClient","useCloudThreadListAdapter","attachTransformScopes","useAssistantClientRef","useAssistantScopeEffect","useAui","AssistantChatTransport","createChat","splitChatThreadOptions","useChatThread","ChatThreadOptions","MessageRepository","useResourceCleanup","AI_SDK_SDK","AISDKThreadsOptions","Omit","UI_MESSAGE","transport","cloud","threadId","onThreadIdChange","AISDKThreadChatOptions","ChatOptionsRef","current","ChatEntry","chat","repository","optionsRef","createChatEntry","options","chatInit","undefined","__internal_clone","id","getOrCreateChatEntry","chats","Map","existing","get","created","set","useAISDKChatThread","t0","$","t1","owned","t2","t3","t4","t5","stop","catch","_temp","aui","t6","initialize","remoteId","externalId","fallbackItem","t7","t8","threadListItem","source","t9","isMainThread","getThreadListItem","messageRepositoryInstance","stopOnClientDestroy","runtime","clientRef","t10","registerModelContextProvider","modelContext","t11","t12","thread","AISDKChatThread","useAISDKThreads","threadOptions","_temp2","bindCloud","values","_temp3","cloudAdapter","sdk","element","adapter","backgroundThreads","onDelete","id_0","_temp4","delete","AISDKThreads"],"sources":["../../src/runtime/AISDKThreads.ts"],"sourcesContent":["\"use client\";\n\nimport { resource, useResource, withKey } from \"@assistant-ui/tap\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport type { Chat, UIMessage } from \"@ai-sdk/react\";\nimport type { ChatTransport } from \"ai\";\nimport type { AssistantCloud } from \"assistant-cloud\";\nimport {\n InMemoryThreadList,\n RemoteThreadList,\n inMemoryThreadListTransformScopes,\n} from \"@assistant-ui/core/store\";\nimport { ThreadClient } from \"@assistant-ui/core/store/internal\";\nimport { useCloudThreadListAdapter } from \"@assistant-ui/core/react\";\nimport {\n attachTransformScopes,\n useAssistantClientRef,\n useAssistantScopeEffect,\n} from \"@assistant-ui/store/client\";\nimport { useAui } from \"@assistant-ui/store\";\nimport { AssistantChatTransport } from \"../transport/AssistantChatTransport\";\nimport {\n createChat,\n splitChatThreadOptions,\n useChatThread,\n type ChatThreadOptions,\n} from \"./useChatThread\";\nimport { MessageRepository } from \"@assistant-ui/core/internal\";\nimport { useResourceCleanup } from \"./useResourceCleanup\";\nimport { AI_SDK_SDK } from \"./sdkIdentity\";\n\nexport type AISDKThreadsOptions<UI_MESSAGE extends UIMessage = UIMessage> =\n Omit<ChatThreadOptions<UI_MESSAGE>, \"id\" | \"transport\" | \"messages\"> & {\n /**\n * The transport threads send through. A factory is invoked once per\n * thread so each thread owns its instance. A plain\n * `AssistantChatTransport` instance is cloned per thread (its\n * assistant-ui wiring is per thread); any other transport instance is\n * shared as-is. Defaults to one `AssistantChatTransport` per thread.\n */\n transport?:\n | ChatTransport<UI_MESSAGE>\n | (() => ChatTransport<UI_MESSAGE>)\n | undefined;\n /**\n * When set, the thread list is a `RemoteThreadList` backed by this\n * assistant-cloud. Omit it to keep the in-memory list. Every visited\n * cloud thread stays mounted, so an in-flight run continues after a\n * switch and stops on delete; per-thread history loads once per thread.\n */\n cloud?: AssistantCloud | undefined;\n /**\n * Controlled thread id for the cloud list. Ignored without `cloud`.\n */\n threadId?: string | undefined;\n /**\n * Called with the settled remote id when the cloud list changes thread.\n */\n onThreadIdChange?: ((threadId: string | undefined) => void) | undefined;\n };\n\ntype AISDKThreadChatOptions<UI_MESSAGE extends UIMessage = UIMessage> = Omit<\n AISDKThreadsOptions<UI_MESSAGE>,\n \"cloud\" | \"threadId\" | \"onThreadIdChange\"\n>;\n\ntype ChatOptionsRef<UI_MESSAGE extends UIMessage> = {\n current: AISDKThreadChatOptions<UI_MESSAGE> | undefined;\n};\n\ntype ChatEntry<UI_MESSAGE extends UIMessage> = {\n chat: Chat<UI_MESSAGE>;\n transport: ChatTransport<UI_MESSAGE>;\n repository: MessageRepository;\n optionsRef: ChatOptionsRef<UI_MESSAGE>;\n};\n\nconst createChatEntry = <UI_MESSAGE extends UIMessage>(\n threadId: string,\n options: AISDKThreadChatOptions<UI_MESSAGE> | undefined,\n): ChatEntry<UI_MESSAGE> => {\n const optionsRef: ChatOptionsRef<UI_MESSAGE> = { current: options };\n const { chatInit } = splitChatThreadOptions(\n options as ChatThreadOptions<UI_MESSAGE> | undefined,\n );\n const transport =\n typeof options?.transport === \"function\"\n ? options.transport()\n : options?.transport === undefined\n ? new AssistantChatTransport()\n : options.transport instanceof AssistantChatTransport\n ? options.transport.__internal_clone()\n : options.transport;\n return {\n chat: createChat({ ...chatInit, id: threadId, transport }, optionsRef),\n transport,\n repository: new MessageRepository(),\n optionsRef,\n };\n};\n\nconst getOrCreateChatEntry = <UI_MESSAGE extends UIMessage>(\n threadId: string,\n options: AISDKThreadChatOptions<UI_MESSAGE> | undefined,\n chats: Map<string, ChatEntry<UI_MESSAGE>>,\n): ChatEntry<UI_MESSAGE> => {\n const existing = chats.get(threadId);\n if (existing) return existing;\n const created = createChatEntry(threadId, options);\n chats.set(threadId, created);\n return created;\n};\n\nconst useAISDKChatThread = <UI_MESSAGE extends UIMessage = UIMessage>({\n threadId,\n options,\n chats,\n cloud,\n}: {\n threadId: string;\n options: AISDKThreadChatOptions<UI_MESSAGE> | undefined;\n chats: Map<string, ChatEntry<UI_MESSAGE>>;\n cloud: boolean;\n}) => {\n const [owned] = useState(() =>\n cloud ? createChatEntry(threadId, options) : undefined,\n );\n const { chat, transport, repository, optionsRef } =\n owned ?? getOrCreateChatEntry(threadId, options, chats);\n\n useEffect(() => {\n if (cloud) optionsRef.current = options;\n });\n\n useEffect(() => {\n if (!cloud) return undefined;\n return () => {\n void chat.stop().catch(() => {});\n };\n }, [chat, cloud]);\n\n const aui = useAui();\n const fallbackItem = useMemo(\n () => ({\n initialize: async () => ({\n remoteId: threadId,\n externalId: undefined,\n }),\n }),\n [threadId],\n );\n const runtime = useChatThread(\n { ...options, transport } as ChatThreadOptions<UI_MESSAGE>,\n {\n id: threadId,\n isMainThread: true,\n getThreadListItem: () =>\n cloud\n ? aui.threadListItem.source\n ? aui.threadListItem\n : undefined\n : fallbackItem,\n chat,\n messageRepositoryInstance: repository,\n stopOnClientDestroy: false,\n },\n );\n\n const clientRef = useAssistantClientRef();\n useAssistantScopeEffect(\n \"modelContext\",\n () =>\n runtime.registerModelContextProvider(clientRef.current!.modelContext()),\n [runtime],\n );\n\n return useResource(ThreadClient({ runtime: runtime.thread }));\n};\n\nconst AISDKChatThread = resource(useAISDKChatThread);\n\nconst useAISDKThreads = <UI_MESSAGE extends UIMessage = UIMessage>(\n options?: AISDKThreadsOptions<UI_MESSAGE>,\n) => {\n const { cloud, threadId, onThreadIdChange, ...threadOptions } = options ?? {};\n const [chats] = useState(() => new Map<string, ChatEntry<UI_MESSAGE>>());\n const bindCloud = cloud !== undefined;\n\n useEffect(() => {\n for (const { optionsRef } of chats.values()) {\n optionsRef.current = threadOptions;\n }\n });\n\n useResourceCleanup(true, () => {\n for (const { chat } of chats.values()) {\n void chat.stop().catch(() => {});\n }\n });\n\n const cloudAdapter = useCloudThreadListAdapter({ cloud, sdk: AI_SDK_SDK });\n const thread = (id: string) => {\n const element = AISDKChatThread({\n threadId: id,\n options: threadOptions,\n chats,\n cloud: bindCloud,\n });\n return bindCloud ? withKey(id, element) : element;\n };\n\n return useResource(\n bindCloud\n ? RemoteThreadList({\n adapter: cloudAdapter,\n backgroundThreads: true,\n thread,\n threadId,\n onThreadIdChange,\n })\n : InMemoryThreadList({\n thread,\n onDelete: (id) => {\n void chats\n .get(id)\n ?.chat.stop()\n .catch(() => {});\n chats.delete(id);\n },\n }),\n );\n};\n\n/**\n * `AuiConfig` entry that runs one AI SDK chat per thread. Hosts the same\n * per-thread orchestration as {@link AISDKChat} inside the client's own\n * resource tree, so it works with any `AssistantClient` host, React or not.\n * Without `cloud`, threads live in memory for the client's lifetime and keep\n * their history across switches; only the visible thread is mounted, and a\n * switched-away chat keeps streaming into its stored state until it settles\n * or the thread is deleted. With `cloud`, the list is a\n * `RemoteThreadList` with `backgroundThreads`: every visited thread stays\n * mounted with its own history, a run continues after a switch and stops on\n * delete, and a freshly created thread titles itself. Model context is\n * registered on every mounted thread.\n */\nexport const AISDKThreads = resource(useAISDKThreads);\n\nattachTransformScopes(useAISDKThreads, inMemoryThreadListTransformScopes);\n"],"mappings":"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"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { SdkIdentity } from "assistant-cloud";
|
|
2
|
-
|
|
3
|
-
declare const AI_SDK_SDK: SdkIdentity;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { AI_SDK_SDK };
|
|
1
|
+
import type { SdkIdentity } from "assistant-cloud";
|
|
2
|
+
export declare const AI_SDK_SDK: SdkIdentity;
|
|
6
3
|
//# sourceMappingURL=sdkIdentity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkIdentity.d.ts","
|
|
1
|
+
{"version":3,"file":"sdkIdentity.d.ts","sourceRoot":"","sources":["../../src/runtime/sdkIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAO,MAAM,UAAU,EAAE,WAMxB,CAAC"}
|