@multiplayer-app/ai-agent-mongo 0.1.0-beta.7 → 0.1.0-beta.71

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 (147) hide show
  1. package/dist/cjs/__tests__/helpers.cjs +1 -1
  2. package/dist/cjs/__tests__/helpers.cjs.map +1 -1
  3. package/dist/cjs/__tests__/repositories/MongoActivityRepository.test.cjs +365 -0
  4. package/dist/cjs/__tests__/repositories/MongoActivityRepository.test.cjs.map +1 -0
  5. package/dist/cjs/__tests__/repositories/MongoActivityRepository.test.d.ts +2 -0
  6. package/dist/cjs/__tests__/repositories/MongoActivityRepository.test.d.ts.map +1 -0
  7. package/dist/cjs/__tests__/repositories/MongoAgentChatRepository.test.cjs +12 -68
  8. package/dist/cjs/__tests__/repositories/MongoAgentChatRepository.test.cjs.map +1 -1
  9. package/dist/cjs/__tests__/repositories/MongoAgentConfigRepository.test.cjs +67 -0
  10. package/dist/cjs/__tests__/repositories/MongoAgentConfigRepository.test.cjs.map +1 -0
  11. package/dist/cjs/__tests__/repositories/MongoAgentConfigRepository.test.d.ts +2 -0
  12. package/dist/cjs/__tests__/repositories/MongoAgentConfigRepository.test.d.ts.map +1 -0
  13. package/dist/cjs/__tests__/repositories/MongoAgentMessageRepository.test.cjs +92 -0
  14. package/dist/cjs/__tests__/repositories/MongoAgentMessageRepository.test.cjs.map +1 -1
  15. package/dist/cjs/__tests__/schemas/AgentChatSchema.test.cjs +20 -14
  16. package/dist/cjs/__tests__/schemas/AgentChatSchema.test.cjs.map +1 -1
  17. package/dist/cjs/__tests__/schemas/AgentConfigPreferenceSchema.test.cjs +62 -0
  18. package/dist/cjs/__tests__/schemas/AgentConfigPreferenceSchema.test.cjs.map +1 -0
  19. package/dist/cjs/__tests__/schemas/AgentConfigPreferenceSchema.test.d.ts +2 -0
  20. package/dist/cjs/__tests__/schemas/AgentConfigPreferenceSchema.test.d.ts.map +1 -0
  21. package/dist/cjs/__tests__/schemas/AgentMessageSchema.test.cjs +11 -0
  22. package/dist/cjs/__tests__/schemas/AgentMessageSchema.test.cjs.map +1 -1
  23. package/dist/cjs/index.cjs +11 -1
  24. package/dist/cjs/index.cjs.map +1 -1
  25. package/dist/cjs/index.d.ts +5 -0
  26. package/dist/cjs/index.d.ts.map +1 -1
  27. package/dist/cjs/repositories/MongoActivityRepository.cjs +403 -0
  28. package/dist/cjs/repositories/MongoActivityRepository.cjs.map +1 -0
  29. package/dist/cjs/repositories/MongoActivityRepository.d.ts +64 -0
  30. package/dist/cjs/repositories/MongoActivityRepository.d.ts.map +1 -0
  31. package/dist/cjs/repositories/MongoAgentChatRepository.cjs +36 -141
  32. package/dist/cjs/repositories/MongoAgentChatRepository.cjs.map +1 -1
  33. package/dist/cjs/repositories/MongoAgentChatRepository.d.ts +4 -14
  34. package/dist/cjs/repositories/MongoAgentChatRepository.d.ts.map +1 -1
  35. package/dist/cjs/repositories/MongoAgentConfigRepository.cjs +126 -0
  36. package/dist/cjs/repositories/MongoAgentConfigRepository.cjs.map +1 -0
  37. package/dist/cjs/repositories/MongoAgentConfigRepository.d.ts +25 -0
  38. package/dist/cjs/repositories/MongoAgentConfigRepository.d.ts.map +1 -0
  39. package/dist/cjs/repositories/MongoAgentMessageRepository.cjs +66 -14
  40. package/dist/cjs/repositories/MongoAgentMessageRepository.cjs.map +1 -1
  41. package/dist/cjs/repositories/MongoAgentMessageRepository.d.ts +11 -2
  42. package/dist/cjs/repositories/MongoAgentMessageRepository.d.ts.map +1 -1
  43. package/dist/cjs/repositories/MongoTenantAICredentialRepository.cjs +129 -0
  44. package/dist/cjs/repositories/MongoTenantAICredentialRepository.cjs.map +1 -0
  45. package/dist/cjs/repositories/MongoTenantAICredentialRepository.d.ts +25 -0
  46. package/dist/cjs/repositories/MongoTenantAICredentialRepository.d.ts.map +1 -0
  47. package/dist/cjs/repositories/index.cjs +3 -0
  48. package/dist/cjs/repositories/index.cjs.map +1 -1
  49. package/dist/cjs/repositories/index.d.ts +3 -0
  50. package/dist/cjs/repositories/index.d.ts.map +1 -1
  51. package/dist/cjs/schemas/ActivitySchema.cjs +34 -0
  52. package/dist/cjs/schemas/ActivitySchema.cjs.map +1 -0
  53. package/dist/cjs/schemas/ActivitySchema.d.ts +30 -0
  54. package/dist/cjs/schemas/ActivitySchema.d.ts.map +1 -0
  55. package/dist/cjs/schemas/AgentChatSchema.cjs +3 -2
  56. package/dist/cjs/schemas/AgentChatSchema.cjs.map +1 -1
  57. package/dist/cjs/schemas/AgentChatSchema.d.ts.map +1 -1
  58. package/dist/cjs/schemas/AgentConfigPreferenceSchema.cjs +24 -0
  59. package/dist/cjs/schemas/AgentConfigPreferenceSchema.cjs.map +1 -0
  60. package/dist/cjs/schemas/AgentConfigPreferenceSchema.d.ts +24 -0
  61. package/dist/cjs/schemas/AgentConfigPreferenceSchema.d.ts.map +1 -0
  62. package/dist/cjs/schemas/AgentMessageSchema.cjs +8 -4
  63. package/dist/cjs/schemas/AgentMessageSchema.cjs.map +1 -1
  64. package/dist/cjs/schemas/AgentMessageSchema.d.ts.map +1 -1
  65. package/dist/cjs/schemas/TenantAICredentialSchema.cjs +17 -0
  66. package/dist/cjs/schemas/TenantAICredentialSchema.cjs.map +1 -0
  67. package/dist/cjs/schemas/TenantAICredentialSchema.d.ts +20 -0
  68. package/dist/cjs/schemas/TenantAICredentialSchema.d.ts.map +1 -0
  69. package/dist/cjs/schemas/index.cjs +3 -0
  70. package/dist/cjs/schemas/index.cjs.map +1 -1
  71. package/dist/cjs/schemas/index.d.ts +3 -0
  72. package/dist/cjs/schemas/index.d.ts.map +1 -1
  73. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  74. package/dist/esm/__tests__/helpers.js +1 -1
  75. package/dist/esm/__tests__/helpers.js.map +1 -1
  76. package/dist/esm/__tests__/repositories/MongoActivityRepository.test.d.ts +2 -0
  77. package/dist/esm/__tests__/repositories/MongoActivityRepository.test.d.ts.map +1 -0
  78. package/dist/esm/__tests__/repositories/MongoActivityRepository.test.js +363 -0
  79. package/dist/esm/__tests__/repositories/MongoActivityRepository.test.js.map +1 -0
  80. package/dist/esm/__tests__/repositories/MongoAgentChatRepository.test.js +12 -68
  81. package/dist/esm/__tests__/repositories/MongoAgentChatRepository.test.js.map +1 -1
  82. package/dist/esm/__tests__/repositories/MongoAgentConfigRepository.test.d.ts +2 -0
  83. package/dist/esm/__tests__/repositories/MongoAgentConfigRepository.test.d.ts.map +1 -0
  84. package/dist/esm/__tests__/repositories/MongoAgentConfigRepository.test.js +65 -0
  85. package/dist/esm/__tests__/repositories/MongoAgentConfigRepository.test.js.map +1 -0
  86. package/dist/esm/__tests__/repositories/MongoAgentMessageRepository.test.js +92 -0
  87. package/dist/esm/__tests__/repositories/MongoAgentMessageRepository.test.js.map +1 -1
  88. package/dist/esm/__tests__/schemas/AgentChatSchema.test.js +20 -14
  89. package/dist/esm/__tests__/schemas/AgentChatSchema.test.js.map +1 -1
  90. package/dist/esm/__tests__/schemas/AgentConfigPreferenceSchema.test.d.ts +2 -0
  91. package/dist/esm/__tests__/schemas/AgentConfigPreferenceSchema.test.d.ts.map +1 -0
  92. package/dist/esm/__tests__/schemas/AgentConfigPreferenceSchema.test.js +60 -0
  93. package/dist/esm/__tests__/schemas/AgentConfigPreferenceSchema.test.js.map +1 -0
  94. package/dist/esm/__tests__/schemas/AgentMessageSchema.test.js +11 -0
  95. package/dist/esm/__tests__/schemas/AgentMessageSchema.test.js.map +1 -1
  96. package/dist/esm/index.d.ts +5 -0
  97. package/dist/esm/index.d.ts.map +1 -1
  98. package/dist/esm/index.js +5 -0
  99. package/dist/esm/index.js.map +1 -1
  100. package/dist/esm/repositories/MongoActivityRepository.d.ts +64 -0
  101. package/dist/esm/repositories/MongoActivityRepository.d.ts.map +1 -0
  102. package/dist/esm/repositories/MongoActivityRepository.js +398 -0
  103. package/dist/esm/repositories/MongoActivityRepository.js.map +1 -0
  104. package/dist/esm/repositories/MongoAgentChatRepository.d.ts +4 -14
  105. package/dist/esm/repositories/MongoAgentChatRepository.d.ts.map +1 -1
  106. package/dist/esm/repositories/MongoAgentChatRepository.js +36 -141
  107. package/dist/esm/repositories/MongoAgentChatRepository.js.map +1 -1
  108. package/dist/esm/repositories/MongoAgentConfigRepository.d.ts +25 -0
  109. package/dist/esm/repositories/MongoAgentConfigRepository.d.ts.map +1 -0
  110. package/dist/esm/repositories/MongoAgentConfigRepository.js +122 -0
  111. package/dist/esm/repositories/MongoAgentConfigRepository.js.map +1 -0
  112. package/dist/esm/repositories/MongoAgentMessageRepository.d.ts +11 -2
  113. package/dist/esm/repositories/MongoAgentMessageRepository.d.ts.map +1 -1
  114. package/dist/esm/repositories/MongoAgentMessageRepository.js +66 -14
  115. package/dist/esm/repositories/MongoAgentMessageRepository.js.map +1 -1
  116. package/dist/esm/repositories/MongoTenantAICredentialRepository.d.ts +25 -0
  117. package/dist/esm/repositories/MongoTenantAICredentialRepository.d.ts.map +1 -0
  118. package/dist/esm/repositories/MongoTenantAICredentialRepository.js +125 -0
  119. package/dist/esm/repositories/MongoTenantAICredentialRepository.js.map +1 -0
  120. package/dist/esm/repositories/index.d.ts +3 -0
  121. package/dist/esm/repositories/index.d.ts.map +1 -1
  122. package/dist/esm/repositories/index.js +3 -0
  123. package/dist/esm/repositories/index.js.map +1 -1
  124. package/dist/esm/schemas/ActivitySchema.d.ts +30 -0
  125. package/dist/esm/schemas/ActivitySchema.d.ts.map +1 -0
  126. package/dist/esm/schemas/ActivitySchema.js +31 -0
  127. package/dist/esm/schemas/ActivitySchema.js.map +1 -0
  128. package/dist/esm/schemas/AgentChatSchema.d.ts.map +1 -1
  129. package/dist/esm/schemas/AgentChatSchema.js +3 -2
  130. package/dist/esm/schemas/AgentChatSchema.js.map +1 -1
  131. package/dist/esm/schemas/AgentConfigPreferenceSchema.d.ts +24 -0
  132. package/dist/esm/schemas/AgentConfigPreferenceSchema.d.ts.map +1 -0
  133. package/dist/esm/schemas/AgentConfigPreferenceSchema.js +21 -0
  134. package/dist/esm/schemas/AgentConfigPreferenceSchema.js.map +1 -0
  135. package/dist/esm/schemas/AgentMessageSchema.d.ts.map +1 -1
  136. package/dist/esm/schemas/AgentMessageSchema.js +8 -4
  137. package/dist/esm/schemas/AgentMessageSchema.js.map +1 -1
  138. package/dist/esm/schemas/TenantAICredentialSchema.d.ts +20 -0
  139. package/dist/esm/schemas/TenantAICredentialSchema.d.ts.map +1 -0
  140. package/dist/esm/schemas/TenantAICredentialSchema.js +14 -0
  141. package/dist/esm/schemas/TenantAICredentialSchema.js.map +1 -0
  142. package/dist/esm/schemas/index.d.ts +3 -0
  143. package/dist/esm/schemas/index.d.ts.map +1 -1
  144. package/dist/esm/schemas/index.js +3 -0
  145. package/dist/esm/schemas/index.js.map +1 -1
  146. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  147. package/package.json +48 -43
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU;AACV,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,eAAe;AACf,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAEzF,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAoB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU;AACV,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,eAAe;AACf,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC;AAErG,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAoB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { Activity, ActivitySummary, ActivitySummaryParams, SortOrder } from '@multiplayer-app/ai-agent-types';
2
+ import type { ActivityRepository } from '@multiplayer-app/ai-agent-db';
3
+ /**
4
+ * MongoDB implementation of ActivityRepository
5
+ */
6
+ export declare class MongoActivityRepository implements ActivityRepository {
7
+ getActivitySummary(params?: ActivitySummaryParams): Promise<ActivitySummary[]>;
8
+ findById(id: string): Promise<Activity | null>;
9
+ find(filter?: Partial<Activity>, options?: {
10
+ sort?: {
11
+ field: string;
12
+ order: SortOrder;
13
+ };
14
+ limit?: number;
15
+ skip?: number;
16
+ }): Promise<Activity[]>;
17
+ findOne(filter: Partial<Activity>): Promise<Activity | null>;
18
+ create(entity: Omit<Activity, 'id' | 'createdAt' | 'updatedAt'>, id?: string): Promise<Activity>;
19
+ update(id: string, updates: Partial<Omit<Activity, 'id' | 'createdAt'>>): Promise<Activity | null>;
20
+ updateMetadata(id: string, metadata: Partial<Activity['metadata']>): Promise<Activity | null>;
21
+ delete(id: string): Promise<boolean>;
22
+ exists(id: string): Promise<boolean>;
23
+ findByParentId(filter?: {
24
+ ownerId?: string;
25
+ groupId?: string;
26
+ parentId?: string;
27
+ tenants?: Record<string, string>;
28
+ period?: {
29
+ from?: string | Date;
30
+ to?: string | Date;
31
+ };
32
+ }, options?: {
33
+ sort?: {
34
+ field: string;
35
+ order: SortOrder;
36
+ };
37
+ limit?: number;
38
+ skip?: number;
39
+ }): Promise<Activity[]>;
40
+ countByParentId(filter?: {
41
+ ownerId?: string;
42
+ groupId?: string;
43
+ parentId?: string;
44
+ tenants?: Record<string, string>;
45
+ period?: {
46
+ from?: string | Date;
47
+ to?: string | Date;
48
+ };
49
+ }): Promise<number>;
50
+ count(filter?: Partial<Activity>): Promise<number>;
51
+ deleteByOwnerId(ownerId: string): Promise<number>;
52
+ deleteByGroupId(groupId: string): Promise<number>;
53
+ getGroupedMetadataByParentId(parentId: string): Promise<{
54
+ inputTokens: number;
55
+ outputTokens: number;
56
+ cost: number;
57
+ childCount: number;
58
+ totalTokens: number;
59
+ reasoningTokens: number;
60
+ cachedInputTokens: number;
61
+ }>;
62
+ calculateCost(activityData: Partial<Activity>): Promise<number>;
63
+ }
64
+ //# sourceMappingURL=MongoActivityRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoActivityRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/MongoActivityRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,398 @@
1
+ import { SortOrder } from '@multiplayer-app/ai-agent-types';
2
+ import { ObjectId } from 'mongodb';
3
+ import { ActivityModel } from '../schemas/ActivitySchema';
4
+ function flattenObject(obj, parentKey = '', result = {}) {
5
+ for (const key in obj) {
6
+ const newKey = parentKey ? `${parentKey}.${key}` : key;
7
+ if (obj[key] &&
8
+ typeof obj[key] === 'object' &&
9
+ !Array.isArray(obj[key]) &&
10
+ !(obj[key] instanceof Date)) {
11
+ flattenObject(obj[key], newKey, result);
12
+ }
13
+ else {
14
+ result[newKey] = obj[key];
15
+ }
16
+ }
17
+ return result;
18
+ }
19
+ function normalizeTenants(tenants) {
20
+ if (!tenants)
21
+ return {};
22
+ if (tenants instanceof Map) {
23
+ return Object.fromEntries(tenants.entries());
24
+ }
25
+ return tenants;
26
+ }
27
+ /**
28
+ * Helper function to convert Mongoose document to Activity type
29
+ */
30
+ function toActivity(doc) {
31
+ if (!doc)
32
+ return null;
33
+ const activity = doc.toObject ? doc.toObject() : doc;
34
+ return {
35
+ id: doc._id.toString(),
36
+ ownerId: activity.ownerId,
37
+ groupId: activity.groupId,
38
+ name: activity.name,
39
+ description: activity.description,
40
+ parentId: activity.parentId,
41
+ hasChildren: activity.hasChildren,
42
+ tenants: normalizeTenants(activity.tenants),
43
+ sourceId: activity.sourceId || '',
44
+ sourceType: activity.sourceType || 'Unknown',
45
+ metadata: activity.metadata || {}
46
+ };
47
+ }
48
+ /**
49
+ * MongoDB implementation of ActivityRepository
50
+ */
51
+ export class MongoActivityRepository {
52
+ async getActivitySummary(params) {
53
+ const baseMatch = {
54
+ parentId: { $exists: true, $ne: null },
55
+ };
56
+ const fromDate = params?.period?.from ? new Date(params.period.from) : undefined;
57
+ const toDate = params?.period?.to ? new Date(params.period.to) : undefined;
58
+ if (fromDate && !Number.isNaN(fromDate.getTime())) {
59
+ baseMatch.createdAt = { ...(baseMatch.createdAt || {}), $gte: fromDate };
60
+ }
61
+ if (toDate && !Number.isNaN(toDate.getTime())) {
62
+ baseMatch.createdAt = { ...(baseMatch.createdAt || {}), $lte: toDate };
63
+ }
64
+ if (params?.ownerId) {
65
+ baseMatch.ownerId = params.ownerId;
66
+ }
67
+ if (typeof params?.tenant === 'string') {
68
+ baseMatch.$expr = {
69
+ $in: [
70
+ params.tenant,
71
+ {
72
+ $map: {
73
+ input: { $objectToArray: { $ifNull: ['$tenants', {}] } },
74
+ as: 'tenantEntry',
75
+ in: '$$tenantEntry.v',
76
+ },
77
+ },
78
+ ],
79
+ };
80
+ }
81
+ else if (params?.tenant && typeof params.tenant === 'object') {
82
+ for (const [tenantKey, tenantValue] of Object.entries(params.tenant)) {
83
+ baseMatch[`tenants.${tenantKey}`] = tenantValue;
84
+ }
85
+ }
86
+ const effectiveGroupBy = params?.groupBy?.length
87
+ ? Array.from(new Set(params.groupBy))
88
+ : ['model'];
89
+ const includeModel = effectiveGroupBy.includes('model');
90
+ const includeUserId = effectiveGroupBy.includes('userId');
91
+ const includeGroupBy = effectiveGroupBy.filter(groupBy => groupBy !== 'model' && groupBy !== 'userId');
92
+ const includePeriodStart = Boolean(params?.timeBucket);
93
+ const groupId = {};
94
+ if (includeModel)
95
+ groupId.model = '$summaryModel';
96
+ if (includeUserId)
97
+ groupId.userId = '$summaryUserId';
98
+ if (includePeriodStart)
99
+ groupId.periodStart = '$summaryPeriodStart';
100
+ includeGroupBy.forEach(groupBy => {
101
+ groupId[groupBy] = `$${groupBy}`;
102
+ });
103
+ const pipeline = [
104
+ { $match: baseMatch },
105
+ {
106
+ $addFields: {
107
+ summaryModel: { $ifNull: ['$metadata.modelId', 'unknown'] },
108
+ summaryTenant: { $ifNull: ['$tenants', {}] },
109
+ summaryUserId: '$ownerId',
110
+ summaryTotalTokens: { $ifNull: ['$metadata.usage.totalTokens', 0] },
111
+ summaryCost: { $ifNull: ['$metadata.usage.cost', 0] },
112
+ ...(includePeriodStart
113
+ ? {
114
+ summaryPeriodStart: {
115
+ $dateTrunc: {
116
+ date: '$createdAt',
117
+ unit: params?.timeBucket,
118
+ timezone: 'UTC',
119
+ },
120
+ },
121
+ }
122
+ : {}),
123
+ },
124
+ },
125
+ ];
126
+ if (params?.model) {
127
+ pipeline.push({ $match: { summaryModel: params.model } });
128
+ }
129
+ pipeline.push({
130
+ $group: {
131
+ _id: groupId,
132
+ totalRequests: { $sum: 1 },
133
+ totalTokens: { $sum: '$summaryTotalTokens' },
134
+ totalCost: { $sum: '$summaryCost' },
135
+ },
136
+ }, {
137
+ $project: {
138
+ _id: 0,
139
+ ...(includePeriodStart ? { periodStart: '$_id.periodStart' } : {}),
140
+ ...(includeModel ? { model: '$_id.model' } : {}),
141
+ ...(includeUserId ? { userId: '$_id.userId' } : {}),
142
+ ...(includeGroupBy.length > 0 ? Object.fromEntries(includeGroupBy.map(groupBy => [groupBy, `$_id.${groupBy}`])) : {}),
143
+ totalRequests: 1,
144
+ totalTokens: 1,
145
+ totalCost: 1,
146
+ },
147
+ });
148
+ const result = await ActivityModel.aggregate(pipeline).exec();
149
+ return result.map((item) => ({
150
+ ...(includePeriodStart
151
+ ? {
152
+ periodStart: item.periodStart instanceof Date
153
+ ? item.periodStart.toISOString()
154
+ : item.periodStart
155
+ ? new Date(item.periodStart).toISOString()
156
+ : undefined,
157
+ }
158
+ : {}),
159
+ ...(includeModel ? { model: item.model } : {}),
160
+ ...(includeGroupBy.length > 0 ? Object.fromEntries(includeGroupBy.map(groupBy => [groupBy, item[groupBy]])) : {}),
161
+ ...(includeUserId ? { userId: item.userId } : {}),
162
+ totalRequests: item.totalRequests ?? 0,
163
+ totalTokens: item.totalTokens ?? 0,
164
+ totalCost: item.totalCost ?? 0,
165
+ }));
166
+ }
167
+ async findById(id) {
168
+ const doc = await ActivityModel.findById(id).exec();
169
+ return toActivity(doc);
170
+ }
171
+ async find(filter, options) {
172
+ const query = {};
173
+ if (filter) {
174
+ if (filter.id) {
175
+ query._id = filter.id;
176
+ delete filter.id;
177
+ }
178
+ Object.assign(query, filter);
179
+ }
180
+ let queryBuilder = ActivityModel.find(query);
181
+ // Apply sorting
182
+ if (options?.sort) {
183
+ const sortOrder = options.sort.order === SortOrder.Asc ? 1 : -1;
184
+ queryBuilder = queryBuilder.sort({ [options.sort.field]: sortOrder });
185
+ }
186
+ // Apply limit
187
+ if (options?.limit) {
188
+ queryBuilder = queryBuilder.limit(options.limit);
189
+ }
190
+ if (options?.skip) {
191
+ queryBuilder = queryBuilder.skip(options.skip);
192
+ }
193
+ const docs = await queryBuilder.exec();
194
+ if (docs.length === 0) {
195
+ return [];
196
+ }
197
+ const activityIds = docs.map(doc => doc._id.toString());
198
+ const parentIdsWithChildren = await ActivityModel.distinct('parentId', {
199
+ parentId: { $in: activityIds },
200
+ }).exec();
201
+ const parentIdsWithChildrenSet = new Set(parentIdsWithChildren);
202
+ return docs.reduce((activities, doc) => {
203
+ const activity = toActivity(doc);
204
+ if (!activity) {
205
+ return activities;
206
+ }
207
+ activities.push({
208
+ ...activity,
209
+ hasChildren: parentIdsWithChildrenSet.has(activity.id),
210
+ });
211
+ return activities;
212
+ }, []);
213
+ }
214
+ async findOne(filter) {
215
+ const query = {};
216
+ if (filter.id) {
217
+ query._id = filter.id;
218
+ delete filter.id;
219
+ }
220
+ Object.assign(query, filter);
221
+ const doc = await ActivityModel.findOne(query).exec();
222
+ return toActivity(doc);
223
+ }
224
+ async create(entity, id) {
225
+ const doc = new ActivityModel({
226
+ ...entity,
227
+ ...(id ? { _id: id } : {})
228
+ });
229
+ const cost = await this.calculateCost(entity);
230
+ doc.systemCost = doc.metadata?.usage?.cost ?? 0;
231
+ doc.metadata ??= {};
232
+ doc.metadata.usage ??= {};
233
+ doc.metadata.usage.cost = cost;
234
+ const saved = await doc.save();
235
+ const result = toActivity(saved);
236
+ if (!result) {
237
+ throw new Error('Failed to create activity');
238
+ }
239
+ return result;
240
+ }
241
+ async update(id, updates) {
242
+ const doc = await ActivityModel.findByIdAndUpdate(id, { $set: updates }, { new: true, runValidators: true }).exec();
243
+ return toActivity(doc);
244
+ }
245
+ async updateMetadata(id, metadata) {
246
+ const flattenedUpdates = flattenObject(metadata, 'metadata');
247
+ const doc = await ActivityModel.findByIdAndUpdate(id, { $set: flattenedUpdates }, { new: true, runValidators: true }).exec();
248
+ return toActivity(doc);
249
+ }
250
+ async delete(id) {
251
+ const result = await ActivityModel.findByIdAndDelete(id).exec();
252
+ return !!result;
253
+ }
254
+ async exists(id) {
255
+ const count = await ActivityModel.countDocuments({ _id: id }).exec();
256
+ return count > 0;
257
+ }
258
+ async findByParentId(filter, options) {
259
+ const query = {
260
+ parentId: filter?.parentId ? filter?.parentId : { $exists: false },
261
+ ...(filter?.ownerId ? { ownerId: filter?.ownerId } : {}),
262
+ ...(filter?.groupId ? { groupId: filter?.groupId } : {}),
263
+ ...(filter?.tenants && typeof filter.tenants === 'object' && Object.keys(filter.tenants).length > 0
264
+ ? Object.fromEntries(Object.entries(filter.tenants).map(([k, v]) => [`tenants.${k}`, v]))
265
+ : {}),
266
+ };
267
+ const fromDate = filter?.period?.from ? new Date(filter.period.from) : undefined;
268
+ const toDate = filter?.period?.to ? new Date(filter.period.to) : undefined;
269
+ if (fromDate && !Number.isNaN(fromDate.getTime())) {
270
+ query.createdAt = { ...(query.createdAt || {}), $gte: fromDate };
271
+ }
272
+ if (toDate && !Number.isNaN(toDate.getTime())) {
273
+ query.createdAt = { ...(query.createdAt || {}), $lte: toDate };
274
+ }
275
+ let queryBuilder = ActivityModel.find(query);
276
+ if (options?.sort) {
277
+ const sortOrder = options.sort.order === SortOrder.Asc ? 1 : -1;
278
+ queryBuilder = queryBuilder.sort({ [options.sort.field]: sortOrder });
279
+ }
280
+ if (options?.limit) {
281
+ queryBuilder = queryBuilder.limit(options.limit);
282
+ }
283
+ if (options?.skip) {
284
+ queryBuilder = queryBuilder.skip(options.skip);
285
+ }
286
+ const docs = await queryBuilder.exec();
287
+ const activityIds = docs.map(doc => doc._id.toString());
288
+ const parentIdsWithChildren = await ActivityModel.distinct('parentId', {
289
+ parentId: { $in: activityIds },
290
+ }).exec();
291
+ const parentIdsWithChildrenSet = new Set(parentIdsWithChildren);
292
+ return docs.reduce((activities, doc) => {
293
+ const activity = toActivity(doc);
294
+ if (!activity) {
295
+ return activities;
296
+ }
297
+ activities.push({
298
+ ...activity,
299
+ hasChildren: parentIdsWithChildrenSet.has(activity.id),
300
+ });
301
+ return activities;
302
+ }, []);
303
+ }
304
+ async countByParentId(filter) {
305
+ const query = {
306
+ parentId: filter?.parentId ? filter?.parentId : { $exists: false },
307
+ ...(filter?.ownerId ? { ownerId: filter?.ownerId } : {}),
308
+ ...(filter?.groupId ? { groupId: filter?.groupId } : {}),
309
+ ...(filter?.tenants && typeof filter.tenants === 'object' && Object.keys(filter.tenants).length > 0
310
+ ? Object.fromEntries(Object.entries(filter.tenants).map(([k, v]) => [`tenants.${k}`, v]))
311
+ : {}),
312
+ };
313
+ const fromDate = filter?.period?.from ? new Date(filter.period.from) : undefined;
314
+ const toDate = filter?.period?.to ? new Date(filter.period.to) : undefined;
315
+ if (fromDate && !Number.isNaN(fromDate.getTime())) {
316
+ query.createdAt = { ...(query.createdAt || {}), $gte: fromDate };
317
+ }
318
+ if (toDate && !Number.isNaN(toDate.getTime())) {
319
+ query.createdAt = { ...(query.createdAt || {}), $lte: toDate };
320
+ }
321
+ return ActivityModel.countDocuments(query).exec();
322
+ }
323
+ async count(filter) {
324
+ const query = {};
325
+ if (filter) {
326
+ if (filter.id) {
327
+ query._id = filter.id;
328
+ delete filter.id;
329
+ }
330
+ Object.assign(query, filter);
331
+ }
332
+ return ActivityModel.countDocuments(query).exec();
333
+ }
334
+ async deleteByOwnerId(ownerId) {
335
+ const result = await ActivityModel.deleteMany({ ownerId }).exec();
336
+ return result.deletedCount || 0;
337
+ }
338
+ async deleteByGroupId(groupId) {
339
+ const result = await ActivityModel.deleteMany({ groupId }).exec();
340
+ return result.deletedCount || 0;
341
+ }
342
+ async getGroupedMetadataByParentId(parentId) {
343
+ const result = await ActivityModel.aggregate([
344
+ {
345
+ $match: { _id: new ObjectId(parentId) }
346
+ },
347
+ {
348
+ $graphLookup: {
349
+ from: "activities",
350
+ startWith: { $toString: "$_id" },
351
+ connectFromField: "_id",
352
+ connectToField: "parentId",
353
+ as: "descendants"
354
+ }
355
+ },
356
+ {
357
+ $project: {
358
+ _id: 0,
359
+ inputTokens: {
360
+ $sum: "$descendants.metadata.usage.inputTokens"
361
+ },
362
+ outputTokens: {
363
+ $sum: "$descendants.metadata.usage.outputTokens"
364
+ },
365
+ cost: {
366
+ $sum: "$descendants.metadata.usage.cost"
367
+ },
368
+ totalTokens: {
369
+ $sum: "$descendants.metadata.usage.totalTokens"
370
+ },
371
+ reasoningTokens: {
372
+ $sum: "$descendants.metadata.usage.reasoningTokens"
373
+ },
374
+ cachedInputTokens: {
375
+ $sum: "$descendants.metadata.usage.cachedInputTokens"
376
+ },
377
+ childCount: {
378
+ $size: "$descendants"
379
+ }
380
+ }
381
+ }
382
+ ]).exec();
383
+ return {
384
+ inputTokens: result[0]?.inputTokens ?? 0,
385
+ outputTokens: result[0]?.outputTokens ?? 0,
386
+ cost: result[0]?.cost ?? 0,
387
+ childCount: result[0]?.childCount ?? 0,
388
+ totalTokens: result[0]?.totalTokens ?? 0,
389
+ reasoningTokens: result[0]?.reasoningTokens ?? 0,
390
+ cachedInputTokens: result[0]?.cachedInputTokens ?? 0,
391
+ };
392
+ }
393
+ // override method for custom calculation
394
+ async calculateCost(activityData) {
395
+ return activityData.metadata?.usage?.cost ?? 0;
396
+ }
397
+ }
398
+ //# sourceMappingURL=MongoActivityRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoActivityRepository.js","sourceRoot":"","sources":["../../../src/repositories/MongoActivityRepository.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AgentChat, AgentChatResponse } from '@multiplayer-app/ai-agent-types';
1
+ import type { AgentChat } from '@multiplayer-app/ai-agent-types';
2
2
  import { SortOrder } from '@multiplayer-app/ai-agent-types';
3
3
  import type { AgentChatRepository } from '@multiplayer-app/ai-agent-db';
4
4
  /**
@@ -6,32 +6,22 @@ import type { AgentChatRepository } from '@multiplayer-app/ai-agent-db';
6
6
  */
7
7
  export declare class MongoAgentChatRepository implements AgentChatRepository {
8
8
  findById(id: string): Promise<AgentChat | null>;
9
- find(filter?: Partial<AgentChat>, options?: {
10
- sort?: {
11
- field: string;
12
- order: SortOrder;
13
- };
14
- limit?: number;
15
- }): Promise<AgentChat[]>;
16
9
  findOne(filter: Partial<AgentChat>): Promise<AgentChat | null>;
17
10
  create(entity: Omit<AgentChat, 'id' | 'createdAt' | 'updatedAt'>): Promise<AgentChat>;
18
11
  update(id: string, updates: Partial<Omit<AgentChat, 'id' | 'createdAt'>>): Promise<AgentChat | null>;
19
12
  delete(id: string): Promise<boolean>;
20
13
  exists(id: string): Promise<boolean>;
21
14
  count(filter?: Partial<AgentChat>): Promise<number>;
22
- findByUserId(userId: string): Promise<AgentChat[]>;
23
- findByContextKey(contextKey: string): Promise<AgentChat[]>;
24
- findByUserIdAndContextKey(userId: string, contextKey: string): Promise<AgentChat[]>;
25
- findGuestChatsByContextKey(contextKey: string): Promise<AgentChat[]>;
26
15
  updateTitle(id: string, title: string): Promise<AgentChat | null>;
27
16
  deleteByUserId(userId: string): Promise<number>;
28
17
  deleteByContextKey(contextKey: string): Promise<number>;
29
- findWithMessages(filter?: Partial<AgentChat>, options?: {
18
+ find(filter?: Partial<AgentChat>, options?: {
30
19
  sort?: {
31
20
  field: string;
32
21
  order: SortOrder;
33
22
  };
23
+ skip?: number;
34
24
  limit?: number;
35
- }): Promise<AgentChatResponse[]>;
25
+ }): Promise<AgentChat[]>;
36
26
  }
37
27
  //# sourceMappingURL=MongoAgentChatRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MongoAgentChatRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/MongoAgentChatRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAY,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AA0BxE;;GAEG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAK/C,IAAI,CACR,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EAC3B,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,SAAS,CAAA;SAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACvE,OAAO,CAAC,SAAS,EAAE,CAAC;IA4BjB,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAa9D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAgBrF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAUpG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAcnD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKlD,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK1D,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKnF,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQpE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAUjE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/C,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvD,gBAAgB,CACpB,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EAC3B,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,SAAS,CAAA;SAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACvE,OAAO,CAAC,iBAAiB,EAAE,CAAC;CA2GhC"}
1
+ {"version":3,"file":"MongoAgentChatRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/MongoAgentChatRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAY,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AA2BxE;;GAEG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAK/C,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAa9D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAgBrF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAUpG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAcnD,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAUjE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/C,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvD,IAAI,CACR,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EAC3B,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,SAAS,CAAA;SAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACtF,OAAO,CAAC,SAAS,EAAE,CAAC;CAiCxB"}