@nordsym/apiclaw 1.5.7 → 1.5.8

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 (130) hide show
  1. package/convex/_generated/api.d.ts +2 -0
  2. package/convex/adminActivate.d.ts +3 -0
  3. package/convex/adminActivate.d.ts.map +1 -0
  4. package/convex/adminActivate.js +47 -0
  5. package/convex/adminActivate.js.map +1 -0
  6. package/convex/adminStats.d.ts +3 -0
  7. package/convex/adminStats.d.ts.map +1 -0
  8. package/convex/adminStats.js +42 -0
  9. package/convex/adminStats.js.map +1 -0
  10. package/convex/adminStats.ts +44 -0
  11. package/convex/agents.d.ts +54 -0
  12. package/convex/agents.d.ts.map +1 -0
  13. package/convex/agents.js +499 -0
  14. package/convex/agents.js.map +1 -0
  15. package/convex/analytics.d.ts +5 -0
  16. package/convex/analytics.d.ts.map +1 -0
  17. package/convex/analytics.js +166 -0
  18. package/convex/analytics.js.map +1 -0
  19. package/convex/billing.d.ts +88 -0
  20. package/convex/billing.d.ts.map +1 -0
  21. package/convex/billing.js +655 -0
  22. package/convex/billing.js.map +1 -0
  23. package/convex/capabilities.d.ts +9 -0
  24. package/convex/capabilities.d.ts.map +1 -0
  25. package/convex/capabilities.js +145 -0
  26. package/convex/capabilities.js.map +1 -0
  27. package/convex/chains.d.ts +67 -0
  28. package/convex/chains.d.ts.map +1 -0
  29. package/convex/chains.js +1042 -0
  30. package/convex/chains.js.map +1 -0
  31. package/convex/credits.d.ts +25 -0
  32. package/convex/credits.d.ts.map +1 -0
  33. package/convex/credits.js +186 -0
  34. package/convex/credits.js.map +1 -0
  35. package/convex/crons.d.ts +3 -0
  36. package/convex/crons.d.ts.map +1 -0
  37. package/convex/crons.js +17 -0
  38. package/convex/crons.js.map +1 -0
  39. package/convex/directCall.d.ts +72 -0
  40. package/convex/directCall.d.ts.map +1 -0
  41. package/convex/directCall.js +627 -0
  42. package/convex/directCall.js.map +1 -0
  43. package/convex/earnProgress.d.ts +58 -0
  44. package/convex/earnProgress.d.ts.map +1 -0
  45. package/convex/earnProgress.js +649 -0
  46. package/convex/earnProgress.js.map +1 -0
  47. package/convex/email.d.ts +14 -0
  48. package/convex/email.d.ts.map +1 -0
  49. package/convex/email.js +300 -0
  50. package/convex/email.js.map +1 -0
  51. package/convex/feedback.d.ts +7 -0
  52. package/convex/feedback.d.ts.map +1 -0
  53. package/convex/feedback.js +227 -0
  54. package/convex/feedback.js.map +1 -0
  55. package/convex/http.d.ts +3 -0
  56. package/convex/http.d.ts.map +1 -0
  57. package/convex/http.js +902 -0
  58. package/convex/http.js.map +1 -0
  59. package/convex/logs.d.ts +38 -0
  60. package/convex/logs.d.ts.map +1 -0
  61. package/convex/logs.js +487 -0
  62. package/convex/logs.js.map +1 -0
  63. package/convex/mou.d.ts +6 -0
  64. package/convex/mou.d.ts.map +1 -0
  65. package/convex/mou.js +82 -0
  66. package/convex/mou.js.map +1 -0
  67. package/convex/providerKeys.d.ts +31 -0
  68. package/convex/providerKeys.d.ts.map +1 -0
  69. package/convex/providerKeys.js +257 -0
  70. package/convex/providerKeys.js.map +1 -0
  71. package/convex/providers.d.ts +29 -0
  72. package/convex/providers.d.ts.map +1 -0
  73. package/convex/providers.js +756 -0
  74. package/convex/providers.js.map +1 -0
  75. package/convex/purchases.d.ts +7 -0
  76. package/convex/purchases.d.ts.map +1 -0
  77. package/convex/purchases.js +157 -0
  78. package/convex/purchases.js.map +1 -0
  79. package/convex/ratelimit.d.ts +4 -0
  80. package/convex/ratelimit.d.ts.map +1 -0
  81. package/convex/ratelimit.js +91 -0
  82. package/convex/ratelimit.js.map +1 -0
  83. package/convex/searchLogs.d.ts +4 -0
  84. package/convex/searchLogs.d.ts.map +1 -0
  85. package/convex/searchLogs.js +129 -0
  86. package/convex/searchLogs.js.map +1 -0
  87. package/convex/spendAlerts.d.ts +36 -0
  88. package/convex/spendAlerts.d.ts.map +1 -0
  89. package/convex/spendAlerts.js +380 -0
  90. package/convex/spendAlerts.js.map +1 -0
  91. package/convex/stripeActions.d.ts +19 -0
  92. package/convex/stripeActions.d.ts.map +1 -0
  93. package/convex/stripeActions.js +411 -0
  94. package/convex/stripeActions.js.map +1 -0
  95. package/convex/teams.d.ts +21 -0
  96. package/convex/teams.d.ts.map +1 -0
  97. package/convex/teams.js +215 -0
  98. package/convex/teams.js.map +1 -0
  99. package/convex/telemetry.d.ts +4 -0
  100. package/convex/telemetry.d.ts.map +1 -0
  101. package/convex/telemetry.js +74 -0
  102. package/convex/telemetry.js.map +1 -0
  103. package/convex/usage.d.ts +27 -0
  104. package/convex/usage.d.ts.map +1 -0
  105. package/convex/usage.js +229 -0
  106. package/convex/usage.js.map +1 -0
  107. package/convex/waitlist.d.ts +4 -0
  108. package/convex/waitlist.d.ts.map +1 -0
  109. package/convex/waitlist.js +49 -0
  110. package/convex/waitlist.js.map +1 -0
  111. package/convex/webhooks.d.ts +12 -0
  112. package/convex/webhooks.d.ts.map +1 -0
  113. package/convex/webhooks.js +410 -0
  114. package/convex/webhooks.js.map +1 -0
  115. package/convex/workspaces.d.ts +29 -0
  116. package/convex/workspaces.d.ts.map +1 -0
  117. package/convex/workspaces.js +880 -0
  118. package/convex/workspaces.js.map +1 -0
  119. package/dist/analytics.d.ts +1 -1
  120. package/dist/analytics.d.ts.map +1 -1
  121. package/dist/analytics.js +51 -2
  122. package/dist/analytics.js.map +1 -1
  123. package/dist/index.js +27 -2
  124. package/dist/index.js.map +1 -1
  125. package/landing/scripts/generate-stats.js +9 -5
  126. package/landing/src/app/page.tsx +2 -0
  127. package/landing/src/lib/stats.json +2 -2
  128. package/package.json +1 -1
  129. package/src/analytics.ts +53 -2
  130. package/src/index.ts +28 -2
@@ -0,0 +1,499 @@
1
+ import { v } from "convex/values";
2
+ import { mutation, query } from "./_generated/server";
3
+ // ============================================
4
+ // AGENT NAME GENERATION
5
+ // ============================================
6
+ const ADJECTIVES = [
7
+ "Crimson", "Azure", "Golden", "Silver", "Obsidian",
8
+ "Emerald", "Sapphire", "Violet", "Amber", "Jade",
9
+ "Scarlet", "Cobalt", "Onyx", "Ruby", "Pearl",
10
+ "Shadow", "Storm", "Frost", "Blaze", "Thunder",
11
+ "Swift", "Silent", "Bright", "Dark", "Wild",
12
+ "Noble", "Fierce", "Cosmic", "Quantum", "Neural",
13
+ ];
14
+ const NOUNS = [
15
+ "Phoenix", "Falcon", "Dragon", "Wolf", "Raven",
16
+ "Serpent", "Tiger", "Hawk", "Panther", "Lynx",
17
+ "Cipher", "Vector", "Prism", "Nexus", "Core",
18
+ "Agent", "Oracle", "Sentinel", "Phantom", "Vanguard",
19
+ "Forge", "Spark", "Pulse", "Echo", "Byte",
20
+ "Matrix", "Vertex", "Helix", "Nova", "Zenith",
21
+ ];
22
+ function generateAgentName() {
23
+ const adj = ADJECTIVES[Math.floor(Math.random() * ADJECTIVES.length)];
24
+ const noun = NOUNS[Math.floor(Math.random() * NOUNS.length)];
25
+ return `${adj} ${noun}`;
26
+ }
27
+ function generateUUID() {
28
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
29
+ const r = Math.random() * 16 | 0;
30
+ const v = c === 'x' ? r : (r & 0x3 | 0x8);
31
+ return v.toString(16);
32
+ });
33
+ }
34
+ // ============================================
35
+ // MAIN AGENT QUERIES
36
+ // ============================================
37
+ /**
38
+ * Get main agent info for a workspace
39
+ */
40
+ export const getMainAgent = query({
41
+ args: { token: v.string() },
42
+ handler: async (ctx, { token }) => {
43
+ const session = await ctx.db
44
+ .query("agentSessions")
45
+ .withIndex("by_sessionToken", (q) => q.eq("sessionToken", token))
46
+ .first();
47
+ if (!session) {
48
+ return null;
49
+ }
50
+ const workspace = await ctx.db.get(session.workspaceId);
51
+ if (!workspace) {
52
+ return null;
53
+ }
54
+ return {
55
+ workspaceId: workspace._id,
56
+ email: workspace.email,
57
+ mainAgentId: workspace.mainAgentId || null,
58
+ mainAgentName: workspace.mainAgentName || null,
59
+ aiBackend: workspace.aiBackend || null,
60
+ usageCount: workspace.usageCount,
61
+ createdAt: workspace.createdAt,
62
+ };
63
+ },
64
+ });
65
+ /**
66
+ * Rename the main agent
67
+ */
68
+ export const renameMainAgent = mutation({
69
+ args: {
70
+ token: v.string(),
71
+ name: v.string(),
72
+ },
73
+ handler: async (ctx, { token, name }) => {
74
+ const session = await ctx.db
75
+ .query("agentSessions")
76
+ .withIndex("by_sessionToken", (q) => q.eq("sessionToken", token))
77
+ .first();
78
+ if (!session) {
79
+ throw new Error("Invalid session");
80
+ }
81
+ const workspace = await ctx.db.get(session.workspaceId);
82
+ if (!workspace) {
83
+ throw new Error("Workspace not found");
84
+ }
85
+ // Validate name length
86
+ const trimmedName = name.trim();
87
+ if (trimmedName.length < 2 || trimmedName.length > 50) {
88
+ throw new Error("Name must be between 2 and 50 characters");
89
+ }
90
+ await ctx.db.patch(workspace._id, {
91
+ mainAgentName: trimmedName,
92
+ updatedAt: Date.now(),
93
+ });
94
+ return { success: true, name: trimmedName };
95
+ },
96
+ });
97
+ /**
98
+ * Initialize main agent (auto-generate name and ID if not set)
99
+ * Called on first API call
100
+ */
101
+ export const ensureMainAgent = mutation({
102
+ args: { workspaceId: v.id("workspaces") },
103
+ handler: async (ctx, { workspaceId }) => {
104
+ const workspace = await ctx.db.get(workspaceId);
105
+ if (!workspace) {
106
+ throw new Error("Workspace not found");
107
+ }
108
+ // Already initialized
109
+ if (workspace.mainAgentId && workspace.mainAgentName) {
110
+ return {
111
+ mainAgentId: workspace.mainAgentId,
112
+ mainAgentName: workspace.mainAgentName,
113
+ created: false,
114
+ };
115
+ }
116
+ const mainAgentId = workspace.mainAgentId || generateUUID();
117
+ const mainAgentName = workspace.mainAgentName || generateAgentName();
118
+ await ctx.db.patch(workspaceId, {
119
+ mainAgentId,
120
+ mainAgentName,
121
+ updatedAt: Date.now(),
122
+ });
123
+ return {
124
+ mainAgentId,
125
+ mainAgentName,
126
+ created: true,
127
+ };
128
+ },
129
+ });
130
+ // ============================================
131
+ // SUBAGENT QUERIES
132
+ // ============================================
133
+ /**
134
+ * Get all subagents for a workspace
135
+ */
136
+ export const getSubagents = query({
137
+ args: {
138
+ token: v.string(),
139
+ limit: v.optional(v.number()),
140
+ },
141
+ handler: async (ctx, { token, limit = 50 }) => {
142
+ const session = await ctx.db
143
+ .query("agentSessions")
144
+ .withIndex("by_sessionToken", (q) => q.eq("sessionToken", token))
145
+ .first();
146
+ if (!session) {
147
+ return { subagents: [], total: 0 };
148
+ }
149
+ const subagents = await ctx.db
150
+ .query("subagents")
151
+ .withIndex("by_workspaceId", (q) => q.eq("workspaceId", session.workspaceId))
152
+ .order("desc")
153
+ .take(limit);
154
+ // Sort by lastActiveAt descending
155
+ const sorted = subagents.sort((a, b) => b.lastActiveAt - a.lastActiveAt);
156
+ return {
157
+ subagents: sorted.map((s) => ({
158
+ id: s._id,
159
+ subagentId: s.subagentId,
160
+ name: s.name || s.subagentId,
161
+ callCount: s.callCount,
162
+ firstSeenAt: s.firstSeenAt,
163
+ lastActiveAt: s.lastActiveAt,
164
+ })),
165
+ total: subagents.length,
166
+ };
167
+ },
168
+ });
169
+ /**
170
+ * Get stats for a specific subagent
171
+ */
172
+ export const getSubagentStats = query({
173
+ args: {
174
+ token: v.string(),
175
+ subagentId: v.string(),
176
+ },
177
+ handler: async (ctx, { token, subagentId }) => {
178
+ const session = await ctx.db
179
+ .query("agentSessions")
180
+ .withIndex("by_sessionToken", (q) => q.eq("sessionToken", token))
181
+ .first();
182
+ if (!session) {
183
+ return null;
184
+ }
185
+ const subagent = await ctx.db
186
+ .query("subagents")
187
+ .withIndex("by_workspaceId_subagentId", (q) => q.eq("workspaceId", session.workspaceId).eq("subagentId", subagentId))
188
+ .first();
189
+ if (!subagent) {
190
+ return null;
191
+ }
192
+ // Get recent logs for this subagent
193
+ const logs = await ctx.db
194
+ .query("apiLogs")
195
+ .withIndex("by_subagentId", (q) => q.eq("subagentId", subagentId))
196
+ .order("desc")
197
+ .take(100);
198
+ const successCount = logs.filter((l) => l.status === "success").length;
199
+ const errorCount = logs.filter((l) => l.status === "error").length;
200
+ const avgLatency = logs.length > 0
201
+ ? Math.round(logs.reduce((sum, l) => sum + l.latencyMs, 0) / logs.length)
202
+ : 0;
203
+ // Group by provider
204
+ const byProvider = {};
205
+ for (const log of logs) {
206
+ byProvider[log.provider] = (byProvider[log.provider] || 0) + 1;
207
+ }
208
+ return {
209
+ subagentId: subagent.subagentId,
210
+ name: subagent.name || subagent.subagentId,
211
+ callCount: subagent.callCount,
212
+ successCount,
213
+ errorCount,
214
+ successRate: logs.length > 0 ? Math.round((successCount / logs.length) * 100) : 0,
215
+ avgLatency,
216
+ firstSeenAt: subagent.firstSeenAt,
217
+ lastActiveAt: subagent.lastActiveAt,
218
+ byProvider: Object.entries(byProvider)
219
+ .map(([provider, count]) => ({ provider, count }))
220
+ .sort((a, b) => b.count - a.count),
221
+ };
222
+ },
223
+ });
224
+ /**
225
+ * Rename a subagent
226
+ */
227
+ export const renameSubagent = mutation({
228
+ args: {
229
+ token: v.string(),
230
+ subagentId: v.string(),
231
+ name: v.string(),
232
+ },
233
+ handler: async (ctx, { token, subagentId, name }) => {
234
+ const session = await ctx.db
235
+ .query("agentSessions")
236
+ .withIndex("by_sessionToken", (q) => q.eq("sessionToken", token))
237
+ .first();
238
+ if (!session) {
239
+ throw new Error("Invalid session");
240
+ }
241
+ const subagent = await ctx.db
242
+ .query("subagents")
243
+ .withIndex("by_workspaceId_subagentId", (q) => q.eq("workspaceId", session.workspaceId).eq("subagentId", subagentId))
244
+ .first();
245
+ if (!subagent) {
246
+ throw new Error("Subagent not found");
247
+ }
248
+ const trimmedName = name.trim();
249
+ if (trimmedName.length < 1 || trimmedName.length > 100) {
250
+ throw new Error("Name must be between 1 and 100 characters");
251
+ }
252
+ await ctx.db.patch(subagent._id, { name: trimmedName });
253
+ return { success: true, name: trimmedName };
254
+ },
255
+ });
256
+ /**
257
+ * Track a subagent call (upsert subagent record)
258
+ * Called when X-APIClaw-Subagent header is present
259
+ */
260
+ export const trackSubagentCall = mutation({
261
+ args: {
262
+ workspaceId: v.id("workspaces"),
263
+ subagentId: v.string(),
264
+ },
265
+ handler: async (ctx, { workspaceId, subagentId }) => {
266
+ const now = Date.now();
267
+ // Find existing subagent record
268
+ const existing = await ctx.db
269
+ .query("subagents")
270
+ .withIndex("by_workspaceId_subagentId", (q) => q.eq("workspaceId", workspaceId).eq("subagentId", subagentId))
271
+ .first();
272
+ if (existing) {
273
+ // Increment call count
274
+ await ctx.db.patch(existing._id, {
275
+ callCount: existing.callCount + 1,
276
+ lastActiveAt: now,
277
+ });
278
+ return { id: existing._id, created: false };
279
+ }
280
+ // Create new subagent record
281
+ const id = await ctx.db.insert("subagents", {
282
+ workspaceId,
283
+ subagentId,
284
+ callCount: 1,
285
+ firstSeenAt: now,
286
+ lastActiveAt: now,
287
+ });
288
+ return { id, created: true };
289
+ },
290
+ });
291
+ // ============================================
292
+ // AGGREGATE STATS
293
+ // ============================================
294
+ // ============================================
295
+ // AGENT REGISTRATION & AI BACKEND TRACKING
296
+ // ============================================
297
+ /**
298
+ * Pre-register a task agent (subagent)
299
+ * Allows agents to be registered before they make their first call
300
+ */
301
+ export const registerTaskAgent = mutation({
302
+ args: {
303
+ token: v.string(),
304
+ subagentId: v.string(),
305
+ name: v.optional(v.string()),
306
+ description: v.optional(v.string()),
307
+ },
308
+ handler: async (ctx, { token, subagentId, name, description }) => {
309
+ const session = await ctx.db
310
+ .query("agentSessions")
311
+ .withIndex("by_sessionToken", (q) => q.eq("sessionToken", token))
312
+ .first();
313
+ if (!session) {
314
+ throw new Error("Invalid session");
315
+ }
316
+ // Validate subagentId
317
+ const trimmedId = subagentId.trim();
318
+ if (trimmedId.length < 1 || trimmedId.length > 100) {
319
+ throw new Error("Subagent ID must be between 1 and 100 characters");
320
+ }
321
+ const now = Date.now();
322
+ // Check if already exists
323
+ const existing = await ctx.db
324
+ .query("subagents")
325
+ .withIndex("by_workspaceId_subagentId", (q) => q.eq("workspaceId", session.workspaceId).eq("subagentId", trimmedId))
326
+ .first();
327
+ if (existing) {
328
+ // Update existing record
329
+ await ctx.db.patch(existing._id, {
330
+ name: name || existing.name,
331
+ description: description || existing.description,
332
+ isRegistered: true,
333
+ lastActiveAt: now,
334
+ });
335
+ return { id: existing._id, created: false };
336
+ }
337
+ // Create new subagent record
338
+ const id = await ctx.db.insert("subagents", {
339
+ workspaceId: session.workspaceId,
340
+ subagentId: trimmedId,
341
+ name: name,
342
+ description: description,
343
+ callCount: 0,
344
+ isRegistered: true,
345
+ firstSeenAt: now,
346
+ lastActiveAt: now,
347
+ });
348
+ return { id, created: true };
349
+ },
350
+ });
351
+ /**
352
+ * Update AI backend for workspace or subagent
353
+ * Called when X-APIClaw-AI-Backend header is present
354
+ */
355
+ export const updateAIBackend = mutation({
356
+ args: {
357
+ workspaceId: v.id("workspaces"),
358
+ subagentId: v.optional(v.string()),
359
+ aiBackend: v.string(),
360
+ },
361
+ handler: async (ctx, { workspaceId, subagentId, aiBackend }) => {
362
+ const now = Date.now();
363
+ if (subagentId) {
364
+ // Update subagent's AI backend
365
+ const subagent = await ctx.db
366
+ .query("subagents")
367
+ .withIndex("by_workspaceId_subagentId", (q) => q.eq("workspaceId", workspaceId).eq("subagentId", subagentId))
368
+ .first();
369
+ if (subagent) {
370
+ await ctx.db.patch(subagent._id, {
371
+ aiBackend,
372
+ lastActiveAt: now,
373
+ });
374
+ }
375
+ }
376
+ else {
377
+ // Update workspace's main agent AI backend
378
+ await ctx.db.patch(workspaceId, {
379
+ aiBackend,
380
+ aiBackendLastSeen: now,
381
+ updatedAt: now,
382
+ });
383
+ }
384
+ return { success: true };
385
+ },
386
+ });
387
+ // ============================================
388
+ // AGGREGATE STATS
389
+ // ============================================
390
+ /**
391
+ * Get agent overview for workspace (main + subagents summary)
392
+ */
393
+ export const getAgentOverview = query({
394
+ args: { token: v.string() },
395
+ handler: async (ctx, { token }) => {
396
+ const session = await ctx.db
397
+ .query("agentSessions")
398
+ .withIndex("by_sessionToken", (q) => q.eq("sessionToken", token))
399
+ .first();
400
+ if (!session) {
401
+ return null;
402
+ }
403
+ const workspace = await ctx.db.get(session.workspaceId);
404
+ if (!workspace) {
405
+ return null;
406
+ }
407
+ // Get all subagents
408
+ const subagents = await ctx.db
409
+ .query("subagents")
410
+ .withIndex("by_workspaceId", (q) => q.eq("workspaceId", session.workspaceId))
411
+ .collect();
412
+ // Calculate totals
413
+ const totalSubagentCalls = subagents.reduce((sum, s) => sum + s.callCount, 0);
414
+ const mainAgentCalls = workspace.usageCount - totalSubagentCalls;
415
+ // Get most active subagents (top 5)
416
+ const topSubagents = subagents
417
+ .sort((a, b) => b.callCount - a.callCount)
418
+ .slice(0, 5)
419
+ .map((s) => ({
420
+ subagentId: s.subagentId,
421
+ name: s.name || s.subagentId,
422
+ callCount: s.callCount,
423
+ lastActiveAt: s.lastActiveAt,
424
+ }));
425
+ return {
426
+ mainAgent: {
427
+ id: workspace.mainAgentId || null,
428
+ name: workspace.mainAgentName || "Unnamed Agent",
429
+ callCount: Math.max(0, mainAgentCalls), // Ensure non-negative
430
+ },
431
+ subagents: {
432
+ total: subagents.length,
433
+ totalCalls: totalSubagentCalls,
434
+ topActive: topSubagents,
435
+ },
436
+ totalCalls: workspace.usageCount,
437
+ };
438
+ },
439
+ });
440
+ /**
441
+ * Delete a subagent
442
+ */
443
+ export const deleteSubagent = mutation({
444
+ args: {
445
+ token: v.string(),
446
+ subagentId: v.string(),
447
+ },
448
+ handler: async (ctx, { token, subagentId }) => {
449
+ const session = await ctx.db
450
+ .query("agentSessions")
451
+ .withIndex("by_sessionToken", (q) => q.eq("sessionToken", token))
452
+ .first();
453
+ if (!session) {
454
+ throw new Error("Invalid session");
455
+ }
456
+ const subagent = await ctx.db
457
+ .query("subagents")
458
+ .withIndex("by_workspaceId_subagentId", (q) => q.eq("workspaceId", session.workspaceId).eq("subagentId", subagentId))
459
+ .first();
460
+ if (!subagent) {
461
+ throw new Error("Subagent not found");
462
+ }
463
+ await ctx.db.delete(subagent._id);
464
+ return { success: true };
465
+ },
466
+ });
467
+ /**
468
+ * Update subagent stats (call count, last active)
469
+ * Internal helper for tracking
470
+ */
471
+ export const updateSubagentStats = mutation({
472
+ args: {
473
+ token: v.string(),
474
+ subagentId: v.string(),
475
+ incrementCalls: v.optional(v.number()),
476
+ },
477
+ handler: async (ctx, { token, subagentId, incrementCalls = 1 }) => {
478
+ const session = await ctx.db
479
+ .query("agentSessions")
480
+ .withIndex("by_sessionToken", (q) => q.eq("sessionToken", token))
481
+ .first();
482
+ if (!session) {
483
+ throw new Error("Invalid session");
484
+ }
485
+ const subagent = await ctx.db
486
+ .query("subagents")
487
+ .withIndex("by_workspaceId_subagentId", (q) => q.eq("workspaceId", session.workspaceId).eq("subagentId", subagentId))
488
+ .first();
489
+ if (!subagent) {
490
+ throw new Error("Subagent not found");
491
+ }
492
+ await ctx.db.patch(subagent._id, {
493
+ callCount: (subagent.callCount || 0) + incrementCalls,
494
+ lastActiveAt: Date.now(),
495
+ });
496
+ return { success: true, newCallCount: (subagent.callCount || 0) + incrementCalls };
497
+ },
498
+ });
499
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const log: any;
2
+ export declare const getStats: any;
3
+ export declare const getRecent: any;
4
+ export declare const getProviderBreakdown: any;
5
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["analytics.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,GAAG,KAcd,CAAC;AAGH,eAAO,MAAM,QAAQ,KAoDnB,CAAC;AAGH,eAAO,MAAM,SAAS,KAapB,CAAC;AAGH,eAAO,MAAM,oBAAoB,KA6F/B,CAAC"}