@assistant-ui/react-ai-sdk 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/use-chat/AssistantChatTransport.d.ts.map +1 -1
- package/dist/ui/use-chat/AssistantChatTransport.js +1 -0
- package/dist/ui/use-chat/AssistantChatTransport.js.map +1 -1
- package/dist/ui/use-chat/useAISDKRuntime.d.ts.map +1 -1
- package/dist/ui/use-chat/useAISDKRuntime.js +8 -4
- package/dist/ui/use-chat/useAISDKRuntime.js.map +1 -1
- package/package.json +3 -3
- package/src/ui/use-chat/AssistantChatTransport.tsx +1 -0
- package/src/ui/use-chat/useAISDKRuntime.tsx +8 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantChatTransport.d.ts","sourceRoot":"","sources":["../../../src/ui/use-chat/AssistantChatTransport.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAQ,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAE5B,SAAS,EACV,MAAM,IAAI,CAAC;AAyBZ,qBAAa,sBAAsB,CACjC,UAAU,SAAS,SAAS,CAC5B,SAAQ,oBAAoB,CAAC,UAAU,CAAC;IACxC,OAAO,CAAC,OAAO,CAA+B;gBAClC,WAAW,CAAC,EAAE,4BAA4B,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"AssistantChatTransport.d.ts","sourceRoot":"","sources":["../../../src/ui/use-chat/AssistantChatTransport.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAQ,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAE5B,SAAS,EACV,MAAM,IAAI,CAAC;AAyBZ,qBAAa,sBAAsB,CACjC,UAAU,SAAS,SAAS,CAC5B,SAAQ,oBAAoB,CAAC,UAAU,CAAC;IACxC,OAAO,CAAC,OAAO,CAA+B;gBAClC,WAAW,CAAC,EAAE,4BAA4B,CAAC,UAAU,CAAC;IAgClE,UAAU,CAAC,OAAO,EAAE,gBAAgB;CAGrC"}
|
|
@@ -31,6 +31,7 @@ var AssistantChatTransport = class extends DefaultChatTransport {
|
|
|
31
31
|
const optionsEx = {
|
|
32
32
|
...options,
|
|
33
33
|
body: {
|
|
34
|
+
callSettings: context?.callSettings,
|
|
34
35
|
system: context?.system,
|
|
35
36
|
tools: toAISDKTools(getEnabledTools(context?.tools ?? {})),
|
|
36
37
|
...options?.body
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ui/use-chat/AssistantChatTransport.tsx"],"sourcesContent":["import { AssistantRuntime, Tool } from \"@assistant-ui/react\";\nimport {\n DefaultChatTransport,\n HttpChatTransportInitOptions,\n JSONSchema7,\n UIMessage,\n} from \"ai\";\nimport z from \"zod\";\n\nconst toAISDKTools = (tools: Record<string, Tool>) => {\n return Object.fromEntries(\n Object.entries(tools).map(([name, tool]) => [\n name,\n {\n ...(tool.description ? { description: tool.description } : undefined),\n parameters: (tool.parameters instanceof z.ZodType\n ? z.toJSONSchema(tool.parameters)\n : tool.parameters) as JSONSchema7,\n },\n ]),\n );\n};\n\nconst getEnabledTools = (tools: Record<string, Tool>) => {\n return Object.fromEntries(\n Object.entries(tools).filter(\n ([, tool]) => !tool.disabled && tool.type !== \"backend\",\n ),\n );\n};\n\nexport class AssistantChatTransport<\n UI_MESSAGE extends UIMessage,\n> extends DefaultChatTransport<UI_MESSAGE> {\n private runtime: AssistantRuntime | undefined;\n constructor(initOptions?: HttpChatTransportInitOptions<UI_MESSAGE>) {\n super({\n ...initOptions,\n prepareSendMessagesRequest: async (options) => {\n const context = this.runtime?.thread.getModelContext();\n\n const optionsEx = {\n ...options,\n body: {\n system: context?.system,\n tools: toAISDKTools(getEnabledTools(context?.tools ?? {})),\n ...options?.body,\n },\n };\n const preparedRequest =\n await initOptions?.prepareSendMessagesRequest?.(optionsEx);\n\n return {\n ...preparedRequest,\n body: preparedRequest?.body ?? {\n ...optionsEx.body,\n id: options.id,\n messages: options.messages,\n trigger: options.trigger,\n messageId: options.messageId,\n },\n };\n },\n });\n }\n\n setRuntime(runtime: AssistantRuntime) {\n this.runtime = runtime;\n }\n}\n"],"mappings":";AACA;AAAA,EACE;AAAA,OAIK;AACP,OAAO,OAAO;AAEd,IAAM,eAAe,CAAC,UAAgC;AACpD,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;AAAA,MAC1C;AAAA,MACA;AAAA,QACE,GAAI,KAAK,cAAc,EAAE,aAAa,KAAK,YAAY,IAAI;AAAA,QAC3D,YAAa,KAAK,sBAAsB,EAAE,UACtC,EAAE,aAAa,KAAK,UAAU,IAC9B,KAAK;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,IAAM,kBAAkB,CAAC,UAAgC;AACvD,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,KAAK,EAAE;AAAA,MACpB,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,YAAY,KAAK,SAAS;AAAA,IAChD;AAAA,EACF;AACF;AAEO,IAAM,yBAAN,cAEG,qBAAiC;AAAA,EACjC;AAAA,EACR,YAAY,aAAwD;AAClE,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,4BAA4B,OAAO,YAAY;AAC7C,cAAM,UAAU,KAAK,SAAS,OAAO,gBAAgB;AAErD,cAAM,YAAY;AAAA,UAChB,GAAG;AAAA,UACH,MAAM;AAAA,YACJ,QAAQ,SAAS;AAAA,YACjB,OAAO,aAAa,gBAAgB,SAAS,SAAS,CAAC,CAAC,CAAC;AAAA,YACzD,GAAG,SAAS;AAAA,UACd;AAAA,QACF;AACA,cAAM,kBACJ,MAAM,aAAa,6BAA6B,SAAS;AAE3D,eAAO;AAAA,UACL,GAAG;AAAA,UACH,MAAM,iBAAiB,QAAQ;AAAA,YAC7B,GAAG,UAAU;AAAA,YACb,IAAI,QAAQ;AAAA,YACZ,UAAU,QAAQ;AAAA,YAClB,SAAS,QAAQ;AAAA,YACjB,WAAW,QAAQ;AAAA,UACrB;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,SAA2B;AACpC,SAAK,UAAU;AAAA,EACjB;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/use-chat/AssistantChatTransport.tsx"],"sourcesContent":["import { AssistantRuntime, Tool } from \"@assistant-ui/react\";\nimport {\n DefaultChatTransport,\n HttpChatTransportInitOptions,\n JSONSchema7,\n UIMessage,\n} from \"ai\";\nimport z from \"zod\";\n\nconst toAISDKTools = (tools: Record<string, Tool>) => {\n return Object.fromEntries(\n Object.entries(tools).map(([name, tool]) => [\n name,\n {\n ...(tool.description ? { description: tool.description } : undefined),\n parameters: (tool.parameters instanceof z.ZodType\n ? z.toJSONSchema(tool.parameters)\n : tool.parameters) as JSONSchema7,\n },\n ]),\n );\n};\n\nconst getEnabledTools = (tools: Record<string, Tool>) => {\n return Object.fromEntries(\n Object.entries(tools).filter(\n ([, tool]) => !tool.disabled && tool.type !== \"backend\",\n ),\n );\n};\n\nexport class AssistantChatTransport<\n UI_MESSAGE extends UIMessage,\n> extends DefaultChatTransport<UI_MESSAGE> {\n private runtime: AssistantRuntime | undefined;\n constructor(initOptions?: HttpChatTransportInitOptions<UI_MESSAGE>) {\n super({\n ...initOptions,\n prepareSendMessagesRequest: async (options) => {\n const context = this.runtime?.thread.getModelContext();\n\n const optionsEx = {\n ...options,\n body: {\n callSettings: context?.callSettings,\n system: context?.system,\n tools: toAISDKTools(getEnabledTools(context?.tools ?? {})),\n ...options?.body,\n },\n };\n const preparedRequest =\n await initOptions?.prepareSendMessagesRequest?.(optionsEx);\n\n return {\n ...preparedRequest,\n body: preparedRequest?.body ?? {\n ...optionsEx.body,\n id: options.id,\n messages: options.messages,\n trigger: options.trigger,\n messageId: options.messageId,\n },\n };\n },\n });\n }\n\n setRuntime(runtime: AssistantRuntime) {\n this.runtime = runtime;\n }\n}\n"],"mappings":";AACA;AAAA,EACE;AAAA,OAIK;AACP,OAAO,OAAO;AAEd,IAAM,eAAe,CAAC,UAAgC;AACpD,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;AAAA,MAC1C;AAAA,MACA;AAAA,QACE,GAAI,KAAK,cAAc,EAAE,aAAa,KAAK,YAAY,IAAI;AAAA,QAC3D,YAAa,KAAK,sBAAsB,EAAE,UACtC,EAAE,aAAa,KAAK,UAAU,IAC9B,KAAK;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,IAAM,kBAAkB,CAAC,UAAgC;AACvD,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,KAAK,EAAE;AAAA,MACpB,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,YAAY,KAAK,SAAS;AAAA,IAChD;AAAA,EACF;AACF;AAEO,IAAM,yBAAN,cAEG,qBAAiC;AAAA,EACjC;AAAA,EACR,YAAY,aAAwD;AAClE,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,4BAA4B,OAAO,YAAY;AAC7C,cAAM,UAAU,KAAK,SAAS,OAAO,gBAAgB;AAErD,cAAM,YAAY;AAAA,UAChB,GAAG;AAAA,UACH,MAAM;AAAA,YACJ,cAAc,SAAS;AAAA,YACvB,QAAQ,SAAS;AAAA,YACjB,OAAO,aAAa,gBAAgB,SAAS,SAAS,CAAC,CAAC,CAAC;AAAA,YACzD,GAAG,SAAS;AAAA,UACd;AAAA,QACF;AACA,cAAM,kBACJ,MAAM,aAAa,6BAA6B,SAAS;AAE3D,eAAO;AAAA,UACL,GAAG;AAAA,UACH,MAAM,iBAAiB,QAAQ;AAAA,YAC7B,GAAG,UAAU;AAAA,YACb,IAAI,QAAQ;AAAA,YACZ,UAAU,QAAQ;AAAA,YAClB,SAAS,QAAQ;AAAA,YACjB,WAAW,QAAQ;AAAA,UACrB;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,SAA2B;AACpC,SAAK,UAAU;AAAA,EACjB;AACF;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAISDKRuntime.d.ts","sourceRoot":"","sources":["../../../src/ui/use-chat/useAISDKRuntime.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAEL,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAGjB,MAAM,qBAAqB,CAAC;AAa7B,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;CACf,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,SAAS,SAAS,GAAG,SAAS,EACtE,aAAa,UAAU,CAAC,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,EACnD,UAAS,mBAAwB,
|
|
1
|
+
{"version":3,"file":"useAISDKRuntime.d.ts","sourceRoot":"","sources":["../../../src/ui/use-chat/useAISDKRuntime.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAEL,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAGjB,MAAM,qBAAqB,CAAC;AAa7B,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;CACf,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,SAAS,SAAS,GAAG,SAAS,EACtE,aAAa,UAAU,CAAC,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,EACnD,UAAS,mBAAwB,qBA+ElC,CAAC"}
|
|
@@ -45,7 +45,9 @@ var useAISDKRuntime = (chatHelpers, adapter = {}) => {
|
|
|
45
45
|
onCancel: async () => chatHelpers.stop(),
|
|
46
46
|
onNew: async (message) => {
|
|
47
47
|
const createMessage = await toCreateMessage(message);
|
|
48
|
-
await chatHelpers.sendMessage(createMessage
|
|
48
|
+
await chatHelpers.sendMessage(createMessage, {
|
|
49
|
+
metadata: message.runConfig
|
|
50
|
+
});
|
|
49
51
|
},
|
|
50
52
|
onEdit: async (message) => {
|
|
51
53
|
const newMessages = sliceMessagesUntil(
|
|
@@ -54,12 +56,14 @@ var useAISDKRuntime = (chatHelpers, adapter = {}) => {
|
|
|
54
56
|
);
|
|
55
57
|
chatHelpers.setMessages(newMessages);
|
|
56
58
|
const createMessage = await toCreateMessage(message);
|
|
57
|
-
await chatHelpers.sendMessage(createMessage
|
|
59
|
+
await chatHelpers.sendMessage(createMessage, {
|
|
60
|
+
metadata: message.runConfig
|
|
61
|
+
});
|
|
58
62
|
},
|
|
59
|
-
onReload: async (parentId) => {
|
|
63
|
+
onReload: async (parentId, config) => {
|
|
60
64
|
const newMessages = sliceMessagesUntil(chatHelpers.messages, parentId);
|
|
61
65
|
chatHelpers.setMessages(newMessages);
|
|
62
|
-
await chatHelpers.regenerate();
|
|
66
|
+
await chatHelpers.regenerate({ metadata: config.runConfig });
|
|
63
67
|
},
|
|
64
68
|
onAddToolResult: ({ toolCallId, result }) => {
|
|
65
69
|
chatHelpers.addToolResult({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ui/use-chat/useAISDKRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport type { UIMessage, useChat } from \"@ai-sdk/react\";\nimport {\n useExternalStoreRuntime,\n ExternalStoreAdapter,\n ThreadHistoryAdapter,\n AssistantRuntime,\n ThreadMessage,\n MessageFormatAdapter,\n} from \"@assistant-ui/react\";\nimport { sliceMessagesUntil } from \"../utils/sliceMessagesUntil\";\nimport { toCreateMessage } from \"../utils/toCreateMessage\";\nimport { vercelAttachmentAdapter } from \"../utils/vercelAttachmentAdapter\";\nimport { getVercelAIMessages } from \"../getVercelAIMessages\";\nimport { AISDKMessageConverter } from \"../utils/convertMessage\";\nimport {\n AISDKStorageFormat,\n aiSDKV5FormatAdapter,\n} from \"../adapters/aiSDKFormatAdapter\";\nimport { useExternalHistory } from \"./useExternalHistory\";\nimport { useMemo } from \"react\";\n\nexport type AISDKRuntimeAdapter = {\n adapters?:\n | (NonNullable<ExternalStoreAdapter[\"adapters\"]> & {\n history?: ThreadHistoryAdapter | undefined;\n })\n | undefined;\n};\n\nexport const useAISDKRuntime = <UI_MESSAGE extends UIMessage = UIMessage>(\n chatHelpers: ReturnType<typeof useChat<UI_MESSAGE>>,\n adapter: AISDKRuntimeAdapter = {},\n) => {\n const messages = AISDKMessageConverter.useThreadMessages({\n isRunning:\n chatHelpers.status === \"submitted\" || chatHelpers.status == \"streaming\",\n messages: chatHelpers.messages,\n });\n\n const isLoading = useExternalHistory(\n useMemo(\n () => ({\n get current(): AssistantRuntime {\n return runtime;\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n ),\n adapter.adapters?.history,\n AISDKMessageConverter.toThreadMessages as (\n messages: UI_MESSAGE[],\n ) => ThreadMessage[],\n aiSDKV5FormatAdapter as MessageFormatAdapter<\n UI_MESSAGE,\n AISDKStorageFormat\n >,\n (messages) => {\n chatHelpers.setMessages(messages);\n },\n );\n\n const runtime = useExternalStoreRuntime({\n isRunning:\n chatHelpers.status === \"submitted\" || chatHelpers.status === \"streaming\",\n messages,\n setMessages: (messages) =>\n chatHelpers.setMessages(\n messages.map(getVercelAIMessages<UI_MESSAGE>).flat(),\n ),\n onCancel: async () => chatHelpers.stop(),\n onNew: async (message) => {\n const createMessage = await toCreateMessage<UI_MESSAGE>(message);\n await chatHelpers.sendMessage(createMessage);\n },\n onEdit: async (message) => {\n const newMessages = sliceMessagesUntil(\n chatHelpers.messages,\n message.parentId,\n );\n chatHelpers.setMessages(newMessages);\n\n const createMessage = await toCreateMessage<UI_MESSAGE>(message);\n await chatHelpers.sendMessage(createMessage);\n },\n onReload: async (parentId: string | null) => {\n const newMessages = sliceMessagesUntil(chatHelpers.messages, parentId);\n chatHelpers.setMessages(newMessages);\n\n await chatHelpers.regenerate();\n },\n onAddToolResult: ({ toolCallId, result }) => {\n chatHelpers.addToolResult({\n tool: toolCallId,\n toolCallId,\n output: result,\n });\n },\n adapters: {\n attachments: vercelAttachmentAdapter,\n ...adapter.adapters,\n },\n isLoading,\n });\n\n return runtime;\n};\n"],"mappings":";;;AAGA;AAAA,EACE;AAAA,OAMK;AACP,SAAS,0BAA0B;AACnC,SAAS,uBAAuB;AAChC,SAAS,+BAA+B;AACxC,SAAS,2BAA2B;AACpC,SAAS,6BAA6B;AACtC;AAAA,EAEE;AAAA,OACK;AACP,SAAS,0BAA0B;AACnC,SAAS,eAAe;AAUjB,IAAM,kBAAkB,CAC7B,aACA,UAA+B,CAAC,MAC7B;AACH,QAAM,WAAW,sBAAsB,kBAAkB;AAAA,IACvD,WACE,YAAY,WAAW,eAAe,YAAY,UAAU;AAAA,IAC9D,UAAU,YAAY;AAAA,EACxB,CAAC;AAED,QAAM,YAAY;AAAA,IAChB;AAAA,MACE,OAAO;AAAA,QACL,IAAI,UAA4B;AAC9B,iBAAO;AAAA,QACT;AAAA,MACF;AAAA;AAAA,MAEA,CAAC;AAAA,IACH;AAAA,IACA,QAAQ,UAAU;AAAA,IAClB,sBAAsB;AAAA,IAGtB;AAAA,IAIA,CAACA,cAAa;AACZ,kBAAY,YAAYA,SAAQ;AAAA,IAClC;AAAA,EACF;AAEA,QAAM,UAAU,wBAAwB;AAAA,IACtC,WACE,YAAY,WAAW,eAAe,YAAY,WAAW;AAAA,IAC/D;AAAA,IACA,aAAa,CAACA,cACZ,YAAY;AAAA,MACVA,UAAS,IAAI,mBAA+B,EAAE,KAAK;AAAA,IACrD;AAAA,IACF,UAAU,YAAY,YAAY,KAAK;AAAA,IACvC,OAAO,OAAO,YAAY;AACxB,YAAM,gBAAgB,MAAM,gBAA4B,OAAO;AAC/D,YAAM,YAAY,YAAY,
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/use-chat/useAISDKRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport type { UIMessage, useChat } from \"@ai-sdk/react\";\nimport {\n useExternalStoreRuntime,\n ExternalStoreAdapter,\n ThreadHistoryAdapter,\n AssistantRuntime,\n ThreadMessage,\n MessageFormatAdapter,\n} from \"@assistant-ui/react\";\nimport { sliceMessagesUntil } from \"../utils/sliceMessagesUntil\";\nimport { toCreateMessage } from \"../utils/toCreateMessage\";\nimport { vercelAttachmentAdapter } from \"../utils/vercelAttachmentAdapter\";\nimport { getVercelAIMessages } from \"../getVercelAIMessages\";\nimport { AISDKMessageConverter } from \"../utils/convertMessage\";\nimport {\n AISDKStorageFormat,\n aiSDKV5FormatAdapter,\n} from \"../adapters/aiSDKFormatAdapter\";\nimport { useExternalHistory } from \"./useExternalHistory\";\nimport { useMemo } from \"react\";\n\nexport type AISDKRuntimeAdapter = {\n adapters?:\n | (NonNullable<ExternalStoreAdapter[\"adapters\"]> & {\n history?: ThreadHistoryAdapter | undefined;\n })\n | undefined;\n};\n\nexport const useAISDKRuntime = <UI_MESSAGE extends UIMessage = UIMessage>(\n chatHelpers: ReturnType<typeof useChat<UI_MESSAGE>>,\n adapter: AISDKRuntimeAdapter = {},\n) => {\n const messages = AISDKMessageConverter.useThreadMessages({\n isRunning:\n chatHelpers.status === \"submitted\" || chatHelpers.status == \"streaming\",\n messages: chatHelpers.messages,\n });\n\n const isLoading = useExternalHistory(\n useMemo(\n () => ({\n get current(): AssistantRuntime {\n return runtime;\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n ),\n adapter.adapters?.history,\n AISDKMessageConverter.toThreadMessages as (\n messages: UI_MESSAGE[],\n ) => ThreadMessage[],\n aiSDKV5FormatAdapter as MessageFormatAdapter<\n UI_MESSAGE,\n AISDKStorageFormat\n >,\n (messages) => {\n chatHelpers.setMessages(messages);\n },\n );\n\n const runtime = useExternalStoreRuntime({\n isRunning:\n chatHelpers.status === \"submitted\" || chatHelpers.status === \"streaming\",\n messages,\n setMessages: (messages) =>\n chatHelpers.setMessages(\n messages.map(getVercelAIMessages<UI_MESSAGE>).flat(),\n ),\n onCancel: async () => chatHelpers.stop(),\n onNew: async (message) => {\n const createMessage = await toCreateMessage<UI_MESSAGE>(message);\n await chatHelpers.sendMessage(createMessage, {\n metadata: message.runConfig,\n });\n },\n onEdit: async (message) => {\n const newMessages = sliceMessagesUntil(\n chatHelpers.messages,\n message.parentId,\n );\n chatHelpers.setMessages(newMessages);\n\n const createMessage = await toCreateMessage<UI_MESSAGE>(message);\n await chatHelpers.sendMessage(createMessage, {\n metadata: message.runConfig,\n });\n },\n onReload: async (parentId: string | null, config) => {\n const newMessages = sliceMessagesUntil(chatHelpers.messages, parentId);\n chatHelpers.setMessages(newMessages);\n\n await chatHelpers.regenerate({ metadata: config.runConfig });\n },\n onAddToolResult: ({ toolCallId, result }) => {\n chatHelpers.addToolResult({\n tool: toolCallId,\n toolCallId,\n output: result,\n });\n },\n adapters: {\n attachments: vercelAttachmentAdapter,\n ...adapter.adapters,\n },\n isLoading,\n });\n\n return runtime;\n};\n"],"mappings":";;;AAGA;AAAA,EACE;AAAA,OAMK;AACP,SAAS,0BAA0B;AACnC,SAAS,uBAAuB;AAChC,SAAS,+BAA+B;AACxC,SAAS,2BAA2B;AACpC,SAAS,6BAA6B;AACtC;AAAA,EAEE;AAAA,OACK;AACP,SAAS,0BAA0B;AACnC,SAAS,eAAe;AAUjB,IAAM,kBAAkB,CAC7B,aACA,UAA+B,CAAC,MAC7B;AACH,QAAM,WAAW,sBAAsB,kBAAkB;AAAA,IACvD,WACE,YAAY,WAAW,eAAe,YAAY,UAAU;AAAA,IAC9D,UAAU,YAAY;AAAA,EACxB,CAAC;AAED,QAAM,YAAY;AAAA,IAChB;AAAA,MACE,OAAO;AAAA,QACL,IAAI,UAA4B;AAC9B,iBAAO;AAAA,QACT;AAAA,MACF;AAAA;AAAA,MAEA,CAAC;AAAA,IACH;AAAA,IACA,QAAQ,UAAU;AAAA,IAClB,sBAAsB;AAAA,IAGtB;AAAA,IAIA,CAACA,cAAa;AACZ,kBAAY,YAAYA,SAAQ;AAAA,IAClC;AAAA,EACF;AAEA,QAAM,UAAU,wBAAwB;AAAA,IACtC,WACE,YAAY,WAAW,eAAe,YAAY,WAAW;AAAA,IAC/D;AAAA,IACA,aAAa,CAACA,cACZ,YAAY;AAAA,MACVA,UAAS,IAAI,mBAA+B,EAAE,KAAK;AAAA,IACrD;AAAA,IACF,UAAU,YAAY,YAAY,KAAK;AAAA,IACvC,OAAO,OAAO,YAAY;AACxB,YAAM,gBAAgB,MAAM,gBAA4B,OAAO;AAC/D,YAAM,YAAY,YAAY,eAAe;AAAA,QAC3C,UAAU,QAAQ;AAAA,MACpB,CAAC;AAAA,IACH;AAAA,IACA,QAAQ,OAAO,YAAY;AACzB,YAAM,cAAc;AAAA,QAClB,YAAY;AAAA,QACZ,QAAQ;AAAA,MACV;AACA,kBAAY,YAAY,WAAW;AAEnC,YAAM,gBAAgB,MAAM,gBAA4B,OAAO;AAC/D,YAAM,YAAY,YAAY,eAAe;AAAA,QAC3C,UAAU,QAAQ;AAAA,MACpB,CAAC;AAAA,IACH;AAAA,IACA,UAAU,OAAO,UAAyB,WAAW;AACnD,YAAM,cAAc,mBAAmB,YAAY,UAAU,QAAQ;AACrE,kBAAY,YAAY,WAAW;AAEnC,YAAM,YAAY,WAAW,EAAE,UAAU,OAAO,UAAU,CAAC;AAAA,IAC7D;AAAA,IACA,iBAAiB,CAAC,EAAE,YAAY,OAAO,MAAM;AAC3C,kBAAY,cAAc;AAAA,QACxB,MAAM;AAAA,QACN;AAAA,QACA,QAAQ;AAAA,MACV,CAAC;AAAA,IACH;AAAA,IACA,UAAU;AAAA,MACR,aAAa;AAAA,MACb,GAAG,QAAQ;AAAA,IACb;AAAA,IACA;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":["messages"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assistant-ui/react-ai-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"zustand": "^5.0.7"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@assistant-ui/react": "^0.10.
|
|
32
|
+
"@assistant-ui/react": "^0.10.43",
|
|
33
33
|
"@types/react": "*",
|
|
34
34
|
"assistant-cloud": "*",
|
|
35
35
|
"react": "^18 || ^19 || ^19.0.0-rc"
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"eslint-config-next": "15.4.6",
|
|
50
50
|
"react": "19.1.1",
|
|
51
51
|
"tsx": "^4.20.4",
|
|
52
|
-
"@assistant-ui/react": "0.10.
|
|
52
|
+
"@assistant-ui/react": "0.10.43",
|
|
53
53
|
"@assistant-ui/x-buildutils": "0.0.1"
|
|
54
54
|
},
|
|
55
55
|
"publishConfig": {
|
|
@@ -73,7 +73,9 @@ export const useAISDKRuntime = <UI_MESSAGE extends UIMessage = UIMessage>(
|
|
|
73
73
|
onCancel: async () => chatHelpers.stop(),
|
|
74
74
|
onNew: async (message) => {
|
|
75
75
|
const createMessage = await toCreateMessage<UI_MESSAGE>(message);
|
|
76
|
-
await chatHelpers.sendMessage(createMessage
|
|
76
|
+
await chatHelpers.sendMessage(createMessage, {
|
|
77
|
+
metadata: message.runConfig,
|
|
78
|
+
});
|
|
77
79
|
},
|
|
78
80
|
onEdit: async (message) => {
|
|
79
81
|
const newMessages = sliceMessagesUntil(
|
|
@@ -83,13 +85,15 @@ export const useAISDKRuntime = <UI_MESSAGE extends UIMessage = UIMessage>(
|
|
|
83
85
|
chatHelpers.setMessages(newMessages);
|
|
84
86
|
|
|
85
87
|
const createMessage = await toCreateMessage<UI_MESSAGE>(message);
|
|
86
|
-
await chatHelpers.sendMessage(createMessage
|
|
88
|
+
await chatHelpers.sendMessage(createMessage, {
|
|
89
|
+
metadata: message.runConfig,
|
|
90
|
+
});
|
|
87
91
|
},
|
|
88
|
-
onReload: async (parentId: string | null) => {
|
|
92
|
+
onReload: async (parentId: string | null, config) => {
|
|
89
93
|
const newMessages = sliceMessagesUntil(chatHelpers.messages, parentId);
|
|
90
94
|
chatHelpers.setMessages(newMessages);
|
|
91
95
|
|
|
92
|
-
await chatHelpers.regenerate();
|
|
96
|
+
await chatHelpers.regenerate({ metadata: config.runConfig });
|
|
93
97
|
},
|
|
94
98
|
onAddToolResult: ({ toolCallId, result }) => {
|
|
95
99
|
chatHelpers.addToolResult({
|