@convex-dev/agent 0.1.6 → 0.1.7-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 (106) hide show
  1. package/README.md +23 -12
  2. package/dist/commonjs/client/_generated/_ignore.d.ts +1 -0
  3. package/dist/commonjs/client/_generated/_ignore.d.ts.map +1 -0
  4. package/dist/commonjs/client/_generated/_ignore.js +3 -0
  5. package/dist/commonjs/client/_generated/_ignore.js.map +1 -0
  6. package/dist/commonjs/client/files.d.ts +57 -0
  7. package/dist/commonjs/client/files.d.ts.map +1 -0
  8. package/dist/commonjs/client/files.js +124 -0
  9. package/dist/commonjs/client/files.js.map +1 -0
  10. package/dist/commonjs/client/index.d.ts +487 -318
  11. package/dist/commonjs/client/index.d.ts.map +1 -1
  12. package/dist/commonjs/client/index.js +652 -550
  13. package/dist/commonjs/client/index.js.map +1 -1
  14. package/dist/commonjs/client/types.d.ts +35 -5
  15. package/dist/commonjs/client/types.d.ts.map +1 -1
  16. package/dist/commonjs/component/_generated/api.d.ts +47 -711
  17. package/dist/commonjs/component/files.d.ts +66 -21
  18. package/dist/commonjs/component/files.d.ts.map +1 -1
  19. package/dist/commonjs/component/files.js +71 -26
  20. package/dist/commonjs/component/files.js.map +1 -1
  21. package/dist/commonjs/component/messages.d.ts +31 -499
  22. package/dist/commonjs/component/messages.d.ts.map +1 -1
  23. package/dist/commonjs/component/messages.js +45 -125
  24. package/dist/commonjs/component/messages.js.map +1 -1
  25. package/dist/commonjs/component/schema.d.ts +949 -3785
  26. package/dist/commonjs/component/schema.d.ts.map +1 -1
  27. package/dist/commonjs/component/schema.js +9 -25
  28. package/dist/commonjs/component/schema.js.map +1 -1
  29. package/dist/commonjs/component/streams.d.ts +3 -3
  30. package/dist/commonjs/mapping.d.ts +28 -19
  31. package/dist/commonjs/mapping.d.ts.map +1 -1
  32. package/dist/commonjs/mapping.js +136 -81
  33. package/dist/commonjs/mapping.js.map +1 -1
  34. package/dist/commonjs/react/toUIMessages.d.ts.map +1 -1
  35. package/dist/commonjs/react/toUIMessages.js +12 -6
  36. package/dist/commonjs/react/toUIMessages.js.map +1 -1
  37. package/dist/commonjs/react/usePaginatedQuery.d.ts.map +1 -1
  38. package/dist/commonjs/react/usePaginatedQuery.js +0 -19
  39. package/dist/commonjs/react/usePaginatedQuery.js.map +1 -1
  40. package/dist/commonjs/validators.d.ts +851 -3388
  41. package/dist/commonjs/validators.d.ts.map +1 -1
  42. package/dist/commonjs/validators.js +11 -37
  43. package/dist/commonjs/validators.js.map +1 -1
  44. package/dist/commonjs.tsbuildinfo +1 -1
  45. package/dist/esm/client/_generated/_ignore.d.ts +1 -0
  46. package/dist/esm/client/_generated/_ignore.d.ts.map +1 -0
  47. package/dist/esm/client/_generated/_ignore.js +3 -0
  48. package/dist/esm/client/_generated/_ignore.js.map +1 -0
  49. package/dist/esm/client/files.d.ts +57 -0
  50. package/dist/esm/client/files.d.ts.map +1 -0
  51. package/dist/esm/client/files.js +124 -0
  52. package/dist/esm/client/files.js.map +1 -0
  53. package/dist/esm/client/index.d.ts +487 -318
  54. package/dist/esm/client/index.d.ts.map +1 -1
  55. package/dist/esm/client/index.js +652 -550
  56. package/dist/esm/client/index.js.map +1 -1
  57. package/dist/esm/client/types.d.ts +35 -5
  58. package/dist/esm/client/types.d.ts.map +1 -1
  59. package/dist/esm/component/_generated/api.d.ts +47 -711
  60. package/dist/esm/component/files.d.ts +66 -21
  61. package/dist/esm/component/files.d.ts.map +1 -1
  62. package/dist/esm/component/files.js +71 -26
  63. package/dist/esm/component/files.js.map +1 -1
  64. package/dist/esm/component/messages.d.ts +31 -499
  65. package/dist/esm/component/messages.d.ts.map +1 -1
  66. package/dist/esm/component/messages.js +45 -125
  67. package/dist/esm/component/messages.js.map +1 -1
  68. package/dist/esm/component/schema.d.ts +949 -3785
  69. package/dist/esm/component/schema.d.ts.map +1 -1
  70. package/dist/esm/component/schema.js +9 -25
  71. package/dist/esm/component/schema.js.map +1 -1
  72. package/dist/esm/component/streams.d.ts +3 -3
  73. package/dist/esm/mapping.d.ts +28 -19
  74. package/dist/esm/mapping.d.ts.map +1 -1
  75. package/dist/esm/mapping.js +136 -81
  76. package/dist/esm/mapping.js.map +1 -1
  77. package/dist/esm/react/toUIMessages.d.ts.map +1 -1
  78. package/dist/esm/react/toUIMessages.js +12 -6
  79. package/dist/esm/react/toUIMessages.js.map +1 -1
  80. package/dist/esm/react/usePaginatedQuery.d.ts.map +1 -1
  81. package/dist/esm/react/usePaginatedQuery.js +0 -19
  82. package/dist/esm/react/usePaginatedQuery.js.map +1 -1
  83. package/dist/esm/validators.d.ts +851 -3388
  84. package/dist/esm/validators.d.ts.map +1 -1
  85. package/dist/esm/validators.js +11 -37
  86. package/dist/esm/validators.js.map +1 -1
  87. package/dist/esm.tsbuildinfo +1 -1
  88. package/package.json +11 -9
  89. package/src/client/_generated/_ignore.ts +1 -0
  90. package/src/client/files.ts +167 -0
  91. package/src/client/index.test.ts +127 -1
  92. package/src/client/index.ts +970 -812
  93. package/src/client/setup.test.ts +29 -0
  94. package/src/client/types.ts +41 -3
  95. package/src/component/_generated/api.d.ts +47 -711
  96. package/src/component/files.test.ts +130 -0
  97. package/src/component/files.ts +83 -27
  98. package/src/component/messages.test.ts +2 -1
  99. package/src/component/messages.ts +47 -137
  100. package/src/component/schema.ts +8 -28
  101. package/src/mapping.test.ts +163 -0
  102. package/src/mapping.ts +173 -103
  103. package/src/react/deltas.test.ts +4 -1
  104. package/src/react/toUIMessages.ts +12 -6
  105. package/src/react/usePaginatedQuery.ts +0 -31
  106. package/src/validators.ts +33 -47
@@ -0,0 +1,29 @@
1
+ /// <reference types="vite/client" />
2
+ import { test } from "vitest";
3
+ import { convexTest } from "convex-test";
4
+ export const modules = import.meta.glob("./**/*.*s");
5
+
6
+ import componentSchema from "../component/schema";
7
+ import {
8
+ defineSchema,
9
+ type GenericSchema,
10
+ type SchemaDefinition,
11
+ } from "convex/server";
12
+ import { type AgentComponent } from ".";
13
+ import { componentsGeneric } from "convex/server";
14
+ export { componentSchema };
15
+ export const componentModules = import.meta.glob("../component/**/*.ts");
16
+
17
+ export function initConvexTest<
18
+ Schema extends SchemaDefinition<GenericSchema, boolean>,
19
+ >(schema?: Schema) {
20
+ console.log({ modules });
21
+ const t = convexTest(schema ?? defineSchema({}), modules);
22
+ t.registerComponent("agent", componentSchema, componentModules);
23
+ return t;
24
+ }
25
+ export const components = componentsGeneric() as unknown as {
26
+ agent: AgentComponent;
27
+ };
28
+
29
+ test("setup", () => {});
@@ -6,6 +6,8 @@ import type {
6
6
  generateText,
7
7
  GenerateTextResult,
8
8
  JSONValue,
9
+ LanguageModelRequestMetadata,
10
+ LanguageModelResponseMetadata,
9
11
  LanguageModelV1,
10
12
  RepairTextFunction,
11
13
  streamObject,
@@ -23,6 +25,8 @@ import type {
23
25
  GenericDataModel,
24
26
  GenericMutationCtx,
25
27
  GenericQueryCtx,
28
+ StorageActionWriter,
29
+ StorageReader,
26
30
  WithoutSystemFields,
27
31
  } from "convex/server";
28
32
  import type { GenericId } from "convex/values";
@@ -96,14 +100,31 @@ export type ContextOptions = {
96
100
  */
97
101
  export type StorageOptions = {
98
102
  /**
103
+ * Whether to save messages to the thread history.
104
+ * Pass "all" to save all input and output messages.
105
+ * Pass "none" to not save any input or output messages.
106
+ * Pass "promptAndOutput" to save the prompt and all output messages.
107
+ * If you pass {messages} but no {prompt}, it will assume messages.at(-1) is
108
+ * the prompt.
109
+ * Defaults to "promptAndOutput".
110
+ */
111
+ saveMessages?: "all" | "none" | "promptAndOutput";
112
+ /**
113
+ * @deprecated Use saveMessages instead.
99
114
  * Defaults to false, allowing you to pass in arbitrary context that will
100
115
  * be in addition to automatically fetched content.
101
116
  * Pass true to have all input messages saved to the thread history.
102
117
  */
103
118
  saveAllInputMessages?: boolean;
104
- /** Defaults to true, saving the prompt, or last message passed to generateText. */
119
+ /**
120
+ * @deprecated Use saveMessages instead.
121
+ * Defaults to true, saving the prompt, or last message passed to generateText.
122
+ */
105
123
  saveAnyInputMessages?: boolean;
106
- /** Defaults to true. Whether to save messages generated while chatting. */
124
+ /**
125
+ * @deprecated Use saveMessages instead.
126
+ * Defaults to true. Whether to save messages generated while chatting.
127
+ */
107
128
  saveOutputMessages?: boolean;
108
129
  };
109
130
 
@@ -123,6 +144,17 @@ export type UsageHandler = (
123
144
  }
124
145
  ) => void | Promise<void>;
125
146
 
147
+ export type RawRequestResponseHandler = (
148
+ ctx: RunActionCtx,
149
+ args: {
150
+ userId: string | undefined;
151
+ threadId: string | undefined;
152
+ agentName: string | undefined;
153
+ request: LanguageModelRequestMetadata;
154
+ response: LanguageModelResponseMetadata;
155
+ }
156
+ ) => void | Promise<void>;
157
+
126
158
  export type AgentComponent = UseApi<Mounts>;
127
159
 
128
160
  export type TextArgs<
@@ -148,7 +180,7 @@ export type TextArgs<
148
180
  */
149
181
  promptMessageId?: string;
150
182
  /**
151
- * The model to use for the tool calls. This will override the model specified
183
+ * The model to use for the LLM calls. This will override the model specified
152
184
  * in the Agent constructor.
153
185
  */
154
186
  model?: LanguageModelV1;
@@ -464,6 +496,12 @@ export type RunActionCtx = {
464
496
  runMutation: GenericActionCtx<GenericDataModel>["runMutation"];
465
497
  runAction: GenericActionCtx<GenericDataModel>["runAction"];
466
498
  };
499
+ export type ActionCtx = RunActionCtx & {
500
+ storage: StorageActionWriter;
501
+ };
502
+ export type QueryCtx = RunQueryCtx & {
503
+ storage: StorageReader;
504
+ };
467
505
 
468
506
  export type OpaqueIds<T> =
469
507
  T extends GenericId<infer _T>