@convex-dev/agent 0.6.0-alpha.0 → 0.6.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 (192) hide show
  1. package/MIGRATION.md +153 -0
  2. package/package.json +4 -2
  3. package/src/UIMessages.ts +135 -0
  4. package/src/client/approval.test.ts +350 -0
  5. package/src/client/createTool.ts +50 -52
  6. package/src/client/index.ts +162 -1
  7. package/src/client/mockModel.ts +9 -2
  8. package/src/client/search.test.ts +4 -5
  9. package/src/client/search.ts +47 -2
  10. package/src/client/start.ts +41 -24
  11. package/src/client/streamText.ts +27 -3
  12. package/src/client/streaming.integration.test.ts +1206 -0
  13. package/src/client/streaming.ts +41 -12
  14. package/src/client/types.ts +14 -12
  15. package/src/component/_generated/component.ts +53 -64
  16. package/src/component/messages.ts +12 -2
  17. package/src/deltas.ts +0 -1
  18. package/src/mapping.test.ts +143 -1
  19. package/src/mapping.ts +115 -6
  20. package/src/react/useDeltaStreams.ts +6 -0
  21. package/dist/UIMessages.d.ts +0 -46
  22. package/dist/UIMessages.d.ts.map +0 -1
  23. package/dist/UIMessages.js +0 -546
  24. package/dist/UIMessages.js.map +0 -1
  25. package/dist/client/createTool.d.ts +0 -170
  26. package/dist/client/createTool.d.ts.map +0 -1
  27. package/dist/client/createTool.js +0 -115
  28. package/dist/client/createTool.js.map +0 -1
  29. package/dist/client/defaultComponent.d.ts +0 -11
  30. package/dist/client/defaultComponent.d.ts.map +0 -1
  31. package/dist/client/defaultComponent.js +0 -7
  32. package/dist/client/defaultComponent.js.map +0 -1
  33. package/dist/client/definePlaygroundAPI.d.ts +0 -1725
  34. package/dist/client/definePlaygroundAPI.d.ts.map +0 -1
  35. package/dist/client/definePlaygroundAPI.js +0 -271
  36. package/dist/client/definePlaygroundAPI.js.map +0 -1
  37. package/dist/client/files.d.ts +0 -69
  38. package/dist/client/files.d.ts.map +0 -1
  39. package/dist/client/files.js +0 -181
  40. package/dist/client/files.js.map +0 -1
  41. package/dist/client/index.d.ts +0 -2044
  42. package/dist/client/index.d.ts.map +0 -1
  43. package/dist/client/index.js +0 -804
  44. package/dist/client/index.js.map +0 -1
  45. package/dist/client/messages.d.ts +0 -461
  46. package/dist/client/messages.d.ts.map +0 -1
  47. package/dist/client/messages.js +0 -106
  48. package/dist/client/messages.js.map +0 -1
  49. package/dist/client/mockModel.d.ts +0 -42
  50. package/dist/client/mockModel.d.ts.map +0 -1
  51. package/dist/client/mockModel.js +0 -175
  52. package/dist/client/mockModel.js.map +0 -1
  53. package/dist/client/saveInputMessages.d.ts +0 -20
  54. package/dist/client/saveInputMessages.d.ts.map +0 -1
  55. package/dist/client/saveInputMessages.js +0 -58
  56. package/dist/client/saveInputMessages.js.map +0 -1
  57. package/dist/client/search.d.ts +0 -493
  58. package/dist/client/search.d.ts.map +0 -1
  59. package/dist/client/search.js +0 -425
  60. package/dist/client/search.js.map +0 -1
  61. package/dist/client/start.d.ts +0 -84
  62. package/dist/client/start.d.ts.map +0 -1
  63. package/dist/client/start.js +0 -171
  64. package/dist/client/start.js.map +0 -1
  65. package/dist/client/streamText.d.ts +0 -46
  66. package/dist/client/streamText.d.ts.map +0 -1
  67. package/dist/client/streamText.js +0 -93
  68. package/dist/client/streamText.js.map +0 -1
  69. package/dist/client/streaming.d.ts +0 -3767
  70. package/dist/client/streaming.d.ts.map +0 -1
  71. package/dist/client/streaming.js +0 -294
  72. package/dist/client/streaming.js.map +0 -1
  73. package/dist/client/threads.d.ts +0 -46
  74. package/dist/client/threads.d.ts.map +0 -1
  75. package/dist/client/threads.js +0 -49
  76. package/dist/client/threads.js.map +0 -1
  77. package/dist/client/types.d.ts +0 -460
  78. package/dist/client/types.d.ts.map +0 -1
  79. package/dist/client/types.js +0 -2
  80. package/dist/client/types.js.map +0 -1
  81. package/dist/client/utils.d.ts +0 -4
  82. package/dist/client/utils.d.ts.map +0 -1
  83. package/dist/client/utils.js +0 -21
  84. package/dist/client/utils.js.map +0 -1
  85. package/dist/component/_generated/api.d.ts +0 -48
  86. package/dist/component/_generated/api.d.ts.map +0 -1
  87. package/dist/component/_generated/api.js +0 -31
  88. package/dist/component/_generated/api.js.map +0 -1
  89. package/dist/component/_generated/component.d.ts +0 -3119
  90. package/dist/component/_generated/component.d.ts.map +0 -1
  91. package/dist/component/_generated/component.js +0 -11
  92. package/dist/component/_generated/component.js.map +0 -1
  93. package/dist/component/_generated/dataModel.d.ts +0 -46
  94. package/dist/component/_generated/dataModel.d.ts.map +0 -1
  95. package/dist/component/_generated/dataModel.js +0 -11
  96. package/dist/component/_generated/dataModel.js.map +0 -1
  97. package/dist/component/_generated/server.d.ts +0 -121
  98. package/dist/component/_generated/server.d.ts.map +0 -1
  99. package/dist/component/_generated/server.js +0 -78
  100. package/dist/component/_generated/server.js.map +0 -1
  101. package/dist/component/apiKeys.d.ts +0 -11
  102. package/dist/component/apiKeys.d.ts.map +0 -1
  103. package/dist/component/apiKeys.js +0 -69
  104. package/dist/component/apiKeys.js.map +0 -1
  105. package/dist/component/convex.config.d.ts +0 -3
  106. package/dist/component/convex.config.d.ts.map +0 -1
  107. package/dist/component/convex.config.js +0 -3
  108. package/dist/component/convex.config.js.map +0 -1
  109. package/dist/component/files.d.ts +0 -97
  110. package/dist/component/files.d.ts.map +0 -1
  111. package/dist/component/files.js +0 -190
  112. package/dist/component/files.js.map +0 -1
  113. package/dist/component/messages.d.ts +0 -3850
  114. package/dist/component/messages.d.ts.map +0 -1
  115. package/dist/component/messages.js +0 -747
  116. package/dist/component/messages.js.map +0 -1
  117. package/dist/component/schema.d.ts +0 -8026
  118. package/dist/component/schema.d.ts.map +0 -1
  119. package/dist/component/schema.js +0 -147
  120. package/dist/component/schema.js.map +0 -1
  121. package/dist/component/streams.d.ts +0 -128
  122. package/dist/component/streams.d.ts.map +0 -1
  123. package/dist/component/streams.js +0 -413
  124. package/dist/component/streams.js.map +0 -1
  125. package/dist/component/threads.d.ts +0 -115
  126. package/dist/component/threads.d.ts.map +0 -1
  127. package/dist/component/threads.js +0 -208
  128. package/dist/component/threads.js.map +0 -1
  129. package/dist/component/users.d.ts +0 -52
  130. package/dist/component/users.d.ts.map +0 -1
  131. package/dist/component/users.js +0 -229
  132. package/dist/component/users.js.map +0 -1
  133. package/dist/component/vector/index.d.ts +0 -61
  134. package/dist/component/vector/index.d.ts.map +0 -1
  135. package/dist/component/vector/index.js +0 -146
  136. package/dist/component/vector/index.js.map +0 -1
  137. package/dist/component/vector/tables.d.ts +0 -58
  138. package/dist/component/vector/tables.d.ts.map +0 -1
  139. package/dist/component/vector/tables.js +0 -56
  140. package/dist/component/vector/tables.js.map +0 -1
  141. package/dist/deltas.d.ts +0 -43
  142. package/dist/deltas.d.ts.map +0 -1
  143. package/dist/deltas.js +0 -447
  144. package/dist/deltas.js.map +0 -1
  145. package/dist/mapping.d.ts +0 -54
  146. package/dist/mapping.d.ts.map +0 -1
  147. package/dist/mapping.js +0 -626
  148. package/dist/mapping.js.map +0 -1
  149. package/dist/react/SmoothText.d.ts +0 -5
  150. package/dist/react/SmoothText.d.ts.map +0 -1
  151. package/dist/react/SmoothText.js +0 -6
  152. package/dist/react/SmoothText.js.map +0 -1
  153. package/dist/react/index.d.ts +0 -25
  154. package/dist/react/index.d.ts.map +0 -1
  155. package/dist/react/index.js +0 -70
  156. package/dist/react/index.js.map +0 -1
  157. package/dist/react/optimisticallySendMessage.d.ts +0 -42
  158. package/dist/react/optimisticallySendMessage.d.ts.map +0 -1
  159. package/dist/react/optimisticallySendMessage.js +0 -74
  160. package/dist/react/optimisticallySendMessage.js.map +0 -1
  161. package/dist/react/types.d.ts +0 -12
  162. package/dist/react/types.d.ts.map +0 -1
  163. package/dist/react/types.js +0 -2
  164. package/dist/react/types.js.map +0 -1
  165. package/dist/react/useDeltaStreams.d.ts +0 -10
  166. package/dist/react/useDeltaStreams.d.ts.map +0 -1
  167. package/dist/react/useDeltaStreams.js +0 -101
  168. package/dist/react/useDeltaStreams.js.map +0 -1
  169. package/dist/react/useSmoothText.d.ts +0 -27
  170. package/dist/react/useSmoothText.d.ts.map +0 -1
  171. package/dist/react/useSmoothText.js +0 -68
  172. package/dist/react/useSmoothText.js.map +0 -1
  173. package/dist/react/useStreamingUIMessages.d.ts +0 -22
  174. package/dist/react/useStreamingUIMessages.d.ts.map +0 -1
  175. package/dist/react/useStreamingUIMessages.js +0 -92
  176. package/dist/react/useStreamingUIMessages.js.map +0 -1
  177. package/dist/react/useThreadMessages.d.ts +0 -104
  178. package/dist/react/useThreadMessages.d.ts.map +0 -1
  179. package/dist/react/useThreadMessages.js +0 -148
  180. package/dist/react/useThreadMessages.js.map +0 -1
  181. package/dist/react/useUIMessages.d.ts +0 -96
  182. package/dist/react/useUIMessages.d.ts.map +0 -1
  183. package/dist/react/useUIMessages.js +0 -108
  184. package/dist/react/useUIMessages.js.map +0 -1
  185. package/dist/shared.d.ts +0 -26
  186. package/dist/shared.d.ts.map +0 -1
  187. package/dist/shared.js +0 -67
  188. package/dist/shared.js.map +0 -1
  189. package/dist/validators.d.ts +0 -24516
  190. package/dist/validators.d.ts.map +0 -1
  191. package/dist/validators.js +0 -475
  192. package/dist/validators.js.map +0 -1
@@ -1,171 +0,0 @@
1
- import { stepCountIs, } from "ai";
2
- import { serializeNewMessagesInStep, serializeObjectResult, } from "../mapping.js";
3
- import { embedMessages, fetchContextWithPrompt } from "./search.js";
4
- import { getModelName, getProviderName, } from "../shared.js";
5
- import { wrapTools } from "./createTool.js";
6
- import { assert, omit } from "convex-helpers";
7
- import { saveInputMessages } from "./saveInputMessages.js";
8
- export async function startGeneration(ctx, component,
9
- /**
10
- * These are the arguments you'll pass to the LLM call such as
11
- * `generateText` or `streamText`. This function will look up the context
12
- * and provide functions to save the steps, abort the generation, and more.
13
- * The type of the arguments returned infers from the type of the arguments
14
- * you pass here.
15
- */
16
- args, { threadId, ...opts }) {
17
- const userId = opts.userId ??
18
- (threadId &&
19
- (await ctx.runQuery(component.threads.getThread, { threadId }))
20
- ?.userId) ??
21
- undefined;
22
- const context = await fetchContextWithPrompt(ctx, component, {
23
- ...opts,
24
- userId,
25
- threadId,
26
- messages: args.messages,
27
- prompt: args.prompt,
28
- promptMessageId: args.promptMessageId,
29
- });
30
- const saveMessages = opts.storageOptions?.saveMessages ?? "promptAndOutput";
31
- const { promptMessageId, pendingMessage, savedMessages } = threadId && saveMessages !== "none"
32
- ? await saveInputMessages(ctx, component, {
33
- ...opts,
34
- userId,
35
- threadId,
36
- prompt: args.prompt,
37
- messages: args.messages,
38
- promptMessageId: args.promptMessageId,
39
- storageOptions: { saveMessages },
40
- })
41
- : {
42
- promptMessageId: args.promptMessageId,
43
- pendingMessage: undefined,
44
- savedMessages: [],
45
- };
46
- const order = pendingMessage?.order ?? context.order;
47
- const stepOrder = pendingMessage?.stepOrder ?? context.stepOrder;
48
- let pendingMessageId = pendingMessage?._id;
49
- const model = args.model ?? opts.languageModel;
50
- assert(model, "model is required");
51
- let activeModel = model;
52
- const fail = async (reason) => {
53
- if (pendingMessageId) {
54
- await ctx.runMutation(component.messages.finalizeMessage, {
55
- messageId: pendingMessageId,
56
- result: { status: "failed", error: reason },
57
- });
58
- }
59
- };
60
- if (args.abortSignal) {
61
- const abortSignal = args.abortSignal;
62
- abortSignal.addEventListener("abort", async () => {
63
- await fail(abortSignal.reason?.toString() ?? "abortSignal");
64
- }, { once: true });
65
- }
66
- const toolCtx = {
67
- ...ctx,
68
- userId,
69
- threadId,
70
- promptMessageId,
71
- agent: opts.agentForToolCtx,
72
- };
73
- const tools = wrapTools(toolCtx, args.tools);
74
- const aiArgs = {
75
- ...opts.callSettings,
76
- providerOptions: opts.providerOptions,
77
- ...omit(args, ["promptMessageId", "messages", "prompt"]),
78
- model,
79
- messages: context.messages,
80
- stopWhen: args.stopWhen ?? (opts.maxSteps ? stepCountIs(opts.maxSteps) : undefined),
81
- tools,
82
- };
83
- if (pendingMessageId) {
84
- if (!aiArgs._internal?.generateId) {
85
- aiArgs._internal = {
86
- ...aiArgs._internal,
87
- generateId: pendingMessageId
88
- ? () => pendingMessageId ?? crypto.randomUUID()
89
- : undefined,
90
- };
91
- }
92
- }
93
- return {
94
- args: aiArgs,
95
- order: order ?? 0,
96
- stepOrder: stepOrder ?? 0,
97
- userId,
98
- promptMessageId,
99
- getSavedMessages: () => savedMessages,
100
- updateModel: (model) => {
101
- if (model) {
102
- activeModel = model;
103
- }
104
- },
105
- fail,
106
- save: async (toSave, createPendingMessage) => {
107
- if (threadId && saveMessages !== "none") {
108
- const serialized = "object" in toSave
109
- ? await serializeObjectResult(ctx, component, toSave.object, activeModel)
110
- : await serializeNewMessagesInStep(ctx, component, toSave.step, activeModel);
111
- const embeddings = await embedMessages(ctx, { threadId, ...opts, userId }, serialized.messages.map((m) => m.message));
112
- if (createPendingMessage) {
113
- serialized.messages.push({
114
- message: { role: "assistant", content: [] },
115
- status: "pending",
116
- });
117
- embeddings?.vectors.push(null);
118
- }
119
- const saved = await ctx.runMutation(component.messages.addMessages, {
120
- userId,
121
- threadId,
122
- agentName: opts.agentName,
123
- promptMessageId,
124
- pendingMessageId,
125
- messages: serialized.messages,
126
- embeddings,
127
- failPendingSteps: false,
128
- });
129
- const lastMessage = saved.messages.at(-1);
130
- if (createPendingMessage) {
131
- if (lastMessage.status === "failed") {
132
- pendingMessageId = undefined;
133
- savedMessages.push(...saved.messages);
134
- await fail(lastMessage.error ??
135
- "Aborting - the pending message was marked as failed");
136
- }
137
- else {
138
- pendingMessageId = lastMessage._id;
139
- savedMessages.push(...saved.messages.slice(0, -1));
140
- }
141
- }
142
- else {
143
- pendingMessageId = undefined;
144
- savedMessages.push(...saved.messages);
145
- }
146
- }
147
- const output = "object" in toSave ? toSave.object : toSave.step;
148
- if (opts.rawRequestResponseHandler) {
149
- await opts.rawRequestResponseHandler(ctx, {
150
- userId,
151
- threadId,
152
- agentName: opts.agentName,
153
- request: output.request,
154
- response: output.response,
155
- });
156
- }
157
- if (opts.usageHandler && output.usage) {
158
- await opts.usageHandler(ctx, {
159
- userId,
160
- threadId,
161
- agentName: opts.agentName,
162
- model: getModelName(activeModel),
163
- provider: getProviderName(activeModel),
164
- usage: output.usage,
165
- providerMetadata: output.providerMetadata,
166
- });
167
- }
168
- },
169
- };
170
- }
171
- //# sourceMappingURL=start.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/client/start.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- import type { StreamTextResult, ToolSet } from "ai";
2
- import { streamText as streamTextAi } from "ai";
3
- import { type StreamingOptions } from "./streaming.js";
4
- import type { ActionCtx, AgentComponent, AgentPrompt, GenerationOutputMetadata, Options, Output } from "./types.js";
5
- import type { Agent } from "./index.js";
6
- /**
7
- * This behaves like {@link streamText} from the "ai" package except that
8
- * it add context based on the userId and threadId and saves the input and
9
- * resulting messages to the thread, if specified.
10
- * Use {@link continueThread} to get a version of this function already scoped
11
- * to a thread (and optionally userId).
12
- */
13
- export declare function streamText<TOOLS extends ToolSet, OUTPUT extends Output<any, any, any> = never>(ctx: ActionCtx, component: AgentComponent,
14
- /**
15
- * The arguments to the streamText function, similar to the ai sdk's
16
- * {@link streamText} function, along with Agent prompt options.
17
- */
18
- streamTextArgs: AgentPrompt & Omit<Parameters<typeof streamTextAi<TOOLS, OUTPUT>>[0], "model" | "prompt" | "messages"> & {
19
- /**
20
- * The tools to use for the tool calls. This will override tools specified
21
- * in the Agent constructor or createThread / continueThread.
22
- */
23
- tools?: TOOLS;
24
- },
25
- /**
26
- * The {@link ContextOptions} and {@link StorageOptions}
27
- * options to use for fetching contextual messages and saving input/output messages.
28
- */
29
- options: Options & {
30
- agentName: string;
31
- userId?: string | null;
32
- threadId?: string;
33
- /**
34
- * Whether to save incremental data (deltas) from streaming responses.
35
- * Defaults to false.
36
- * If false, it will not save any deltas to the database.
37
- * If true, it will save deltas with {@link DEFAULT_STREAMING_OPTIONS}.
38
- *
39
- * Regardless of this option, when streaming you are able to use this
40
- * `streamText` function as you would with the "ai" package's version:
41
- * iterating over the text, streaming it over HTTP, etc.
42
- */
43
- saveStreamDeltas?: boolean | StreamingOptions;
44
- agentForToolCtx?: Agent;
45
- }): Promise<StreamTextResult<TOOLS, OUTPUT> & GenerationOutputMetadata>;
46
- //# sourceMappingURL=streamText.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streamText.d.ts","sourceRoot":"","sources":["../../src/client/streamText.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,OAAO,EAER,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,wBAAwB,EACxB,OAAO,EACP,MAAM,EACP,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAIxC;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,KAAK,SAAS,OAAO,EACrB,MAAM,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,EAE5C,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,cAAc;AACzB;;;GAGG;AACH,cAAc,EAAE,WAAW,GACzB,IAAI,CACF,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EACjD,OAAO,GAAG,QAAQ,GAAG,UAAU,CAChC,GAAG;IACF;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AACH;;;GAGG;AACH,OAAO,EAAE,OAAO,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;IAC9C,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB,GACA,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,wBAAwB,CAAC,CAuFrE"}
@@ -1,93 +0,0 @@
1
- import { streamText as streamTextAi } from "ai";
2
- import { compressUIMessageChunks, DeltaStreamer, mergeTransforms, } from "./streaming.js";
3
- import { startGeneration } from "./start.js";
4
- import { getModelName, getProviderName } from "../shared.js";
5
- import { errorToString, willContinue } from "./utils.js";
6
- /**
7
- * This behaves like {@link streamText} from the "ai" package except that
8
- * it add context based on the userId and threadId and saves the input and
9
- * resulting messages to the thread, if specified.
10
- * Use {@link continueThread} to get a version of this function already scoped
11
- * to a thread (and optionally userId).
12
- */
13
- export async function streamText(ctx, component,
14
- /**
15
- * The arguments to the streamText function, similar to the ai sdk's
16
- * {@link streamText} function, along with Agent prompt options.
17
- */
18
- streamTextArgs,
19
- /**
20
- * The {@link ContextOptions} and {@link StorageOptions}
21
- * options to use for fetching contextual messages and saving input/output messages.
22
- */
23
- options) {
24
- const { threadId } = options ?? {};
25
- const { args, userId, order, stepOrder, promptMessageId, ...call } = await startGeneration(ctx, component, streamTextArgs, options);
26
- const steps = [];
27
- const streamer = threadId && options.saveStreamDeltas
28
- ? new DeltaStreamer(component, ctx, {
29
- throttleMs: typeof options.saveStreamDeltas === "object"
30
- ? options.saveStreamDeltas.throttleMs
31
- : undefined,
32
- onAsyncAbort: call.fail,
33
- compress: compressUIMessageChunks,
34
- abortSignal: args.abortSignal,
35
- }, {
36
- threadId,
37
- userId,
38
- agentName: options?.agentName,
39
- model: getModelName(args.model),
40
- provider: getProviderName(args.model),
41
- providerOptions: args.providerOptions,
42
- format: "UIMessageChunk",
43
- order,
44
- stepOrder,
45
- })
46
- : undefined;
47
- const result = streamTextAi({
48
- ...args,
49
- abortSignal: streamer?.abortController.signal ?? args.abortSignal,
50
- experimental_transform: mergeTransforms(options?.saveStreamDeltas, streamTextArgs.experimental_transform),
51
- onError: async (error) => {
52
- console.error("onError", error);
53
- await call.fail(errorToString(error.error));
54
- await streamer?.fail(errorToString(error.error));
55
- return streamTextArgs.onError?.(error);
56
- },
57
- prepareStep: async (options) => {
58
- const result = await streamTextArgs.prepareStep?.(options);
59
- if (result) {
60
- const model = result.model ?? options.model;
61
- call.updateModel(model);
62
- // streamer?.updateMetadata({
63
- // model: getModelName(model),
64
- // provider: getProviderName(model),
65
- // providerOptions: options.messages.at(-1)?.providerOptions,
66
- // });
67
- return result;
68
- }
69
- return undefined;
70
- },
71
- onStepFinish: async (step) => {
72
- steps.push(step);
73
- const createPendingMessage = await willContinue(steps, args.stopWhen);
74
- await call.save({ step }, createPendingMessage);
75
- return args.onStepFinish?.(step);
76
- },
77
- });
78
- const stream = streamer?.consumeStream(result.toUIMessageStream());
79
- if ((typeof options?.saveStreamDeltas === "object" &&
80
- !options.saveStreamDeltas.returnImmediately) ||
81
- options?.saveStreamDeltas === true) {
82
- await stream;
83
- await result.consumeStream();
84
- }
85
- const metadata = {
86
- promptMessageId,
87
- order,
88
- savedMessages: call.getSavedMessages(),
89
- messageId: promptMessageId,
90
- };
91
- return Object.assign(result, metadata);
92
- }
93
- //# sourceMappingURL=streamText.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streamText.js","sourceRoot":"","sources":["../../src/client/streamText.ts"],"names":[],"mappings":"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"}