@convex-dev/agent 0.3.2 → 0.6.0-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 (99) hide show
  1. package/dist/UIMessages.d.ts +3 -2
  2. package/dist/UIMessages.d.ts.map +1 -1
  3. package/dist/UIMessages.js +100 -19
  4. package/dist/UIMessages.js.map +1 -1
  5. package/dist/client/createTool.d.ts +129 -25
  6. package/dist/client/createTool.d.ts.map +1 -1
  7. package/dist/client/createTool.js +65 -8
  8. package/dist/client/createTool.js.map +1 -1
  9. package/dist/client/definePlaygroundAPI.d.ts +560 -35
  10. package/dist/client/definePlaygroundAPI.d.ts.map +1 -1
  11. package/dist/client/files.d.ts.map +1 -1
  12. package/dist/client/files.js +4 -2
  13. package/dist/client/files.js.map +1 -1
  14. package/dist/client/index.d.ts +462 -37
  15. package/dist/client/index.d.ts.map +1 -1
  16. package/dist/client/index.js +26 -7
  17. package/dist/client/index.js.map +1 -1
  18. package/dist/client/messages.d.ts +114 -9
  19. package/dist/client/messages.d.ts.map +1 -1
  20. package/dist/client/mockModel.d.ts +17 -17
  21. package/dist/client/mockModel.d.ts.map +1 -1
  22. package/dist/client/mockModel.js +8 -6
  23. package/dist/client/mockModel.js.map +1 -1
  24. package/dist/client/saveInputMessages.d.ts +1 -1
  25. package/dist/client/saveInputMessages.d.ts.map +1 -1
  26. package/dist/client/saveInputMessages.js +1 -1
  27. package/dist/client/saveInputMessages.js.map +1 -1
  28. package/dist/client/search.d.ts +132 -14
  29. package/dist/client/search.d.ts.map +1 -1
  30. package/dist/client/search.js +66 -19
  31. package/dist/client/search.js.map +1 -1
  32. package/dist/client/streamText.d.ts +4 -4
  33. package/dist/client/streamText.d.ts.map +1 -1
  34. package/dist/client/streamText.js.map +1 -1
  35. package/dist/client/streaming.d.ts +1491 -87
  36. package/dist/client/streaming.d.ts.map +1 -1
  37. package/dist/client/types.d.ts +26 -6
  38. package/dist/client/types.d.ts.map +1 -1
  39. package/dist/component/_generated/component.d.ts +862 -19
  40. package/dist/component/_generated/component.d.ts.map +1 -1
  41. package/dist/component/files.d.ts +12 -6
  42. package/dist/component/files.d.ts.map +1 -1
  43. package/dist/component/files.js +10 -2
  44. package/dist/component/files.js.map +1 -1
  45. package/dist/component/messages.d.ts +1247 -92
  46. package/dist/component/messages.d.ts.map +1 -1
  47. package/dist/component/schema.d.ts +2823 -217
  48. package/dist/component/schema.d.ts.map +1 -1
  49. package/dist/component/schema.js +3 -1
  50. package/dist/component/schema.js.map +1 -1
  51. package/dist/component/streams.js +1 -1
  52. package/dist/component/streams.js.map +1 -1
  53. package/dist/component/threads.d.ts +10 -10
  54. package/dist/component/vector/index.d.ts +1 -1
  55. package/dist/deltas.d.ts.map +1 -1
  56. package/dist/deltas.js +40 -5
  57. package/dist/deltas.js.map +1 -1
  58. package/dist/mapping.d.ts.map +1 -1
  59. package/dist/mapping.js +117 -25
  60. package/dist/mapping.js.map +1 -1
  61. package/dist/react/useThreadMessages.d.ts.map +1 -1
  62. package/dist/react/useThreadMessages.js +17 -9
  63. package/dist/react/useThreadMessages.js.map +1 -1
  64. package/dist/shared.d.ts +2 -2
  65. package/dist/shared.d.ts.map +1 -1
  66. package/dist/shared.js.map +1 -1
  67. package/dist/validators.d.ts +12196 -624
  68. package/dist/validators.d.ts.map +1 -1
  69. package/dist/validators.js +152 -9
  70. package/dist/validators.js.map +1 -1
  71. package/package.json +24 -22
  72. package/src/UIMessages.combineUIMessages.test.ts +239 -0
  73. package/src/UIMessages.ts +184 -66
  74. package/src/client/createTool.ts +291 -67
  75. package/src/client/files.ts +4 -2
  76. package/src/client/index.test.ts +1 -0
  77. package/src/client/index.ts +46 -25
  78. package/src/client/mockModel.ts +36 -34
  79. package/src/client/saveInputMessages.ts +2 -2
  80. package/src/client/search.test.ts +166 -0
  81. package/src/client/search.ts +121 -38
  82. package/src/client/streamText.ts +5 -5
  83. package/src/client/types.ts +31 -18
  84. package/src/component/_generated/component.ts +2329 -338
  85. package/src/component/files.ts +11 -2
  86. package/src/component/messages.test.ts +7 -7
  87. package/src/component/schema.ts +3 -1
  88. package/src/component/setup.test.ts +7 -0
  89. package/src/component/streams.ts +1 -1
  90. package/src/deltas.test.ts +90 -0
  91. package/src/deltas.ts +47 -8
  92. package/src/fromUIMessages.test.ts +32 -27
  93. package/src/mapping.test.ts +48 -0
  94. package/src/mapping.ts +234 -142
  95. package/src/react/useThreadMessages.ts +21 -9
  96. package/src/shared.ts +2 -0
  97. package/src/toUIMessages.test.ts +539 -1
  98. package/src/validators.ts +179 -20
  99. package/src/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
@@ -7,6 +7,7 @@ export type UIMessage<METADATA = unknown, DATA_PARTS extends UIDataTypes = UIDat
7
7
  stepOrder: number;
8
8
  status: UIStatus;
9
9
  agentName?: string;
10
+ userId?: string;
10
11
  text: string;
11
12
  _creationTime: number;
12
13
  };
@@ -24,10 +25,10 @@ export declare function fromUIMessages<METADATA = unknown>(messages: UIMessage<M
24
25
  provider?: string;
25
26
  providerOptions?: ProviderOptions;
26
27
  metadata?: METADATA;
27
- }): (MessageDoc & {
28
+ }): Promise<(MessageDoc & {
28
29
  streaming: boolean;
29
30
  metadata?: METADATA;
30
- })[];
31
+ })[]>;
31
32
  type ExtraFields<METADATA = unknown> = {
32
33
  streaming?: boolean;
33
34
  metadata?: METADATA;
@@ -1 +1 @@
1
- {"version":3,"file":"UIMessages.d.ts","sourceRoot":"","sources":["../src/UIMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,IAAI,WAAW,EAS7B,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,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,GAAG,OAAO,EAC/C,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,CAAC,UAAU,GAAG;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC,EAAE,CAoD9D;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;AAyXD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CA0CpE"}
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"}
@@ -9,8 +9,8 @@ import { omit, pick } from "convex-helpers";
9
9
  * @param meta - The metadata to add to the MessageDocs.
10
10
  * @returns
11
11
  */
12
- export function fromUIMessages(messages, meta) {
13
- return messages.flatMap((uiMessage) => {
12
+ export async function fromUIMessages(messages, meta) {
13
+ const nested = await Promise.all(messages.map(async (uiMessage) => {
14
14
  const stepOrder = uiMessage.stepOrder;
15
15
  const commonFields = {
16
16
  ...pick(meta, [
@@ -21,14 +21,15 @@ export function fromUIMessages(messages, meta) {
21
21
  "providerOptions",
22
22
  "metadata",
23
23
  ]),
24
- ...omit(uiMessage, ["parts", "role", "key", "text"]),
24
+ ...omit(uiMessage, ["parts", "role", "key", "text", "userId"]),
25
+ userId: uiMessage.userId ?? meta.userId,
25
26
  status: uiMessage.status === "streaming" ? "pending" : "success",
26
27
  streaming: uiMessage.status === "streaming",
27
28
  // to override
28
29
  _id: uiMessage.id,
29
30
  tool: false,
30
31
  };
31
- const modelMessages = convertToModelMessages([uiMessage]);
32
+ const modelMessages = await convertToModelMessages([uiMessage]);
32
33
  return modelMessages
33
34
  .map((modelMessage, i) => {
34
35
  if (modelMessage.content.length === 0) {
@@ -48,17 +49,22 @@ export function fromUIMessages(messages, meta) {
48
49
  sources: fromSourceParts(uiMessage.parts),
49
50
  };
50
51
  if (Array.isArray(modelMessage.content)) {
51
- const providerOptions = modelMessage.content.find((c) => c.providerOptions)?.providerOptions;
52
- if (providerOptions) {
52
+ // Find a content part with providerOptions (type assertion needed for SDK compatibility)
53
+ const partWithProviderOptions = modelMessage.content.find((c) => "providerOptions" in c && c.providerOptions !== undefined);
54
+ if (partWithProviderOptions?.providerOptions) {
53
55
  // convertToModelMessages changes providerMetadata to providerOptions
54
- doc.providerMetadata = providerOptions;
55
- doc.providerOptions ??= providerOptions;
56
+ const providerOptions = partWithProviderOptions.providerOptions;
57
+ if (providerOptions) {
58
+ doc.providerMetadata = providerOptions;
59
+ doc.providerOptions ??= providerOptions;
60
+ }
56
61
  }
57
62
  }
58
63
  return doc;
59
64
  })
60
65
  .filter((d) => d !== undefined);
61
- });
66
+ }));
67
+ return nested.flat();
62
68
  }
63
69
  function fromSourceParts(parts) {
64
70
  return parts
@@ -188,6 +194,7 @@ function createSystemUIMessage(message) {
188
194
  text,
189
195
  role: "system",
190
196
  agentName: message.agentName,
197
+ userId: message.userId,
191
198
  parts: [{ type: "text", text, ...partCommon }],
192
199
  metadata: message.metadata,
193
200
  };
@@ -233,6 +240,7 @@ function createUserUIMessage(message) {
233
240
  key: `${message.threadId}-${message.order}-${message.stepOrder}`,
234
241
  text,
235
242
  role: "user",
243
+ userId: message.userId,
236
244
  parts,
237
245
  metadata: message.metadata,
238
246
  };
@@ -248,6 +256,7 @@ function createAssistantUIMessage(groupUnordered) {
248
256
  stepOrder: firstMessage.stepOrder,
249
257
  key: `${firstMessage.threadId}-${firstMessage.order}-${firstMessage.stepOrder}`,
250
258
  agentName: firstMessage.agentName,
259
+ userId: firstMessage.userId,
251
260
  };
252
261
  // Get status from last message
253
262
  const lastMessage = group[group.length - 1];
@@ -325,16 +334,43 @@ function createAssistantUIMessage(groupUnordered) {
325
334
  break;
326
335
  }
327
336
  case "tool-result": {
328
- const output = typeof contentPart.output?.type === "string"
329
- ? contentPart.output.value
330
- : contentPart.output;
337
+ const typedPart = contentPart;
338
+ // Check if this is an execution-denied result
339
+ if (typedPart.output?.type === "execution-denied") {
340
+ const call = allParts.find((part) => part.type === `tool-${contentPart.toolName}` &&
341
+ "toolCallId" in part &&
342
+ part.toolCallId === contentPart.toolCallId);
343
+ if (call) {
344
+ call.state = "output-denied";
345
+ if (!("approval" in call) || !call.approval) {
346
+ call.approval = {
347
+ id: "",
348
+ approved: false,
349
+ reason: typedPart.output.reason,
350
+ };
351
+ }
352
+ else {
353
+ const approval = call.approval;
354
+ approval.approved = false;
355
+ approval.reason = typedPart.output.reason;
356
+ }
357
+ }
358
+ break;
359
+ }
360
+ const output = typeof typedPart.output?.type === "string"
361
+ ? typedPart.output.value
362
+ : typedPart.output;
363
+ // Check for error at both the content part level (isError) and message level
364
+ // isError may exist on stored tool results but isn't in ToolResultPart type
365
+ const hasError = contentPart.isError || message.error;
366
+ const errorText = message.error || (hasError ? String(output) : undefined);
331
367
  const call = allParts.find((part) => part.type === `tool-${contentPart.toolName}` &&
332
368
  "toolCallId" in part &&
333
369
  part.toolCallId === contentPart.toolCallId);
334
370
  if (call) {
335
- if (message.error) {
371
+ if (hasError) {
336
372
  call.state = "output-error";
337
- call.errorText = message.error;
373
+ call.errorText = errorText ?? "Unknown error";
338
374
  call.output = output;
339
375
  }
340
376
  else {
@@ -343,14 +379,14 @@ function createAssistantUIMessage(groupUnordered) {
343
379
  }
344
380
  }
345
381
  else {
346
- console.warn("Tool result without preceding tool call.. adding anyways", contentPart);
347
- if (message.error) {
382
+ // Tool call is on a previous page - create standalone tool part
383
+ if (hasError) {
348
384
  allParts.push({
349
385
  type: `tool-${contentPart.toolName}`,
350
386
  toolCallId: contentPart.toolCallId,
351
387
  state: "output-error",
352
388
  input: undefined,
353
- errorText: message.error,
389
+ errorText: errorText ?? "Unknown error",
354
390
  callProviderMetadata: message.providerMetadata,
355
391
  });
356
392
  }
@@ -367,6 +403,50 @@ function createAssistantUIMessage(groupUnordered) {
367
403
  }
368
404
  break;
369
405
  }
406
+ case "tool-approval-request": {
407
+ // Find the matching tool call
408
+ const typedPart = contentPart;
409
+ const toolCallPart = allParts.find((part) => "toolCallId" in part && part.toolCallId === typedPart.toolCallId);
410
+ if (toolCallPart) {
411
+ toolCallPart.state = "approval-requested";
412
+ toolCallPart.approval = {
413
+ id: typedPart.approvalId,
414
+ };
415
+ }
416
+ else {
417
+ console.warn("Tool approval request without preceding tool call", contentPart);
418
+ }
419
+ break;
420
+ }
421
+ case "tool-approval-response": {
422
+ // Find the tool call that has this approval by matching approval.id
423
+ const typedPart = contentPart;
424
+ const toolCallPart = allParts.find((part) => "approval" in part &&
425
+ part.approval
426
+ ?.id === typedPart.approvalId);
427
+ if (toolCallPart) {
428
+ if (typedPart.approved) {
429
+ toolCallPart.state = "approval-responded";
430
+ toolCallPart.approval = {
431
+ id: typedPart.approvalId,
432
+ approved: true,
433
+ reason: typedPart.reason,
434
+ };
435
+ }
436
+ else {
437
+ toolCallPart.state = "output-denied";
438
+ toolCallPart.approval = {
439
+ id: typedPart.approvalId,
440
+ approved: false,
441
+ reason: typedPart.reason,
442
+ };
443
+ }
444
+ }
445
+ else {
446
+ console.warn("Tool approval response without matching approval request", contentPart);
447
+ }
448
+ break;
449
+ }
370
450
  default: {
371
451
  const maybeSource = contentPart;
372
452
  if (maybeSource.type === "source") {
@@ -433,11 +513,12 @@ export function combineUIMessages(messages) {
433
513
  continue;
434
514
  }
435
515
  const previousPartIndex = newParts.findIndex((p) => getToolCallId(p) === toolCallId);
436
- const previousPart = newParts.splice(previousPartIndex, 1)[0];
437
- if (!previousPart) {
516
+ if (previousPartIndex === -1) {
517
+ // Tool call not found in previous parts, add it as new
438
518
  newParts.push(part);
439
519
  continue;
440
520
  }
521
+ const previousPart = newParts.splice(previousPartIndex, 1)[0];
441
522
  newParts.push(mergeParts(previousPart, part));
442
523
  }
443
524
  acc.push({
@@ -1 +1 @@
1
- {"version":3,"file":"UIMessages.js","sourceRoot":"","sources":["../src/UIMessages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UIMessages.js","sourceRoot":"","sources":["../src/UIMessages.ts"],"names":[],"mappings":"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"}
@@ -1,42 +1,126 @@
1
- import type { FlexibleSchema } from "@ai-sdk/provider-utils";
2
- import type { Tool, ToolCallOptions, ToolSet } from "ai";
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
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
+ export type ToolOutputPropertiesCtx<INPUT, OUTPUT, Ctx extends ToolCtx = ToolCtx> = NeverOptional<OUTPUT, {
35
+ /**
36
+ * An async function that is called with the arguments from the tool call and produces a result.
37
+ * If `execute` (or `handler`) is not provided, the tool will not be executed automatically.
38
+ *
39
+ * @param input - The input of the tool call.
40
+ * @param options.abortSignal - A signal that can be used to abort the tool call.
41
+ */
42
+ execute: ToolExecuteFunctionCtx<INPUT, OUTPUT, Ctx>;
43
+ outputSchema?: FlexibleSchema<OUTPUT>;
44
+ handler?: never;
45
+ } | {
46
+ /** @deprecated Use execute instead. */
47
+ handler: ToolExecuteFunctionCtx<INPUT, OUTPUT, Ctx>;
48
+ outputSchema?: FlexibleSchema<OUTPUT>;
49
+ execute?: never;
50
+ } | {
51
+ outputSchema: FlexibleSchema<OUTPUT>;
52
+ execute?: never;
53
+ handler?: never;
54
+ }>;
55
+ export type ToolInputProperties<INPUT> = {
56
+ /**
57
+ * The schema of the input that the tool expects.
58
+ * The language model will use this to generate the input.
59
+ * It is also used to validate the output of the language model.
60
+ *
61
+ * You can use descriptions on the schema properties to make the input understandable for the language model.
62
+ */
63
+ inputSchema: FlexibleSchema<INPUT>;
64
+ args?: never;
65
+ } | {
66
+ /**
67
+ * The schema of the input that the tool expects. The language model will use this to generate the input.
68
+ * It is also used to validate the output of the language model.
69
+ * Use descriptions to make the input understandable for the language model.
70
+ *
71
+ * @deprecated Use inputSchema instead.
72
+ */
73
+ args: FlexibleSchema<INPUT>;
74
+ inputSchema?: never;
75
+ };
12
76
  /**
13
77
  * This is a wrapper around the ai.tool function that adds extra context to the
14
78
  * tool call, including the action context, userId, threadId, and messageId.
15
79
  * @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.
80
+ * Currently contains deprecated parameters `args` and `handler` to maintain backwards compatibility
81
+ * but these will be removed in the future. Use `inputSchema` and `execute` instead, respectively.
82
+ *
17
83
  * @returns A tool to be used with the AI SDK.
18
84
  */
19
85
  export declare function createTool<INPUT, OUTPUT, Ctx extends ToolCtx = ToolCtx>(def: {
20
86
  /**
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
- */
87
+ * An optional description of what the tool does.
88
+ * Will be used by the language model to decide whether to use the tool.
89
+ * Not used for provider-defined tools.
90
+ */
25
91
  description?: string;
26
92
  /**
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: FlexibleSchema<INPUT>;
93
+ * An optional title of the tool.
94
+ */
95
+ title?: string;
96
+ /**
97
+ * Additional provider-specific metadata. They are passed through
98
+ * to the provider from the AI SDK and enable provider-specific
99
+ * functionality that can be fully encapsulated in the provider.
100
+ */
101
+ providerOptions?: ProviderOptions;
102
+ } & ToolInputProperties<INPUT> & {
32
103
  /**
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> | AsyncIterable<OUTPUT>;
104
+ * An optional list of input examples that show the language
105
+ * model what the input should look like.
106
+ */
107
+ inputExamples?: Array<{
108
+ input: NoInfer<INPUT>;
109
+ }>;
110
+ /**
111
+ * Whether the tool needs approval before it can be executed.
112
+ */
113
+ needsApproval?: boolean | ToolNeedsApprovalFunctionCtx<[
114
+ INPUT
115
+ ] extends [never] ? unknown : INPUT, Ctx>;
116
+ /**
117
+ * Strict mode setting for the tool.
118
+ *
119
+ * Providers that support strict mode will use this setting to determine
120
+ * how the input should be generated. Strict mode will always produce
121
+ * valid inputs, but it might limit what input schemas are supported.
122
+ */
123
+ strict?: boolean;
40
124
  /**
41
125
  * Provide the context to use, e.g. when defining the tool at runtime.
42
126
  */
@@ -45,22 +129,42 @@ export declare function createTool<INPUT, OUTPUT, Ctx extends ToolCtx = ToolCtx>
45
129
  * Optional function that is called when the argument streaming starts.
46
130
  * Only called when the tool is used in a streaming context.
47
131
  */
48
- onInputStart?: (ctx: Ctx, options: ToolCallOptions) => void | PromiseLike<void>;
132
+ onInputStart?: (ctx: Ctx, options: ToolExecutionOptions) => void | PromiseLike<void>;
49
133
  /**
50
134
  * Optional function that is called when an argument streaming delta is available.
51
135
  * Only called when the tool is used in a streaming context.
52
136
  */
53
137
  onInputDelta?: (ctx: Ctx, options: {
54
138
  inputTextDelta: string;
55
- } & ToolCallOptions) => void | PromiseLike<void>;
139
+ } & ToolExecutionOptions) => void | PromiseLike<void>;
56
140
  /**
57
141
  * Optional function that is called when a tool call can be started,
58
142
  * even if the execute function is not provided.
59
143
  */
60
144
  onInputAvailable?: (ctx: Ctx, options: {
61
- input: [INPUT] extends [never] ? undefined : INPUT;
62
- } & ToolCallOptions) => void | PromiseLike<void>;
63
- providerOptions?: ProviderOptions;
145
+ input: [INPUT] extends [never] ? unknown : INPUT;
146
+ } & ToolExecutionOptions) => void | PromiseLike<void>;
147
+ } & ToolOutputPropertiesCtx<INPUT, OUTPUT, Ctx> & {
148
+ /**
149
+ * Optional conversion function that maps the tool result to an output that can be used by the language model.
150
+ *
151
+ * If not provided, the tool result will be sent as a JSON object.
152
+ */
153
+ toModelOutput?: (ctx: Ctx, options: {
154
+ /**
155
+ * The ID of the tool call. You can use it e.g. when sending tool-call related information with stream data.
156
+ */
157
+ toolCallId: string;
158
+ /**
159
+ * The input of the tool call.
160
+ */
161
+ input: [INPUT] extends [never] ? unknown : INPUT;
162
+ /**
163
+ * The output of the tool call.
164
+ */
165
+ output: 0 extends 1 & OUTPUT ? any : [OUTPUT] extends [never] ? any : NoInfer<OUTPUT>;
166
+ }) => ToolResultOutput | PromiseLike<ToolResultOutput>;
64
167
  }): Tool<INPUT, OUTPUT>;
65
168
  export declare function wrapTools(ctx: ToolCtx, ...toolSets: (ToolSet | undefined)[]): ToolSet;
169
+ export {};
66
170
  //# 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,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAEzD,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,CAAC,EAAE,KAAK,CAAC;IACd,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,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACjD;;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;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe,KAClD,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;AAMD,wBAAgB,SAAS,CACvB,GAAG,EAAE,OAAO,EACZ,GAAG,QAAQ,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,GACnC,OAAO,CAgBT"}
1
+ {"version":3,"file":"createTool.d.ts","sourceRoot":"","sources":["../../src/client/createTool.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,93 @@
1
1
  import { tool } from "ai";
2
+ const MIGRATION_URL = "https://github.com/get-convex/agent/blob/main/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
+ }
2
10
  /**
3
11
  * This is a wrapper around the ai.tool function that adds extra context to the
4
12
  * tool call, including the action context, userId, threadId, and messageId.
5
13
  * @param tool The tool. See https://sdk.vercel.ai/docs/ai-sdk-core/tools-and-tool-calling
6
- * 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
+ *
7
17
  * @returns A tool to be used with the AI SDK.
8
18
  */
9
19
  export function createTool(def) {
20
+ const inputSchema = def.inputSchema ?? def.args;
21
+ if (!inputSchema)
22
+ throw new Error("To use a Convex tool, you must provide an `inputSchema` (or `args`)");
23
+ if (def.args && !def.inputSchema) {
24
+ warnDeprecation("createTool.args", "createTool: 'args' is deprecated. Use 'inputSchema' instead.");
25
+ }
26
+ if (def.handler && !def.execute) {
27
+ warnDeprecation("createTool.handler", "createTool: 'handler' is deprecated. Use 'execute' instead.");
28
+ }
29
+ const executeHandler = def.execute ?? def.handler;
30
+ if (!executeHandler && !def.outputSchema)
31
+ throw new Error("To use a Convex tool, you must either provide an execute" +
32
+ " handler function, define an outputSchema, or both");
10
33
  const t = tool({
11
34
  type: "function",
12
35
  __acceptsCtx: true,
13
36
  ctx: def.ctx,
14
37
  description: def.description,
15
- inputSchema: def.args,
16
- execute(args, options) {
38
+ title: def.title,
39
+ providerOptions: def.providerOptions,
40
+ inputSchema,
41
+ inputExamples: def.inputExamples,
42
+ needsApproval(input, options) {
43
+ const needsApproval = def.needsApproval;
44
+ if (!needsApproval || typeof needsApproval === "boolean")
45
+ return Boolean(needsApproval);
17
46
  if (!getCtx(this)) {
18
47
  throw new Error("To use a Convex tool, you must either provide the ctx" +
19
48
  " at definition time (dynamically in an action), or use the Agent to" +
20
49
  " call it (which injects the ctx, userId and threadId)");
21
50
  }
22
- return def.handler(getCtx(this), args, options);
51
+ return needsApproval(getCtx(this), input, options);
23
52
  },
24
- providerOptions: def.providerOptions,
53
+ strict: def.strict,
54
+ ...(executeHandler
55
+ ? {
56
+ execute(input, options) {
57
+ if (!getCtx(this)) {
58
+ throw new Error("To use a Convex tool, you must either provide the ctx" +
59
+ " at definition time (dynamically in an action), or use the Agent to" +
60
+ " call it (which injects the ctx, userId and threadId)");
61
+ }
62
+ return executeHandler(getCtx(this), input, options);
63
+ },
64
+ }
65
+ : {}),
66
+ outputSchema: def.outputSchema,
25
67
  });
26
68
  if (def.onInputStart) {
27
- t.onInputStart = def.onInputStart.bind(t, getCtx(t));
69
+ const origOnInputStart = def.onInputStart;
70
+ t.onInputStart = function (options) {
71
+ return origOnInputStart.call(this, getCtx(this), options);
72
+ };
28
73
  }
29
74
  if (def.onInputDelta) {
30
- t.onInputDelta = def.onInputDelta.bind(t, getCtx(t));
75
+ const origOnInputDelta = def.onInputDelta;
76
+ t.onInputDelta = function (options) {
77
+ return origOnInputDelta.call(this, getCtx(this), options);
78
+ };
31
79
  }
32
80
  if (def.onInputAvailable) {
33
- t.onInputAvailable = def.onInputAvailable.bind(t, getCtx(t));
81
+ const origOnInputAvailable = def.onInputAvailable;
82
+ t.onInputAvailable = function (options) {
83
+ return origOnInputAvailable.call(this, getCtx(this), options);
84
+ };
85
+ }
86
+ if (def.toModelOutput) {
87
+ const origToModelOutput = def.toModelOutput;
88
+ t.toModelOutput = function (options) {
89
+ return origToModelOutput.call(this, getCtx(this), options);
90
+ };
34
91
  }
35
92
  return t;
36
93
  }