@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.
Files changed (107) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/aiSDKFormatAdapter.d.ts +2 -2
  3. package/dist/adapters/aiSDKFormatAdapter.d.ts.map +1 -0
  4. package/dist/adapters/vercelAttachmentAdapter.d.ts +2 -5
  5. package/dist/adapters/vercelAttachmentAdapter.d.ts.map +1 -1
  6. package/dist/adapters/vercelAttachmentAdapter.js +3 -3
  7. package/dist/adapters/vercelAttachmentAdapter.js.map +1 -1
  8. package/dist/aiSDKExtras.d.ts +6 -9
  9. package/dist/aiSDKExtras.d.ts.map +1 -1
  10. package/dist/converters/convertMessage.d.ts +34 -25
  11. package/dist/converters/convertMessage.d.ts.map +1 -1
  12. package/dist/converters/convertMessage.js +78 -8
  13. package/dist/converters/convertMessage.js.map +1 -1
  14. package/dist/converters/modelContentEnvelope.d.ts +10 -12
  15. package/dist/converters/modelContentEnvelope.d.ts.map +1 -1
  16. package/dist/converters/toCreateMessage.d.ts +3 -6
  17. package/dist/converters/toCreateMessage.d.ts.map +1 -1
  18. package/dist/converters/toolOutputConversion.d.ts +22 -25
  19. package/dist/converters/toolOutputConversion.d.ts.map +1 -1
  20. package/dist/hooks.d.ts +4 -7
  21. package/dist/hooks.d.ts.map +1 -1
  22. package/dist/index.d.ts +17 -14
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.native.d.ts +15 -12
  25. package/dist/index.native.d.ts.map +1 -0
  26. package/dist/model-context/injectInteractableContext.d.ts +3 -6
  27. package/dist/model-context/injectInteractableContext.d.ts.map +1 -1
  28. package/dist/model-context/injectQuoteContext.d.ts +2 -5
  29. package/dist/model-context/injectQuoteContext.d.ts.map +1 -1
  30. package/dist/runtime/AISDKChat.d.ts +4 -7
  31. package/dist/runtime/AISDKChat.d.ts.map +1 -1
  32. package/dist/runtime/AISDKChat.js +1 -1
  33. package/dist/runtime/AISDKThreads.d.ts +29 -32
  34. package/dist/runtime/AISDKThreads.d.ts.map +1 -1
  35. package/dist/runtime/AISDKThreads.js +26 -33
  36. package/dist/runtime/AISDKThreads.js.map +1 -1
  37. package/dist/runtime/sdkIdentity.d.ts +2 -5
  38. package/dist/runtime/sdkIdentity.d.ts.map +1 -1
  39. package/dist/runtime/sdkIdentity.js +1 -1
  40. package/dist/runtime/useAISDKRuntime.d.ts +72 -61
  41. package/dist/runtime/useAISDKRuntime.d.ts.map +1 -1
  42. package/dist/runtime/useAISDKRuntime.js +170 -56
  43. package/dist/runtime/useAISDKRuntime.js.map +1 -1
  44. package/dist/runtime/useChatRuntime.d.ts +8 -11
  45. package/dist/runtime/useChatRuntime.d.ts.map +1 -1
  46. package/dist/runtime/useChatRuntime.js +14 -10
  47. package/dist/runtime/useChatRuntime.js.map +1 -1
  48. package/dist/runtime/useChatThread.d.ts +100 -81
  49. package/dist/runtime/useChatThread.d.ts.map +1 -1
  50. package/dist/runtime/useChatThread.js +33 -13
  51. package/dist/runtime/useChatThread.js.map +1 -1
  52. package/dist/runtime/useExternalHistory.d.ts +8 -9
  53. package/dist/runtime/useExternalHistory.d.ts.map +1 -1
  54. package/dist/runtime/useExternalHistory.js +236 -58
  55. package/dist/runtime/useExternalHistory.js.map +1 -1
  56. package/dist/runtime/useResourceCleanup.d.ts +1 -4
  57. package/dist/runtime/useResourceCleanup.d.ts.map +1 -1
  58. package/dist/runtime/useResourceCleanup.js +38 -14
  59. package/dist/runtime/useResourceCleanup.js.map +1 -1
  60. package/dist/runtime/useStreamingTiming.d.ts +5 -8
  61. package/dist/runtime/useStreamingTiming.d.ts.map +1 -1
  62. package/dist/runtime/useStreamingTiming.js +1 -1
  63. package/dist/tools/frontendTools.d.ts +24 -27
  64. package/dist/tools/frontendTools.d.ts.map +1 -1
  65. package/dist/tools/generativeTools.d.ts +29 -32
  66. package/dist/tools/generativeTools.d.ts.map +1 -1
  67. package/dist/tools/mcp-stdio.node.d.ts +2 -2
  68. package/dist/tools/mcp-stdio.node.d.ts.map +1 -0
  69. package/dist/tools/mcp-stdio.unsupported.d.ts +2 -5
  70. package/dist/tools/mcp-stdio.unsupported.d.ts.map +1 -1
  71. package/dist/transport/AssistantChatTransport.d.ts +17 -20
  72. package/dist/transport/AssistantChatTransport.d.ts.map +1 -1
  73. package/dist/transport/resumable.d.ts +29 -32
  74. package/dist/transport/resumable.d.ts.map +1 -1
  75. package/dist/usage.d.ts +12 -15
  76. package/dist/usage.d.ts.map +1 -1
  77. package/dist/usage.js.map +1 -1
  78. package/dist/utils/getVercelAIMessages.d.ts +3 -6
  79. package/dist/utils/getVercelAIMessages.d.ts.map +1 -1
  80. package/dist/utils/sliceMessagesUntil.d.ts +2 -5
  81. package/dist/utils/sliceMessagesUntil.d.ts.map +1 -1
  82. package/package.json +16 -14
  83. package/src/adapters/vercelAttachmentAdapter.test.ts +23 -0
  84. package/src/adapters/vercelAttachmentAdapter.ts +2 -2
  85. package/src/converters/convertMessage.test.ts +616 -3
  86. package/src/converters/convertMessage.ts +187 -12
  87. package/src/index.native.ts +1 -1
  88. package/src/index.ts +1 -1
  89. package/src/runtime/AISDKChat.test.ts +4 -5
  90. package/src/runtime/AISDKThreads.cloud.test.ts +60 -2
  91. package/src/runtime/AISDKThreads.test.ts +88 -51
  92. package/src/runtime/AISDKThreads.ts +4 -13
  93. package/src/runtime/useAISDKRuntime.approval.integration.test.tsx +338 -0
  94. package/src/runtime/useAISDKRuntime.approval.test.tsx +476 -4
  95. package/src/runtime/useAISDKRuntime.test.ts +282 -8
  96. package/src/runtime/useAISDKRuntime.ts +274 -46
  97. package/src/runtime/useAISDKRuntime.voice.test.tsx +319 -0
  98. package/src/runtime/useChatRuntime.integration.test.tsx +56 -0
  99. package/src/runtime/useChatRuntime.test.ts +77 -5
  100. package/src/runtime/useChatRuntime.ts +6 -2
  101. package/src/runtime/useChatThread.transport.test.tsx +149 -0
  102. package/src/runtime/useChatThread.ts +77 -10
  103. package/src/runtime/useExternalHistory.test.ts +989 -3
  104. package/src/runtime/useExternalHistory.ts +390 -24
  105. package/src/runtime/useResourceCleanup.ts +41 -15
  106. package/src/tools/generativeTools.test.ts +7 -1
  107. package/src/usage.ts +1 -1
package/dist/hooks.d.ts CHANGED
@@ -1,19 +1,16 @@
1
- import { UIMessage } from "ai";
2
- import { UseChatHelpers } from "@ai-sdk/react";
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
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","names":[],"sources":["../src/hooks.ts"],"mappings":";;;;;;;;cAWa,qBAAa;;;;;;;cAQb,eAAgB,mBAAmB,YAAY,gBAEtD,eAAe"}
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
- import { useAISDKChat, useAISDKError } from "./hooks.js";
3
- import { useAISDKRuntime } from "./runtime/useAISDKRuntime.js";
4
- import { AssistantChatResumableOptions, RESUMABLE_STREAM_ID_HEADER, ResumableClientStorage, createResumableSessionStorage } from "./transport/resumable.js";
5
- import { AssistantChatTransport } from "./transport/AssistantChatTransport.js";
6
- import { UseChatRuntimeOptions, useChatRuntime } from "./runtime/useChatRuntime.js";
7
- import { FrontendTools, frontendTools } from "./tools/frontendTools.js";
8
- import { injectQuoteContext } from "./model-context/injectQuoteContext.js";
9
- import { unstable_injectInteractableContext } from "./model-context/injectInteractableContext.js";
10
- import { ThreadTokenUsage, TokenUsageExtractableMessage, getThreadMessageTokenUsage, useThreadTokenUsage } from "./usage.js";
11
- import { AISDKToolkit, AISDKToolkitOptions, AISDKToolkitToolsOptions, GenerativeToolsOptions, generativeTools } from "./tools/generativeTools.js";
12
- import { AISDKChat, AISDKChatOptions } from "./runtime/AISDKChat.js";
13
- import { AISDKThreads, AISDKThreadsOptions } from "./runtime/AISDKThreads.js";
14
- export { AISDKChat, type AISDKChatOptions, AISDKThreads, type AISDKThreadsOptions, AISDKToolkit, type AISDKToolkitOptions, type AISDKToolkitToolsOptions, type AssistantChatResumableOptions, AssistantChatTransport, type FrontendTools, type GenerativeToolsOptions, RESUMABLE_STREAM_ID_HEADER, type ResumableClientStorage, type ThreadTokenUsage, type TokenUsageExtractableMessage, type UseChatRuntimeOptions, createResumableSessionStorage, frontendTools, generativeTools, getThreadMessageTokenUsage, injectQuoteContext, unstable_injectInteractableContext, useAISDKChat, useAISDKError, useAISDKRuntime, useChatRuntime, useThreadTokenUsage };
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"}
@@ -1,12 +1,15 @@
1
- /// <reference types="@assistant-ui/core/react" />
2
- import { useAISDKChat, useAISDKError } from "./hooks.js";
3
- import { useAISDKRuntime } from "./runtime/useAISDKRuntime.js";
4
- import { AssistantChatResumableOptions, RESUMABLE_STREAM_ID_HEADER, ResumableClientStorage, createResumableSessionStorage } from "./transport/resumable.js";
5
- import { AssistantChatTransport } from "./transport/AssistantChatTransport.js";
6
- import { UseChatRuntimeOptions, useChatRuntime } from "./runtime/useChatRuntime.js";
7
- import { FrontendTools, frontendTools } from "./tools/frontendTools.js";
8
- import { injectQuoteContext } from "./model-context/injectQuoteContext.js";
9
- import { unstable_injectInteractableContext } from "./model-context/injectInteractableContext.js";
10
- import { ThreadTokenUsage, TokenUsageExtractableMessage, getThreadMessageTokenUsage, useThreadTokenUsage } from "./usage.js";
11
- import { AISDKChat, AISDKChatOptions } from "./runtime/AISDKChat.js";
12
- export { AISDKChat, type AISDKChatOptions, type AssistantChatResumableOptions, AssistantChatTransport, type FrontendTools, RESUMABLE_STREAM_ID_HEADER, type ResumableClientStorage, type ThreadTokenUsage, type TokenUsageExtractableMessage, type UseChatRuntimeOptions, createResumableSessionStorage, frontendTools, getThreadMessageTokenUsage, injectQuoteContext, unstable_injectInteractableContext, useAISDKChat, useAISDKError, useAISDKRuntime, useChatRuntime, useThreadTokenUsage };
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","names":[],"sources":["../../src/model-context/injectInteractableContext.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqCgB,mCACd,UAAU,aACV,UACE,MAAM,gDAEP"}
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","names":[],"sources":["../../src/model-context/injectQuoteContext.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;iBAoCgB,mBAAmB,UAAU,cAAc"}
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 { ChatThreadOptions } from "./useChatThread.js";
2
- import { UIMessage } from "@ai-sdk/react";
3
- //#region src/runtime/AISDKChat.d.ts
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","names":[],"sources":["../../src/runtime/AISDKChat.ts"],"mappings":";;;KAaY,iBAAiB,mBAAmB,YAAY,aAC1D,kBAAkB;;;;;;;;;cA8BP,YA5BS,mBAAmB,YAAS,gCAAA,0BAAA,UAAA,UAAA,iBAAA,wDAAA,8CAAA"}
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 { ChatThreadOptions } from "./useChatThread.js";
2
- import { ChatTransport } from "ai";
3
- import { UIMessage as UIMessage$1 } from "@ai-sdk/react";
4
- import { AssistantCloud } from "assistant-cloud";
5
- //#region src/runtime/AISDKThreads.d.ts
6
- type AISDKThreadsOptions<UI_MESSAGE extends UIMessage$1 = UIMessage$1> = Omit<ChatThreadOptions<UI_MESSAGE>, "id" | "transport" | "messages"> & {
7
- /**
8
- * The transport threads send through. A factory is invoked once per
9
- * thread so each thread owns its instance. A plain
10
- * `AssistantChatTransport` instance is cloned per thread (its
11
- * assistant-ui wiring is per thread); any other transport instance is
12
- * shared as-is. Defaults to one `AssistantChatTransport` per thread.
13
- */
14
- transport?: ChatTransport<UI_MESSAGE> | (() => ChatTransport<UI_MESSAGE>) | undefined;
15
- /**
16
- * When set, the thread list is a `RemoteThreadList` backed by this
17
- * assistant-cloud. Omit it to keep the in-memory list. Every visited
18
- * cloud thread stays mounted, so an in-flight run continues after a
19
- * switch and stops on delete; per-thread history loads once per thread.
20
- */
21
- cloud?: AssistantCloud | undefined;
22
- /**
23
- * Controlled thread id for the cloud list. Ignored without `cloud`.
24
- */
25
- threadId?: string | undefined;
26
- /**
27
- * Called with the settled remote id when the cloud list changes thread.
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$1 = UIMessage$1<unknown, import("ai").UIDataTypes, import("ai").UITools>>(options?: AISDKThreadsOptions<UI_MESSAGE> | undefined) => import("@assistant-ui/tap").ResourceElement<import("@assistant-ui/store").ClientOutput<"threads">>;
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","names":[],"sources":["../../src/runtime/AISDKThreads.ts"],"mappings":";;;;;KA8BY,oBAAoB,mBAAmB,cAAY,eAC7D,KAAK,kBAAkB;;;;;;;;EAQrB,YACI,cAAc,qBACP,cAAc;;;;;;;EAQzB,QAAQ;;;;EAIR;;;;EAIA,qBAAqB;;;;;;;;;;;;;;;cAsMZ,eAjEY,mBAAmB,cAAS,kCAAA,0BAAA,UAAA,UAAA,oBAAA,wDAAA,8CAAA"}
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: new Chat({
21
+ chat: createChat({
23
22
  ...chatInit,
24
23
  id: threadId,
25
- transport,
26
- onToolCall: (arg) => optionsRef.current?.onToolCall?.(arg),
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);
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] !== cloud || $[28] !== repository || $[29] !== t8 || $[30] !== threadId) {
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: cloud
127
+ stopOnClientDestroy: false
134
128
  };
135
129
  $[26] = chat;
136
- $[27] = cloud;
137
- $[28] = repository;
138
- $[29] = t8;
139
- $[30] = threadId;
140
- $[31] = t9;
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 ($[32] !== clientRef || $[33] !== runtime) {
138
+ if ($[31] !== clientRef || $[32] !== runtime) {
146
139
  t10 = () => runtime.registerModelContextProvider(clientRef.current.modelContext());
147
- $[32] = clientRef;
148
- $[33] = runtime;
149
- $[34] = t10;
150
- } else t10 = $[34];
140
+ $[31] = clientRef;
141
+ $[32] = runtime;
142
+ $[33] = t10;
143
+ } else t10 = $[33];
151
144
  let t11;
152
- if ($[35] !== runtime) {
145
+ if ($[34] !== runtime) {
153
146
  t11 = [runtime];
154
- $[35] = runtime;
155
- $[36] = t11;
156
- } else t11 = $[36];
147
+ $[34] = runtime;
148
+ $[35] = t11;
149
+ } else t11 = $[35];
157
150
  useAssistantScopeEffect("modelContext", t10, t11);
158
151
  let t12;
159
- if ($[37] !== runtime.thread) {
152
+ if ($[36] !== runtime.thread) {
160
153
  t12 = ThreadClient({ runtime: runtime.thread });
161
- $[37] = runtime.thread;
162
- $[38] = t12;
163
- } else t12 = $[38];
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
- //#region src/runtime/sdkIdentity.d.ts
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","names":[],"sources":["../../src/runtime/sdkIdentity.ts"],"mappings":";;cAEa,YAAY"}
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"}
@@ -1,7 +1,7 @@
1
1
  //#region src/runtime/sdkIdentity.ts
2
2
  const AI_SDK_SDK = {
3
3
  name: "@assistant-ui/ai-sdk",
4
- version: "0.0.6"
4
+ version: "0.0.8"
5
5
  };
6
6
  //#endregion
7
7
  export { AI_SDK_SDK };