@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
@@ -1,42 +1,123 @@
1
- import type { Schema, Tool, ToolCallOptions, ToolSet } from "ai";
2
- import { z } from "zod";
3
- import type { Agent } from "./index.js";
1
+ import type { ToolResultOutput } from "@ai-sdk/provider-utils";
2
+ import type { FlexibleSchema, ModelMessage, Tool, ToolExecutionOptions, ToolSet } from "ai";
4
3
  import type { GenericActionCtx, GenericDataModel } from "convex/server";
5
4
  import type { ProviderOptions } from "../validators.js";
5
+ import type { Agent } from "./index.js";
6
6
  export type ToolCtx<DataModel extends GenericDataModel = GenericDataModel> = GenericActionCtx<DataModel> & {
7
- agent: Agent;
7
+ agent?: Agent;
8
8
  userId?: string;
9
9
  threadId?: string;
10
10
  messageId?: string;
11
11
  };
12
+ /**
13
+ * Function that is called to determine if the tool needs approval before it can be executed.
14
+ */
15
+ export type ToolNeedsApprovalFunctionCtx<INPUT, Ctx extends ToolCtx = ToolCtx> = (ctx: Ctx, input: INPUT, options: {
16
+ /**
17
+ * The ID of the tool call. You can use it e.g. when sending tool-call related information with stream data.
18
+ */
19
+ toolCallId: string;
20
+ /**
21
+ * Messages that were sent to the language model to initiate the response that contained the tool call.
22
+ * The messages **do not** include the system prompt nor the assistant response that contained the tool call.
23
+ */
24
+ messages: ModelMessage[];
25
+ /**
26
+ * Additional context.
27
+ *
28
+ * Experimental (can break in patch releases).
29
+ */
30
+ experimental_context?: unknown;
31
+ }) => boolean | PromiseLike<boolean>;
32
+ export type ToolExecuteFunctionCtx<INPUT, OUTPUT, Ctx extends ToolCtx = ToolCtx> = (ctx: Ctx, input: INPUT, options: ToolExecutionOptions) => AsyncIterable<OUTPUT> | PromiseLike<OUTPUT>;
33
+ type NeverOptional<N, T> = 0 extends 1 & N ? Partial<T> : [N] extends [never] ? Partial<Record<keyof T, undefined>> : T;
34
+ /**
35
+ * Error message type for deprecated 'handler' property.
36
+ * Using a string literal type causes TypeScript to show this message in errors.
37
+ */
38
+ type HANDLER_REMOVED_ERROR = "⚠️ 'handler' was removed in @convex-dev/agent v0.6.0. Rename to 'execute'. See: node_modules/@convex-dev/agent/MIGRATION.md";
39
+ export type ToolOutputPropertiesCtx<INPUT, OUTPUT, Ctx extends ToolCtx = ToolCtx> = NeverOptional<OUTPUT, {
40
+ /**
41
+ * An async function that is called with the arguments from the tool call and produces a result.
42
+ * If `execute` is not provided, the tool will not be executed automatically.
43
+ *
44
+ * @param input - The input of the tool call.
45
+ * @param options.abortSignal - A signal that can be used to abort the tool call.
46
+ */
47
+ execute?: ToolExecuteFunctionCtx<INPUT, OUTPUT, Ctx>;
48
+ outputSchema?: FlexibleSchema<OUTPUT>;
49
+ /**
50
+ * @deprecated Removed in v0.6.0. Use `execute` instead.
51
+ */
52
+ handler?: HANDLER_REMOVED_ERROR;
53
+ }>;
54
+ /**
55
+ * Error message type for deprecated 'args' property.
56
+ * Using a string literal type causes TypeScript to show this message in errors.
57
+ */
58
+ type ARGS_REMOVED_ERROR = "⚠️ 'args' was removed in @convex-dev/agent v0.6.0. Rename to 'inputSchema'. See: node_modules/@convex-dev/agent/MIGRATION.md";
59
+ export type ToolInputProperties<INPUT> = {
60
+ /**
61
+ * The schema of the input that the tool expects.
62
+ * The language model will use this to generate the input.
63
+ * It is also used to validate the output of the language model.
64
+ *
65
+ * You can use descriptions on the schema properties to make the input understandable for the language model.
66
+ */
67
+ inputSchema: FlexibleSchema<INPUT>;
68
+ /**
69
+ * @deprecated Removed in v0.6.0. Use `inputSchema` instead.
70
+ */
71
+ args?: ARGS_REMOVED_ERROR;
72
+ };
12
73
  /**
13
74
  * This is a wrapper around the ai.tool function that adds extra context to the
14
75
  * tool call, including the action context, userId, threadId, and messageId.
15
76
  * @param tool The tool. See https://sdk.vercel.ai/docs/ai-sdk-core/tools-and-tool-calling
16
- * but swap parameters for args and handler for execute.
77
+ * Currently contains deprecated parameters `args` and `handler` to maintain backwards compatibility
78
+ * but these will be removed in the future. Use `inputSchema` and `execute` instead, respectively.
79
+ *
17
80
  * @returns A tool to be used with the AI SDK.
18
81
  */
19
82
  export declare function createTool<INPUT, OUTPUT, Ctx extends ToolCtx = ToolCtx>(def: {
20
83
  /**
21
- An optional description of what the tool does.
22
- Will be used by the language model to decide whether to use the tool.
23
- Not used for provider-defined tools.
24
- */
84
+ * An optional description of what the tool does.
85
+ * Will be used by the language model to decide whether to use the tool.
86
+ * Not used for provider-defined tools.
87
+ */
25
88
  description?: string;
26
89
  /**
27
- The schema of the input that the tool expects. The language model will use this to generate the input.
28
- It is also used to validate the output of the language model.
29
- Use descriptions to make the input understandable for the language model.
30
- */
31
- args: ToolParameters<INPUT>;
90
+ * An optional title of the tool.
91
+ */
92
+ title?: string;
93
+ /**
94
+ * Additional provider-specific metadata. They are passed through
95
+ * to the provider from the AI SDK and enable provider-specific
96
+ * functionality that can be fully encapsulated in the provider.
97
+ */
98
+ providerOptions?: ProviderOptions;
99
+ } & ToolInputProperties<INPUT> & {
100
+ /**
101
+ * An optional list of input examples that show the language
102
+ * model what the input should look like.
103
+ */
104
+ inputExamples?: Array<{
105
+ input: NoInfer<INPUT>;
106
+ }>;
32
107
  /**
33
- An async function that is called with the arguments from the tool call and produces a result.
34
- If not provided, the tool will not be executed automatically.
35
-
36
- @args is the input of the tool call.
37
- @options.abortSignal is a signal that can be used to abort the tool call.
38
- */
39
- handler: (ctx: Ctx, args: INPUT, options: ToolCallOptions) => PromiseLike<OUTPUT>;
108
+ * Whether the tool needs approval before it can be executed.
109
+ */
110
+ needsApproval?: boolean | ToolNeedsApprovalFunctionCtx<[
111
+ INPUT
112
+ ] extends [never] ? unknown : INPUT, Ctx>;
113
+ /**
114
+ * Strict mode setting for the tool.
115
+ *
116
+ * Providers that support strict mode will use this setting to determine
117
+ * how the input should be generated. Strict mode will always produce
118
+ * valid inputs, but it might limit what input schemas are supported.
119
+ */
120
+ strict?: boolean;
40
121
  /**
41
122
  * Provide the context to use, e.g. when defining the tool at runtime.
42
123
  */
@@ -45,24 +126,42 @@ export declare function createTool<INPUT, OUTPUT, Ctx extends ToolCtx = ToolCtx>
45
126
  * Optional function that is called when the argument streaming starts.
46
127
  * Only called when the tool is used in a streaming context.
47
128
  */
48
- onInputStart?: (ctx: Ctx, options: ToolCallOptions) => void | PromiseLike<void>;
129
+ onInputStart?: (ctx: Ctx, options: ToolExecutionOptions) => void | PromiseLike<void>;
49
130
  /**
50
131
  * Optional function that is called when an argument streaming delta is available.
51
132
  * Only called when the tool is used in a streaming context.
52
133
  */
53
134
  onInputDelta?: (ctx: Ctx, options: {
54
135
  inputTextDelta: string;
55
- } & ToolCallOptions) => void | PromiseLike<void>;
136
+ } & ToolExecutionOptions) => void | PromiseLike<void>;
56
137
  /**
57
138
  * Optional function that is called when a tool call can be started,
58
139
  * even if the execute function is not provided.
59
140
  */
60
141
  onInputAvailable?: (ctx: Ctx, options: {
61
- input: [INPUT] extends [never] ? undefined : INPUT;
62
- } & ToolCallOptions) => void | PromiseLike<void>;
63
- providerOptions?: ProviderOptions;
142
+ input: [INPUT] extends [never] ? unknown : INPUT;
143
+ } & ToolExecutionOptions) => void | PromiseLike<void>;
144
+ } & ToolOutputPropertiesCtx<INPUT, OUTPUT, Ctx> & {
145
+ /**
146
+ * Optional conversion function that maps the tool result to an output that can be used by the language model.
147
+ *
148
+ * If not provided, the tool result will be sent as a JSON object.
149
+ */
150
+ toModelOutput?: (ctx: Ctx, options: {
151
+ /**
152
+ * The ID of the tool call. You can use it e.g. when sending tool-call related information with stream data.
153
+ */
154
+ toolCallId: string;
155
+ /**
156
+ * The input of the tool call.
157
+ */
158
+ input: [INPUT] extends [never] ? unknown : INPUT;
159
+ /**
160
+ * The output of the tool call.
161
+ */
162
+ output: 0 extends 1 & OUTPUT ? any : [OUTPUT] extends [never] ? any : NoInfer<OUTPUT>;
163
+ }) => ToolResultOutput | PromiseLike<ToolResultOutput>;
64
164
  }): Tool<INPUT, OUTPUT>;
65
165
  export declare function wrapTools(ctx: ToolCtx, ...toolSets: (ToolSet | undefined)[]): ToolSet;
66
- type ToolParameters<T> = z.Schema<T> | Schema<T>;
67
166
  export {};
68
167
  //# sourceMappingURL=createTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createTool.d.ts","sourceRoot":"","sources":["../../src/client/createTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,MAAM,OAAO,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,IACvE,gBAAgB,CAAC,SAAS,CAAC,GAAG;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEJ;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,OAAO,GAAG,OAAO,EAAE,GAAG,EAAE;IAC5E;;;;SAIK;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;SAIK;IACL,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5B;;;;;;SAMK;IACL,OAAO,EAAE,CACP,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,eAAe,KACrB,WAAW,CAAC,MAAM,CAAC,CAAC;IACzB;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC;IACV;;;OAGG;IACH,YAAY,CAAC,EAAE,CACb,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,KACrB,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,CACb,GAAG,EAAE,GAAG,EACR,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,eAAe,KAChB,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CACjB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE;QACP,KAAK,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;KACpD,GAAG,eAAe,KAChB,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAG9B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CA6BtB;AAOD,wBAAgB,SAAS,CACvB,GAAG,EAAE,OAAO,EACZ,GAAG,QAAQ,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,GACnC,OAAO,CAiBT;AAGD,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"createTool.d.ts","sourceRoot":"","sources":["../../src/client/createTool.ts"],"names":[],"mappings":"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"}
@@ -1,41 +1,97 @@
1
1
  import { tool } from "ai";
2
- import { z } from "zod";
2
+ const MIGRATION_URL = "node_modules/@convex-dev/agent/MIGRATION.md";
3
+ const warnedDeprecations = new Set();
4
+ function warnDeprecation(key, message) {
5
+ if (!warnedDeprecations.has(key)) {
6
+ warnedDeprecations.add(key);
7
+ console.warn(`[@convex-dev/agent] ${message}\n See: ${MIGRATION_URL}`);
8
+ }
9
+ }
3
10
  /**
4
11
  * This is a wrapper around the ai.tool function that adds extra context to the
5
12
  * tool call, including the action context, userId, threadId, and messageId.
6
13
  * @param tool The tool. See https://sdk.vercel.ai/docs/ai-sdk-core/tools-and-tool-calling
7
- * but swap parameters for args and handler for execute.
14
+ * Currently contains deprecated parameters `args` and `handler` to maintain backwards compatibility
15
+ * but these will be removed in the future. Use `inputSchema` and `execute` instead, respectively.
16
+ *
8
17
  * @returns A tool to be used with the AI SDK.
9
18
  */
10
19
  export function createTool(def) {
20
+ // Runtime backwards compat - types will show errors but runtime still works
21
+ const inputSchema = def.inputSchema ?? def.args;
22
+ if (!inputSchema)
23
+ throw new Error("To use a Convex tool, you must provide an `inputSchema`");
24
+ if (def.args && !def.inputSchema) {
25
+ warnDeprecation("createTool.args", "createTool: 'args' is deprecated. Use 'inputSchema' instead.");
26
+ }
27
+ if (def.handler && !def.execute) {
28
+ warnDeprecation("createTool.handler", "createTool: 'handler' is deprecated. Use 'execute' instead.");
29
+ }
30
+ const executeHandler = def.execute ?? def.handler;
31
+ if (!executeHandler && !def.outputSchema)
32
+ throw new Error("To use a Convex tool, you must either provide an execute" +
33
+ " handler function, define an outputSchema, or both");
11
34
  const t = tool({
12
35
  type: "function",
13
36
  __acceptsCtx: true,
14
37
  ctx: def.ctx,
15
38
  description: def.description,
16
- inputSchema: def.args,
17
- async execute(args, options) {
39
+ title: def.title,
40
+ providerOptions: def.providerOptions,
41
+ inputSchema,
42
+ inputExamples: def.inputExamples,
43
+ needsApproval(input, options) {
44
+ const needsApproval = def.needsApproval;
45
+ if (!needsApproval || typeof needsApproval === "boolean")
46
+ return Boolean(needsApproval);
18
47
  if (!getCtx(this)) {
19
48
  throw new Error("To use a Convex tool, you must either provide the ctx" +
20
49
  " at definition time (dynamically in an action), or use the Agent to" +
21
50
  " call it (which injects the ctx, userId and threadId)");
22
51
  }
23
- return def.handler(getCtx(this), args, options);
52
+ return needsApproval(getCtx(this), input, options);
24
53
  },
25
- providerOptions: def.providerOptions,
54
+ strict: def.strict,
55
+ ...(executeHandler
56
+ ? {
57
+ execute(input, options) {
58
+ if (!getCtx(this)) {
59
+ throw new Error("To use a Convex tool, you must either provide the ctx" +
60
+ " at definition time (dynamically in an action), or use the Agent to" +
61
+ " call it (which injects the ctx, userId and threadId)");
62
+ }
63
+ return executeHandler(getCtx(this), input, options);
64
+ },
65
+ }
66
+ : {}),
67
+ outputSchema: def.outputSchema,
26
68
  });
27
69
  if (def.onInputStart) {
28
- t.onInputStart = def.onInputStart.bind(t, getCtx(t));
70
+ const origOnInputStart = def.onInputStart;
71
+ t.onInputStart = function (options) {
72
+ return origOnInputStart.call(this, getCtx(this), options);
73
+ };
29
74
  }
30
75
  if (def.onInputDelta) {
31
- t.onInputDelta = def.onInputDelta.bind(t, getCtx(t));
76
+ const origOnInputDelta = def.onInputDelta;
77
+ t.onInputDelta = function (options) {
78
+ return origOnInputDelta.call(this, getCtx(this), options);
79
+ };
32
80
  }
33
81
  if (def.onInputAvailable) {
34
- t.onInputAvailable = def.onInputAvailable.bind(t, getCtx(t));
82
+ const origOnInputAvailable = def.onInputAvailable;
83
+ t.onInputAvailable = function (options) {
84
+ return origOnInputAvailable.call(this, getCtx(this), options);
85
+ };
86
+ }
87
+ if (def.toModelOutput) {
88
+ const origToModelOutput = def.toModelOutput;
89
+ t.toModelOutput = function (options) {
90
+ return origToModelOutput.call(this, getCtx(this), options);
91
+ };
35
92
  }
36
93
  return t;
37
94
  }
38
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
95
  function getCtx(tool) {
40
96
  return tool.ctx;
41
97
  }
@@ -46,8 +102,7 @@ export function wrapTools(ctx, ...toolSets) {
46
102
  continue;
47
103
  }
48
104
  for (const [name, tool] of Object.entries(toolSet)) {
49
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
- if (!tool.__acceptsCtx) {
105
+ if (tool && !tool.__acceptsCtx) {
51
106
  output[name] = tool;
52
107
  }
53
108
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"createTool.js","sourceRoot":"","sources":["../../src/client/createTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAA+C,GA4DxE;IACC,MAAM,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,WAAW,EAAE,GAAG,CAAC,IAAI;QACrB,KAAK,CAAC,OAAO,CAAC,IAAW,EAAE,OAAwB;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,uDAAuD;oBACrD,qEAAqE;oBACrE,uDAAuD,CAC1D,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,eAAe,EAAE,GAAG,CAAC,eAAe;KACrC,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,8DAA8D;AAC9D,SAAS,MAAM,CAAsB,IAAS;IAC5C,OAAQ,IAAqB,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,GAAY,EACZ,GAAG,QAAiC;IAEpC,MAAM,MAAM,GAAG,EAAa,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,8DAA8D;YAC9D,IAAI,CAAE,IAAY,CAAC,YAAY,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"createTool.js","sourceRoot":"","sources":["../../src/client/createTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { AgentComponent } from "./types.js";
2
+ export type CustomComponent = {
3
+ /**
4
+ * If you have a custom name for the agent component, you can pass it here
5
+ * as components.myAgentName.
6
+ */
7
+ component?: AgentComponent;
8
+ };
9
+ export declare function componentAPI(args?: CustomComponent): AgentComponent;
10
+ export declare const defaultComponent: AgentComponent;
11
+ //# sourceMappingURL=defaultComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultComponent.d.ts","sourceRoot":"","sources":["../../src/client/defaultComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,cAAc,CAEnE;AAED,eAAO,MAAM,gBAAgB,EACN,cAAc,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { componentsGeneric } from "convex/server";
2
+ export function componentAPI(args) {
3
+ return args?.component ?? defaultComponent;
4
+ }
5
+ export const defaultComponent = componentsGeneric()
6
+ .agent;
7
+ //# sourceMappingURL=defaultComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultComponent.js","sourceRoot":"","sources":["../../src/client/defaultComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAWlD,MAAM,UAAU,YAAY,CAAC,IAAsB;IACjD,OAAO,IAAI,EAAE,SAAS,IAAI,gBAAgB,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,EAAE;KAChD,KAAkC,CAAC"}