@o-zakstam/voltagent-convex 1.1.2 → 1.1.4
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.
- package/dist/client/{index.d.cts → defineVoltAgentAPI.d.ts} +59 -92
- package/dist/client/defineVoltAgentAPI.d.ts.map +1 -0
- package/dist/client/defineVoltAgentAPI.js +318 -0
- package/dist/client/defineVoltAgentAPI.js.map +1 -0
- package/dist/client/index.d.ts +6 -221
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +8 -285
- package/dist/client/index.js.map +1 -1
- package/dist/client/types.d.ts +13 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +8 -0
- package/dist/client/types.js.map +1 -0
- package/dist/component/_generated/api.d.ts +44 -0
- package/dist/component/_generated/api.d.ts.map +1 -0
- package/dist/component/_generated/api.js +31 -0
- package/dist/component/_generated/api.js.map +1 -0
- package/dist/component/_generated/component.d.ts +352 -0
- package/dist/component/_generated/component.d.ts.map +1 -0
- package/dist/component/_generated/component.js +11 -0
- package/dist/component/_generated/component.js.map +1 -0
- package/dist/component/_generated/dataModel.d.ts +46 -0
- package/dist/component/_generated/dataModel.d.ts.map +1 -0
- package/dist/component/_generated/dataModel.js +11 -0
- package/dist/component/_generated/dataModel.js.map +1 -0
- package/dist/component/_generated/server.d.ts +121 -0
- package/dist/component/_generated/server.d.ts.map +1 -0
- package/dist/component/_generated/server.js +78 -0
- package/dist/component/_generated/server.js.map +1 -0
- package/dist/component/conversations.d.ts +108 -0
- package/dist/component/conversations.d.ts.map +1 -0
- package/dist/component/conversations.js +278 -0
- package/dist/component/conversations.js.map +1 -0
- package/dist/component/convex.config.d.ts +13 -0
- package/dist/component/convex.config.d.ts.map +1 -0
- package/dist/component/convex.config.js +21 -0
- package/dist/component/convex.config.js.map +1 -0
- package/dist/component/messages.d.ts +235 -0
- package/dist/component/messages.d.ts.map +1 -0
- package/dist/component/messages.js +186 -0
- package/dist/component/messages.js.map +1 -0
- package/dist/component/schema.d.ts +535 -0
- package/dist/component/schema.d.ts.map +1 -0
- package/dist/component/schema.js +113 -0
- package/dist/component/schema.js.map +1 -0
- package/dist/component/steps.d.ts +65 -0
- package/dist/component/steps.d.ts.map +1 -0
- package/dist/component/steps.js +120 -0
- package/dist/component/steps.js.map +1 -0
- package/dist/component/validators.d.ts +633 -0
- package/dist/component/validators.d.ts.map +1 -0
- package/dist/component/validators.js +124 -0
- package/dist/component/validators.js.map +1 -0
- package/dist/component/workflows.d.ts +234 -0
- package/dist/component/workflows.d.ts.map +1 -0
- package/dist/component/workflows.js +229 -0
- package/dist/component/workflows.js.map +1 -0
- package/dist/component/workingMemory.d.ts +30 -0
- package/dist/component/workingMemory.d.ts.map +1 -0
- package/dist/component/workingMemory.js +131 -0
- package/dist/component/workingMemory.js.map +1 -0
- package/dist/index.d.ts +7 -318
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -434
- package/dist/index.js.map +1 -1
- package/dist/memory-adapter.d.ts +153 -0
- package/dist/memory-adapter.d.ts.map +1 -0
- package/dist/memory-adapter.js +462 -0
- package/dist/memory-adapter.js.map +1 -0
- package/dist/types.d.ts +167 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +25 -26
- package/src/client/defineVoltAgentAPI.ts +365 -0
- package/src/client/index.ts +8 -0
- package/src/client/types.ts +14 -0
- package/src/component/_generated/api.ts +60 -0
- package/src/component/_generated/component.ts +466 -0
- package/src/component/_generated/dataModel.ts +60 -0
- package/src/component/_generated/server.ts +156 -0
- package/src/index.ts +24 -0
- package/{dist/index.cjs → src/memory-adapter.ts} +345 -106
- package/src/types.ts +178 -0
- package/dist/client/index.cjs +0 -288
- package/dist/client/index.cjs.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -322
- /package/{convex → src/component}/conversations.ts +0 -0
- /package/{convex → src/component}/convex.config.ts +0 -0
- /package/{convex → src/component}/messages.ts +0 -0
- /package/{convex → src/component}/schema.ts +0 -0
- /package/{convex → src/component}/steps.ts +0 -0
- /package/{convex → src/component}/validators.ts +0 -0
- /package/{convex → src/component}/workflows.ts +0 -0
- /package/{convex → src/component}/workingMemory.ts +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VoltAgent Convex Component Schema
|
|
3
|
+
*
|
|
4
|
+
* Defines all tables used by the VoltAgent storage adapter.
|
|
5
|
+
* These tables are isolated within the component namespace.
|
|
6
|
+
*/
|
|
7
|
+
import { defineSchema, defineTable } from "convex/server";
|
|
8
|
+
import { v } from "convex/values";
|
|
9
|
+
import { vMessageParts, vMetadata, vUsage, vSuspension, vCancellation, vWorkflowEvents, vWorkflowContext, } from "./validators";
|
|
10
|
+
/**
|
|
11
|
+
* Conversations table - stores conversation metadata
|
|
12
|
+
*/
|
|
13
|
+
const conversations = defineTable({
|
|
14
|
+
visibleId: v.string(),
|
|
15
|
+
resourceId: v.string(),
|
|
16
|
+
userId: v.string(),
|
|
17
|
+
title: v.string(),
|
|
18
|
+
metadata: vMetadata,
|
|
19
|
+
createdAt: v.string(),
|
|
20
|
+
updatedAt: v.string(),
|
|
21
|
+
})
|
|
22
|
+
.index("by_visible_id", ["visibleId"])
|
|
23
|
+
.index("by_user_id", ["userId"])
|
|
24
|
+
.index("by_resource_id", ["resourceId"])
|
|
25
|
+
.index("by_user_id_and_updated_at", ["userId", "updatedAt"]);
|
|
26
|
+
/**
|
|
27
|
+
* Messages table - stores conversation messages in UIMessage format
|
|
28
|
+
*/
|
|
29
|
+
const messages = defineTable({
|
|
30
|
+
visibleId: v.string(),
|
|
31
|
+
conversationId: v.string(),
|
|
32
|
+
userId: v.string(),
|
|
33
|
+
role: v.string(),
|
|
34
|
+
parts: vMessageParts,
|
|
35
|
+
metadata: v.optional(vMetadata),
|
|
36
|
+
createdAt: v.string(),
|
|
37
|
+
})
|
|
38
|
+
.index("by_conversation_id", ["conversationId"])
|
|
39
|
+
.index("by_conversation_id_and_created_at", ["conversationId", "createdAt"])
|
|
40
|
+
.index("by_conversation_id_and_user_id", ["conversationId", "userId"])
|
|
41
|
+
.index("by_user_id", ["userId"])
|
|
42
|
+
.index("by_visible_id", ["visibleId"]);
|
|
43
|
+
/**
|
|
44
|
+
* Users table - stores user-level working memory
|
|
45
|
+
*/
|
|
46
|
+
const users = defineTable({
|
|
47
|
+
visibleId: v.string(),
|
|
48
|
+
metadata: v.optional(vMetadata),
|
|
49
|
+
createdAt: v.string(),
|
|
50
|
+
updatedAt: v.string(),
|
|
51
|
+
}).index("by_visible_id", ["visibleId"]);
|
|
52
|
+
/**
|
|
53
|
+
* Workflow States table - stores workflow execution state for suspendable workflows
|
|
54
|
+
*/
|
|
55
|
+
const workflowStates = defineTable({
|
|
56
|
+
visibleId: v.string(),
|
|
57
|
+
workflowId: v.string(),
|
|
58
|
+
workflowName: v.string(),
|
|
59
|
+
status: v.string(),
|
|
60
|
+
input: v.optional(v.any()), // Keep as v.any() - workflow input can be any shape
|
|
61
|
+
context: v.optional(vWorkflowContext),
|
|
62
|
+
suspension: v.optional(vSuspension),
|
|
63
|
+
events: v.optional(vWorkflowEvents),
|
|
64
|
+
output: v.optional(v.any()), // Keep as v.any() - workflow output can be any shape
|
|
65
|
+
cancellation: v.optional(vCancellation),
|
|
66
|
+
userId: v.optional(v.string()),
|
|
67
|
+
conversationId: v.optional(v.string()),
|
|
68
|
+
metadata: v.optional(vMetadata),
|
|
69
|
+
createdAt: v.string(),
|
|
70
|
+
updatedAt: v.string(),
|
|
71
|
+
})
|
|
72
|
+
.index("by_visible_id", ["visibleId"])
|
|
73
|
+
.index("by_workflow_id", ["workflowId"])
|
|
74
|
+
.index("by_status", ["status"])
|
|
75
|
+
.index("by_workflow_id_and_status", ["workflowId", "status"])
|
|
76
|
+
.index("by_created_at", ["createdAt"]);
|
|
77
|
+
/**
|
|
78
|
+
* Conversation Steps table - stores detailed conversation steps for observability
|
|
79
|
+
*/
|
|
80
|
+
const conversationSteps = defineTable({
|
|
81
|
+
visibleId: v.string(),
|
|
82
|
+
conversationId: v.string(),
|
|
83
|
+
userId: v.string(),
|
|
84
|
+
agentId: v.string(),
|
|
85
|
+
agentName: v.optional(v.string()),
|
|
86
|
+
operationId: v.optional(v.string()),
|
|
87
|
+
stepIndex: v.number(),
|
|
88
|
+
type: v.string(),
|
|
89
|
+
role: v.string(),
|
|
90
|
+
content: v.optional(v.string()),
|
|
91
|
+
arguments: v.optional(vMetadata),
|
|
92
|
+
result: v.optional(v.any()), // Keep as v.any() - tool results can be any shape
|
|
93
|
+
usage: v.optional(vUsage),
|
|
94
|
+
subAgentId: v.optional(v.string()),
|
|
95
|
+
subAgentName: v.optional(v.string()),
|
|
96
|
+
createdAt: v.string(),
|
|
97
|
+
})
|
|
98
|
+
.index("by_visible_id", ["visibleId"])
|
|
99
|
+
.index("by_conversation_id", ["conversationId"])
|
|
100
|
+
.index("by_conversation_id_and_step_index", ["conversationId", "stepIndex"])
|
|
101
|
+
.index("by_conversation_id_and_operation_id", [
|
|
102
|
+
"conversationId",
|
|
103
|
+
"operationId",
|
|
104
|
+
])
|
|
105
|
+
.index("by_user_id", ["userId"]);
|
|
106
|
+
export default defineSchema({
|
|
107
|
+
conversations,
|
|
108
|
+
messages,
|
|
109
|
+
users,
|
|
110
|
+
workflowStates,
|
|
111
|
+
conversationSteps,
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Save conversation steps
|
|
3
|
+
*/
|
|
4
|
+
export declare const save: import("convex/server").RegisteredMutation<"public", {
|
|
5
|
+
steps: {
|
|
6
|
+
createdAt?: string | undefined;
|
|
7
|
+
operationId?: string | undefined;
|
|
8
|
+
content?: string | undefined;
|
|
9
|
+
agentName?: string | undefined;
|
|
10
|
+
arguments?: Record<string, any> | undefined;
|
|
11
|
+
result?: any;
|
|
12
|
+
usage?: {
|
|
13
|
+
promptTokens?: number | undefined;
|
|
14
|
+
completionTokens?: number | undefined;
|
|
15
|
+
totalTokens?: number | undefined;
|
|
16
|
+
reasoningTokens?: number | undefined;
|
|
17
|
+
cachedInputTokens?: number | undefined;
|
|
18
|
+
} | undefined;
|
|
19
|
+
subAgentId?: string | undefined;
|
|
20
|
+
subAgentName?: string | undefined;
|
|
21
|
+
id: string;
|
|
22
|
+
type: string;
|
|
23
|
+
userId: string;
|
|
24
|
+
conversationId: string;
|
|
25
|
+
role: string;
|
|
26
|
+
agentId: string;
|
|
27
|
+
stepIndex: number;
|
|
28
|
+
}[];
|
|
29
|
+
}, Promise<{
|
|
30
|
+
success: boolean;
|
|
31
|
+
count: number;
|
|
32
|
+
}>>;
|
|
33
|
+
/**
|
|
34
|
+
* Get conversation steps
|
|
35
|
+
*/
|
|
36
|
+
export declare const get: import("convex/server").RegisteredQuery<"public", {
|
|
37
|
+
limit?: number | undefined;
|
|
38
|
+
operationId?: string | undefined;
|
|
39
|
+
userId: string;
|
|
40
|
+
conversationId: string;
|
|
41
|
+
}, Promise<{
|
|
42
|
+
id: string;
|
|
43
|
+
conversationId: string;
|
|
44
|
+
userId: string;
|
|
45
|
+
agentId: string;
|
|
46
|
+
agentName: string | undefined;
|
|
47
|
+
operationId: string | undefined;
|
|
48
|
+
stepIndex: number;
|
|
49
|
+
type: string;
|
|
50
|
+
role: string;
|
|
51
|
+
content: string | undefined;
|
|
52
|
+
arguments: Record<string, any> | undefined;
|
|
53
|
+
result: any;
|
|
54
|
+
usage: {
|
|
55
|
+
promptTokens?: number | undefined;
|
|
56
|
+
completionTokens?: number | undefined;
|
|
57
|
+
totalTokens?: number | undefined;
|
|
58
|
+
reasoningTokens?: number | undefined;
|
|
59
|
+
cachedInputTokens?: number | undefined;
|
|
60
|
+
} | undefined;
|
|
61
|
+
subAgentId: string | undefined;
|
|
62
|
+
subAgentName: string | undefined;
|
|
63
|
+
createdAt: string;
|
|
64
|
+
}[]>>;
|
|
65
|
+
//# sourceMappingURL=steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/component/steps.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEf,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8Cd,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation steps functions for observability
|
|
3
|
+
*/
|
|
4
|
+
import { mutation, query } from "./_generated/server";
|
|
5
|
+
import { v } from "convex/values";
|
|
6
|
+
import { vMetadata, vUsage } from "./validators";
|
|
7
|
+
/**
|
|
8
|
+
* Save conversation steps
|
|
9
|
+
*/
|
|
10
|
+
export const save = mutation({
|
|
11
|
+
args: {
|
|
12
|
+
steps: v.array(v.object({
|
|
13
|
+
id: v.string(),
|
|
14
|
+
conversationId: v.string(),
|
|
15
|
+
userId: v.string(),
|
|
16
|
+
agentId: v.string(),
|
|
17
|
+
agentName: v.optional(v.string()),
|
|
18
|
+
operationId: v.optional(v.string()),
|
|
19
|
+
stepIndex: v.number(),
|
|
20
|
+
type: v.string(),
|
|
21
|
+
role: v.string(),
|
|
22
|
+
content: v.optional(v.string()),
|
|
23
|
+
arguments: v.optional(vMetadata),
|
|
24
|
+
result: v.optional(v.any()), // Keep as v.any() - tool results can be any shape
|
|
25
|
+
usage: v.optional(vUsage),
|
|
26
|
+
subAgentId: v.optional(v.string()),
|
|
27
|
+
subAgentName: v.optional(v.string()),
|
|
28
|
+
createdAt: v.optional(v.string()),
|
|
29
|
+
})),
|
|
30
|
+
},
|
|
31
|
+
handler: async (ctx, args) => {
|
|
32
|
+
const now = new Date().toISOString();
|
|
33
|
+
for (const step of args.steps) {
|
|
34
|
+
const existing = await ctx.db
|
|
35
|
+
.query("conversationSteps")
|
|
36
|
+
.withIndex("by_visible_id", (q) => q.eq("visibleId", step.id))
|
|
37
|
+
.first();
|
|
38
|
+
if (existing) {
|
|
39
|
+
await ctx.db.patch(existing._id, {
|
|
40
|
+
agentName: step.agentName,
|
|
41
|
+
operationId: step.operationId,
|
|
42
|
+
stepIndex: step.stepIndex,
|
|
43
|
+
type: step.type,
|
|
44
|
+
role: step.role,
|
|
45
|
+
content: step.content,
|
|
46
|
+
arguments: step.arguments,
|
|
47
|
+
result: step.result,
|
|
48
|
+
usage: step.usage,
|
|
49
|
+
subAgentId: step.subAgentId,
|
|
50
|
+
subAgentName: step.subAgentName,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
await ctx.db.insert("conversationSteps", {
|
|
55
|
+
visibleId: step.id,
|
|
56
|
+
conversationId: step.conversationId,
|
|
57
|
+
userId: step.userId,
|
|
58
|
+
agentId: step.agentId,
|
|
59
|
+
agentName: step.agentName,
|
|
60
|
+
operationId: step.operationId,
|
|
61
|
+
stepIndex: step.stepIndex,
|
|
62
|
+
type: step.type,
|
|
63
|
+
role: step.role,
|
|
64
|
+
content: step.content,
|
|
65
|
+
arguments: step.arguments,
|
|
66
|
+
result: step.result,
|
|
67
|
+
usage: step.usage,
|
|
68
|
+
subAgentId: step.subAgentId,
|
|
69
|
+
subAgentName: step.subAgentName,
|
|
70
|
+
createdAt: step.createdAt || now,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return { success: true, count: args.steps.length };
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
/**
|
|
78
|
+
* Get conversation steps
|
|
79
|
+
*/
|
|
80
|
+
export const get = query({
|
|
81
|
+
args: {
|
|
82
|
+
userId: v.string(),
|
|
83
|
+
conversationId: v.string(),
|
|
84
|
+
limit: v.optional(v.number()),
|
|
85
|
+
operationId: v.optional(v.string()),
|
|
86
|
+
},
|
|
87
|
+
handler: async (ctx, args) => {
|
|
88
|
+
let steps = await ctx.db
|
|
89
|
+
.query("conversationSteps")
|
|
90
|
+
.withIndex("by_conversation_id", (q) => q.eq("conversationId", args.conversationId))
|
|
91
|
+
.collect();
|
|
92
|
+
steps = steps.filter((s) => s.userId === args.userId);
|
|
93
|
+
if (args.operationId) {
|
|
94
|
+
steps = steps.filter((s) => s.operationId === args.operationId);
|
|
95
|
+
}
|
|
96
|
+
steps.sort((a, b) => a.stepIndex - b.stepIndex);
|
|
97
|
+
if (args.limit && args.limit > 0 && steps.length > args.limit) {
|
|
98
|
+
steps = steps.slice(-args.limit);
|
|
99
|
+
}
|
|
100
|
+
return steps.map((s) => ({
|
|
101
|
+
id: s.visibleId,
|
|
102
|
+
conversationId: s.conversationId,
|
|
103
|
+
userId: s.userId,
|
|
104
|
+
agentId: s.agentId,
|
|
105
|
+
agentName: s.agentName,
|
|
106
|
+
operationId: s.operationId,
|
|
107
|
+
stepIndex: s.stepIndex,
|
|
108
|
+
type: s.type,
|
|
109
|
+
role: s.role,
|
|
110
|
+
content: s.content,
|
|
111
|
+
arguments: s.arguments,
|
|
112
|
+
result: s.result,
|
|
113
|
+
usage: s.usage,
|
|
114
|
+
subAgentId: s.subAgentId,
|
|
115
|
+
subAgentName: s.subAgentName,
|
|
116
|
+
createdAt: s.createdAt,
|
|
117
|
+
}));
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
//# sourceMappingURL=steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/component/steps.ts"],"names":[],"mappings":"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"}
|