@o-zakstam/voltagent-convex 1.1.1 → 1.1.3

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 (96) hide show
  1. package/dist/client/defineVoltAgentAPI.d.ts +191 -0
  2. package/dist/client/defineVoltAgentAPI.d.ts.map +1 -0
  3. package/dist/client/defineVoltAgentAPI.js +318 -0
  4. package/dist/client/defineVoltAgentAPI.js.map +1 -0
  5. package/dist/client/index.d.ts +6 -563
  6. package/dist/client/index.d.ts.map +1 -0
  7. package/dist/client/index.js +8 -285
  8. package/dist/client/index.js.map +1 -1
  9. package/dist/client/types.d.ts +13 -0
  10. package/dist/client/types.d.ts.map +1 -0
  11. package/dist/client/types.js +8 -0
  12. package/dist/client/types.js.map +1 -0
  13. package/dist/component/_generated/api.d.ts +44 -0
  14. package/dist/component/_generated/api.d.ts.map +1 -0
  15. package/dist/component/_generated/api.js +31 -0
  16. package/dist/component/_generated/api.js.map +1 -0
  17. package/dist/component/_generated/component.d.ts +352 -0
  18. package/dist/component/_generated/component.d.ts.map +1 -0
  19. package/dist/component/_generated/component.js +11 -0
  20. package/dist/component/_generated/component.js.map +1 -0
  21. package/dist/component/_generated/dataModel.d.ts +46 -0
  22. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  23. package/dist/component/_generated/dataModel.js +11 -0
  24. package/dist/component/_generated/dataModel.js.map +1 -0
  25. package/dist/component/_generated/server.d.ts +121 -0
  26. package/dist/component/_generated/server.d.ts.map +1 -0
  27. package/dist/component/_generated/server.js +78 -0
  28. package/dist/component/_generated/server.js.map +1 -0
  29. package/dist/component/conversations.d.ts +108 -0
  30. package/dist/component/conversations.d.ts.map +1 -0
  31. package/dist/component/conversations.js +278 -0
  32. package/dist/component/conversations.js.map +1 -0
  33. package/dist/component/convex.config.d.ts +13 -0
  34. package/dist/component/convex.config.d.ts.map +1 -0
  35. package/dist/component/convex.config.js +21 -0
  36. package/dist/component/convex.config.js.map +1 -0
  37. package/dist/component/messages.d.ts +235 -0
  38. package/dist/component/messages.d.ts.map +1 -0
  39. package/dist/component/messages.js +186 -0
  40. package/dist/component/messages.js.map +1 -0
  41. package/dist/component/schema.d.ts +535 -0
  42. package/dist/component/schema.d.ts.map +1 -0
  43. package/dist/component/schema.js +113 -0
  44. package/dist/component/schema.js.map +1 -0
  45. package/dist/component/steps.d.ts +65 -0
  46. package/dist/component/steps.d.ts.map +1 -0
  47. package/dist/component/steps.js +120 -0
  48. package/dist/component/steps.js.map +1 -0
  49. package/dist/component/validators.d.ts +633 -0
  50. package/dist/component/validators.d.ts.map +1 -0
  51. package/dist/component/validators.js +124 -0
  52. package/dist/component/validators.js.map +1 -0
  53. package/dist/component/workflows.d.ts +234 -0
  54. package/dist/component/workflows.d.ts.map +1 -0
  55. package/dist/component/workflows.js +229 -0
  56. package/dist/component/workflows.js.map +1 -0
  57. package/dist/component/workingMemory.d.ts +30 -0
  58. package/dist/component/workingMemory.d.ts.map +1 -0
  59. package/dist/component/workingMemory.js +131 -0
  60. package/dist/component/workingMemory.js.map +1 -0
  61. package/dist/index.d.ts +7 -318
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +10 -434
  64. package/dist/index.js.map +1 -1
  65. package/dist/memory-adapter.d.ts +153 -0
  66. package/dist/memory-adapter.d.ts.map +1 -0
  67. package/dist/memory-adapter.js +462 -0
  68. package/dist/memory-adapter.js.map +1 -0
  69. package/dist/types.d.ts +167 -0
  70. package/dist/types.d.ts.map +1 -0
  71. package/dist/types.js +5 -0
  72. package/dist/types.js.map +1 -0
  73. package/package.json +25 -26
  74. package/src/client/defineVoltAgentAPI.ts +365 -0
  75. package/src/client/index.ts +8 -0
  76. package/src/client/types.ts +14 -0
  77. package/src/component/_generated/api.ts +60 -0
  78. package/src/component/_generated/component.ts +466 -0
  79. package/src/component/_generated/dataModel.ts +60 -0
  80. package/src/component/_generated/server.ts +156 -0
  81. package/src/index.ts +24 -0
  82. package/{dist/index.cjs → src/memory-adapter.ts} +345 -106
  83. package/src/types.ts +178 -0
  84. package/dist/client/index.cjs +0 -288
  85. package/dist/client/index.cjs.map +0 -1
  86. package/dist/client/index.d.cts +0 -566
  87. package/dist/index.cjs.map +0 -1
  88. package/dist/index.d.cts +0 -322
  89. /package/{convex → src/component}/conversations.ts +0 -0
  90. /package/{convex → src/component}/convex.config.ts +0 -0
  91. /package/{convex → src/component}/messages.ts +0 -0
  92. /package/{convex → src/component}/schema.ts +0 -0
  93. /package/{convex → src/component}/steps.ts +0 -0
  94. /package/{convex → src/component}/validators.ts +0 -0
  95. /package/{convex → src/component}/workflows.ts +0 -0
  96. /package/{convex → src/component}/workingMemory.ts +0 -0
@@ -0,0 +1,462 @@
1
+ /**
2
+ * Convex Memory Adapter for VoltAgent
3
+ *
4
+ * A StorageAdapter implementation that persists conversation data
5
+ * to Convex database using the VoltAgent Convex component.
6
+ */
7
+ import { ConversationAlreadyExistsError, ConversationNotFoundError, } from "@voltagent/core";
8
+ /**
9
+ * Default console logger implementation
10
+ */
11
+ const defaultLogger = {
12
+ debug: (message, ...args) => console.debug(`[ConvexMemory] ${message}`, ...args),
13
+ info: (message, ...args) => console.info(`[ConvexMemory] ${message}`, ...args),
14
+ warn: (message, ...args) => console.warn(`[ConvexMemory] ${message}`, ...args),
15
+ error: (message, ...args) => console.error(`[ConvexMemory] ${message}`, ...args),
16
+ };
17
+ /**
18
+ * Convex Memory Adapter for VoltAgent
19
+ *
20
+ * Implements the StorageAdapter interface to persist conversation history,
21
+ * working memory, and workflow state to a Convex database.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import { ConvexHttpClient } from "convex/browser";
26
+ * import { api } from "./convex/_generated/api";
27
+ * import { ConvexMemoryAdapter } from "@voltagent/convex";
28
+ *
29
+ * const client = new ConvexHttpClient(process.env.CONVEX_URL);
30
+ *
31
+ * const adapter = new ConvexMemoryAdapter({
32
+ * client,
33
+ * api: api.voltagent,
34
+ * });
35
+ *
36
+ * const memory = new Memory({ storage: adapter });
37
+ * ```
38
+ */
39
+ export class ConvexMemoryAdapter {
40
+ client;
41
+ api;
42
+ debug;
43
+ logger;
44
+ constructor(options) {
45
+ if (!options.client) {
46
+ throw new Error("Convex client is required");
47
+ }
48
+ if (!options.api) {
49
+ throw new Error("Convex API is required");
50
+ }
51
+ this.client = options.client;
52
+ this.api = options.api;
53
+ this.debug = options.debug ?? false;
54
+ this.logger = options.logger ?? defaultLogger;
55
+ this.log("Convex Memory adapter initialized");
56
+ }
57
+ /**
58
+ * Log debug messages
59
+ */
60
+ log(message, ...args) {
61
+ if (this.debug) {
62
+ this.logger.debug(message, ...args);
63
+ }
64
+ }
65
+ /**
66
+ * Generate a cryptographically secure random ID
67
+ */
68
+ generateId() {
69
+ return crypto.randomUUID();
70
+ }
71
+ // ============================================================================
72
+ // Message Operations
73
+ // ============================================================================
74
+ /**
75
+ * Add a single message to a conversation
76
+ */
77
+ async addMessage(message, userId, conversationId, _context) {
78
+ await this.client.mutation(this.api.addMessage, {
79
+ id: message.id || this.generateId(),
80
+ conversationId,
81
+ userId,
82
+ role: message.role,
83
+ parts: message.parts,
84
+ metadata: message.metadata || null,
85
+ });
86
+ this.log(`Added message to conversation ${conversationId}`);
87
+ }
88
+ /**
89
+ * Add multiple messages to a conversation
90
+ */
91
+ async addMessages(messages, userId, conversationId, _context) {
92
+ const messagesToAdd = messages.map((message) => ({
93
+ id: message.id || this.generateId(),
94
+ conversationId,
95
+ userId,
96
+ role: message.role,
97
+ parts: message.parts,
98
+ metadata: message.metadata || null,
99
+ }));
100
+ await this.client.mutation(this.api.addMessages, {
101
+ messages: messagesToAdd,
102
+ });
103
+ this.log(`Added ${messages.length} messages to conversation ${conversationId}`);
104
+ }
105
+ /**
106
+ * Get messages from a conversation with optional filtering
107
+ */
108
+ async getMessages(userId, conversationId, options, _context) {
109
+ const { limit, before, after, roles } = options || {};
110
+ const messages = await this.client.query(this.api.getMessages, {
111
+ userId,
112
+ conversationId,
113
+ limit,
114
+ before: before?.toISOString(),
115
+ after: after?.toISOString(),
116
+ roles,
117
+ });
118
+ return messages.map((msg) => ({
119
+ id: msg.id,
120
+ role: msg.role,
121
+ parts: msg.parts,
122
+ metadata: {
123
+ ...msg.metadata,
124
+ createdAt: msg.metadata?.createdAt
125
+ ? new Date(msg.metadata.createdAt)
126
+ : new Date(),
127
+ },
128
+ }));
129
+ }
130
+ /**
131
+ * Clear messages for a user (optionally for a specific conversation)
132
+ */
133
+ async clearMessages(userId, conversationId, _context) {
134
+ await this.client.mutation(this.api.clearMessages, {
135
+ userId,
136
+ conversationId,
137
+ });
138
+ this.log(`Cleared messages for user ${userId}`);
139
+ }
140
+ // ============================================================================
141
+ // Conversation Steps Operations
142
+ // ============================================================================
143
+ /**
144
+ * Save conversation steps for observability
145
+ */
146
+ async saveConversationSteps(steps) {
147
+ if (steps.length === 0) {
148
+ return;
149
+ }
150
+ await this.client.mutation(this.api.saveConversationSteps, {
151
+ steps: steps.map((step) => ({
152
+ id: step.id,
153
+ conversationId: step.conversationId,
154
+ userId: step.userId,
155
+ agentId: step.agentId,
156
+ agentName: step.agentName,
157
+ operationId: step.operationId,
158
+ stepIndex: step.stepIndex,
159
+ type: step.type,
160
+ role: step.role,
161
+ content: step.content,
162
+ arguments: step.arguments,
163
+ result: step.result,
164
+ usage: step.usage,
165
+ subAgentId: step.subAgentId,
166
+ subAgentName: step.subAgentName,
167
+ createdAt: step.createdAt,
168
+ })),
169
+ });
170
+ this.log(`Saved ${steps.length} conversation steps`);
171
+ }
172
+ /**
173
+ * Get conversation steps for observability
174
+ */
175
+ async getConversationSteps(userId, conversationId, options) {
176
+ const steps = await this.client.query(this.api.getConversationSteps, {
177
+ userId,
178
+ conversationId,
179
+ limit: options?.limit,
180
+ operationId: options?.operationId,
181
+ });
182
+ return steps;
183
+ }
184
+ // ============================================================================
185
+ // Conversation Operations
186
+ // ============================================================================
187
+ /**
188
+ * Create a new conversation
189
+ */
190
+ async createConversation(input) {
191
+ try {
192
+ const result = await this.client.mutation(this.api.createConversation, {
193
+ id: input.id,
194
+ resourceId: input.resourceId,
195
+ userId: input.userId,
196
+ title: input.title,
197
+ metadata: input.metadata || {},
198
+ });
199
+ this.log(`Created conversation ${input.id}`);
200
+ return result;
201
+ }
202
+ catch (error) {
203
+ if (error instanceof Error && error.message.includes("already exists")) {
204
+ throw new ConversationAlreadyExistsError(input.id);
205
+ }
206
+ throw error;
207
+ }
208
+ }
209
+ /**
210
+ * Get a conversation by ID
211
+ */
212
+ async getConversation(id) {
213
+ const conversation = await this.client.query(this.api.getConversation, {
214
+ id,
215
+ });
216
+ return conversation;
217
+ }
218
+ /**
219
+ * Get conversations by resource ID
220
+ */
221
+ async getConversations(resourceId) {
222
+ const conversations = await this.client.query(this.api.getConversations, {
223
+ resourceId,
224
+ });
225
+ return conversations;
226
+ }
227
+ /**
228
+ * Get conversations by user ID with optional query options
229
+ */
230
+ async getConversationsByUserId(userId, options) {
231
+ const conversations = await this.client.query(this.api.getConversationsByUserId, {
232
+ userId,
233
+ limit: options?.limit,
234
+ offset: options?.offset,
235
+ orderBy: options?.orderBy,
236
+ orderDirection: options?.orderDirection,
237
+ });
238
+ return conversations;
239
+ }
240
+ /**
241
+ * Query conversations with filters
242
+ */
243
+ async queryConversations(options) {
244
+ const conversations = await this.client.query(this.api.queryConversations, {
245
+ userId: options.userId,
246
+ resourceId: options.resourceId,
247
+ limit: options.limit,
248
+ offset: options.offset,
249
+ orderBy: options.orderBy,
250
+ orderDirection: options.orderDirection,
251
+ });
252
+ return conversations;
253
+ }
254
+ /**
255
+ * Update a conversation
256
+ */
257
+ async updateConversation(id, updates) {
258
+ try {
259
+ const result = await this.client.mutation(this.api.updateConversation, {
260
+ id,
261
+ title: updates.title,
262
+ resourceId: updates.resourceId,
263
+ metadata: updates.metadata,
264
+ });
265
+ this.log(`Updated conversation ${id}`);
266
+ return result;
267
+ }
268
+ catch (error) {
269
+ if (error instanceof Error && error.message.includes("not found")) {
270
+ throw new ConversationNotFoundError(id);
271
+ }
272
+ throw error;
273
+ }
274
+ }
275
+ /**
276
+ * Delete a conversation and its associated data
277
+ */
278
+ async deleteConversation(id) {
279
+ try {
280
+ await this.client.mutation(this.api.deleteConversation, { id });
281
+ this.log(`Deleted conversation ${id}`);
282
+ }
283
+ catch (error) {
284
+ if (error instanceof Error && error.message.includes("not found")) {
285
+ throw new ConversationNotFoundError(id);
286
+ }
287
+ throw error;
288
+ }
289
+ }
290
+ // ============================================================================
291
+ // Working Memory Operations
292
+ // ============================================================================
293
+ /**
294
+ * Get working memory content
295
+ */
296
+ async getWorkingMemory(params) {
297
+ const result = await this.client.query(this.api.getWorkingMemory, {
298
+ conversationId: params.conversationId,
299
+ userId: params.userId,
300
+ scope: params.scope,
301
+ });
302
+ return result;
303
+ }
304
+ /**
305
+ * Set working memory content
306
+ */
307
+ async setWorkingMemory(params) {
308
+ try {
309
+ await this.client.mutation(this.api.setWorkingMemory, {
310
+ conversationId: params.conversationId,
311
+ userId: params.userId,
312
+ content: params.content,
313
+ scope: params.scope,
314
+ });
315
+ this.log(`Set working memory for ${params.scope}`);
316
+ }
317
+ catch (error) {
318
+ if (error instanceof Error &&
319
+ error.message.includes("not found") &&
320
+ params.conversationId) {
321
+ throw new ConversationNotFoundError(params.conversationId);
322
+ }
323
+ throw error;
324
+ }
325
+ }
326
+ /**
327
+ * Delete working memory content
328
+ */
329
+ async deleteWorkingMemory(params) {
330
+ await this.client.mutation(this.api.deleteWorkingMemory, {
331
+ conversationId: params.conversationId,
332
+ userId: params.userId,
333
+ scope: params.scope,
334
+ });
335
+ this.log(`Deleted working memory for ${params.scope}`);
336
+ }
337
+ // ============================================================================
338
+ // Workflow State Operations
339
+ // ============================================================================
340
+ /**
341
+ * Get workflow state by execution ID
342
+ */
343
+ async getWorkflowState(executionId) {
344
+ const state = await this.client.query(this.api.getWorkflowState, {
345
+ executionId,
346
+ });
347
+ if (!state)
348
+ return null;
349
+ const typedState = state;
350
+ return {
351
+ id: typedState.id,
352
+ workflowId: typedState.workflowId,
353
+ workflowName: typedState.workflowName,
354
+ status: typedState.status,
355
+ input: typedState.input,
356
+ context: typedState.context,
357
+ suspension: typedState.suspension,
358
+ events: typedState.events,
359
+ output: typedState.output,
360
+ cancellation: typedState.cancellation,
361
+ userId: typedState.userId,
362
+ conversationId: typedState.conversationId,
363
+ metadata: typedState.metadata,
364
+ createdAt: new Date(typedState.createdAt),
365
+ updatedAt: new Date(typedState.updatedAt),
366
+ };
367
+ }
368
+ /**
369
+ * Query workflow runs with optional filters
370
+ */
371
+ async queryWorkflowRuns(query) {
372
+ const states = await this.client.query(this.api.queryWorkflowRuns, {
373
+ workflowId: query.workflowId,
374
+ status: query.status,
375
+ from: query.from?.toISOString(),
376
+ to: query.to?.toISOString(),
377
+ limit: query.limit,
378
+ offset: query.offset,
379
+ });
380
+ return states.map((s) => ({
381
+ id: s.id,
382
+ workflowId: s.workflowId,
383
+ workflowName: s.workflowName,
384
+ status: s.status,
385
+ input: s.input,
386
+ context: s.context,
387
+ suspension: s.suspension,
388
+ events: s.events,
389
+ output: s.output,
390
+ cancellation: s.cancellation,
391
+ userId: s.userId,
392
+ conversationId: s.conversationId,
393
+ metadata: s.metadata,
394
+ createdAt: new Date(s.createdAt),
395
+ updatedAt: new Date(s.updatedAt),
396
+ }));
397
+ }
398
+ /**
399
+ * Set workflow state
400
+ */
401
+ async setWorkflowState(executionId, state) {
402
+ await this.client.mutation(this.api.setWorkflowState, {
403
+ executionId,
404
+ workflowId: state.workflowId,
405
+ workflowName: state.workflowName,
406
+ status: state.status,
407
+ input: state.input,
408
+ context: state.context,
409
+ suspension: state.suspension,
410
+ events: state.events,
411
+ output: state.output,
412
+ cancellation: state.cancellation,
413
+ userId: state.userId,
414
+ conversationId: state.conversationId,
415
+ metadata: state.metadata,
416
+ createdAt: state.createdAt.toISOString(),
417
+ updatedAt: state.updatedAt.toISOString(),
418
+ });
419
+ this.log(`Set workflow state ${executionId}`);
420
+ }
421
+ /**
422
+ * Update workflow state
423
+ */
424
+ async updateWorkflowState(executionId, updates) {
425
+ await this.client.mutation(this.api.updateWorkflowState, {
426
+ executionId,
427
+ status: updates.status,
428
+ suspension: updates.suspension,
429
+ events: updates.events,
430
+ output: updates.output,
431
+ cancellation: updates.cancellation,
432
+ metadata: updates.metadata,
433
+ });
434
+ this.log(`Updated workflow state ${executionId}`);
435
+ }
436
+ /**
437
+ * Get suspended workflow states for a workflow
438
+ */
439
+ async getSuspendedWorkflowStates(workflowId) {
440
+ const states = await this.client.query(this.api.getSuspendedWorkflowStates, {
441
+ workflowId,
442
+ });
443
+ return states.map((s) => ({
444
+ id: s.id,
445
+ workflowId: s.workflowId,
446
+ workflowName: s.workflowName,
447
+ status: s.status,
448
+ input: s.input,
449
+ context: s.context,
450
+ suspension: s.suspension,
451
+ events: s.events,
452
+ output: s.output,
453
+ cancellation: s.cancellation,
454
+ userId: s.userId,
455
+ conversationId: s.conversationId,
456
+ metadata: s.metadata,
457
+ createdAt: new Date(s.createdAt),
458
+ updatedAt: new Date(s.updatedAt),
459
+ }));
460
+ }
461
+ }
462
+ //# sourceMappingURL=memory-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-adapter.js","sourceRoot":"","sources":["../src/memory-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Type definitions for VoltAgent Convex Memory Adapter
3
+ */
4
+ /**
5
+ * Logger interface for the adapter
6
+ */
7
+ export interface Logger {
8
+ debug: (message: string, ...args: unknown[]) => void;
9
+ info: (message: string, ...args: unknown[]) => void;
10
+ warn: (message: string, ...args: unknown[]) => void;
11
+ error: (message: string, ...args: unknown[]) => void;
12
+ }
13
+ /**
14
+ * Convex client interface - compatible with ConvexHttpClient and ConvexReactClient.
15
+ *
16
+ * This interface is intentionally loose to accommodate different Convex client
17
+ * implementations (ConvexHttpClient, ConvexReactClient) which have slightly
18
+ * different method signatures.
19
+ */
20
+ export interface ConvexClient {
21
+ query: (functionReference: any, ...args: any[]) => Promise<any>;
22
+ mutation: (functionReference: any, ...args: any[]) => Promise<any>;
23
+ }
24
+ /**
25
+ * The VoltAgent API structure.
26
+ * This matches the wrapper functions exported from the convex/api.ts file.
27
+ */
28
+ export interface VoltAgentApi {
29
+ createConversation: unknown;
30
+ getConversation: unknown;
31
+ getConversations: unknown;
32
+ getConversationsByUserId: unknown;
33
+ queryConversations: unknown;
34
+ updateConversation: unknown;
35
+ deleteConversation: unknown;
36
+ addMessage: unknown;
37
+ addMessages: unknown;
38
+ getMessages: unknown;
39
+ clearMessages: unknown;
40
+ saveConversationSteps: unknown;
41
+ getConversationSteps: unknown;
42
+ getWorkingMemory: unknown;
43
+ setWorkingMemory: unknown;
44
+ deleteWorkingMemory: unknown;
45
+ getWorkflowState: unknown;
46
+ queryWorkflowRuns: unknown;
47
+ setWorkflowState: unknown;
48
+ updateWorkflowState: unknown;
49
+ getSuspendedWorkflowStates: unknown;
50
+ }
51
+ /**
52
+ * Configuration options for ConvexMemoryAdapter
53
+ */
54
+ export interface ConvexMemoryAdapterOptions {
55
+ /**
56
+ * The Convex client instance to use for queries and mutations.
57
+ * Can be a ConvexHttpClient or ConvexReactClient.
58
+ */
59
+ client: ConvexClient;
60
+ /**
61
+ * Whether to enable debug logging.
62
+ * @default false
63
+ */
64
+ debug?: boolean;
65
+ /**
66
+ * Custom logger instance.
67
+ * If not provided, a default console logger will be used when debug is enabled.
68
+ */
69
+ logger?: Logger;
70
+ /**
71
+ * The VoltAgent API from your Convex generated code.
72
+ *
73
+ * After adding the voltagent.ts file to your convex folder that re-exports
74
+ * the wrapper functions, import the api and pass api.voltagent here.
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * import { api } from "./convex/_generated/api";
79
+ *
80
+ * const adapter = new ConvexMemoryAdapter({
81
+ * client,
82
+ * api: api.voltagent,
83
+ * });
84
+ * ```
85
+ */
86
+ api: VoltAgentApi;
87
+ }
88
+ /**
89
+ * Internal representation of a conversation in Convex
90
+ */
91
+ export interface ConvexConversation {
92
+ _id: string;
93
+ visibleId: string;
94
+ resourceId: string;
95
+ userId: string;
96
+ title: string;
97
+ metadata: Record<string, unknown>;
98
+ createdAt: string;
99
+ updatedAt: string;
100
+ }
101
+ /**
102
+ * Internal representation of a message in Convex
103
+ */
104
+ export interface ConvexMessage {
105
+ _id: string;
106
+ visibleId: string;
107
+ conversationId: string;
108
+ userId: string;
109
+ role: string;
110
+ parts: unknown[];
111
+ metadata?: Record<string, unknown>;
112
+ createdAt: string;
113
+ }
114
+ /**
115
+ * Internal representation of a user in Convex
116
+ */
117
+ export interface ConvexUser {
118
+ _id: string;
119
+ visibleId: string;
120
+ metadata?: Record<string, unknown>;
121
+ createdAt: string;
122
+ updatedAt: string;
123
+ }
124
+ /**
125
+ * Internal representation of a workflow state in Convex
126
+ */
127
+ export interface ConvexWorkflowState {
128
+ _id: string;
129
+ visibleId: string;
130
+ workflowId: string;
131
+ workflowName: string;
132
+ status: string;
133
+ input?: unknown;
134
+ context?: unknown;
135
+ suspension?: unknown;
136
+ events?: unknown[];
137
+ output?: unknown;
138
+ cancellation?: unknown;
139
+ userId?: string;
140
+ conversationId?: string;
141
+ metadata?: Record<string, unknown>;
142
+ createdAt: string;
143
+ updatedAt: string;
144
+ }
145
+ /**
146
+ * Internal representation of a conversation step in Convex
147
+ */
148
+ export interface ConvexConversationStep {
149
+ _id: string;
150
+ visibleId: string;
151
+ conversationId: string;
152
+ userId: string;
153
+ agentId: string;
154
+ agentName?: string;
155
+ operationId?: string;
156
+ stepIndex: number;
157
+ type: string;
158
+ role: string;
159
+ content?: string;
160
+ arguments?: Record<string, unknown>;
161
+ result?: Record<string, unknown>;
162
+ usage?: Record<string, unknown>;
163
+ subAgentId?: string;
164
+ subAgentName?: string;
165
+ createdAt: string;
166
+ }
167
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Type definitions for VoltAgent Convex Memory Adapter
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}