@convex-dev/agent 0.1.1-alpha.0 → 0.1.2-alpha.0

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 (131) hide show
  1. package/README.md +9 -3
  2. package/dist/commonjs/client/createTool.d.ts +49 -0
  3. package/dist/commonjs/client/createTool.d.ts.map +1 -0
  4. package/dist/commonjs/client/createTool.js +45 -0
  5. package/dist/commonjs/client/createTool.js.map +1 -0
  6. package/dist/commonjs/client/index.d.ts +101 -322
  7. package/dist/commonjs/client/index.d.ts.map +1 -1
  8. package/dist/commonjs/client/index.js +142 -194
  9. package/dist/commonjs/client/index.js.map +1 -1
  10. package/dist/commonjs/client/streaming.d.ts +54 -0
  11. package/dist/commonjs/client/streaming.d.ts.map +1 -0
  12. package/dist/commonjs/client/streaming.js +121 -0
  13. package/dist/commonjs/client/streaming.js.map +1 -0
  14. package/dist/commonjs/client/types.d.ts +290 -2
  15. package/dist/commonjs/client/types.d.ts.map +1 -1
  16. package/dist/commonjs/component/messages.d.ts +109 -143
  17. package/dist/commonjs/component/messages.d.ts.map +1 -1
  18. package/dist/commonjs/component/messages.js +15 -14
  19. package/dist/commonjs/component/messages.js.map +1 -1
  20. package/dist/commonjs/component/schema.d.ts +1026 -52
  21. package/dist/commonjs/component/schema.d.ts.map +1 -1
  22. package/dist/commonjs/component/schema.js +39 -1
  23. package/dist/commonjs/component/schema.js.map +1 -1
  24. package/dist/commonjs/component/streams.d.ts +191 -0
  25. package/dist/commonjs/component/streams.d.ts.map +1 -0
  26. package/dist/commonjs/component/streams.js +169 -0
  27. package/dist/commonjs/component/streams.js.map +1 -0
  28. package/dist/commonjs/component/threads.d.ts +1 -1
  29. package/dist/commonjs/component/threads.js +3 -3
  30. package/dist/commonjs/component/threads.js.map +1 -1
  31. package/dist/commonjs/component/users.js +2 -2
  32. package/dist/commonjs/component/users.js.map +1 -1
  33. package/dist/commonjs/component/vector/index.d.ts +8 -8
  34. package/dist/commonjs/component/vector/index.d.ts.map +1 -1
  35. package/dist/commonjs/component/vector/tables.d.ts +5 -5
  36. package/dist/commonjs/component/vector/tables.d.ts.map +1 -1
  37. package/dist/commonjs/component/vector/tables.js +1 -1
  38. package/dist/commonjs/component/vector/tables.js.map +1 -1
  39. package/dist/commonjs/mapping.d.ts.map +1 -1
  40. package/dist/commonjs/mapping.js +3 -1
  41. package/dist/commonjs/mapping.js.map +1 -1
  42. package/dist/commonjs/react/index.d.ts +99 -0
  43. package/dist/commonjs/react/index.d.ts.map +1 -1
  44. package/dist/commonjs/react/index.js +505 -1
  45. package/dist/commonjs/react/index.js.map +1 -1
  46. package/dist/commonjs/react/toUIMessages.d.ts +8 -0
  47. package/dist/commonjs/react/toUIMessages.d.ts.map +1 -0
  48. package/dist/commonjs/react/toUIMessages.js +134 -0
  49. package/dist/commonjs/react/toUIMessages.js.map +1 -0
  50. package/dist/commonjs/validators.d.ts +513 -11
  51. package/dist/commonjs/validators.d.ts.map +1 -1
  52. package/dist/commonjs/validators.js +49 -2
  53. package/dist/commonjs/validators.js.map +1 -1
  54. package/dist/esm/client/createTool.d.ts +49 -0
  55. package/dist/esm/client/createTool.d.ts.map +1 -0
  56. package/dist/esm/client/createTool.js +45 -0
  57. package/dist/esm/client/createTool.js.map +1 -0
  58. package/dist/esm/client/index.d.ts +101 -322
  59. package/dist/esm/client/index.d.ts.map +1 -1
  60. package/dist/esm/client/index.js +142 -194
  61. package/dist/esm/client/index.js.map +1 -1
  62. package/dist/esm/client/streaming.d.ts +54 -0
  63. package/dist/esm/client/streaming.d.ts.map +1 -0
  64. package/dist/esm/client/streaming.js +121 -0
  65. package/dist/esm/client/streaming.js.map +1 -0
  66. package/dist/esm/client/types.d.ts +290 -2
  67. package/dist/esm/client/types.d.ts.map +1 -1
  68. package/dist/esm/component/messages.d.ts +109 -143
  69. package/dist/esm/component/messages.d.ts.map +1 -1
  70. package/dist/esm/component/messages.js +15 -14
  71. package/dist/esm/component/messages.js.map +1 -1
  72. package/dist/esm/component/schema.d.ts +1026 -52
  73. package/dist/esm/component/schema.d.ts.map +1 -1
  74. package/dist/esm/component/schema.js +39 -1
  75. package/dist/esm/component/schema.js.map +1 -1
  76. package/dist/esm/component/streams.d.ts +191 -0
  77. package/dist/esm/component/streams.d.ts.map +1 -0
  78. package/dist/esm/component/streams.js +169 -0
  79. package/dist/esm/component/streams.js.map +1 -0
  80. package/dist/esm/component/threads.d.ts +1 -1
  81. package/dist/esm/component/threads.js +3 -3
  82. package/dist/esm/component/threads.js.map +1 -1
  83. package/dist/esm/component/users.js +2 -2
  84. package/dist/esm/component/users.js.map +1 -1
  85. package/dist/esm/component/vector/index.d.ts +8 -8
  86. package/dist/esm/component/vector/index.d.ts.map +1 -1
  87. package/dist/esm/component/vector/tables.d.ts +5 -5
  88. package/dist/esm/component/vector/tables.d.ts.map +1 -1
  89. package/dist/esm/component/vector/tables.js +1 -1
  90. package/dist/esm/component/vector/tables.js.map +1 -1
  91. package/dist/esm/mapping.d.ts.map +1 -1
  92. package/dist/esm/mapping.js +3 -1
  93. package/dist/esm/mapping.js.map +1 -1
  94. package/dist/esm/react/index.d.ts +99 -0
  95. package/dist/esm/react/index.d.ts.map +1 -1
  96. package/dist/esm/react/index.js +505 -1
  97. package/dist/esm/react/index.js.map +1 -1
  98. package/dist/esm/react/toUIMessages.d.ts +8 -0
  99. package/dist/esm/react/toUIMessages.d.ts.map +1 -0
  100. package/dist/esm/react/toUIMessages.js +134 -0
  101. package/dist/esm/react/toUIMessages.js.map +1 -0
  102. package/dist/esm/validators.d.ts +513 -11
  103. package/dist/esm/validators.d.ts.map +1 -1
  104. package/dist/esm/validators.js +49 -2
  105. package/dist/esm/validators.js.map +1 -1
  106. package/package.json +6 -2
  107. package/src/client/createTool.ts +108 -0
  108. package/src/client/index.ts +270 -689
  109. package/src/client/streaming.ts +166 -0
  110. package/src/client/types.ts +430 -5
  111. package/src/component/_generated/api.d.ts +367 -190
  112. package/src/component/messages.ts +15 -14
  113. package/src/component/schema.ts +46 -0
  114. package/src/component/streams.ts +206 -0
  115. package/src/component/threads.ts +3 -3
  116. package/src/component/users.ts +2 -2
  117. package/src/component/vector/tables.ts +1 -1
  118. package/src/mapping.ts +3 -1
  119. package/src/react/index.ts +687 -1
  120. package/src/react/toUIMessages.ts +153 -0
  121. package/src/validators.test.ts +18 -0
  122. package/src/validators.ts +72 -2
  123. package/dist/commonjs/deltaStreaming.d.ts +0 -2
  124. package/dist/commonjs/deltaStreaming.d.ts.map +0 -1
  125. package/dist/commonjs/deltaStreaming.js +0 -2
  126. package/dist/commonjs/deltaStreaming.js.map +0 -1
  127. package/dist/esm/deltaStreaming.d.ts +0 -2
  128. package/dist/esm/deltaStreaming.d.ts.map +0 -1
  129. package/dist/esm/deltaStreaming.js +0 -2
  130. package/dist/esm/deltaStreaming.js.map +0 -1
  131. package/src/deltaStreaming.ts +0 -1
@@ -1,8 +1,512 @@
1
- import { useState, useMemo } from "react";
1
+ import { usePaginatedQuery, useQuery, } from "convex/react";
2
+ import { useMemo, useState } from "react";
3
+ import { toUIMessages } from "./toUIMessages";
4
+ export { toUIMessages };
5
+ /**
6
+ * A hook that fetches messages from a thread.
7
+ *
8
+ * This hook is a wrapper around `usePaginatedQuery` and `useStreamingThreadMessages`.
9
+ * It will fetch both full messages and streaming messages, and merge them together.
10
+ *
11
+ * The query must take as arguments `{ threadId, paginationOpts }` and return a
12
+ * pagination result of objects that extend `MessageDoc`.
13
+ *
14
+ * For streaming, it should look like this:
15
+ * ```ts
16
+ * export const listThreadMessages = query({
17
+ * args: {
18
+ * threadId: v.string(),
19
+ * paginationOpts: paginationOptsValidator,
20
+ * streamArgs: vStreamArgs,
21
+ * ... other arguments you want
22
+ * },
23
+ * handler: async (ctx, { threadId, paginationOpts, streamArgs }) => {
24
+ * // await authorizeThreadAccess(ctx, threadId);
25
+ * const paginated = await agent.listMessages(ctx, { threadId, paginationOpts });
26
+ * const streams = await agent.syncStreams(ctx, { threadId, streamArgs });
27
+ * // Here you could filter out / modify the documents & stream deltas.
28
+ * return { ...paginated, streams };
29
+ * },
30
+ * });
31
+ * ```
32
+ *
33
+ * Then the hook can be used like this:
34
+ * ```ts
35
+ * const messages = useThreadMessages(
36
+ * api.myModule.listThreadMessages,
37
+ * { threadId },
38
+ * { initialNumItems: 10, stream: true }
39
+ * );
40
+ * ```
41
+ *
42
+ * @param query The query to use to fetch messages.
43
+ * It must take as arguments `{ threadId, paginationOpts }` and return a
44
+ * pagination result of objects that extend `MessageDoc`.
45
+ * To support streaming, it must also take in `streamArgs: vStreamArgs` and
46
+ * return a `streams` object returned from `agent.syncStreams`.
47
+ * @param args The arguments to pass to the query other than `paginationOpts`
48
+ * and `streamArgs`. So `{ threadId }` at minimum, plus any other arguments that
49
+ * you want to pass to the query.
50
+ * @param options The options for the query. Similar to usePaginatedQuery.
51
+ * To enable streaming, pass `stream: true`.
52
+ * @returns The messages. If stream is true, it will return a list of messages
53
+ * that includes both full messages and streaming messages.
54
+ */
55
+ export function useThreadMessages(query, args, options) {
56
+ // These are full messages
57
+ const paginated = usePaginatedQuery(query, args, { initialNumItems: options.initialNumItems });
58
+ // These are streaming messages that will not include full messages.
59
+ const streamMessages = useStreamingThreadMessages(
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
+ query, !options.stream ? "skip" : args);
62
+ const merged = useMemo(() => {
63
+ const streamListMessages = streamMessages?.map((m) => ({
64
+ ...m,
65
+ streaming: true,
66
+ })) ?? [];
67
+ return {
68
+ ...paginated,
69
+ results: paginated.results
70
+ .map((m) => ({ ...m, streaming: false }))
71
+ .concat(streamListMessages)
72
+ .sort((a, b) => a.order === b.order ? a.stepOrder - b.stepOrder : a.order - b.order)
73
+ // They shouldn't overlap, but check for duplicates just in case.
74
+ .filter((m, i, arr) => !arr[i - 1] ||
75
+ m.order !== arr[i - 1].order ||
76
+ m.stepOrder !== arr[i - 1].stepOrder),
77
+ };
78
+ }, [paginated, streamMessages]);
79
+ return merged;
80
+ }
81
+ /**
82
+ * A hook that fetches streaming messages from a thread.
83
+ * This ONLY returns streaming messages. To get both, use `useThreadMessages`.
84
+ *
85
+ * @param query The query to use to fetch messages.
86
+ * It must take as arguments `{ threadId, paginationOpts, streamArgs }` and
87
+ * return a `streams` object returned from `agent.syncStreams`.
88
+ * @param args The arguments to pass to the query other than `paginationOpts`
89
+ * and `streamArgs`. So `{ threadId }` at minimum, plus any other arguments that
90
+ * you want to pass to the query.
91
+ * @returns The streaming messages.
92
+ */
93
+ export function useStreamingThreadMessages(query, args) {
94
+ // Invariant: streamMessages[streamId] is comprised of all deltas up to the
95
+ // cursor. There can be multiple messages in the same stream, e.g. for tool
96
+ // calls.
97
+ const [streams, setStreams] = useState([]);
98
+ // Get all the active streams
99
+ const streamList = useQuery(query, args === "skip"
100
+ ? args
101
+ : {
102
+ ...args,
103
+ paginationOpts: { cursor: null, numItems: 0 },
104
+ streamArgs: { kind: "list" },
105
+ });
106
+ // Get the cursors for all the active streams
107
+ const cursors = useMemo(() => {
108
+ if (!streamList?.streams)
109
+ return [];
110
+ if (streamList.streams.kind !== "list") {
111
+ throw new Error("Expected list streams");
112
+ }
113
+ return streamList.streams.messages.map(({ streamId }) => {
114
+ const stream = streams.find((s) => s.stream.streamId === streamId);
115
+ // Because of the invariant, we can just take the last chunk's end.
116
+ const cursor = stream?.cursor ?? 0;
117
+ return { streamId, cursor };
118
+ });
119
+ }, [streamList, streams]);
120
+ // Get the deltas for all the active streams, if any.
121
+ const cursorQuery = useQuery(query, args === "skip" || !streamList
122
+ ? "skip"
123
+ : {
124
+ ...args,
125
+ paginationOpts: { cursor: null, numItems: 0 },
126
+ streamArgs: { kind: "deltas", cursors },
127
+ });
128
+ // Merge any deltas into the streamChunks, keeping it unmodified if unchanged.
129
+ const [messages, newStreams, changed] = useMemo(() => {
130
+ if (args === "skip")
131
+ return [undefined, streams, false];
132
+ if (!streamList)
133
+ return [undefined, streams, false];
134
+ if (cursorQuery && cursorQuery.streams?.kind !== "deltas") {
135
+ throw new Error("Expected deltas streams");
136
+ }
137
+ return mergeDeltas(args.threadId, streamList.streams.messages, streams, cursorQuery?.streams?.deltas ?? []);
138
+ }, [cursorQuery, streams, streamList]);
139
+ // Now assemble the chunks into messages
140
+ if (args === "skip") {
141
+ return undefined;
142
+ }
143
+ if (changed) {
144
+ setStreams(newStreams);
145
+ }
146
+ return messages;
147
+ }
148
+ function mergeDeltas(threadId, streamMessages, existingStreams, allDeltas) {
149
+ const newStreams = [];
150
+ // Seed the existing chunks
151
+ let changed = false;
152
+ for (const streamMessage of streamMessages) {
153
+ const deltas = allDeltas
154
+ .filter((d) => d.streamId === streamMessage.streamId)
155
+ .sort((a, b) => a.start - b.start);
156
+ const existing = existingStreams.find((s) => s.stream.streamId === streamMessage.streamId);
157
+ const [newStream, messageChanged] = applyDeltasToStreamMessages(threadId, streamMessage, existing, deltas);
158
+ newStreams.push(newStream);
159
+ if (messageChanged)
160
+ changed = true;
161
+ }
162
+ for (const { stream } of existingStreams) {
163
+ if (!newStreams.find((s) => s.stream.streamId === stream.streamId)) {
164
+ // There's a stream that's no longer active.
165
+ changed = true;
166
+ }
167
+ }
168
+ const messages = newStreams
169
+ .sort((a, b) => a.stream.order - b.stream.order ||
170
+ a.stream.stepOrder - b.stream.stepOrder)
171
+ .map((s) => s.messages)
172
+ .flat();
173
+ return [messages, newStreams, changed];
174
+ }
175
+ function applyDeltasToStreamMessages(threadId, streamMessage, existing, deltas) {
176
+ let changed = false;
177
+ const newStream = {
178
+ stream: streamMessage,
179
+ cursor: existing?.cursor ?? 0,
180
+ messages: existing?.messages ?? [],
181
+ };
182
+ let parts = [];
183
+ for (const delta of deltas) {
184
+ if (delta.parts.length === 0) {
185
+ console.warn(`Got delta for stream ${delta.streamId} with no parts`);
186
+ continue;
187
+ }
188
+ if (newStream.cursor !== delta.start) {
189
+ if (newStream.cursor >= delta.end) {
190
+ console.debug(`Got duplicate delta for stream ${delta.streamId} at ${delta.start}`);
191
+ continue;
192
+ }
193
+ else if (newStream.cursor < delta.start) {
194
+ console.warn(`Got delta for stream ${delta.streamId} that has a gap ${newStream.cursor} -> ${delta.start}`);
195
+ continue;
196
+ }
197
+ else {
198
+ throw new Error(`Got unexpected delta for stream ${delta.streamId}: delta: ${delta.start} -> ${delta.end} existing cursor: ${newStream.cursor}`);
199
+ }
200
+ }
201
+ changed = true;
202
+ newStream.cursor = delta.end;
203
+ parts.push(...delta.parts);
204
+ }
205
+ if (!changed) {
206
+ return [existing ?? newStream, false];
207
+ }
208
+ if (!newStream.messages.at(-1)) {
209
+ newStream.messages.push(createStreamingMessage(threadId, streamMessage, parts[0], newStream.messages.length));
210
+ parts = parts.slice(1);
211
+ }
212
+ let currentMessage = newStream.messages.at(-1);
213
+ let lastContent = getLastContent(currentMessage);
214
+ for (const part of parts) {
215
+ let contentToAdd;
216
+ const isToolRole = part.type === "source" || part.type === "tool-result";
217
+ if (isToolRole !== (currentMessage.message.role === "tool")) {
218
+ currentMessage = createStreamingMessage(threadId, streamMessage, part, newStream.messages.length);
219
+ lastContent = getLastContent(currentMessage);
220
+ newStream.messages.push(currentMessage);
221
+ }
222
+ switch (part.type) {
223
+ case "text-delta":
224
+ currentMessage.text += part.textDelta;
225
+ if (lastContent?.type === "text") {
226
+ lastContent.text += part.textDelta;
227
+ }
228
+ else {
229
+ contentToAdd = {
230
+ type: "text",
231
+ text: part.textDelta,
232
+ };
233
+ }
234
+ break;
235
+ case "tool-call-streaming-start":
236
+ currentMessage.tool = true;
237
+ contentToAdd = {
238
+ type: "tool-call",
239
+ toolCallId: part.toolCallId,
240
+ toolName: part.toolName,
241
+ args: "",
242
+ };
243
+ break;
244
+ case "tool-call-delta":
245
+ {
246
+ currentMessage.tool = true;
247
+ if (lastContent?.type !== "tool-call") {
248
+ throw new Error("Expected last content to be a tool call");
249
+ }
250
+ if (typeof lastContent.args !== "string") {
251
+ throw new Error("Expected args to be a string");
252
+ }
253
+ lastContent.args += part.argsTextDelta;
254
+ }
255
+ break;
256
+ case "tool-call":
257
+ currentMessage.tool = true;
258
+ contentToAdd = part;
259
+ break;
260
+ case "reasoning":
261
+ if (lastContent?.type === "reasoning") {
262
+ lastContent.text += part.textDelta;
263
+ }
264
+ else {
265
+ contentToAdd = {
266
+ type: "reasoning",
267
+ text: part.textDelta,
268
+ };
269
+ }
270
+ break;
271
+ case "source":
272
+ if (!currentMessage.sources) {
273
+ currentMessage.sources = [];
274
+ }
275
+ currentMessage.sources.push(part.source);
276
+ break;
277
+ case "tool-result":
278
+ contentToAdd = part;
279
+ break;
280
+ default:
281
+ console.warn(`Received unexpected part: ${JSON.stringify(part)}`);
282
+ break;
283
+ }
284
+ if (contentToAdd) {
285
+ if (!currentMessage.message.content) {
286
+ currentMessage.message.content = [];
287
+ }
288
+ if (!Array.isArray(currentMessage.message?.content)) {
289
+ throw new Error("Expected message content to be an array");
290
+ }
291
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
292
+ currentMessage.message.content.push(contentToAdd);
293
+ lastContent = contentToAdd;
294
+ }
295
+ }
296
+ return [newStream, true];
297
+ }
298
+ function getLastContent(message) {
299
+ if (Array.isArray(message.message?.content)) {
300
+ return message.message.content.at(-1);
301
+ }
302
+ return undefined;
303
+ }
304
+ function createStreamingMessage(threadId, message, part, index) {
305
+ const { streamId, ...rest } = message;
306
+ const metadata = {
307
+ _id: `${streamId}-${index}`,
308
+ _creationTime: Date.now(),
309
+ status: "pending",
310
+ threadId,
311
+ tool: false,
312
+ ...rest,
313
+ };
314
+ switch (part.type) {
315
+ case "text-delta":
316
+ return {
317
+ ...metadata,
318
+ message: {
319
+ role: "assistant",
320
+ content: [{ type: "text", text: part.textDelta }],
321
+ },
322
+ text: part.textDelta,
323
+ };
324
+ case "tool-call-streaming-start":
325
+ return {
326
+ ...metadata,
327
+ tool: true,
328
+ message: {
329
+ role: "assistant",
330
+ content: [
331
+ {
332
+ type: "tool-call",
333
+ toolName: part.toolName,
334
+ toolCallId: part.toolCallId,
335
+ args: "", // when it's a string, it's a partial call
336
+ },
337
+ ],
338
+ },
339
+ };
340
+ case "reasoning":
341
+ return {
342
+ ...metadata,
343
+ message: {
344
+ role: "assistant",
345
+ content: [{ type: "reasoning", text: part.textDelta }],
346
+ },
347
+ reasoning: part.textDelta,
348
+ };
349
+ case "source":
350
+ console.warn("Received source part first??");
351
+ return {
352
+ ...metadata,
353
+ tool: true,
354
+ message: { role: "tool", content: [] },
355
+ sources: [part.source],
356
+ };
357
+ case "tool-call":
358
+ return {
359
+ ...metadata,
360
+ tool: true,
361
+ message: { role: "assistant", content: [part] },
362
+ };
363
+ case "tool-call-delta":
364
+ console.warn("Received tool call delta part first??");
365
+ return {
366
+ ...metadata,
367
+ tool: true,
368
+ message: {
369
+ role: "assistant",
370
+ content: [
371
+ {
372
+ type: "tool-call",
373
+ toolCallId: part.toolCallId,
374
+ toolName: part.toolName,
375
+ args: part.argsTextDelta,
376
+ },
377
+ ],
378
+ },
379
+ };
380
+ case "tool-result":
381
+ return {
382
+ ...metadata,
383
+ tool: true,
384
+ message: { role: "tool", content: [part] },
385
+ };
386
+ default:
387
+ throw new Error(`Unexpected part type: ${JSON.stringify(part)}`);
388
+ }
389
+ }
390
+ // TODO: pass in the messages we need to watch? that way it can be consistent..
391
+ // export function streamMessagesToUIMessages(
392
+ // messages: StreamsChunk[],
393
+ // keyOrder: string[]
394
+ // ): UIMessageOrdered[] {
395
+ // const uiMessagesByMessageId: Record<string, UIMessageOrdered[]> = {};
396
+ // for (const message of messages) {
397
+ // if (message.deltas.length === 0) {
398
+ // continue;
399
+ // }
400
+ // if (!uiMessagesByMessageId[message.key]) {
401
+ // uiMessagesByMessageId[message.key] = [];
402
+ // }
403
+ // if (uiMessagesByMessageId[message.key].length === 0) {
404
+ // uiMessagesByMessageId[message.key] = [
405
+ // createUIMessageFromPart(message.deltas[0], {
406
+ // id: message.key,
407
+ // createdAt: new Date(),
408
+ // }),
409
+ // ];
410
+ // }
411
+ // const currentMessage = uiMessagesByMessageId[message.key].at(-1)!;
412
+ // const lastPart = currentMessage.parts.at(-1);
413
+ // for (const delta of message.deltas) {
414
+ // switch (delta.type) {
415
+ // case "text-delta":
416
+ // currentMessage.content += delta.textDelta;
417
+ // if (lastPart?.type === "text") {
418
+ // lastPart.text += delta.textDelta;
419
+ // } else {
420
+ // currentMessage.parts.push({
421
+ // type: "text",
422
+ // text: delta.textDelta,
423
+ // });
424
+ // }
425
+ // break;
426
+ // case "tool-call-delta": {
427
+ // let lastToolInvocation: ToolInvocationUIPart | undefined;
428
+ // for (let i = currentMessage.parts.length - 1; i >= 0; i--) {
429
+ // const part = currentMessage.parts[i];
430
+ // if (
431
+ // part.type === "tool-invocation" &&
432
+ // part.toolInvocation.state === "partial-call"
433
+ // ) {
434
+ // lastToolInvocation = part;
435
+ // break;
436
+ // }
437
+ // }
438
+ // if (lastToolInvocation) {
439
+ // lastToolInvocation.toolInvocation = {
440
+ // ...lastToolInvocation.toolInvocation,
441
+ // state: "call",
442
+ // };
443
+ // break;
444
+ // }
445
+ // console.error(
446
+ // `Received a tool call delta without a previous tool invocation: ${JSON.stringify(currentMessage.parts)}, creating one anyways...`
447
+ // );
448
+ // }
449
+ // // fallthrough
450
+ // case "tool-call-streaming-start":
451
+ // currentMessage.parts.push({
452
+ // type: "tool-invocation",
453
+ // toolInvocation: {
454
+ // toolCallId: delta.toolCallId,
455
+ // toolName: delta.toolName,
456
+ // args: {},
457
+ // state: "partial-call",
458
+ // step:
459
+ // currentMessage.parts.filter(
460
+ // (part) => part.type === "tool-invocation"
461
+ // ).length + 1,
462
+ // },
463
+ // });
464
+ // break;
465
+ // case "tool-call":
466
+ // currentMessage.parts.push({
467
+ // type: "tool-invocation",
468
+ // toolInvocation: {
469
+ // toolCallId: delta.toolCallId,
470
+ // toolName: delta.toolName,
471
+ // args: delta.args,
472
+ // state: "call",
473
+ // step:
474
+ // currentMessage.parts.filter(
475
+ // (part) => part.type === "tool-invocation"
476
+ // ).length + 1,
477
+ // },
478
+ // });
479
+ // break;
480
+ // case "reasoning":
481
+ // if (lastPart?.type === "reasoning") {
482
+ // lastPart.reasoning += delta.textDelta;
483
+ // } else {
484
+ // currentMessage.parts.push({
485
+ // type: "reasoning",
486
+ // reasoning: delta.textDelta,
487
+ // details: [],
488
+ // });
489
+ // }
490
+ // break;
491
+ // case "source":
492
+ // currentMessage.parts.push({
493
+ // type: "source",
494
+ // source: delta.source,
495
+ // });
496
+ // break;
497
+ // default:
498
+ // console.warn(`Received unexpected part: ${JSON.stringify(delta)}`);
499
+ // break;
500
+ // }
501
+ // }
502
+ // }
503
+ // return keyOrder.map((key) => uiMessagesByMessageId[key]).flat();
504
+ // }
2
505
  if (typeof window === "undefined") {
3
506
  throw new Error("this is frontend code, but it's running somewhere else!");
4
507
  }
5
508
  /**
509
+ * @deprecated use useThreadMessages or useStreamingThreadMessages instead
6
510
  * Use this hook to stream text from a server action, using the
7
511
  * toTextStreamResponse or equivalent HTTP streaming endpoint returning text.
8
512
  * @param url The URL of the server action to stream text from.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE1C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,QAAuB,EACvB,KAAc;IAEd,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC7B,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC;YACH,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvD;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aAC3C,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,eAAe,GAAG,EAAE,CAAC;YAEzB,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM;gBACR,CAAC;gBACD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAClD,QAAQ,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB,CAAC;IACF,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,CAAU,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { UIMessage } from "ai";
2
+ import { MessageDoc } from "../client";
3
+ export type UIMessageOrdered = UIMessage & {
4
+ order: number;
5
+ stepOrder: number;
6
+ };
7
+ export declare function toUIMessages(messages: MessageDoc[]): UIMessageOrdered[];
8
+ //# sourceMappingURL=toUIMessages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toUIMessages.d.ts","sourceRoot":"","sources":["../../../src/react/toUIMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,CA8IvE"}