@convex-dev/agent 0.5.0-alpha.1 → 0.6.0-alpha.1

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 (235) hide show
  1. package/MIGRATION.md +153 -0
  2. package/README.md +32 -27
  3. package/dist/UIMessages.d.ts +46 -0
  4. package/dist/UIMessages.d.ts.map +1 -0
  5. package/dist/UIMessages.js +546 -0
  6. package/dist/UIMessages.js.map +1 -0
  7. package/dist/client/createTool.d.ts +126 -27
  8. package/dist/client/createTool.d.ts.map +1 -1
  9. package/dist/client/createTool.js +67 -12
  10. package/dist/client/createTool.js.map +1 -1
  11. package/dist/client/defaultComponent.d.ts +11 -0
  12. package/dist/client/defaultComponent.d.ts.map +1 -0
  13. package/dist/client/defaultComponent.js +7 -0
  14. package/dist/client/defaultComponent.js.map +1 -0
  15. package/dist/client/definePlaygroundAPI.d.ts +1335 -204
  16. package/dist/client/definePlaygroundAPI.d.ts.map +1 -1
  17. package/dist/client/definePlaygroundAPI.js +52 -28
  18. package/dist/client/definePlaygroundAPI.js.map +1 -1
  19. package/dist/client/files.d.ts +20 -7
  20. package/dist/client/files.d.ts.map +1 -1
  21. package/dist/client/files.js +68 -11
  22. package/dist/client/files.js.map +1 -1
  23. package/dist/client/index.d.ts +1116 -978
  24. package/dist/client/index.d.ts.map +1 -1
  25. package/dist/client/index.js +332 -747
  26. package/dist/client/index.js.map +1 -1
  27. package/dist/client/messages.d.ts +461 -0
  28. package/dist/client/messages.d.ts.map +1 -0
  29. package/dist/client/messages.js +106 -0
  30. package/dist/client/messages.js.map +1 -0
  31. package/dist/client/mockModel.d.ts +42 -0
  32. package/dist/client/mockModel.d.ts.map +1 -0
  33. package/dist/client/mockModel.js +182 -0
  34. package/dist/client/mockModel.js.map +1 -0
  35. package/dist/client/saveInputMessages.d.ts +20 -0
  36. package/dist/client/saveInputMessages.d.ts.map +1 -0
  37. package/dist/client/saveInputMessages.js +58 -0
  38. package/dist/client/saveInputMessages.js.map +1 -0
  39. package/dist/client/search.d.ts +350 -39
  40. package/dist/client/search.d.ts.map +1 -1
  41. package/dist/client/search.js +350 -39
  42. package/dist/client/search.js.map +1 -1
  43. package/dist/client/start.d.ts +84 -0
  44. package/dist/client/start.d.ts.map +1 -0
  45. package/dist/client/start.js +185 -0
  46. package/dist/client/start.js.map +1 -0
  47. package/dist/client/streamText.d.ts +46 -0
  48. package/dist/client/streamText.d.ts.map +1 -0
  49. package/dist/client/streamText.js +117 -0
  50. package/dist/client/streamText.js.map +1 -0
  51. package/dist/client/streaming.d.ts +3716 -32
  52. package/dist/client/streaming.d.ts.map +1 -1
  53. package/dist/client/streaming.js +161 -59
  54. package/dist/client/streaming.js.map +1 -1
  55. package/dist/client/threads.d.ts +46 -0
  56. package/dist/client/threads.d.ts.map +1 -0
  57. package/dist/client/threads.js +49 -0
  58. package/dist/client/threads.js.map +1 -0
  59. package/dist/client/types.d.ts +266 -128
  60. package/dist/client/types.d.ts.map +1 -1
  61. package/dist/client/utils.d.ts +4 -0
  62. package/dist/client/utils.d.ts.map +1 -0
  63. package/dist/client/utils.js +21 -0
  64. package/dist/client/utils.js.map +1 -0
  65. package/dist/component/_generated/api.d.ts +24 -2178
  66. package/dist/component/_generated/api.d.ts.map +1 -1
  67. package/dist/component/_generated/api.js +10 -1
  68. package/dist/component/_generated/api.js.map +1 -1
  69. package/dist/component/_generated/component.d.ts +3120 -0
  70. package/dist/component/_generated/component.d.ts.map +1 -0
  71. package/dist/component/_generated/component.js +11 -0
  72. package/dist/component/_generated/component.js.map +1 -0
  73. package/dist/component/_generated/dataModel.d.ts +4 -18
  74. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  75. package/dist/component/_generated/dataModel.js +11 -0
  76. package/dist/component/_generated/dataModel.js.map +1 -0
  77. package/dist/component/_generated/server.d.ts +10 -38
  78. package/dist/component/_generated/server.d.ts.map +1 -1
  79. package/dist/component/_generated/server.js +9 -5
  80. package/dist/component/_generated/server.js.map +1 -1
  81. package/dist/component/files.d.ts +16 -10
  82. package/dist/component/files.d.ts.map +1 -1
  83. package/dist/component/files.js +10 -2
  84. package/dist/component/files.js.map +1 -1
  85. package/dist/component/messages.d.ts +2578 -366
  86. package/dist/component/messages.d.ts.map +1 -1
  87. package/dist/component/messages.js +397 -154
  88. package/dist/component/messages.js.map +1 -1
  89. package/dist/component/schema.d.ts +5697 -3584
  90. package/dist/component/schema.d.ts.map +1 -1
  91. package/dist/component/schema.js +18 -41
  92. package/dist/component/schema.js.map +1 -1
  93. package/dist/component/streams.d.ts +39 -339
  94. package/dist/component/streams.d.ts.map +1 -1
  95. package/dist/component/streams.js +114 -73
  96. package/dist/component/streams.js.map +1 -1
  97. package/dist/component/threads.d.ts +13 -13
  98. package/dist/component/users.d.ts +7 -7
  99. package/dist/component/vector/index.d.ts +1 -1
  100. package/dist/component/vector/index.d.ts.map +1 -1
  101. package/dist/component/vector/index.js +1 -3
  102. package/dist/component/vector/index.js.map +1 -1
  103. package/dist/deltas.d.ts +43 -0
  104. package/dist/deltas.d.ts.map +1 -0
  105. package/dist/deltas.js +446 -0
  106. package/dist/deltas.js.map +1 -0
  107. package/dist/mapping.d.ts +38 -20
  108. package/dist/mapping.d.ts.map +1 -1
  109. package/dist/mapping.js +365 -97
  110. package/dist/mapping.js.map +1 -1
  111. package/dist/react/SmoothText.d.ts +5 -0
  112. package/dist/react/SmoothText.d.ts.map +1 -0
  113. package/dist/react/SmoothText.js +6 -0
  114. package/dist/react/SmoothText.js.map +1 -0
  115. package/dist/react/index.d.ts +5 -77
  116. package/dist/react/index.d.ts.map +1 -1
  117. package/dist/react/index.js +6 -160
  118. package/dist/react/index.js.map +1 -1
  119. package/dist/react/optimisticallySendMessage.d.ts +36 -3
  120. package/dist/react/optimisticallySendMessage.d.ts.map +1 -1
  121. package/dist/react/optimisticallySendMessage.js +35 -9
  122. package/dist/react/optimisticallySendMessage.js.map +1 -1
  123. package/dist/react/types.d.ts +4 -18
  124. package/dist/react/types.d.ts.map +1 -1
  125. package/dist/react/useDeltaStreams.d.ts +10 -0
  126. package/dist/react/useDeltaStreams.d.ts.map +1 -0
  127. package/dist/react/useDeltaStreams.js +106 -0
  128. package/dist/react/useDeltaStreams.js.map +1 -0
  129. package/dist/react/useSmoothText.d.ts +13 -12
  130. package/dist/react/useSmoothText.d.ts.map +1 -1
  131. package/dist/react/useSmoothText.js +32 -15
  132. package/dist/react/useSmoothText.js.map +1 -1
  133. package/dist/react/useStreamingUIMessages.d.ts +22 -0
  134. package/dist/react/useStreamingUIMessages.d.ts.map +1 -0
  135. package/dist/react/useStreamingUIMessages.js +92 -0
  136. package/dist/react/useStreamingUIMessages.js.map +1 -0
  137. package/dist/react/useThreadMessages.d.ts +104 -0
  138. package/dist/react/useThreadMessages.d.ts.map +1 -0
  139. package/dist/react/useThreadMessages.js +148 -0
  140. package/dist/react/useThreadMessages.js.map +1 -0
  141. package/dist/react/useUIMessages.d.ts +96 -0
  142. package/dist/react/useUIMessages.d.ts.map +1 -0
  143. package/dist/react/useUIMessages.js +108 -0
  144. package/dist/react/useUIMessages.js.map +1 -0
  145. package/dist/shared.d.ts +20 -4
  146. package/dist/shared.d.ts.map +1 -1
  147. package/dist/shared.js +45 -8
  148. package/dist/shared.js.map +1 -1
  149. package/dist/validators.d.ts +22981 -5666
  150. package/dist/validators.d.ts.map +1 -1
  151. package/dist/validators.js +245 -137
  152. package/dist/validators.js.map +1 -1
  153. package/package.json +101 -51
  154. package/src/UIMessages.combineUIMessages.test.ts +239 -0
  155. package/src/UIMessages.test.ts +273 -0
  156. package/src/UIMessages.ts +739 -0
  157. package/src/client/approval.test.ts +350 -0
  158. package/src/client/createTool.ts +291 -76
  159. package/src/client/defaultComponent.ts +17 -0
  160. package/src/client/definePlaygroundAPI.ts +67 -31
  161. package/src/client/files.ts +100 -20
  162. package/src/client/index.test.ts +40 -85
  163. package/src/client/index.ts +638 -1289
  164. package/src/client/messages.ts +237 -0
  165. package/src/client/mockModel.ts +252 -0
  166. package/src/client/saveInputMessages.test.ts +583 -0
  167. package/src/client/saveInputMessages.ts +101 -0
  168. package/src/client/search.test.ts +1207 -0
  169. package/src/client/search.ts +581 -70
  170. package/src/client/start.ts +327 -0
  171. package/src/client/streamText.ts +187 -0
  172. package/src/client/streaming.test.ts +186 -0
  173. package/src/client/streaming.ts +241 -97
  174. package/src/client/threads.ts +83 -0
  175. package/src/client/types.ts +370 -219
  176. package/src/client/utils.ts +27 -0
  177. package/src/component/_generated/api.ts +64 -0
  178. package/src/component/_generated/component.ts +4902 -0
  179. package/src/component/_generated/{server.d.ts → server.ts} +33 -21
  180. package/src/component/files.ts +11 -2
  181. package/src/component/messages.test.ts +195 -51
  182. package/src/component/messages.ts +500 -201
  183. package/src/component/schema.ts +20 -46
  184. package/src/component/setup.test.ts +7 -0
  185. package/src/component/streams.ts +184 -83
  186. package/src/component/users.test.ts +0 -1
  187. package/src/component/vector/index.ts +1 -3
  188. package/src/deltas.test.ts +626 -0
  189. package/src/deltas.ts +569 -0
  190. package/src/fromUIMessages.test.ts +497 -0
  191. package/src/mapping.test.ts +180 -6
  192. package/src/mapping.ts +479 -162
  193. package/src/react/SmoothText.tsx +9 -0
  194. package/src/react/index.ts +10 -230
  195. package/src/react/optimisticallySendMessage.ts +55 -12
  196. package/src/react/types.ts +6 -39
  197. package/src/react/useDeltaStreams.ts +160 -0
  198. package/src/react/useSmoothText.ts +56 -36
  199. package/src/react/useStreamingUIMessages.ts +143 -0
  200. package/src/react/useThreadMessages.ts +262 -0
  201. package/src/react/useUIMessages.test.ts +255 -0
  202. package/src/react/useUIMessages.ts +195 -0
  203. package/src/shared.ts +88 -12
  204. package/src/test.ts +18 -0
  205. package/src/toUIMessages.test.ts +1269 -0
  206. package/src/validators.test.ts +18 -19
  207. package/src/validators.ts +325 -185
  208. package/dist/client/_generated/_ignore.d.ts +0 -1
  209. package/dist/client/_generated/_ignore.d.ts.map +0 -1
  210. package/dist/client/_generated/_ignore.js +0 -3
  211. package/dist/client/_generated/_ignore.js.map +0 -1
  212. package/dist/client/listMessages.d.ts +0 -22
  213. package/dist/client/listMessages.d.ts.map +0 -1
  214. package/dist/client/listMessages.js +0 -25
  215. package/dist/client/listMessages.js.map +0 -1
  216. package/dist/package.json +0 -3
  217. package/dist/react/deltas.d.ts +0 -26
  218. package/dist/react/deltas.d.ts.map +0 -1
  219. package/dist/react/deltas.js +0 -384
  220. package/dist/react/deltas.js.map +0 -1
  221. package/dist/react/toUIMessages.d.ts +0 -15
  222. package/dist/react/toUIMessages.d.ts.map +0 -1
  223. package/dist/react/toUIMessages.js +0 -211
  224. package/dist/react/toUIMessages.js.map +0 -1
  225. package/src/client/listMessages.ts +0 -38
  226. package/src/component/_generated/api.d.ts +0 -2202
  227. package/src/component/_generated/api.js +0 -23
  228. package/src/component/_generated/server.js +0 -90
  229. package/src/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  230. package/src/react/deltas.test.ts +0 -315
  231. package/src/react/deltas.ts +0 -478
  232. package/src/react/toUIMessages.test.ts +0 -420
  233. package/src/react/toUIMessages.ts +0 -253
  234. package/src/vitest.config.ts +0 -7
  235. /package/src/component/_generated/{dataModel.d.ts → dataModel.ts} +0 -0
package/MIGRATION.md ADDED
@@ -0,0 +1,153 @@
1
+ # Migration Guide: v0.3.x to v0.6.0 (AI SDK v6)
2
+
3
+ This guide helps you upgrade from @convex-dev/agent v0.3.x to v0.6.0.
4
+
5
+ ## Step 1: Update dependencies
6
+
7
+ Update all AI SDK packages **together** to avoid peer dependency conflicts:
8
+
9
+ ```bash
10
+ npm install @convex-dev/agent@^0.6.0 ai@^6.0.35 @ai-sdk/provider-utils@^4.0.6
11
+ ```
12
+
13
+ ### Official AI SDK providers
14
+
15
+ Update your AI SDK provider packages to v3.x:
16
+ ```bash
17
+ # For OpenAI
18
+ npm install @ai-sdk/openai@^3.0.10
19
+
20
+ # For Anthropic
21
+ npm install @ai-sdk/anthropic@^3.0.13
22
+
23
+ # For Groq
24
+ npm install @ai-sdk/groq@^3.0.8
25
+
26
+ # For Google (Gemini)
27
+ npm install @ai-sdk/google@^3.0.8
28
+ ```
29
+
30
+ ### Third-party providers
31
+
32
+ Third-party providers also need updates to be compatible with AI SDK v6:
33
+
34
+ ```bash
35
+ # For OpenRouter
36
+ npm install @openrouter/ai-sdk-provider@^2.0.0
37
+
38
+ # For other providers, check their documentation for AI SDK v6 compatibility
39
+ ```
40
+
41
+ ### Handling dependency conflicts
42
+
43
+ If you see peer dependency warnings or errors, try updating all packages at once:
44
+
45
+ ```bash
46
+ npm install @convex-dev/agent@^0.6.0 ai@^6.0.35 @ai-sdk/openai@^3.0.10 @openrouter/ai-sdk-provider@^2.0.0
47
+ ```
48
+
49
+ If you still have conflicts, you can use `--force` as a last resort:
50
+
51
+ ```bash
52
+ npm install @convex-dev/agent@^0.6.0 --force
53
+ ```
54
+
55
+ > **Note**: Using `--force` can lead to inconsistent dependency trees. After using it, verify your app works correctly and consider running `npm dedupe` to clean up.
56
+
57
+ ## Step 2: Update tool definitions
58
+
59
+ Replace `parameters` with `inputSchema`:
60
+
61
+ ```typescript
62
+ // Before (v5)
63
+ const myTool = createTool({
64
+ description: "My tool",
65
+ parameters: z.object({ query: z.string() }),
66
+ execute: async (ctx, args) => { ... }
67
+ })
68
+
69
+ // After (v6)
70
+ const myTool = createTool({
71
+ description: "My tool",
72
+ inputSchema: z.object({ query: z.string() }),
73
+ execute: async (ctx, input, options) => { ... }
74
+ })
75
+ ```
76
+
77
+ ## Step 3: Update Agent config (if using embeddings)
78
+
79
+ ```typescript
80
+ // Before
81
+ new Agent(components.agent, {
82
+ textEmbeddingModel: openai.embedding("text-embedding-3-small")
83
+ })
84
+
85
+ // After
86
+ new Agent(components.agent, {
87
+ embeddingModel: openai.embedding("text-embedding-3-small")
88
+ })
89
+ ```
90
+
91
+ ## Step 4: Update maxSteps (optional)
92
+
93
+ ```typescript
94
+ // Before
95
+ await agent.generateText(ctx, { threadId }, {
96
+ prompt: "...",
97
+ maxSteps: 5
98
+ })
99
+
100
+ // After (maxSteps still works, but stopWhen is preferred)
101
+ import { stepCountIs } from "ai"
102
+ await agent.generateText(ctx, { threadId }, {
103
+ prompt: "...",
104
+ stopWhen: stepCountIs(5)
105
+ })
106
+ ```
107
+
108
+ ## Step 5: Verify
109
+
110
+ ```bash
111
+ npm run typecheck
112
+ npm test
113
+ ```
114
+
115
+ ## Common Issues
116
+
117
+ ### EmbeddingModelV2 vs EmbeddingModelV3 type errors
118
+ Ensure all `@ai-sdk/*` packages are updated to v3.x. Older versions use AI SDK v5 types.
119
+
120
+ ### Tool `args` vs `input`
121
+ AI SDK v6 renamed `args` to `input` in tool calls. The library maintains backwards compatibility, but you may see this in types.
122
+
123
+ ### `mimeType` vs `mediaType`
124
+ AI SDK v6 renamed `mimeType` to `mediaType`. Backwards compatibility is maintained.
125
+
126
+ ### Peer dependency conflicts
127
+
128
+ If you see errors like:
129
+ ```
130
+ npm error ERESOLVE unable to resolve dependency tree
131
+ npm error peer ai@"^5.0.0" from @openrouter/ai-sdk-provider@1.0.3
132
+ ```
133
+
134
+ This means a third-party provider needs updating. Common solutions:
135
+
136
+ 1. **Update the provider** to a version compatible with AI SDK v6
137
+ 2. **Check npm** for the latest version: `npm view @openrouter/ai-sdk-provider versions`
138
+ 3. **Use `--force`** if a compatible version isn't available yet (temporary workaround)
139
+
140
+ ### Third-party provider compatibility
141
+
142
+ | Provider | AI SDK v5 (ai@5.x) | AI SDK v6 (ai@6.x) |
143
+ |----------|-------------------|-------------------|
144
+ | @openrouter/ai-sdk-provider | v1.x | v2.x |
145
+ | @ai-sdk/openai | v1.x-v2.x | v3.x |
146
+ | @ai-sdk/anthropic | v1.x-v2.x | v3.x |
147
+ | @ai-sdk/groq | v1.x-v2.x | v3.x |
148
+ | @ai-sdk/google | v1.x-v2.x | v3.x |
149
+
150
+ ## More Information
151
+
152
+ - [AI SDK v6 Migration Guide](https://ai-sdk.dev/docs/migration-guides/migration-guide-6-0)
153
+ - [Convex Agent Documentation](https://docs.convex.dev/agents)
package/README.md CHANGED
@@ -21,34 +21,39 @@ The Agent component is a core building block for building AI agents. It manages
21
21
  threads and messages, around which you Agents can cooperate in static or dynamic
22
22
  workflows.
23
23
 
24
- - [Agents](./docs/getting-started.mdx) provide an abstraction for using LLMs to
25
- represent units of use-case-specific prompting with associated models,
26
- prompts, [Tool Calls](./docs/tools.mdx), and behavior in relation to other
27
- Agents, functions, APIs, and more.
28
- - [Threads](./docs/threads.mdx) persist [messages](./docs/messages.mdx) and can
29
- be shared by multiple users and agents (including
30
- [human agents](./docs/human-agents.mdx)).
24
+ - [Agents](https://docs.convex.dev/agents/agent-usage) provide an abstraction
25
+ for using LLMs to represent units of use-case-specific prompting with
26
+ associated models, prompts,
27
+ [Tool Calls](https://docs.convex.dev/agents/tools), and behavior in relation
28
+ to other Agents, functions, APIs, and more.
29
+ - [Threads](https://docs.convex.dev/agents/threads) persist
30
+ [messages](https://docs.convex.dev/agents/messages) and can be shared by
31
+ multiple users and agents (including
32
+ [human agents](https://docs.convex.dev/agents/human-agents)).
31
33
  - Streaming text and objects using deltas over websockets so all clients stay in
32
34
  sync efficiently, without http streaming. Enables streaming from async
33
35
  functions.
34
- - [Conversation context](./docs/context.mdx) is automatically included in each
35
- LLM call, including built-in hybrid vector/text search for messages in the
36
- thread and opt-in search for messages from other threads (for the same
37
- specified user).
38
- - [RAG](./docs/rag.mdx) techniques are supported for prompt augmentation from
39
- other sources, either up front in the prompt or as tool calls. Integrates with
40
- the [RAG Component](https://www.convex.dev/components/rag), or DIY.
41
- - [Workflows](./docs/workflows.mdx) allow building multi-step operations that
42
- can span agents, users, durably and reliably.
43
- - [Files](./docs/files.mdx) are supported in thread history with automatic
44
- saving to [file storage](https://docs.convex.dev/file-storage) and
45
- ref-counting.
46
- - [Debugging](./docs/debugging.mdx) is enabled by callbacks, the
47
- [agent playground](./docs/playground.mdx) where you can inspect all metadata
48
- and iterate on prompts and context settings, and inspection in the dashboard.
49
- - [Usage tracking](./docs/usage-tracking.mdx) is easy to set up, enabling usage
50
- attribution per-provider, per-model, per-user, per-agent, for billing & more.
51
- - [Rate limiting](./docs/rate-limiting.mdx), powered by the
36
+ - [Conversation context](https://docs.convex.dev/agents/context) is
37
+ automatically included in each LLM call, including built-in hybrid vector/text
38
+ search for messages in the thread and opt-in search for messages from other
39
+ threads (for the same specified user).
40
+ - [RAG](https://docs.convex.dev/agents/rag) techniques are supported for prompt
41
+ augmentation from other sources, either up front in the prompt or as tool
42
+ calls. Integrates with the
43
+ [RAG Component](https://www.convex.dev/components/rag), or DIY.
44
+ - [Workflows](https://docs.convex.dev/agents/workflows) allow building
45
+ multi-step operations that can span agents, users, durably and reliably.
46
+ - [Files](https://docs.convex.dev/agents/files) are supported in thread history
47
+ with automatic saving to [file storage](https://docs.convex.dev/file-storage)
48
+ and ref-counting.
49
+ - [Debugging](https://docs.convex.dev/agents/debugging) is enabled by callbacks,
50
+ the [agent playground](https://docs.convex.dev/agents/playground) where you
51
+ can inspect all metadata and iterate on prompts and context settings, and
52
+ inspection in the dashboard.
53
+ - [Usage tracking](https://docs.convex.dev/agents/usage-tracking) is easy to set
54
+ up, enabling usage attribution per-provider, per-model, per-user, per-agent,
55
+ for billing & more.
56
+ - [Rate limiting](https://docs.convex.dev/agents/rate-limiting), powered by the
52
57
  [Rate Limiter Component](https://www.convex.dev/components/rate-limiter),
53
58
  helps control the rate at which users can interact with agents and keep you
54
59
  from exceeding your LLM provider's limits.
@@ -58,13 +63,13 @@ workflows.
58
63
  [![Powerful AI Apps Made Easy with the Agent Component](https://thumbs.video-to-markdown.com/b323ac24.jpg)](https://youtu.be/tUKMPUlOCHY)
59
64
  **Read the [docs](https://docs.convex.dev/agents) for more details.**
60
65
 
61
- Play with the [example](./example/):
66
+ Play with the example:
62
67
 
63
68
  ```sh
64
69
  git clone https://github.com/get-convex/agent.git
65
70
  cd agent
66
71
  npm run setup
67
- npm run example
72
+ npm run dev
68
73
  ```
69
74
 
70
75
  Found a bug? Feature request?
@@ -0,0 +1,46 @@
1
+ import { type UIMessage as AIUIMessage, type UIDataTypes, type UITools } from "ai";
2
+ import type { MessageDoc, MessageStatus, ProviderOptions } from "./validators.js";
3
+ export type UIStatus = "streaming" | MessageStatus;
4
+ export type UIMessage<METADATA = unknown, DATA_PARTS extends UIDataTypes = UIDataTypes, TOOLS extends UITools = UITools> = AIUIMessage<METADATA, DATA_PARTS, TOOLS> & {
5
+ key: string;
6
+ order: number;
7
+ stepOrder: number;
8
+ status: UIStatus;
9
+ agentName?: string;
10
+ userId?: string;
11
+ text: string;
12
+ _creationTime: number;
13
+ };
14
+ /**
15
+ * Converts a list of UIMessages to MessageDocs, along with extra metadata that
16
+ * may be available to associate with the MessageDocs.
17
+ * @param messages - The UIMessages to convert to MessageDocs.
18
+ * @param meta - The metadata to add to the MessageDocs.
19
+ * @returns
20
+ */
21
+ export declare function fromUIMessages<METADATA = unknown>(messages: UIMessage<METADATA>[], meta: {
22
+ threadId: string;
23
+ userId?: string;
24
+ model?: string;
25
+ provider?: string;
26
+ providerOptions?: ProviderOptions;
27
+ metadata?: METADATA;
28
+ }): Promise<(MessageDoc & {
29
+ streaming: boolean;
30
+ metadata?: METADATA;
31
+ })[]>;
32
+ type ExtraFields<METADATA = unknown> = {
33
+ streaming?: boolean;
34
+ metadata?: METADATA;
35
+ };
36
+ /**
37
+ * Converts a list of MessageDocs to UIMessages.
38
+ * This is somewhat lossy, as many fields are not supported by UIMessages, e.g.
39
+ * the model, provider, userId, etc.
40
+ * The UIMessage type is the augmented type that includes more fields such as
41
+ * key, order, stepOrder, status, agentName, text, etc.
42
+ */
43
+ export declare function toUIMessages<METADATA = unknown, DATA_PARTS extends UIDataTypes = UIDataTypes, TOOLS extends UITools = UITools>(messages: (MessageDoc & ExtraFields<METADATA>)[]): UIMessage<METADATA, DATA_PARTS, TOOLS>[];
44
+ export declare function combineUIMessages(messages: UIMessage[]): UIMessage[];
45
+ export {};
46
+ //# sourceMappingURL=UIMessages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UIMessages.d.ts","sourceRoot":"","sources":["../src/UIMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,IAAI,WAAW,EAU7B,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,IAAI,CAAC;AAUZ,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,aAAa,CAAC;AAEnD,MAAM,MAAM,SAAS,CACnB,QAAQ,GAAG,OAAO,EAClB,UAAU,SAAS,WAAW,GAAG,WAAW,EAC5C,KAAK,SAAS,OAAO,GAAG,OAAO,IAC7B,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,QAAQ,GAAG,OAAO,EACrD,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,EAC/B,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GACA,OAAO,CAAC,CAAC,UAAU,GAAG;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC,EAAE,CAAC,CAiEvE;AA8BD,KAAK,WAAW,CAAC,QAAQ,GAAG,OAAO,IAAI;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,GAAG,OAAO,EAClB,UAAU,SAAS,WAAW,GAAG,WAAW,EAC5C,KAAK,SAAS,OAAO,GAAG,OAAO,EAE/B,QAAQ,EAAE,CAAC,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,GAC/C,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,CAiB1C;AA+dD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CA2CpE"}