@convex-dev/agent 0.0.1-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 (129) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +55 -0
  3. package/dist/commonjs/client/index.d.ts +198 -0
  4. package/dist/commonjs/client/index.d.ts.map +1 -0
  5. package/dist/commonjs/client/index.js +365 -0
  6. package/dist/commonjs/client/index.js.map +1 -0
  7. package/dist/commonjs/client/types.d.ts +21 -0
  8. package/dist/commonjs/client/types.d.ts.map +1 -0
  9. package/dist/commonjs/client/types.js +2 -0
  10. package/dist/commonjs/client/types.js.map +1 -0
  11. package/dist/commonjs/component/_generated/api.d.ts +12 -0
  12. package/dist/commonjs/component/_generated/api.d.ts.map +1 -0
  13. package/dist/commonjs/component/_generated/api.js +22 -0
  14. package/dist/commonjs/component/_generated/api.js.map +1 -0
  15. package/dist/commonjs/component/_generated/server.d.ts +64 -0
  16. package/dist/commonjs/component/_generated/server.d.ts.map +1 -0
  17. package/dist/commonjs/component/_generated/server.js +74 -0
  18. package/dist/commonjs/component/_generated/server.js.map +1 -0
  19. package/dist/commonjs/component/convex.config.d.ts +3 -0
  20. package/dist/commonjs/component/convex.config.d.ts.map +1 -0
  21. package/dist/commonjs/component/convex.config.js +3 -0
  22. package/dist/commonjs/component/convex.config.js.map +1 -0
  23. package/dist/commonjs/component/lib.d.ts +2 -0
  24. package/dist/commonjs/component/lib.d.ts.map +1 -0
  25. package/dist/commonjs/component/lib.js +2 -0
  26. package/dist/commonjs/component/lib.js.map +1 -0
  27. package/dist/commonjs/component/messages.d.ts +1913 -0
  28. package/dist/commonjs/component/messages.d.ts.map +1 -0
  29. package/dist/commonjs/component/messages.js +787 -0
  30. package/dist/commonjs/component/messages.js.map +1 -0
  31. package/dist/commonjs/component/schema.d.ts +5496 -0
  32. package/dist/commonjs/component/schema.d.ts.map +1 -0
  33. package/dist/commonjs/component/schema.js +97 -0
  34. package/dist/commonjs/component/schema.js.map +1 -0
  35. package/dist/commonjs/component/vector/tables.d.ts +40 -0
  36. package/dist/commonjs/component/vector/tables.d.ts.map +1 -0
  37. package/dist/commonjs/component/vector/tables.js +46 -0
  38. package/dist/commonjs/component/vector/tables.js.map +1 -0
  39. package/dist/commonjs/mapping.d.ts +26 -0
  40. package/dist/commonjs/mapping.d.ts.map +1 -0
  41. package/dist/commonjs/mapping.js +101 -0
  42. package/dist/commonjs/mapping.js.map +1 -0
  43. package/dist/commonjs/package.json +3 -0
  44. package/dist/commonjs/react/index.d.ts +2 -0
  45. package/dist/commonjs/react/index.d.ts.map +1 -0
  46. package/dist/commonjs/react/index.js +8 -0
  47. package/dist/commonjs/react/index.js.map +1 -0
  48. package/dist/commonjs/shared.d.ts +9 -0
  49. package/dist/commonjs/shared.d.ts.map +1 -0
  50. package/dist/commonjs/shared.js +29 -0
  51. package/dist/commonjs/shared.js.map +1 -0
  52. package/dist/commonjs/validators.d.ts +6177 -0
  53. package/dist/commonjs/validators.d.ts.map +1 -0
  54. package/dist/commonjs/validators.js +171 -0
  55. package/dist/commonjs/validators.js.map +1 -0
  56. package/dist/esm/client/index.d.ts +198 -0
  57. package/dist/esm/client/index.d.ts.map +1 -0
  58. package/dist/esm/client/index.js +365 -0
  59. package/dist/esm/client/index.js.map +1 -0
  60. package/dist/esm/client/types.d.ts +21 -0
  61. package/dist/esm/client/types.d.ts.map +1 -0
  62. package/dist/esm/client/types.js +2 -0
  63. package/dist/esm/client/types.js.map +1 -0
  64. package/dist/esm/component/_generated/api.d.ts +12 -0
  65. package/dist/esm/component/_generated/api.d.ts.map +1 -0
  66. package/dist/esm/component/_generated/api.js +22 -0
  67. package/dist/esm/component/_generated/api.js.map +1 -0
  68. package/dist/esm/component/_generated/server.d.ts +64 -0
  69. package/dist/esm/component/_generated/server.d.ts.map +1 -0
  70. package/dist/esm/component/_generated/server.js +74 -0
  71. package/dist/esm/component/_generated/server.js.map +1 -0
  72. package/dist/esm/component/convex.config.d.ts +3 -0
  73. package/dist/esm/component/convex.config.d.ts.map +1 -0
  74. package/dist/esm/component/convex.config.js +3 -0
  75. package/dist/esm/component/convex.config.js.map +1 -0
  76. package/dist/esm/component/lib.d.ts +2 -0
  77. package/dist/esm/component/lib.d.ts.map +1 -0
  78. package/dist/esm/component/lib.js +2 -0
  79. package/dist/esm/component/lib.js.map +1 -0
  80. package/dist/esm/component/messages.d.ts +1913 -0
  81. package/dist/esm/component/messages.d.ts.map +1 -0
  82. package/dist/esm/component/messages.js +787 -0
  83. package/dist/esm/component/messages.js.map +1 -0
  84. package/dist/esm/component/schema.d.ts +5496 -0
  85. package/dist/esm/component/schema.d.ts.map +1 -0
  86. package/dist/esm/component/schema.js +97 -0
  87. package/dist/esm/component/schema.js.map +1 -0
  88. package/dist/esm/component/vector/tables.d.ts +40 -0
  89. package/dist/esm/component/vector/tables.d.ts.map +1 -0
  90. package/dist/esm/component/vector/tables.js +46 -0
  91. package/dist/esm/component/vector/tables.js.map +1 -0
  92. package/dist/esm/mapping.d.ts +26 -0
  93. package/dist/esm/mapping.d.ts.map +1 -0
  94. package/dist/esm/mapping.js +101 -0
  95. package/dist/esm/mapping.js.map +1 -0
  96. package/dist/esm/package.json +3 -0
  97. package/dist/esm/react/index.d.ts +2 -0
  98. package/dist/esm/react/index.d.ts.map +1 -0
  99. package/dist/esm/react/index.js +8 -0
  100. package/dist/esm/react/index.js.map +1 -0
  101. package/dist/esm/shared.d.ts +9 -0
  102. package/dist/esm/shared.d.ts.map +1 -0
  103. package/dist/esm/shared.js +29 -0
  104. package/dist/esm/shared.js.map +1 -0
  105. package/dist/esm/validators.d.ts +6177 -0
  106. package/dist/esm/validators.d.ts.map +1 -0
  107. package/dist/esm/validators.js +171 -0
  108. package/dist/esm/validators.js.map +1 -0
  109. package/package.json +91 -0
  110. package/react/package.json +5 -0
  111. package/src/client/index.ts +659 -0
  112. package/src/client/types.ts +54 -0
  113. package/src/component/_generated/api.d.ts +1497 -0
  114. package/src/component/_generated/api.js +23 -0
  115. package/src/component/_generated/dataModel.d.ts +60 -0
  116. package/src/component/_generated/server.d.ts +149 -0
  117. package/src/component/_generated/server.js +90 -0
  118. package/src/component/convex.config.ts +3 -0
  119. package/src/component/lib.test.ts +13 -0
  120. package/src/component/lib.ts +2 -0
  121. package/src/component/messages.ts +959 -0
  122. package/src/component/schema.ts +101 -0
  123. package/src/component/setup.test.ts +5 -0
  124. package/src/component/vector/tables.ts +92 -0
  125. package/src/mapping.ts +160 -0
  126. package/src/react/index.ts +8 -0
  127. package/src/shared.ts +35 -0
  128. package/src/validators.test.ts +101 -0
  129. package/src/validators.ts +258 -0
@@ -0,0 +1,258 @@
1
+ import { Infer, v } from "convex/values";
2
+
3
+ // const deprecated = v.optional(v.any()) as unknown as VNull<unknown, "optional">;
4
+
5
+ const providerOptions = v.optional(v.record(v.string(), v.any()));
6
+ const experimental_providerMetadata = providerOptions;
7
+
8
+ export const vChatStatus = v.union(v.literal("active"), v.literal("archived"));
9
+ export const vMessageStatus = v.union(
10
+ v.literal("pending"),
11
+ v.literal("success"),
12
+ v.literal("failed")
13
+ );
14
+ export type MessageStatus = Infer<typeof vMessageStatus>;
15
+
16
+ export const vRole = v.union(
17
+ v.literal("system"),
18
+ v.literal("user"),
19
+ v.literal("assistant"),
20
+ v.literal("tool")
21
+ );
22
+
23
+ export const vTextPart = v.object({
24
+ type: v.literal("text"),
25
+ text: v.string(),
26
+ providerOptions,
27
+ experimental_providerMetadata,
28
+ });
29
+
30
+ export const vImagePart = v.object({
31
+ type: v.literal("image"),
32
+ image: v.union(v.string(), v.bytes()),
33
+ mimeType: v.optional(v.string()),
34
+ providerOptions,
35
+ experimental_providerMetadata,
36
+ });
37
+
38
+ export const vFilePart = v.object({
39
+ type: v.literal("file"),
40
+ data: v.union(v.string(), v.bytes()),
41
+ mimeType: v.string(),
42
+ providerOptions,
43
+ experimental_providerMetadata,
44
+ });
45
+
46
+ export const vUserContent = v.union(
47
+ v.string(),
48
+ v.array(v.union(vTextPart, vImagePart, vFilePart))
49
+ );
50
+
51
+ export const vReasoningPart = v.object({
52
+ type: v.literal("reasoning"),
53
+ text: v.string(),
54
+ providerOptions,
55
+ experimental_providerMetadata,
56
+ });
57
+
58
+ export const vRedactedReasoningPart = v.object({
59
+ type: v.literal("redacted-reasoning"),
60
+ data: v.string(),
61
+ providerOptions,
62
+ experimental_providerMetadata,
63
+ });
64
+
65
+ export const vToolCallPart = v.object({
66
+ type: v.literal("tool-call"),
67
+ toolCallId: v.string(),
68
+ toolName: v.string(),
69
+ args: v.any(),
70
+ providerOptions,
71
+ experimental_providerMetadata,
72
+ });
73
+
74
+ export const vAssistantContent = v.union(
75
+ v.string(),
76
+ v.array(
77
+ v.union(
78
+ vTextPart,
79
+ vFilePart,
80
+ vReasoningPart,
81
+ vRedactedReasoningPart,
82
+ vToolCallPart
83
+ )
84
+ )
85
+ );
86
+
87
+ const vToolResultContent = v.array(
88
+ v.union(
89
+ v.object({
90
+ type: v.literal("text"),
91
+ text: v.string(),
92
+ }),
93
+ v.object({
94
+ type: v.literal("image"),
95
+ data: v.string(),
96
+ mimeType: v.optional(v.string()),
97
+ })
98
+ )
99
+ );
100
+
101
+ const vToolResultPart = v.object({
102
+ type: v.literal("tool-result"),
103
+ toolCallId: v.string(),
104
+ toolName: v.string(),
105
+ result: v.any(),
106
+ args: v.optional(v.any()),
107
+ experimental_content: v.optional(vToolResultContent),
108
+ isError: v.optional(v.boolean()),
109
+ providerOptions,
110
+ experimental_providerMetadata,
111
+ });
112
+ export const vToolContent = v.array(vToolResultPart);
113
+
114
+ export const vContent = v.union(vUserContent, vAssistantContent, vToolContent);
115
+ export type Content = Infer<typeof vContent>;
116
+
117
+ export const vUserMessage = v.object({
118
+ role: v.literal("user"),
119
+ content: vUserContent,
120
+ providerOptions,
121
+ experimental_providerMetadata,
122
+ });
123
+
124
+ export const vAssistantMessage = v.object({
125
+ role: v.literal("assistant"),
126
+ content: vAssistantContent,
127
+ providerOptions,
128
+ experimental_providerMetadata,
129
+ });
130
+
131
+ export const vToolMessage = v.object({
132
+ role: v.literal("tool"),
133
+ content: vToolContent,
134
+ providerOptions,
135
+ experimental_providerMetadata,
136
+ });
137
+
138
+ export const vSystemMessage = v.object({
139
+ role: v.literal("system"),
140
+ content: v.string(),
141
+ providerOptions,
142
+ experimental_providerMetadata,
143
+ });
144
+
145
+ export const vMessage = v.union(
146
+ vUserMessage,
147
+ vAssistantMessage,
148
+ vToolMessage,
149
+ vSystemMessage
150
+ );
151
+ export type Message = Infer<typeof vMessage>;
152
+
153
+ export const vMessageWithFileAndId = v.object({
154
+ id: v.optional(v.string()),
155
+ message: vMessage,
156
+ fileId: v.optional(v.id("files")),
157
+ });
158
+ export type MessageWithFileAndId = Infer<typeof vMessageWithFileAndId>;
159
+
160
+ export const vSource = v.object({
161
+ sourceType: v.literal("url"),
162
+ id: v.string(),
163
+ url: v.string(),
164
+ title: v.optional(v.string()),
165
+ providerMetadata: providerOptions,
166
+ });
167
+
168
+ export const vRequest = v.object({
169
+ body: v.optional(v.any()),
170
+ // These are not usually present
171
+ headers: v.optional(v.record(v.string(), v.string())),
172
+ method: v.optional(v.string()),
173
+ url: v.optional(v.string()),
174
+ });
175
+
176
+ export const vResponse = v.object({
177
+ id: v.string(),
178
+ timestamp: v.number(),
179
+ modelId: v.string(),
180
+ headers: v.optional(v.record(v.string(), v.string())), // clear these?
181
+ messages: v.array(vMessageWithFileAndId),
182
+ body: v.optional(v.any()),
183
+ });
184
+
185
+ export const vFinishReason = v.union(
186
+ v.literal("stop"),
187
+ v.literal("length"),
188
+ v.literal("content-filter"),
189
+ v.literal("tool-calls"),
190
+ v.literal("error"),
191
+ v.literal("other"),
192
+ v.literal("unknown")
193
+ );
194
+
195
+ export const vLanguageModelV1CallWarning = v.union(
196
+ v.object({
197
+ type: v.literal("unsupported-setting"),
198
+ setting: v.string(),
199
+ details: v.optional(v.string()),
200
+ }),
201
+ v.object({
202
+ type: v.literal("unsupported-tool"),
203
+ tool: v.any(),
204
+ details: v.optional(v.string()),
205
+ }),
206
+ v.object({
207
+ type: v.literal("other"),
208
+ message: v.string(),
209
+ })
210
+ );
211
+ export const vStep = v.object({
212
+ experimental_providerMetadata,
213
+ files: v.optional(v.array(v.any())),
214
+ finishReason: vFinishReason,
215
+ isContinued: v.boolean(),
216
+ logprobs: v.optional(v.any()),
217
+ providerMetadata: providerOptions,
218
+ providerOptions,
219
+ reasoning: v.optional(v.string()),
220
+ reasoningDetails: v.optional(v.array(v.any())),
221
+ request: v.optional(vRequest),
222
+ response: v.optional(vResponse),
223
+ sources: v.optional(v.array(vSource)),
224
+ stepType: v.union(
225
+ v.literal("initial"),
226
+ v.literal("continue"),
227
+ v.literal("tool-result")
228
+ ),
229
+ text: v.string(),
230
+ toolCalls: v.array(vToolCallPart),
231
+ toolResults: v.array(vToolResultPart),
232
+ usage: v.optional(
233
+ v.object({
234
+ promptTokens: v.number(),
235
+ completionTokens: v.number(),
236
+ totalTokens: v.number(),
237
+ })
238
+ ),
239
+ warnings: v.optional(v.array(vLanguageModelV1CallWarning)),
240
+ });
241
+ export type Step = Infer<typeof vStep>;
242
+
243
+ export const vStepWithMessagesWithFileAndId = v.object({
244
+ step: vStep,
245
+ messages: v.array(vMessageWithFileAndId),
246
+ });
247
+ export type StepWithMessagesWithFileAndId = Infer<
248
+ typeof vStepWithMessagesWithFileAndId
249
+ >;
250
+
251
+ export const vSearchOptions = v.object({
252
+ vector: v.optional(v.array(v.number())),
253
+ vectorModel: v.optional(v.string()),
254
+ text: v.optional(v.string()),
255
+ limit: v.number(),
256
+ messageRange: v.optional(v.object({ before: v.number(), after: v.number() })),
257
+ });
258
+ export type SearchOptions = Infer<typeof vSearchOptions>;