@assistant-ui/react-ai-sdk 0.10.1 → 0.10.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.
Files changed (87) hide show
  1. package/dist/index.d.ts +5 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +4 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/rsc/RSCDisplay.d.ts +3 -0
  6. package/dist/rsc/RSCDisplay.d.ts.map +1 -0
  7. package/dist/rsc/RSCDisplay.js +4 -2
  8. package/dist/rsc/RSCDisplay.js.map +1 -1
  9. package/dist/rsc/VercelRSCAdapter.d.ts +18 -0
  10. package/dist/rsc/VercelRSCAdapter.d.ts.map +1 -0
  11. package/dist/rsc/VercelRSCMessage.d.ts +8 -0
  12. package/dist/rsc/VercelRSCMessage.d.ts.map +1 -0
  13. package/dist/rsc/getVercelRSCMessage.d.ts +7 -0
  14. package/dist/rsc/getVercelRSCMessage.d.ts.map +1 -0
  15. package/dist/rsc/getVercelRSCMessage.js +2 -1
  16. package/dist/rsc/getVercelRSCMessage.js.map +1 -1
  17. package/dist/rsc/index.d.ts +6 -0
  18. package/dist/rsc/index.d.ts.map +1 -0
  19. package/dist/rsc/index.js +4 -3
  20. package/dist/rsc/index.js.map +1 -1
  21. package/dist/rsc/useVercelRSCRuntime.d.ts +3 -0
  22. package/dist/rsc/useVercelRSCRuntime.d.ts.map +1 -0
  23. package/dist/rsc/useVercelRSCRuntime.js +5 -3
  24. package/dist/rsc/useVercelRSCRuntime.js.map +1 -1
  25. package/dist/rsc/utils/RSCThreadExtras.d.ts +8 -0
  26. package/dist/rsc/utils/RSCThreadExtras.d.ts.map +1 -0
  27. package/dist/rsc/utils/RSCThreadExtras.js +3 -1
  28. package/dist/rsc/utils/RSCThreadExtras.js.map +1 -1
  29. package/dist/ui/getVercelAIMessages.d.ts +4 -0
  30. package/dist/ui/getVercelAIMessages.d.ts.map +1 -0
  31. package/dist/ui/getVercelAIMessages.js +2 -1
  32. package/dist/ui/getVercelAIMessages.js.map +1 -1
  33. package/dist/ui/index.d.ts +5 -0
  34. package/dist/ui/index.d.ts.map +1 -0
  35. package/dist/ui/index.js +5 -4
  36. package/dist/ui/index.js.map +1 -1
  37. package/dist/ui/use-assistant/useVercelUseAssistantRuntime.d.ts +7 -0
  38. package/dist/ui/use-assistant/useVercelUseAssistantRuntime.d.ts.map +1 -0
  39. package/dist/ui/use-assistant/useVercelUseAssistantRuntime.js +6 -5
  40. package/dist/ui/use-assistant/useVercelUseAssistantRuntime.js.map +1 -1
  41. package/dist/ui/use-chat/useVercelUseChatRuntime.d.ts +8 -0
  42. package/dist/ui/use-chat/useVercelUseChatRuntime.d.ts.map +1 -0
  43. package/dist/ui/use-chat/useVercelUseChatRuntime.js +8 -7
  44. package/dist/ui/use-chat/useVercelUseChatRuntime.js.map +1 -1
  45. package/dist/ui/utils/convertMessage.d.ts +14 -0
  46. package/dist/ui/utils/convertMessage.d.ts.map +1 -0
  47. package/dist/ui/utils/convertMessage.js +2 -1
  48. package/dist/ui/utils/convertMessage.js.map +1 -1
  49. package/dist/ui/utils/sliceMessagesUntil.d.ts +3 -0
  50. package/dist/ui/utils/sliceMessagesUntil.d.ts.map +1 -0
  51. package/dist/ui/utils/sliceMessagesUntil.js +2 -1
  52. package/dist/ui/utils/sliceMessagesUntil.js.map +1 -1
  53. package/dist/ui/utils/toCreateMessage.d.ts +4 -0
  54. package/dist/ui/utils/toCreateMessage.d.ts.map +1 -0
  55. package/dist/ui/utils/toCreateMessage.js +3 -2
  56. package/dist/ui/utils/toCreateMessage.js.map +1 -1
  57. package/dist/ui/utils/useInputSync.d.ts +6 -0
  58. package/dist/ui/utils/useInputSync.d.ts.map +1 -0
  59. package/dist/ui/utils/useInputSync.js +2 -1
  60. package/dist/ui/utils/useInputSync.js.map +1 -1
  61. package/dist/ui/utils/vercelAttachmentAdapter.d.ts +3 -0
  62. package/dist/ui/utils/vercelAttachmentAdapter.d.ts.map +1 -0
  63. package/dist/ui/utils/vercelAttachmentAdapter.js +2 -1
  64. package/dist/ui/utils/vercelAttachmentAdapter.js.map +1 -1
  65. package/dist/useChatRuntime.d.ts +5 -0
  66. package/dist/useChatRuntime.d.ts.map +1 -0
  67. package/dist/useChatRuntime.js +2 -1
  68. package/dist/useChatRuntime.js.map +1 -1
  69. package/package.json +5 -4
  70. package/src/index.ts +11 -0
  71. package/src/rsc/RSCDisplay.tsx +23 -0
  72. package/src/rsc/VercelRSCAdapter.tsx +23 -0
  73. package/src/rsc/VercelRSCMessage.tsx +9 -0
  74. package/src/rsc/getVercelRSCMessage.tsx +12 -0
  75. package/src/rsc/index.ts +5 -0
  76. package/src/rsc/useVercelRSCRuntime.tsx +70 -0
  77. package/src/rsc/utils/RSCThreadExtras.tsx +11 -0
  78. package/src/ui/getVercelAIMessages.tsx +9 -0
  79. package/src/ui/index.ts +4 -0
  80. package/src/ui/use-assistant/useVercelUseAssistantRuntime.tsx +58 -0
  81. package/src/ui/use-chat/useVercelUseChatRuntime.tsx +91 -0
  82. package/src/ui/utils/convertMessage.ts +158 -0
  83. package/src/ui/utils/sliceMessagesUntil.tsx +20 -0
  84. package/src/ui/utils/toCreateMessage.ts +44 -0
  85. package/src/ui/utils/useInputSync.tsx +24 -0
  86. package/src/ui/utils/vercelAttachmentAdapter.ts +29 -0
  87. package/src/useChatRuntime.ts +10 -0
@@ -0,0 +1,24 @@
1
+ import { useEffect } from "react";
2
+ import { useAssistant, useChat } from "@ai-sdk/react";
3
+ import { AssistantRuntime } from "@assistant-ui/react";
4
+
5
+ type VercelHelpers =
6
+ | ReturnType<typeof useChat>
7
+ | ReturnType<typeof useAssistant>;
8
+
9
+ export const useInputSync = (
10
+ { setInput, input }: VercelHelpers,
11
+ runtime: AssistantRuntime,
12
+ ) => {
13
+ // sync input from vercel to assistant-ui
14
+ useEffect(() => {
15
+ runtime.thread.composer.setText(input);
16
+ }, [runtime, input]);
17
+
18
+ // sync input from assistant-ui to vercel
19
+ useEffect(() => {
20
+ return runtime.thread.composer.subscribe(() => {
21
+ setInput(runtime.thread.composer.getState().text);
22
+ });
23
+ }, [runtime, setInput]);
24
+ };
@@ -0,0 +1,29 @@
1
+ import { AttachmentAdapter } from "@assistant-ui/react";
2
+ import { generateId } from "@ai-sdk/ui-utils";
3
+
4
+ export const vercelAttachmentAdapter: AttachmentAdapter = {
5
+ accept:
6
+ "image/*, text/plain, text/html, text/markdown, text/csv, text/xml, text/json, text/css",
7
+ async add({ file }) {
8
+ return {
9
+ id: generateId(),
10
+ type: "file",
11
+ name: file.name,
12
+ file,
13
+ contentType: file.type,
14
+ content: [],
15
+ status: { type: "requires-action", reason: "composer-send" },
16
+ };
17
+ },
18
+ async send(attachment) {
19
+ // noop
20
+ return {
21
+ ...attachment,
22
+ status: { type: "complete" },
23
+ content: [],
24
+ };
25
+ },
26
+ async remove() {
27
+ // noop
28
+ },
29
+ };
@@ -0,0 +1,10 @@
1
+ import { EdgeRuntimeOptions, useEdgeRuntime } from "@assistant-ui/react-edge";
2
+
3
+ type UseChatRuntimeOptions = Omit<EdgeRuntimeOptions, "unstable_AISDKInterop">;
4
+
5
+ export const useChatRuntime = (options: UseChatRuntimeOptions) => {
6
+ return useEdgeRuntime({
7
+ ...options,
8
+ unstable_AISDKInterop: "v2",
9
+ });
10
+ };