@assistant-ui/react-ai-sdk 1.3.23 → 1.3.26

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 (45) hide show
  1. package/README.md +14 -40
  2. package/dist/frontendTools.d.ts +2 -6
  3. package/dist/frontendTools.d.ts.map +1 -1
  4. package/dist/frontendTools.js +35 -3
  5. package/dist/frontendTools.js.map +1 -1
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/modelContentEnvelope.d.ts +14 -0
  11. package/dist/modelContentEnvelope.d.ts.map +1 -0
  12. package/dist/modelContentEnvelope.js +20 -0
  13. package/dist/modelContentEnvelope.js.map +1 -0
  14. package/dist/ui/resumable.d.ts +20 -0
  15. package/dist/ui/resumable.d.ts.map +1 -0
  16. package/dist/ui/resumable.js +25 -0
  17. package/dist/ui/resumable.js.map +1 -0
  18. package/dist/ui/use-chat/AssistantChatTransport.d.ts +7 -1
  19. package/dist/ui/use-chat/AssistantChatTransport.d.ts.map +1 -1
  20. package/dist/ui/use-chat/AssistantChatTransport.js +73 -2
  21. package/dist/ui/use-chat/AssistantChatTransport.js.map +1 -1
  22. package/dist/ui/use-chat/useAISDKRuntime.d.ts +17 -2
  23. package/dist/ui/use-chat/useAISDKRuntime.d.ts.map +1 -1
  24. package/dist/ui/use-chat/useAISDKRuntime.js +12 -2
  25. package/dist/ui/use-chat/useAISDKRuntime.js.map +1 -1
  26. package/dist/ui/use-chat/useChatRuntime.d.ts +2 -0
  27. package/dist/ui/use-chat/useChatRuntime.d.ts.map +1 -1
  28. package/dist/ui/use-chat/useChatRuntime.js +31 -1
  29. package/dist/ui/use-chat/useChatRuntime.js.map +1 -1
  30. package/dist/ui/utils/convertMessage.d.ts +4 -0
  31. package/dist/ui/utils/convertMessage.d.ts.map +1 -1
  32. package/dist/ui/utils/convertMessage.js +100 -5
  33. package/dist/ui/utils/convertMessage.js.map +1 -1
  34. package/package.json +4 -4
  35. package/src/frontendTools.test.ts +128 -0
  36. package/src/frontendTools.ts +41 -6
  37. package/src/index.ts +8 -0
  38. package/src/modelContentEnvelope.ts +39 -0
  39. package/src/ui/resumable.ts +42 -0
  40. package/src/ui/use-chat/AssistantChatTransport.ts +104 -3
  41. package/src/ui/use-chat/useAISDKRuntime.test.ts +50 -0
  42. package/src/ui/use-chat/useAISDKRuntime.ts +34 -1
  43. package/src/ui/use-chat/useChatRuntime.ts +38 -0
  44. package/src/ui/utils/convertMessage.test.ts +359 -0
  45. package/src/ui/utils/convertMessage.ts +125 -16
package/README.md CHANGED
@@ -1,58 +1,32 @@
1
1
  # `@assistant-ui/react-ai-sdk`
2
2
 
3
- Vercel AI SDK integration for `@assistant-ui/react`.
3
+ [Vercel AI SDK](https://sdk.vercel.ai) v6 integration for `@assistant-ui/react`. Wraps the AI SDK chat in an assistant-ui runtime and forwards system messages and frontend tools through `AssistantChatTransport`.
4
4
 
5
- ## Features
5
+ ## Installation
6
6
 
7
- - Seamless integration with Vercel AI SDK v6
8
- - Automatic system message and frontend tools forwarding via `AssistantChatTransport`
9
- - Support for custom transport configuration
7
+ ```bash
8
+ npm install @assistant-ui/react @assistant-ui/react-ai-sdk
9
+ ```
10
10
 
11
11
  ## Usage
12
12
 
13
- ### Basic Setup
13
+ ```tsx
14
+ "use client";
14
15
 
15
- ```typescript
16
- import { useChatRuntime } from '@assistant-ui/react-ai-sdk';
17
- import { AssistantRuntimeProvider } from '@assistant-ui/react';
16
+ import { AssistantRuntimeProvider } from "@assistant-ui/react";
17
+ import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
18
+ import { Thread } from "@/components/assistant-ui/thread";
18
19
 
19
- function App() {
20
- // By default, uses AssistantChatTransport which forwards system messages and tools
20
+ export function Chat() {
21
21
  const runtime = useChatRuntime();
22
-
23
22
  return (
24
23
  <AssistantRuntimeProvider runtime={runtime}>
25
- {/* Your assistant-ui components */}
24
+ <Thread />
26
25
  </AssistantRuntimeProvider>
27
26
  );
28
27
  }
29
28
  ```
30
29
 
31
- ### Custom Transport
32
-
33
- When you need to customize the transport configuration:
34
-
35
- ```typescript
36
- import { DefaultChatTransport } from "ai";
37
- import { AssistantChatTransport } from "@assistant-ui/react-ai-sdk";
38
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
39
-
40
- // Custom API URL while keeping system/tools forwarding
41
- const runtime = useChatRuntime({
42
- transport: new AssistantChatTransport({
43
- api: "/my-custom-api/chat",
44
- }),
45
- });
46
-
47
- // Or disable system/tools forwarding entirely
48
- const runtime = useChatRuntime({
49
- transport: new DefaultChatTransport(),
50
- });
51
- ```
52
-
53
- **Important:** When customizing the API URL, you must explicitly use `AssistantChatTransport` to keep frontend system messages and tools forwarding.
54
-
55
- ## AssistantChatTransport vs DefaultChatTransport
30
+ `useChatRuntime` defaults to `AssistantChatTransport`, which forwards frontend system messages and tool definitions to your backend. To customize the API URL, the cache, or other transport settings, pass a configured `AssistantChatTransport` to keep that forwarding behavior; pass `DefaultChatTransport` to opt out.
56
31
 
57
- - **AssistantChatTransport** (default): Automatically forwards system messages and frontend tools from the assistant-ui context to your backend API
58
- - **DefaultChatTransport**: Standard AI SDK transport without automatic forwarding
32
+ Full reference at [assistant-ui.com/docs/runtimes/ai-sdk](https://www.assistant-ui.com/docs/runtimes/ai-sdk).
@@ -1,11 +1,7 @@
1
+ import { type ToolSet } from "ai";
1
2
  import type { JSONSchema7 } from "json-schema";
2
3
  export declare const frontendTools: (tools: Record<string, {
3
4
  description?: string;
4
5
  parameters: JSONSchema7;
5
- }>) => {
6
- [k: string]: {
7
- inputSchema: import("ai").Schema<unknown>;
8
- description?: string;
9
- };
10
- };
6
+ }>) => ToolSet;
11
7
  //# sourceMappingURL=frontendTools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontendTools.d.ts","sourceRoot":"","sources":["../src/frontendTools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,eAAO,MAAM,aAAa,GACxB,OAAO,MAAM,CAAC,MAAM,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,WAAW,CAAA;CAAE,CAAC;;;;;CAUvE,CAAC"}
1
+ {"version":3,"file":"frontendTools.d.ts","sourceRoot":"","sources":["../src/frontendTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAoC/C,eAAO,MAAM,aAAa,GACxB,OAAO,MAAM,CAAC,MAAM,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,WAAW,CAAA;CAAE,CAAC,KACvE,OAUW,CAAC"}
@@ -1,9 +1,41 @@
1
1
  import { jsonSchema } from "ai";
2
- export const frontendTools = (tools) => Object.fromEntries(Object.entries(tools).map(([name, tool]) => [
2
+ import { unwrapModelContentEnvelope } from "./modelContentEnvelope.js";
3
+ const toAISDKContent = (parts) => ({
4
+ type: "content",
5
+ value: parts.map((part) => {
6
+ if (part.type === "text") {
7
+ return { type: "text", text: part.text };
8
+ }
9
+ const isImage = part.mediaType.startsWith("image/");
10
+ return isImage
11
+ ? {
12
+ type: "image-data",
13
+ data: part.data,
14
+ mediaType: part.mediaType,
15
+ }
16
+ : {
17
+ type: "file-data",
18
+ data: part.data,
19
+ mediaType: part.mediaType,
20
+ ...(part.filename !== undefined && { filename: part.filename }),
21
+ };
22
+ }),
23
+ });
24
+ const defaultToModelOutput = ({ output }) => {
25
+ const { modelContent } = unwrapModelContentEnvelope(output);
26
+ if (modelContent !== undefined) {
27
+ return toAISDKContent(modelContent);
28
+ }
29
+ return typeof output === "string"
30
+ ? { type: "text", value: output }
31
+ : { type: "json", value: (output ?? null) };
32
+ };
33
+ export const frontendTools = (tools) => Object.fromEntries(Object.entries(tools).map(([name, t]) => [
3
34
  name,
4
35
  {
5
- ...(tool.description ? { description: tool.description } : undefined),
6
- inputSchema: jsonSchema(tool.parameters),
36
+ ...(t.description !== undefined && { description: t.description }),
37
+ inputSchema: jsonSchema(t.parameters),
38
+ toModelOutput: defaultToModelOutput,
7
39
  },
8
40
  ]));
9
41
  //# sourceMappingURL=frontendTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontendTools.js","sourceRoot":"","sources":["../src/frontendTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAGhC,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAwE,EACxE,EAAE,CACF,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IAC1C,IAAI;IACJ;QACE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;KACzC;CACF,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"frontendTools.js","sourceRoot":"","sources":["../src/frontendTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgB,MAAM,IAAI,CAAC;AAG9C,OAAO,EAAE,0BAA0B,EAAE,kCAA+B;AAEpE,MAAM,cAAc,GAAG,CAAC,KAAsC,EAAE,EAAE,CAAC,CAAC;IAClE,IAAI,EAAE,SAAkB;IACxB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpD,OAAO,OAAO;YACZ,CAAC,CAAC;gBACE,IAAI,EAAE,YAAqB;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B;YACH,CAAC,CAAC;gBACE,IAAI,EAAE,WAAoB;gBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChE,CAAC;IACR,CAAC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,EAAE,MAAM,EAAuB,EAAE,EAAE;IAC/D,MAAM,EAAE,YAAY,EAAE,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,OAAO,MAAM,KAAK,QAAQ;QAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,KAAK,EAAE,MAAM,EAAE;QAC1C,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,KAAK,EAAE,CAAC,MAAM,IAAI,IAAI,CAAQ,EAAE,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAwE,EAC/D,EAAE,CACX,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IACvC,IAAI;IACJ;QACE,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAClE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QACrC,aAAa,EAAE,oBAAoB;KACpC;CACF,CAAC,CACQ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,8 @@ export { useAISDKRuntime } from "./ui/use-chat/useAISDKRuntime.js";
4
4
  export { useChatRuntime } from "./ui/use-chat/useChatRuntime.js";
5
5
  export type { UseChatRuntimeOptions } from "./ui/use-chat/useChatRuntime.js";
6
6
  export { AssistantChatTransport } from "./ui/use-chat/AssistantChatTransport.js";
7
+ export { RESUMABLE_STREAM_ID_HEADER, createResumableSessionStorage, } from "./ui/resumable.js";
8
+ export type { AssistantChatResumableOptions, ResumableClientStorage, } from "./ui/resumable.js";
7
9
  export { frontendTools } from "./frontendTools.js";
8
10
  export { injectQuoteContext } from "./injectQuoteContext.js";
9
11
  export type { ThreadTokenUsage, TokenUsageExtractableMessage } from "./usage.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,yCAAsC;AAChE,OAAO,EAAE,cAAc,EAAE,wCAAqC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,wCAAqC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,gDAA6C;AAC9E,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAChD,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAC1D,YAAY,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,mBAAgB;AAC9E,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,mBAAgB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,yCAAsC;AAChE,OAAO,EAAE,cAAc,EAAE,wCAAqC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,wCAAqC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,gDAA6C;AAC9E,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,0BAAuB;AACxB,YAAY,EACV,6BAA6B,EAC7B,sBAAsB,GACvB,0BAAuB;AACxB,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAChD,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAC1D,YAAY,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,mBAAgB;AAC9E,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,mBAAgB"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  export { useAISDKRuntime } from "./ui/use-chat/useAISDKRuntime.js";
4
4
  export { useChatRuntime } from "./ui/use-chat/useChatRuntime.js";
5
5
  export { AssistantChatTransport } from "./ui/use-chat/AssistantChatTransport.js";
6
+ export { RESUMABLE_STREAM_ID_HEADER, createResumableSessionStorage, } from "./ui/resumable.js";
6
7
  export { frontendTools } from "./frontendTools.js";
7
8
  export { injectQuoteContext } from "./injectQuoteContext.js";
8
9
  export { getThreadMessageTokenUsage, useThreadTokenUsage } from "./usage.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,kDAAkD;AAElD,OAAO,EAAE,eAAe,EAAE,yCAAsC;AAChE,OAAO,EAAE,cAAc,EAAE,wCAAqC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,gDAA6C;AAC9E,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAChD,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAE1D,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,mBAAgB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,kDAAkD;AAElD,OAAO,EAAE,eAAe,EAAE,yCAAsC;AAChE,OAAO,EAAE,cAAc,EAAE,wCAAqC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,gDAA6C;AAC9E,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,0BAAuB;AAKxB,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAChD,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAE1D,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,mBAAgB"}
@@ -0,0 +1,14 @@
1
+ import type { ToolModelContentPart } from "assistant-stream";
2
+ declare const ENVELOPE_KEY = "__aui_modelContent";
3
+ export type ModelContentEnvelope<TResult = unknown> = {
4
+ readonly [ENVELOPE_KEY]: readonly ToolModelContentPart[];
5
+ readonly value: TResult;
6
+ };
7
+ export declare function isModelContentEnvelope(value: unknown): value is ModelContentEnvelope;
8
+ export declare function wrapModelContentEnvelope<TResult>(result: TResult, modelContent: readonly ToolModelContentPart[]): ModelContentEnvelope<TResult>;
9
+ export declare function unwrapModelContentEnvelope(output: unknown): {
10
+ result: unknown;
11
+ modelContent?: readonly ToolModelContentPart[];
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=modelContentEnvelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelContentEnvelope.d.ts","sourceRoot":"","sources":["../src/modelContentEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,QAAA,MAAM,YAAY,uBAAuB,CAAC;AAE1C,MAAM,MAAM,oBAAoB,CAAC,OAAO,GAAG,OAAO,IAAI;IACpD,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oBAAoB,CAO/B;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAC9C,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,SAAS,oBAAoB,EAAE,GAC5C,oBAAoB,CAAC,OAAO,CAAC,CAE/B;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAChD,CAQA"}
@@ -0,0 +1,20 @@
1
+ const ENVELOPE_KEY = "__aui_modelContent";
2
+ export function isModelContentEnvelope(value) {
3
+ return (value != null &&
4
+ typeof value === "object" &&
5
+ ENVELOPE_KEY in value &&
6
+ Array.isArray(value[ENVELOPE_KEY]));
7
+ }
8
+ export function wrapModelContentEnvelope(result, modelContent) {
9
+ return { [ENVELOPE_KEY]: modelContent, value: result };
10
+ }
11
+ export function unwrapModelContentEnvelope(output) {
12
+ if (isModelContentEnvelope(output)) {
13
+ return {
14
+ result: output.value,
15
+ modelContent: output[ENVELOPE_KEY],
16
+ };
17
+ }
18
+ return { result: output };
19
+ }
20
+ //# sourceMappingURL=modelContentEnvelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelContentEnvelope.js","sourceRoot":"","sources":["../src/modelContentEnvelope.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAO1C,MAAM,UAAU,sBAAsB,CACpC,KAAc;IAEd,OAAO,CACL,KAAK,IAAI,IAAI;QACb,OAAO,KAAK,KAAK,QAAQ;QACzB,YAAY,IAAI,KAAK;QACrB,KAAK,CAAC,OAAO,CAAE,KAAiC,CAAC,YAAY,CAAC,CAAC,CAChE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAe,EACf,YAA6C;IAE7C,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAe;IAIxD,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,KAAK;YACpB,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;SACnC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,20 @@
1
+ export { RESUMABLE_STREAM_ID_HEADER } from "assistant-stream/resumable";
2
+ export type ResumableClientStorage = {
3
+ getStreamId(): string | null;
4
+ setStreamId(id: string): void;
5
+ clear(): void;
6
+ };
7
+ /** `sessionStorage`-backed storage for the pending resumable stream id. */
8
+ export declare function createResumableSessionStorage(options?: {
9
+ key?: string;
10
+ }): ResumableClientStorage;
11
+ export type AssistantChatResumableOptions = {
12
+ storage: ResumableClientStorage;
13
+ resumeApi: string | ((streamId: string) => string);
14
+ /**
15
+ * Defaults to scanning for the AI SDK UIMessageStream `finish` marker.
16
+ * Cancellation never invokes this callback, only natural completion does.
17
+ */
18
+ isFinishEvent?: (chunk: Uint8Array, accumulator: string) => boolean;
19
+ };
20
+ //# sourceMappingURL=resumable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resumable.d.ts","sourceRoot":"","sources":["../../src/ui/resumable.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAIxE,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,sBAAsB,CAgBzB;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACnD;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;CACrE,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use client";
2
+ export { RESUMABLE_STREAM_ID_HEADER } from "assistant-stream/resumable";
3
+ const DEFAULT_STORAGE_KEY = "aui-resumable-stream-id";
4
+ /** `sessionStorage`-backed storage for the pending resumable stream id. */
5
+ export function createResumableSessionStorage(options) {
6
+ const key = options?.key ?? DEFAULT_STORAGE_KEY;
7
+ return {
8
+ getStreamId() {
9
+ if (typeof window === "undefined")
10
+ return null;
11
+ return window.sessionStorage.getItem(key);
12
+ },
13
+ setStreamId(id) {
14
+ if (typeof window === "undefined")
15
+ return;
16
+ window.sessionStorage.setItem(key, id);
17
+ },
18
+ clear() {
19
+ if (typeof window === "undefined")
20
+ return;
21
+ window.sessionStorage.removeItem(key);
22
+ },
23
+ };
24
+ }
25
+ //# sourceMappingURL=resumable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resumable.js","sourceRoot":"","sources":["../../src/ui/resumable.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAQtD,2EAA2E;AAC3E,MAAM,UAAU,6BAA6B,CAAC,OAE7C;IACC,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,mBAAmB,CAAC;IAChD,OAAO;QACL,WAAW;YACT,IAAI,OAAO,MAAM,KAAK,WAAW;gBAAE,OAAO,IAAI,CAAC;YAC/C,OAAO,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,CAAC,EAAE;YACZ,IAAI,OAAO,MAAM,KAAK,WAAW;gBAAE,OAAO;YAC1C,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,KAAK;YACH,IAAI,OAAO,MAAM,KAAK,WAAW;gBAAE,OAAO;YAC1C,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,11 +1,17 @@
1
1
  import type { AssistantRuntime, ThreadListItemRuntime } from "@assistant-ui/core";
2
2
  import { DefaultChatTransport, type HttpChatTransportInitOptions, type UIMessage } from "ai";
3
+ import { type AssistantChatResumableOptions } from "../resumable.js";
3
4
  type InitializableThreadListItem = Pick<ThreadListItemRuntime, "initialize">;
5
+ export type AssistantChatTransportInitOptions<UI_MESSAGE extends UIMessage> = HttpChatTransportInitOptions<UI_MESSAGE> & {
6
+ resumable?: AssistantChatResumableOptions;
7
+ };
4
8
  export declare class AssistantChatTransport<UI_MESSAGE extends UIMessage> extends DefaultChatTransport<UI_MESSAGE> {
5
9
  private runtime;
6
10
  private getThreadListItem;
7
- constructor(initOptions?: HttpChatTransportInitOptions<UI_MESSAGE>);
11
+ private readonly resumable;
12
+ constructor(initOptions?: AssistantChatTransportInitOptions<UI_MESSAGE>);
8
13
  setRuntime(runtime: AssistantRuntime): void;
14
+ getResumableAdapter(): AssistantChatResumableOptions | undefined;
9
15
  __internal_setGetThreadListItem(getter: () => InitializableThreadListItem | undefined): void;
10
16
  }
11
17
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantChatTransport.d.ts","sourceRoot":"","sources":["../../../src/ui/use-chat/AssistantChatTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,KAAK,4BAA4B,EACjC,KAAK,SAAS,EACf,MAAM,IAAI,CAAC;AAGZ,KAAK,2BAA2B,GAAG,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAE7E,qBAAa,sBAAsB,CACjC,UAAU,SAAS,SAAS,CAC5B,SAAQ,oBAAoB,CAAC,UAAU,CAAC;IACxC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,iBAAiB,CAEX;gBACF,WAAW,CAAC,EAAE,4BAA4B,CAAC,UAAU,CAAC;IAqClE,UAAU,CAAC,OAAO,EAAE,gBAAgB;IAIpC,+BAA+B,CAC7B,MAAM,EAAE,MAAM,2BAA2B,GAAG,SAAS;CAIxD"}
1
+ {"version":3,"file":"AssistantChatTransport.d.ts","sourceRoot":"","sources":["../../../src/ui/use-chat/AssistantChatTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,KAAK,4BAA4B,EACjC,KAAK,SAAS,EACf,MAAM,IAAI,CAAC;AAEZ,OAAO,EAEL,KAAK,6BAA6B,EACnC,wBAAqB;AAEtB,KAAK,2BAA2B,GAAG,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAM7E,MAAM,MAAM,iCAAiC,CAAC,UAAU,SAAS,SAAS,IACxE,4BAA4B,CAAC,UAAU,CAAC,GAAG;IACzC,SAAS,CAAC,EAAE,6BAA6B,CAAC;CAC3C,CAAC;AAEJ,qBAAa,sBAAsB,CACjC,UAAU,SAAS,SAAS,CAC5B,SAAQ,oBAAoB,CAAC,UAAU,CAAC;IACxC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,iBAAiB,CAEX;IACd,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;gBAE1D,WAAW,CAAC,EAAE,iCAAiC,CAAC,UAAU,CAAC;IAkDvE,UAAU,CAAC,OAAO,EAAE,gBAAgB;IAIpC,mBAAmB,IAAI,6BAA6B,GAAG,SAAS;IAIhE,+BAA+B,CAC7B,MAAM,EAAE,MAAM,2BAA2B,GAAG,SAAS;CAIxD"}
@@ -1,11 +1,23 @@
1
1
  import { DefaultChatTransport, } from "ai";
2
2
  import { toToolsJSONSchema } from "assistant-stream";
3
+ import { RESUMABLE_STREAM_ID_HEADER, } from "../resumable.js";
4
+ const FINISH_MARKER = '"type":"finish"';
5
+ const FINISH_BUFFER_LIMIT = 4096;
6
+ const FINISH_BUFFER_TAIL = 1024;
3
7
  export class AssistantChatTransport extends DefaultChatTransport {
4
8
  runtime;
5
9
  getThreadListItem;
10
+ resumable;
6
11
  constructor(initOptions) {
12
+ const { resumable, ...rest } = initOptions ?? {};
13
+ const userFetch = rest.fetch;
14
+ const userPrepareReconnect = rest.prepareReconnectToStreamRequest;
7
15
  super({
8
- ...initOptions,
16
+ ...rest,
17
+ ...(resumable && {
18
+ fetch: wrapFetchWithResumable(resumable, userFetch),
19
+ prepareReconnectToStreamRequest: wrapPrepareReconnect(resumable, userPrepareReconnect),
20
+ }),
9
21
  prepareSendMessagesRequest: async (options) => {
10
22
  const context = this.runtime?.thread.getModelContext();
11
23
  const threadListItem = this.getThreadListItem?.() ?? this.runtime?.threads.mainItem;
@@ -20,7 +32,7 @@ export class AssistantChatTransport extends DefaultChatTransport {
20
32
  ...options?.body,
21
33
  },
22
34
  };
23
- const preparedRequest = await initOptions?.prepareSendMessagesRequest?.(optionsEx);
35
+ const preparedRequest = await rest.prepareSendMessagesRequest?.(optionsEx);
24
36
  return {
25
37
  ...preparedRequest,
26
38
  body: preparedRequest?.body ?? {
@@ -34,12 +46,71 @@ export class AssistantChatTransport extends DefaultChatTransport {
34
46
  };
35
47
  },
36
48
  });
49
+ this.resumable = resumable;
37
50
  }
38
51
  setRuntime(runtime) {
39
52
  this.runtime = runtime;
40
53
  }
54
+ getResumableAdapter() {
55
+ return this.resumable;
56
+ }
41
57
  __internal_setGetThreadListItem(getter) {
42
58
  this.getThreadListItem = getter;
43
59
  }
44
60
  }
61
+ function wrapFetchWithResumable(resumable, userFetch) {
62
+ const baseFetch = userFetch
63
+ ? (input, init) => userFetch(input, init)
64
+ : globalThis.fetch.bind(globalThis);
65
+ return async (input, init) => {
66
+ const res = await baseFetch(input, init);
67
+ const id = res.headers.get(RESUMABLE_STREAM_ID_HEADER);
68
+ if (id)
69
+ resumable.storage.setStreamId(id);
70
+ if (!res.body)
71
+ return res;
72
+ const detectFinish = resumable.isFinishEvent ?? defaultIsFinishEvent;
73
+ // a single decoder is required so multi-byte sequences split across
74
+ // chunks buffer via stream: true rather than getting dropped.
75
+ const decoder = new TextDecoder();
76
+ let accumulator = "";
77
+ const tap = new TransformStream({
78
+ transform(chunk, controller) {
79
+ controller.enqueue(chunk);
80
+ accumulator += decoder.decode(chunk, { stream: true });
81
+ if (detectFinish(chunk, accumulator)) {
82
+ resumable.storage.clear();
83
+ accumulator = "";
84
+ }
85
+ else if (accumulator.length > FINISH_BUFFER_LIMIT) {
86
+ accumulator = accumulator.slice(-FINISH_BUFFER_TAIL);
87
+ }
88
+ },
89
+ });
90
+ return new Response(res.body.pipeThrough(tap), {
91
+ status: res.status,
92
+ statusText: res.statusText,
93
+ headers: res.headers,
94
+ });
95
+ };
96
+ }
97
+ function defaultIsFinishEvent(_chunk, accumulator) {
98
+ return accumulator.includes(FINISH_MARKER);
99
+ }
100
+ function wrapPrepareReconnect(resumable, userPrepareReconnect) {
101
+ return async (options) => {
102
+ const streamId = resumable.storage.getStreamId();
103
+ if (!streamId) {
104
+ throw new Error("AssistantChatTransport: no resumable stream id available; nothing to resume");
105
+ }
106
+ const api = typeof resumable.resumeApi === "function"
107
+ ? resumable.resumeApi(streamId)
108
+ : resumable.resumeApi;
109
+ const userPrepared = await userPrepareReconnect?.({ ...options, api });
110
+ return {
111
+ ...userPrepared,
112
+ api: userPrepared?.api ?? api,
113
+ };
114
+ };
115
+ }
45
116
  //# sourceMappingURL=AssistantChatTransport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantChatTransport.js","sourceRoot":"","sources":["../../../src/ui/use-chat/AssistantChatTransport.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,oBAAoB,GAGrB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,MAAM,OAAO,sBAEX,SAAQ,oBAAgC;IAChC,OAAO,CAA+B;IACtC,iBAAiB,CAEX;IACd,YAAY,WAAsD;QAChE,KAAK,CAAC;YACJ,GAAG,WAAW;YACd,0BAA0B,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;gBACvD,MAAM,cAAc,GAClB,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;gBAC/D,MAAM,EAAE,GAAG,CAAC,MAAM,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC;gBAExE,MAAM,SAAS,GAAG;oBAChB,GAAG,OAAO;oBACV,IAAI,EAAE;wBACJ,YAAY,EAAE,OAAO,EAAE,YAAY;wBACnC,MAAM,EAAE,OAAO,EAAE,MAAM;wBACvB,MAAM,EAAE,OAAO,EAAE,MAAM;wBACvB,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;wBAC9C,GAAG,OAAO,EAAE,IAAI;qBACjB;iBACF,CAAC;gBACF,MAAM,eAAe,GACnB,MAAM,WAAW,EAAE,0BAA0B,EAAE,CAAC,SAAS,CAAC,CAAC;gBAE7D,OAAO;oBACL,GAAG,eAAe;oBAClB,IAAI,EAAE,eAAe,EAAE,IAAI,IAAI;wBAC7B,GAAG,SAAS,CAAC,IAAI;wBACjB,EAAE;wBACF,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,QAAQ,EAAE,OAAO,CAAC,eAAe;qBAClC;iBACF,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,OAAyB;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,+BAA+B,CAC7B,MAAqD;QAErD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"AssistantChatTransport.js","sourceRoot":"","sources":["../../../src/ui/use-chat/AssistantChatTransport.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { UIMessage, useChat, CreateUIMessage } from "@ai-sdk/react";
2
- import type { ExternalStoreAdapter, ThreadHistoryAdapter, AssistantRuntime, AppendMessage } from "@assistant-ui/core";
2
+ import type { ExternalStoreAdapter, ThreadHistoryAdapter, AssistantRuntime, ThreadSuggestion, AppendMessage } from "@assistant-ui/core";
3
3
  export type CustomToCreateMessageFunction = <UI_MESSAGE extends UIMessage = UIMessage>(message: AppendMessage) => CreateUIMessage<UI_MESSAGE>;
4
4
  export type AISDKRuntimeAdapter = {
5
5
  adapters?: (NonNullable<ExternalStoreAdapter["adapters"]> & {
@@ -15,6 +15,21 @@ export type AISDKRuntimeAdapter = {
15
15
  * @default true
16
16
  */
17
17
  cancelPendingToolCallsOnSend?: boolean | undefined;
18
+ /**
19
+ * Called when `runtime.thread.resumeRun(config)` is invoked.
20
+ *
21
+ * When omitted, `resumeRun` throws `"Runtime does not support resuming runs."`.
22
+ * Provide this to bridge resume invocations into a custom replay channel
23
+ * (for example, an SSE reconnect endpoint keyed by turn id).
24
+ */
25
+ onResume?: ExternalStoreAdapter["onResume"];
26
+ /**
27
+ * Follow up suggestions to surface on the thread. Use this to drive
28
+ * dynamic suggestions from application state, tool results, or backend
29
+ * responses; flows into `thread.suggestions` and is rendered by
30
+ * components that read it (such as the shadcn `ThreadFollowupSuggestions`).
31
+ */
32
+ suggestions?: readonly ThreadSuggestion[] | undefined;
18
33
  };
19
- export declare const useAISDKRuntime: <UI_MESSAGE extends UIMessage = UIMessage>(chatHelpers: ReturnType<typeof useChat<UI_MESSAGE>>, { adapters, toCreateMessage: customToCreateMessage, cancelPendingToolCallsOnSend, }?: AISDKRuntimeAdapter) => AssistantRuntime;
34
+ export declare const useAISDKRuntime: <UI_MESSAGE extends UIMessage = UIMessage>(chatHelpers: ReturnType<typeof useChat<UI_MESSAGE>>, { adapters, toCreateMessage: customToCreateMessage, cancelPendingToolCallsOnSend, onResume, suggestions, }?: AISDKRuntimeAdapter) => AssistantRuntime;
20
35
  //# sourceMappingURL=useAISDKRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAISDKRuntime.d.ts","sourceRoot":"","sources":["../../../src/ui/use-chat/useAISDKRuntime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAQzE,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAKhB,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAiB5B,MAAM,MAAM,6BAA6B,GAAG,CAC1C,UAAU,SAAS,SAAS,GAAG,SAAS,EAExC,OAAO,EAAE,aAAa,KACnB,eAAe,CAAC,UAAU,CAAC,CAAC;AAYjC,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EACL,CAAC,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,GAAG;QAC/C,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;KAC5C,CAAC,GACF,SAAS,CAAC;IACd,eAAe,CAAC,EAAE,6BAA6B,CAAC;IAChD;;;;;;;OAOG;IACH,4BAA4B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,SAAS,SAAS,GAAG,SAAS,EACtE,aAAa,UAAU,CAAC,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,EACnD,sFAIG,mBAAwB,qBA4P5B,CAAC"}
1
+ {"version":3,"file":"useAISDKRuntime.d.ts","sourceRoot":"","sources":["../../../src/ui/use-chat/useAISDKRuntime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAQzE,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAEhB,gBAAgB,EAIhB,aAAa,EAGd,MAAM,oBAAoB,CAAC;AAmB5B,MAAM,MAAM,6BAA6B,GAAG,CAC1C,UAAU,SAAS,SAAS,GAAG,SAAS,EAExC,OAAO,EAAE,aAAa,KACnB,eAAe,CAAC,UAAU,CAAC,CAAC;AAYjC,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EACL,CAAC,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,GAAG;QAC/C,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;KAC5C,CAAC,GACF,SAAS,CAAC;IACd,eAAe,CAAC,EAAE,6BAA6B,CAAC;IAChD;;;;;;;OAOG;IACH,4BAA4B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnD;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC5C;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,gBAAgB,EAAE,GAAG,SAAS,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,SAAS,SAAS,GAAG,SAAS,EACtE,aAAa,UAAU,CAAC,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,EACnD,6GAMG,mBAAwB,qBAwQ5B,CAAC"}
@@ -8,6 +8,7 @@ import { toCreateMessage } from "../utils/toCreateMessage.js";
8
8
  import { vercelAttachmentAdapter } from "../utils/vercelAttachmentAdapter.js";
9
9
  import { getVercelAIMessages } from "../getVercelAIMessages.js";
10
10
  import { AISDKMessageConverter } from "../utils/convertMessage.js";
11
+ import { wrapModelContentEnvelope } from "../../modelContentEnvelope.js";
11
12
  import { aiSDKV6FormatAdapter, } from "../adapters/aiSDKFormatAdapter.js";
12
13
  import { useExternalHistory, toExportedMessageRepository, } from "./useExternalHistory.js";
13
14
  import { useStreamingTiming } from "./useStreamingTiming.js";
@@ -16,10 +17,12 @@ const toUIMessage = (createMessage, fallbackRole) => ({
16
17
  id: createMessage.id ?? generateId(),
17
18
  role: createMessage.role ?? fallbackRole,
18
19
  });
19
- export const useAISDKRuntime = (chatHelpers, { adapters, toCreateMessage: customToCreateMessage, cancelPendingToolCallsOnSend = true, } = {}) => {
20
+ export const useAISDKRuntime = (chatHelpers, { adapters, toCreateMessage: customToCreateMessage, cancelPendingToolCallsOnSend = true, onResume, suggestions, } = {}) => {
20
21
  const contextAdapters = useRuntimeAdapters();
21
22
  const [toolStatuses, setToolStatuses] = useState({});
22
23
  const toolArgsKeyOrderCacheRef = useRef(new Map());
24
+ const toolLastInputCacheRef = useRef(new Map());
25
+ const mcpAppMetadataCacheRef = useRef(new Map());
23
26
  const lastRunConfigRef = useRef(undefined);
24
27
  const hasExecutingTools = Object.values(toolStatuses).some((s) => s?.type === "executing");
25
28
  const isRunning = chatHelpers.status === "submitted" ||
@@ -33,6 +36,8 @@ export const useAISDKRuntime = (chatHelpers, { adapters, toCreateMessage: custom
33
36
  toolStatuses,
34
37
  messageTiming,
35
38
  toolArgsKeyOrderCache: toolArgsKeyOrderCacheRef.current,
39
+ toolLastInputCache: toolLastInputCacheRef.current,
40
+ mcpAppMetadataCache: mcpAppMetadataCacheRef.current,
36
41
  ...(chatHelpers.error && { error: chatHelpers.error.message }),
37
42
  }), [toolStatuses, messageTiming, chatHelpers.error]),
38
43
  });
@@ -49,10 +54,13 @@ export const useAISDKRuntime = (chatHelpers, { adapters, toCreateMessage: custom
49
54
  getTools: () => runtimeRef.current.thread.getModelContext().tools,
50
55
  onResult: (command) => {
51
56
  if (command.type === "add-tool-result") {
57
+ const output = command.modelContent !== undefined
58
+ ? wrapModelContentEnvelope(command.result, command.modelContent)
59
+ : command.result;
52
60
  chatHelpers.addToolResult({
53
61
  tool: command.toolName,
54
62
  toolCallId: command.toolCallId,
55
- output: command.result,
63
+ output,
56
64
  options: { metadata: lastRunConfigRef.current },
57
65
  });
58
66
  }
@@ -193,6 +201,8 @@ export const useAISDKRuntime = (chatHelpers, { adapters, toCreateMessage: custom
193
201
  }
194
202
  },
195
203
  onResumeToolCall: (options) => toolInvocations.resume(options.toolCallId, options.payload),
204
+ ...(onResume && { onResume }),
205
+ ...(suggestions && { suggestions }),
196
206
  adapters: {
197
207
  attachments: vercelAttachmentAdapter,
198
208
  ...contextAdapters,
@@ -1 +1 @@
1
- {"version":3,"file":"useAISDKRuntime.js","sourceRoot":"","sources":["../../../src/ui/use-chat/useAISDKRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAISDKRuntime.js","sourceRoot":"","sources":["../../../src/ui/use-chat/useAISDKRuntime.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAclC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,uCAAoC;AACjE,OAAO,EAAE,eAAe,EAAE,oCAAiC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,4CAAyC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,kCAA+B;AAC7D,OAAO,EAAE,qBAAqB,EAAE,mCAAgC;AAChE,OAAO,EAAE,wBAAwB,EAAE,sCAAmC;AACtE,OAAO,EAEL,oBAAoB,GACrB,0CAAuC;AACxC,OAAO,EACL,kBAAkB,EAClB,2BAA2B,GAC5B,gCAA6B;AAC9B,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAQ1D,MAAM,WAAW,GAAG,CAClB,aAA0C,EAC1C,YAAgC,EACpB,EAAE,CACd,CAAC;IACC,GAAG,aAAa;IAChB,EAAE,EAAE,aAAa,CAAC,EAAE,IAAI,UAAU,EAAE;IACpC,IAAI,EAAE,aAAa,CAAC,IAAI,IAAI,YAAY;CACzC,CAAe,CAAC;AAmCnB,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,WAAmD,EACnD,EACE,QAAQ,EACR,eAAe,EAAE,qBAAqB,EACtC,4BAA4B,GAAG,IAAI,EACnC,QAAQ,EACR,WAAW,MACY,EAAE,EAC3B,EAAE;IACF,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAE9C,EAAE,CAAC,CAAC;IACN,MAAM,wBAAwB,GAAG,MAAM,CACrC,IAAI,GAAG,EAAE,CACV,CAAC;IACF,MAAM,qBAAqB,GAAG,MAAM,CAClC,IAAI,GAAG,EAAE,CACV,CAAC;IACF,MAAM,sBAAsB,GAAG,MAAM,CAA8B,IAAI,GAAG,EAAE,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAG,MAAM,CAAwB,SAAS,CAAC,CAAC;IAElE,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,WAAW,CAC/B,CAAC;IACF,MAAM,SAAS,GACb,WAAW,CAAC,MAAM,KAAK,WAAW;QAClC,WAAW,CAAC,MAAM,KAAK,WAAW;QAClC,iBAAiB,CAAC;IAEpB,MAAM,aAAa,GAAG,kBAAkB,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,qBAAqB,CAAC,iBAAiB,CAAC;QACvD,SAAS;QACT,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,QAAQ,EAAE,OAAO,CACf,GAAG,EAAE,CAAC,CAAC;YACL,YAAY;YACZ,aAAa;YACb,qBAAqB,EAAE,wBAAwB,CAAC,OAAO;YACvD,kBAAkB,EAAE,qBAAqB,CAAC,OAAO;YACjD,mBAAmB,EAAE,sBAAsB,CAAC,OAAO;YACnD,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SAC/D,CAAC,EACF,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,CACjD;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACnC,IAAI,OAAO;YACT,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,MAAM,eAAe,GAAG,kBAAkB,CAAC;QACzC,KAAK,EAAE;YACL,QAAQ;YACR,SAAS;SACV;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,KAAK;QACjE,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;YACpB,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACvC,MAAM,MAAM,GACV,OAAO,CAAC,YAAY,KAAK,SAAS;oBAChC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC;oBAChE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;gBACrB,WAAW,CAAC,aAAa,CAAC;oBACxB,IAAI,EAAE,OAAO,CAAC,QAAQ;oBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM;oBACN,OAAO,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE;iBAChD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,kBAAkB,CAClC,UAAU,EACV,QAAQ,EAAE,OAAO,IAAI,eAAe,EAAE,OAAO,EAC7C,qBAAqB,CAAC,gBAEF,EACpB,oBAGC,EACD,CAAC,QAAQ,EAAE,EAAE;QACX,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC,CACF,CAAC;IAEF,MAAM,wBAAwB,GAAG,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,4BAA4B;YAAE,OAAO;QAE1C,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;QAE9B,2GAA2G;QAC3G,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,EAAE;YACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,WAAW,EAAE,IAAI,KAAK,WAAW;gBAAE,OAAO,QAAQ,CAAC;YAEvD,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACrC,IAAI,IAAI,CAAC,KAAK,KAAK,kBAAkB,IAAI,IAAI,CAAC,KAAK,KAAK,cAAc;oBACpE,OAAO,IAAI,CAAC;gBAEd,UAAU,GAAG,IAAI,CAAC;gBAClB,OAAO;oBACL,GAAG,IAAI;oBACP,KAAK,EAAE,cAAuB;oBAC9B,SAAS,EAAE,oDAAoD;iBAChE,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU;gBAAE,OAAO,QAAQ,CAAC;YACjC,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,uBAAuB,CAAC;QACtC,SAAS;QACT,QAAQ;QACR,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,CACxB,WAAW,CAAC,WAAW,CACrB,QAAQ;aACL,GAAG,CAAC,CAAA,mBAA+B,CAAA,CAAC;aACpC,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,EAAE,CACV;QACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CACrB,WAAW,CAAC,WAAW,CACrB,QAAQ;aACL,GAAG,CAAC,CAAA,mBAA+B,CAAA,CAAC;aACpC,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,EAAE,CACV;QACH,qBAAqB,EAAE,GAAwC,EAAE;YAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAEpD,MAAM,gBAAgB,GAAoC,EAAE,CAAC;YAC7D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;YAEjD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACrC,MAAM,aAAa,GAAG,wBAAwB,CAC5C,IAAI,CAAC,OAAO,CACb,CAAC;gBACF,IAAI,QAAQ,GACV,IAAI,CAAC,QAAQ,IAAI,IAAI;oBACnB,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;oBACtD,CAAC,CAAC,IAAI,CAAC;gBACX,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;oBACzC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;oBAC3D,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,YAAyB,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,cAAc,CAAC,GAAG,CAChB,IAAI,CAAC,OAAO,CAAC,EAAE,EACf,oBAAoB,CAAC,KAAK,CACxB,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAe,CACtD,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAwC;gBAClD,QAAQ,EAAE,gBAAgB;aAC3B,CAAC;YAEF,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC;YACzE,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,mBAAmB,EAAE,CAAC,IAAyC,EAAE,EAAE;YACjE,+DAA+D;YAC/D,MAAM,YAAY,GAAG,2BAA2B,CAC9C,qBAAqB,CAAC,gBAAgB,EACtC,IAAI,CACL,CAAC;YAEF,6CAA6C;YAC7C,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACjD,CAAC;QACD,QAAQ,EAAE,KAAK,IAAI,EAAE;YACnB,WAAW,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QACD,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACvB,MAAM,aAAa,GAAG,CACpB,qBAAqB,IAAI,eAAe,CACzC,CAAa,OAAO,CAAC,CAAC;YAEvB,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;gBACnD,WAAW,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBACnC,GAAG,OAAO;oBACV,WAAW,CAAa,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;iBACrD,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;YAC7C,MAAM,wBAAwB,EAAE,CAAC;YACjC,MAAM,WAAW,CAAC,WAAW,CAAC,aAAa,EAAE;gBAC3C,QAAQ,EAAE,OAAO,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACxB,MAAM,aAAa,GAAG,CACpB,qBAAqB,IAAI,eAAe,CACzC,CAAa,OAAO,CAAC,CAAC;YAEvB,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;gBACnD,WAAW,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBACnC,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;oBAChD,WAAW,CAAa,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;iBACrD,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;YAC7C,WAAW,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAClC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAC9C,CAAC;YACF,MAAM,WAAW,CAAC,WAAW,CAAC,aAAa,EAAE;gBAC3C,QAAQ,EAAE,OAAO,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,QAAQ,EAAE,KAAK,EAAE,QAAuB,EAAE,MAAM,EAAE,EAAE;YAClD,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;YAC5C,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACvE,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAErC,MAAM,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,eAAe,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;YACnD,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC;YACvD,IAAI,OAAO,EAAE,CAAC;gBACZ,WAAW,CAAC,aAAa,CAAC;oBACxB,KAAK,EAAE,cAAc;oBACrB,IAAI,EAAE,UAAU;oBAChB,UAAU;oBACV,SAAS,EACP,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;oBAC9D,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,aAAa,CAAC;oBACxB,KAAK,EAAE,kBAAkB;oBACzB,IAAI,EAAE,UAAU;oBAChB,UAAU;oBACV,MAAM,EAAE,MAAM;oBACd,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC5B,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC;QAC7D,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;QACnC,QAAQ,EAAE;YACR,WAAW,EAAE,uBAAuB;YACpC,GAAG,eAAe;YAClB,GAAG,QAAQ;SACZ;QACD,SAAS;KACV,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -7,6 +7,8 @@ export type UseChatRuntimeOptions<UI_MESSAGE extends UIMessage = UIMessage> = Ch
7
7
  cloud?: AssistantCloud | undefined;
8
8
  adapters?: AISDKRuntimeAdapter["adapters"] | undefined;
9
9
  toCreateMessage?: CustomToCreateMessageFunction;
10
+ onResume?: AISDKRuntimeAdapter["onResume"];
11
+ suggestions?: AISDKRuntimeAdapter["suggestions"];
10
12
  };
11
13
  export declare const useChatRuntime: <UI_MESSAGE extends UIMessage = UIMessage>({ cloud, ...options }?: UseChatRuntimeOptions<UI_MESSAGE>) => AssistantRuntime;
12
14
  //# sourceMappingURL=useChatRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useChatRuntime.d.ts","sourceRoot":"","sources":["../../../src/ui/use-chat/useChatRuntime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM3D,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EACnC,6BAA0B;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,IAAI,CAAC;AAIlD,MAAM,MAAM,qBAAqB,CAAC,UAAU,SAAS,SAAS,GAAG,SAAS,IACxE,QAAQ,CAAC,UAAU,CAAC,GAAG;IACrB,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IACvD,eAAe,CAAC,EAAE,6BAA6B,CAAC;CACjD,CAAC;AAsEJ,eAAO,MAAM,cAAc,GAAI,UAAU,SAAS,SAAS,GAAG,SAAS,EAAE,wBAGtE,qBAAqB,CAAC,UAAU,CAAM,KAAG,gBAU3C,CAAC"}
1
+ {"version":3,"file":"useChatRuntime.d.ts","sourceRoot":"","sources":["../../../src/ui/use-chat/useChatRuntime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM3D,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EACnC,6BAA0B;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,IAAI,CAAC;AAKlD,MAAM,MAAM,qBAAqB,CAAC,UAAU,SAAS,SAAS,GAAG,SAAS,IACxE,QAAQ,CAAC,UAAU,CAAC,GAAG;IACrB,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IACvD,eAAe,CAAC,EAAE,6BAA6B,CAAC;IAChD,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;CAClD,CAAC;AAyGJ,eAAO,MAAM,cAAc,GAAI,UAAU,SAAS,SAAS,GAAG,SAAS,EAAE,wBAGtE,qBAAqB,CAAC,UAAU,CAAM,KAAG,gBAU3C,CAAC"}