@ainetwork/adk-provider-memory-mongodb 0.1.6 → 0.1.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 (39) hide show
  1. package/dist/chunk-GPOFS7ZT.js +42 -0
  2. package/dist/chunk-GPOFS7ZT.js.map +1 -0
  3. package/dist/chunk-MLPXPX2L.js +50 -0
  4. package/dist/chunk-MLPXPX2L.js.map +1 -0
  5. package/dist/index.cjs +107 -87
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.d.cts +10 -14
  8. package/dist/index.d.ts +10 -14
  9. package/dist/index.js +85 -69
  10. package/dist/index.js.map +1 -1
  11. package/dist/models/intent.model.d.cts +2 -2
  12. package/dist/models/intent.model.d.ts +2 -2
  13. package/dist/models/{chats.model.cjs → messages.model.cjs} +29 -50
  14. package/dist/models/messages.model.cjs.map +1 -0
  15. package/dist/models/messages.model.d.cts +75 -0
  16. package/dist/models/messages.model.d.ts +75 -0
  17. package/dist/models/messages.model.js +11 -0
  18. package/dist/models/threads.model.cjs +77 -0
  19. package/dist/models/threads.model.cjs.map +1 -0
  20. package/dist/models/threads.model.d.cts +44 -0
  21. package/dist/models/threads.model.d.ts +44 -0
  22. package/dist/models/threads.model.js +9 -0
  23. package/dist/models/threads.model.js.map +1 -0
  24. package/implements/base.memory.ts +9 -9
  25. package/implements/intent.memory.ts +18 -6
  26. package/implements/thread.memory.ts +115 -0
  27. package/index.ts +1 -1
  28. package/models/messages.model.ts +61 -0
  29. package/models/threads.model.ts +46 -0
  30. package/package.json +7 -5
  31. package/dist/chunk-N5FAVJ4Z.js +0 -80
  32. package/dist/chunk-N5FAVJ4Z.js.map +0 -1
  33. package/dist/models/chats.model.cjs.map +0 -1
  34. package/dist/models/chats.model.d.cts +0 -105
  35. package/dist/models/chats.model.d.ts +0 -105
  36. package/dist/models/chats.model.js +0 -13
  37. package/implements/session.memory.ts +0 -104
  38. package/models/chats.model.ts +0 -99
  39. /package/dist/models/{chats.model.js.map → messages.model.js.map} +0 -0
package/dist/index.js CHANGED
@@ -1,34 +1,37 @@
1
- import {
2
- ChatObjectSchema,
3
- SessionObjectSchema
4
- } from "./chunk-N5FAVJ4Z.js";
5
1
  import {
6
2
  IntentModel
7
3
  } from "./chunk-JCE5NAY5.js";
4
+ import {
5
+ MessageModel
6
+ } from "./chunk-MLPXPX2L.js";
7
+ import {
8
+ ThreadModel
9
+ } from "./chunk-GPOFS7ZT.js";
8
10
 
9
- // implements/session.memory.ts
11
+ // implements/thread.memory.ts
10
12
  import { randomUUID } from "crypto";
11
13
 
12
14
  // implements/base.memory.ts
13
- import { Mongoose } from "mongoose";
15
+ import mongoose from "mongoose";
14
16
  import { loggers } from "@ainetwork/adk/utils/logger";
15
17
  var MongoDBMemory = class {
16
18
  _isConnected = false;
17
19
  _uri;
18
- _mongoose;
19
20
  constructor(uri) {
20
21
  this._uri = uri;
21
- this._mongoose = new Mongoose();
22
- }
23
- getInstance() {
24
- return this._mongoose;
25
22
  }
26
23
  async connect() {
27
24
  if (this._isConnected) {
28
25
  return;
29
26
  }
30
27
  try {
31
- await this._mongoose.connect(this._uri);
28
+ await mongoose.connect(this._uri, {
29
+ maxPoolSize: 1,
30
+ serverSelectionTimeoutMS: 3e4,
31
+ socketTimeoutMS: 45e3,
32
+ connectTimeoutMS: 3e4,
33
+ bufferCommands: false
34
+ });
32
35
  this._isConnected = true;
33
36
  loggers.agent.info("MongoDB connected successfully");
34
37
  } catch (error) {
@@ -41,7 +44,7 @@ var MongoDBMemory = class {
41
44
  return;
42
45
  }
43
46
  try {
44
- await this._mongoose?.disconnect();
47
+ await mongoose.disconnect();
45
48
  this._isConnected = false;
46
49
  loggers.agent.info("MongoDB disconnected successfully");
47
50
  } catch (error) {
@@ -54,81 +57,84 @@ var MongoDBMemory = class {
54
57
  }
55
58
  };
56
59
 
57
- // implements/session.memory.ts
60
+ // implements/thread.memory.ts
58
61
  import { loggers as loggers2 } from "@ainetwork/adk/utils/logger";
59
- var MongoDBSession = class extends MongoDBMemory {
60
- chatModel;
61
- sessionModel;
62
+ var MongoDBThread = class extends MongoDBMemory {
62
63
  constructor(uri) {
63
64
  super(uri);
64
- const _mongoose = super.getInstance();
65
- this.chatModel = _mongoose.model("Chat", ChatObjectSchema);
66
- this.sessionModel = _mongoose.model("Session", SessionObjectSchema);
67
65
  }
68
- async getSession(userId, sessionId) {
69
- const chats = await this.chatModel.find({ sessionId, userId }).sort({
66
+ async getThread(type, userId, threadId) {
67
+ const thread = await ThreadModel.findOne({ type, threadId, userId });
68
+ const messages = await MessageModel.find({ threadId, userId }).sort({
70
69
  timestamp: 1
71
70
  });
72
- const session = await this.sessionModel.findOne({ sessionId, userId });
73
- loggers2.agent.debug(`Found ${chats.length} chats for session ${sessionId}`);
74
- const sessionObject = { chats: {} };
75
- sessionObject.title = session?.title;
76
- chats.forEach((chat) => {
77
- const chatId = chat._id?.toString() || chat.id;
78
- sessionObject.chats[chatId] = {
79
- role: chat.role,
80
- content: chat.content,
81
- timestamp: chat.timestamp,
82
- metadata: chat.metadata
71
+ if (!thread) return void 0;
72
+ loggers2.agent.debug(`Found ${messages.length} messages for thread ${threadId}`);
73
+ const threadObject = {
74
+ type: thread.type,
75
+ title: thread.title || "New thread",
76
+ messages: {}
77
+ };
78
+ messages.forEach((message) => {
79
+ const messageId = message._id?.toString() || message.id;
80
+ threadObject.messages[messageId] = {
81
+ role: message.role,
82
+ content: message.content,
83
+ timestamp: message.timestamp,
84
+ metadata: message.metadata
83
85
  };
84
86
  });
85
- return sessionObject;
87
+ return threadObject;
86
88
  }
87
- async createSession(userId, sessionId, title) {
89
+ async createThread(type, userId, threadId, title) {
88
90
  const now = Date.now();
89
- await this.sessionModel.create({
90
- sessionId,
91
+ await ThreadModel.create({
92
+ type,
91
93
  userId,
94
+ threadId,
92
95
  title,
93
96
  updated_at: now,
94
97
  created_at: now
95
98
  });
96
- return { title, sessionId, updatedAt: now };
99
+ return { type, threadId, title, updatedAt: now };
97
100
  }
98
- async addChatToSession(userId, sessionId, chat) {
99
- const newId = randomUUID();
100
- await this.sessionModel.updateOne({ sessionId, userId }, {
101
+ async addMessagesToThread(userId, threadId, messages) {
102
+ await ThreadModel.updateOne({ threadId, userId }, {
101
103
  updated_at: Date.now()
102
104
  });
103
- await this.chatModel.create({
104
- sessionId,
105
- chatId: newId,
106
- userId,
107
- role: chat.role,
108
- content: chat.content,
109
- timestamp: chat.timestamp,
110
- metadata: chat.metadata
111
- });
105
+ for (const message of messages) {
106
+ const newId = randomUUID();
107
+ await MessageModel.create({
108
+ threadId,
109
+ messageId: newId,
110
+ userId,
111
+ role: message.role,
112
+ content: message.content,
113
+ timestamp: message.timestamp,
114
+ metadata: message.metadata
115
+ });
116
+ }
112
117
  }
113
- async deleteSession(userId, sessionId) {
114
- const chats = await this.chatModel.find({ userId, sessionId }).sort({
118
+ async deleteThread(userId, threadId) {
119
+ const messages = await MessageModel.find({ userId, threadId }).sort({
115
120
  timestamp: 1
116
121
  });
117
- chats?.forEach((chat) => {
118
- chat.deleteOne();
122
+ messages?.forEach((message) => {
123
+ message.deleteOne();
119
124
  });
120
- const session = await this.sessionModel.findOne({ sessionId, userId });
121
- session?.deleteOne();
125
+ const thread = await ThreadModel.findOne({ userId, threadId });
126
+ thread?.deleteOne();
122
127
  }
123
- async listSessions(userId) {
124
- const sessions = await this.sessionModel.find({ userId }).sort({
128
+ async listThreads(userId) {
129
+ const threads = await ThreadModel.find({ userId }).sort({
125
130
  updated_at: -1
126
131
  });
127
- const data = sessions.map((session) => {
132
+ const data = threads.map((thread) => {
128
133
  return {
129
- sessionId: session.sessionId,
130
- title: session.title,
131
- updatedAt: session.updated_at
134
+ type: thread.type,
135
+ threadId: thread.threadId,
136
+ title: thread.title,
137
+ updatedAt: thread.updated_at
132
138
  };
133
139
  });
134
140
  return data;
@@ -136,10 +142,22 @@ var MongoDBSession = class extends MongoDBMemory {
136
142
  };
137
143
 
138
144
  // implements/intent.memory.ts
139
- import { randomUUID as randomUUID2 } from "crypto";
145
+ import { Types } from "mongoose";
140
146
  var MongoDBIntent = class extends MongoDBMemory {
141
147
  async getIntent(intentId) {
142
- const intent = await IntentModel.findById(intentId);
148
+ const intent = await IntentModel.findById(new Types.ObjectId(intentId));
149
+ if (intent) {
150
+ return {
151
+ name: intent.name,
152
+ description: intent.description,
153
+ prompt: intent.prompt,
154
+ llm: intent.llm
155
+ };
156
+ }
157
+ return void 0;
158
+ }
159
+ async getIntentByName(intentName) {
160
+ const intent = await IntentModel.findOne({ name: intentName });
143
161
  if (intent) {
144
162
  return {
145
163
  name: intent.name,
@@ -151,9 +169,7 @@ var MongoDBIntent = class extends MongoDBMemory {
151
169
  return void 0;
152
170
  }
153
171
  async saveIntent(intent) {
154
- const newId = randomUUID2();
155
172
  await IntentModel.create({
156
- _id: newId,
157
173
  name: intent.name,
158
174
  description: intent.description,
159
175
  prompt: intent.prompt,
@@ -162,7 +178,7 @@ var MongoDBIntent = class extends MongoDBMemory {
162
178
  }
163
179
  async updateIntent(intentId, intent) {
164
180
  await IntentModel.updateOne({
165
- _id: intentId
181
+ _id: new Types.ObjectId(intentId)
166
182
  }, {
167
183
  name: intent.name,
168
184
  description: intent.description,
@@ -171,7 +187,7 @@ var MongoDBIntent = class extends MongoDBMemory {
171
187
  });
172
188
  }
173
189
  async deleteIntent(intentId) {
174
- await IntentModel.deleteOne({ _id: intentId });
190
+ await IntentModel.deleteOne({ _id: new Types.ObjectId(intentId) });
175
191
  }
176
192
  async listIntents() {
177
193
  const intents = await IntentModel.find();
@@ -185,6 +201,6 @@ var MongoDBIntent = class extends MongoDBMemory {
185
201
  };
186
202
  export {
187
203
  MongoDBIntent,
188
- MongoDBSession
204
+ MongoDBThread
189
205
  };
190
206
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../implements/session.memory.ts","../implements/base.memory.ts","../implements/intent.memory.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport type { ChatObject, SessionMetadata, SessionObject } from \"@ainetwork/adk/types/memory\";\nimport { ISessionMemory } from \"@ainetwork/adk/modules\";\nimport { MongoDBMemory } from \"./base.memory\";\nimport {\n\tChatDocument,\n\tChatRole,\n ChatObjectSchema,\n SessionObjectSchema,\n SessionDocument\n} from \"../models/chats.model\";\nimport { loggers } from \"@ainetwork/adk/utils/logger\";\nimport { Model } from \"mongoose\";\n\nexport class MongoDBSession extends MongoDBMemory implements ISessionMemory {\n private chatModel: Model<ChatDocument>;\n private sessionModel: Model<SessionDocument>;\n\n constructor(uri: string) {\n super(uri);\n const _mongoose = super.getInstance();\n this.chatModel = _mongoose.model<ChatDocument>(\"Chat\", ChatObjectSchema);\n this.sessionModel = _mongoose.model<SessionDocument>(\"Session\", SessionObjectSchema);\n }\n\n public async getSession(userId: string, sessionId: string): Promise<SessionObject | undefined> {\n\t\tconst chats = await this.chatModel.find({ sessionId, userId }).sort({\n\t\t\ttimestamp: 1,\n\t\t});\n const session = await this.sessionModel.findOne({ sessionId, userId });\n\n\t\tloggers.agent.debug(`Found ${chats.length} chats for session ${sessionId}`);\n\n\t\tconst sessionObject: SessionObject = { chats: {} };\n sessionObject.title = session?.title;\n\t\tchats.forEach((chat: ChatDocument) => {\n\t\t\tconst chatId = chat._id?.toString() || chat.id;\n\t\t\tsessionObject.chats[chatId] = {\n\t\t\t\trole: chat.role as ChatRole,\n\t\t\t\tcontent: chat.content,\n\t\t\t\ttimestamp: chat.timestamp,\n\t\t\t\tmetadata: chat.metadata,\n\t\t\t};\n\t\t});\n\n\t\treturn sessionObject;\n };\n\n\tpublic async createSession(userId: string, sessionId: string, title: string): Promise<SessionMetadata> {\n const now = Date.now();\n await this.sessionModel.create({\n sessionId,\n userId,\n title,\n updated_at: now,\n created_at: now,\n });\n\n return { title, sessionId, updatedAt: now };\n };\n\n\tpublic async addChatToSession(userId: string, sessionId: string, chat: ChatObject): Promise<void> {\n const newId = randomUUID();\n await this.sessionModel.updateOne({ sessionId, userId }, {\n updated_at: Date.now(),\n });\n\t\tawait this.chatModel.create({\n\t\t\tsessionId,\n chatId: newId,\n userId,\n\t\t\trole: chat.role,\n\t\t\tcontent: chat.content,\n\t\t\ttimestamp: chat.timestamp,\n\t\t\tmetadata: chat.metadata,\n\t\t});\n };\n\n\tpublic async deleteSession(userId: string, sessionId: string): Promise<void> {\n\t\tconst chats = await this.chatModel.find({ userId, sessionId }).sort({\n\t\t\ttimestamp: 1,\n\t\t});\n\n\t\tchats?.forEach((chat: ChatDocument) => {\n chat.deleteOne();\n\t\t});\n \n const session = await this.sessionModel.findOne({ sessionId, userId });\n session?.deleteOne();\n };\n\n\tpublic async listSessions(userId: string): Promise<SessionMetadata[]> {\n const sessions = await this.sessionModel.find({ userId }).sort({\n updated_at: -1,\n });\n const data: SessionMetadata[] = sessions.map((session: SessionDocument) => {\n return {\n sessionId: session.sessionId,\n title: session.title,\n updatedAt: session.updated_at\n } as SessionMetadata;\n })\n return data;\n };\n}","import { IMemory } from \"node_modules/@ainetwork/adk/dist/esm/modules/memory/base.memory\";\nimport mongoose, { Mongoose } from \"mongoose\";\nimport { loggers } from \"@ainetwork/adk/utils/logger\";\n\nexport class MongoDBMemory implements IMemory {\n private _isConnected: boolean = false;\n private _uri: string;\n private _mongoose: Mongoose;\n\n constructor(uri: string) {\n this._uri = uri;\n this._mongoose = new Mongoose();\n }\n\n public getInstance(): Mongoose {\n return this._mongoose;\n }\n\n public async connect(): Promise<void> {\n\t\tif (this._isConnected) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n await this._mongoose.connect(this._uri);\n\t\t\tthis._isConnected = true;\n\t\t\tloggers.agent.info(\"MongoDB connected successfully\");\n\t\t} catch (error) {\n\t\t\tloggers.agent.error(\"Failed to connect to MongoDB:\", error);\n\t\t\tthrow error;\n\t\t}\n }\n\n public async disconnect(): Promise<void> {\n\t\tif (!this.isConnected) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait this._mongoose?.disconnect();\n\t\t\tthis._isConnected = false;\n\t\t\tloggers.agent.info(\"MongoDB disconnected successfully\");\n\t\t} catch (error) {\n\t\t\tloggers.agent.error(\"Failed to disconnect from MongoDB:\", error);\n\t\t\tthrow error;\n\t\t}\n }\n\n public isConnected(): boolean {\n return this._isConnected;\n }\n}","import { randomUUID } from \"node:crypto\";\nimport type { Intent } from \"@ainetwork/adk/types/memory\";\nimport { IIntentMemory } from \"@ainetwork/adk/modules\";\nimport { MongoDBMemory } from \"./base.memory\";\nimport { IntentModel } from \"../models/intent.model\";\n\nexport class MongoDBIntent extends MongoDBMemory implements IIntentMemory {\n public async getIntent(intentId: string): Promise<Intent | undefined> {\n const intent = await IntentModel.findById(intentId);\n if (intent) {\n return {\n name: intent.name,\n description: intent.description,\n prompt: intent.prompt,\n llm: intent.llm,\n } as Intent;\n }\n return undefined;\n };\n\n\tpublic async saveIntent(intent: Intent): Promise<void> {\n const newId = randomUUID();\n await IntentModel.create({\n _id: newId,\n name: intent.name,\n description: intent.description,\n prompt: intent.prompt,\n llm: intent.llm,\n });\n };\n\n\tpublic async updateIntent(intentId: string, intent: Intent): Promise<void> {\n await IntentModel.updateOne({\n _id: intentId,\n },{\n name: intent.name,\n description: intent.description,\n prompt: intent.prompt,\n llm: intent.llm,\n });\n };\n\n\tpublic async deleteIntent(intentId: string): Promise<void> {\n await IntentModel.deleteOne({ _id: intentId });\n };\n\n\tpublic async listIntents(): Promise<Intent[]> {\n const intents = await IntentModel.find();\n return intents.map(intent => ({\n name: intent.name,\n description: intent.description,\n prompt: intent.prompt,\n llm: intent.llm,\n } as Intent));\n };\n}"],"mappings":";;;;;;;;;AAAA,SAAS,kBAAkB;;;ACC3B,SAAmB,gBAAgB;AACnC,SAAS,eAAe;AAEjB,IAAM,gBAAN,MAAuC;AAAA,EACpC,eAAwB;AAAA,EACxB;AAAA,EACA;AAAA,EAER,YAAY,KAAa;AACvB,SAAK,OAAO;AACZ,SAAK,YAAY,IAAI,SAAS;AAAA,EAChC;AAAA,EAEO,cAAwB;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAa,UAAyB;AACtC,QAAI,KAAK,cAAc;AACtB;AAAA,IACD;AAEA,QAAI;AACA,YAAM,KAAK,UAAU,QAAQ,KAAK,IAAI;AACzC,WAAK,eAAe;AACpB,cAAQ,MAAM,KAAK,gCAAgC;AAAA,IACpD,SAAS,OAAO;AACf,cAAQ,MAAM,MAAM,iCAAiC,KAAK;AAC1D,YAAM;AAAA,IACP;AAAA,EACA;AAAA,EAEA,MAAa,aAA4B;AACzC,QAAI,CAAC,KAAK,aAAa;AACtB;AAAA,IACD;AAEA,QAAI;AACH,YAAM,KAAK,WAAW,WAAW;AACjC,WAAK,eAAe;AACpB,cAAQ,MAAM,KAAK,mCAAmC;AAAA,IACvD,SAAS,OAAO;AACf,cAAQ,MAAM,MAAM,sCAAsC,KAAK;AAC/D,YAAM;AAAA,IACP;AAAA,EACA;AAAA,EAEO,cAAuB;AAC5B,WAAO,KAAK;AAAA,EACd;AACF;;;ADxCA,SAAS,WAAAA,gBAAe;AAGjB,IAAM,iBAAN,cAA6B,cAAwC;AAAA,EAClE;AAAA,EACA;AAAA,EAER,YAAY,KAAa;AACvB,UAAM,GAAG;AACT,UAAM,YAAY,MAAM,YAAY;AACpC,SAAK,YAAY,UAAU,MAAoB,QAAQ,gBAAgB;AACvE,SAAK,eAAe,UAAU,MAAuB,WAAW,mBAAmB;AAAA,EACrF;AAAA,EAEA,MAAa,WAAW,QAAgB,WAAuD;AAC/F,UAAM,QAAQ,MAAM,KAAK,UAAU,KAAK,EAAE,WAAW,OAAO,CAAC,EAAE,KAAK;AAAA,MACnE,WAAW;AAAA,IACZ,CAAC;AACC,UAAM,UAAU,MAAM,KAAK,aAAa,QAAQ,EAAE,WAAW,OAAO,CAAC;AAEvE,IAAAA,SAAQ,MAAM,MAAM,SAAS,MAAM,MAAM,sBAAsB,SAAS,EAAE;AAE1E,UAAM,gBAA+B,EAAE,OAAO,CAAC,EAAE;AAC/C,kBAAc,QAAQ,SAAS;AACjC,UAAM,QAAQ,CAAC,SAAuB;AACrC,YAAM,SAAS,KAAK,KAAK,SAAS,KAAK,KAAK;AAC5C,oBAAc,MAAM,MAAM,IAAI;AAAA,QAC7B,MAAM,KAAK;AAAA,QACX,SAAS,KAAK;AAAA,QACd,WAAW,KAAK;AAAA,QAChB,UAAU,KAAK;AAAA,MAChB;AAAA,IACD,CAAC;AAED,WAAO;AAAA,EACP;AAAA,EAED,MAAa,cAAc,QAAgB,WAAmB,OAAyC;AACpG,UAAM,MAAM,KAAK,IAAI;AACrB,UAAM,KAAK,aAAa,OAAO;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,YAAY;AAAA,IACd,CAAC;AAED,WAAO,EAAE,OAAO,WAAW,WAAW,IAAI;AAAA,EAC5C;AAAA,EAED,MAAa,iBAAiB,QAAgB,WAAmB,MAAiC;AAC/F,UAAM,QAAQ,WAAW;AACzB,UAAM,KAAK,aAAa,UAAU,EAAE,WAAW,OAAO,GAAG;AAAA,MACvD,YAAY,KAAK,IAAI;AAAA,IACvB,CAAC;AACH,UAAM,KAAK,UAAU,OAAO;AAAA,MAC3B;AAAA,MACG,QAAQ;AAAA,MACR;AAAA,MACH,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,WAAW,KAAK;AAAA,MAChB,UAAU,KAAK;AAAA,IAChB,CAAC;AAAA,EACD;AAAA,EAED,MAAa,cAAc,QAAgB,WAAkC;AAC5E,UAAM,QAAQ,MAAM,KAAK,UAAU,KAAK,EAAE,QAAQ,UAAU,CAAC,EAAE,KAAK;AAAA,MACnE,WAAW;AAAA,IACZ,CAAC;AAED,WAAO,QAAQ,CAAC,SAAuB;AACnC,WAAK,UAAU;AAAA,IACnB,CAAC;AAEC,UAAM,UAAU,MAAM,KAAK,aAAa,QAAQ,EAAE,WAAW,OAAO,CAAC;AACrE,aAAS,UAAU;AAAA,EACrB;AAAA,EAED,MAAa,aAAa,QAA4C;AACnE,UAAM,WAAW,MAAM,KAAK,aAAa,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK;AAAA,MAC7D,YAAY;AAAA,IACd,CAAC;AACD,UAAM,OAA0B,SAAS,IAAI,CAAC,YAA6B;AACzE,aAAO;AAAA,QACL,WAAW,QAAQ;AAAA,QACnB,OAAO,QAAQ;AAAA,QACf,WAAW,QAAQ;AAAA,MACrB;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AACF;;;AEvGA,SAAS,cAAAC,mBAAkB;AAMpB,IAAM,gBAAN,cAA4B,cAAuC;AAAA,EACxE,MAAa,UAAU,UAA+C;AACpE,UAAM,SAAS,MAAM,YAAY,SAAS,QAAQ;AAClD,QAAI,QAAQ;AACV,aAAO;AAAA,QACL,MAAM,OAAO;AAAA,QACb,aAAa,OAAO;AAAA,QACpB,QAAQ,OAAO;AAAA,QACf,KAAK,OAAO;AAAA,MACd;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAED,MAAa,WAAW,QAA+B;AACpD,UAAM,QAAQC,YAAW;AACzB,UAAM,YAAY,OAAO;AAAA,MACvB,KAAK;AAAA,MACL,MAAM,OAAO;AAAA,MACb,aAAa,OAAO;AAAA,MACpB,QAAQ,OAAO;AAAA,MACf,KAAK,OAAO;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EAED,MAAa,aAAa,UAAkB,QAA+B;AACxE,UAAM,YAAY,UAAU;AAAA,MAC1B,KAAK;AAAA,IACP,GAAE;AAAA,MACA,MAAM,OAAO;AAAA,MACb,aAAa,OAAO;AAAA,MACpB,QAAQ,OAAO;AAAA,MACf,KAAK,OAAO;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EAED,MAAa,aAAa,UAAiC;AACxD,UAAM,YAAY,UAAU,EAAE,KAAK,SAAS,CAAC;AAAA,EAC/C;AAAA,EAED,MAAa,cAAiC;AAC3C,UAAM,UAAU,MAAM,YAAY,KAAK;AACvC,WAAO,QAAQ,IAAI,aAAW;AAAA,MAC5B,MAAM,OAAO;AAAA,MACb,aAAa,OAAO;AAAA,MACpB,QAAQ,OAAO;AAAA,MACf,KAAK,OAAO;AAAA,IACd,EAAY;AAAA,EACd;AACF;","names":["loggers","randomUUID","randomUUID"]}
1
+ {"version":3,"sources":["../implements/thread.memory.ts","../implements/base.memory.ts","../implements/intent.memory.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport type { MessageObject, ThreadMetadata, ThreadObject, ThreadType } from \"@ainetwork/adk/types/memory\";\nimport { MessageRole } from \"@ainetwork/adk/types/memory\";\nimport { IThreadMemory } from \"@ainetwork/adk/modules\";\nimport { MongoDBMemory } from \"./base.memory\";\nimport { ThreadDocument, ThreadModel } from \"../models/threads.model\";\nimport { MessageDocument, MessageModel } from \"../models/messages.model\";\nimport { loggers } from \"@ainetwork/adk/utils/logger\";\n\nexport class MongoDBThread extends MongoDBMemory implements IThreadMemory {\n constructor(uri: string) {\n super(uri);\n }\n\n public async getThread(\n type: ThreadType,\n userId: string,\n threadId: string\n ): Promise<ThreadObject | undefined> {\n const thread = await ThreadModel.findOne({ type, threadId, userId });\n\t\tconst messages = await MessageModel.find({ threadId, userId }).sort({\n\t\t\ttimestamp: 1,\n\t\t});\n\n if (!thread) return undefined;\n\n\t\tloggers.agent.debug(`Found ${messages.length} messages for thread ${threadId}`);\n\n\t\tconst threadObject: ThreadObject = { \n type: thread.type as ThreadType,\n title: thread.title || \"New thread\",\n messages: {}\n };\n\t\tmessages.forEach((message: MessageDocument) => {\n\t\t\tconst messageId = message._id?.toString() || message.id;\n\t\t\tthreadObject.messages[messageId] = {\n\t\t\t\trole: message.role as MessageRole,\n\t\t\t\tcontent: message.content,\n\t\t\t\ttimestamp: message.timestamp,\n\t\t\t\tmetadata: message.metadata,\n\t\t\t};\n\t\t});\n\n\t\treturn threadObject;\n };\n\n\tpublic async createThread(\n\t\ttype: ThreadType,\n\t\tuserId: string,\n\t\tthreadId: string,\n\t\ttitle: string,\n ): Promise<ThreadMetadata> {\n const now = Date.now();\n await ThreadModel.create({\n type,\n userId,\n threadId,\n title,\n updated_at: now,\n created_at: now,\n });\n\n return { type, threadId, title, updatedAt: now };\n };\n\n\tpublic async addMessagesToThread(\n userId: string,\n threadId: string,\n messages: MessageObject[]\n ): Promise<void> {\n await ThreadModel.updateOne({ threadId, userId }, {\n updated_at: Date.now(),\n });\n for (const message of messages) {\n const newId = randomUUID();\n await MessageModel.create({\n threadId,\n messageId: newId,\n userId,\n role: message.role,\n content: message.content,\n timestamp: message.timestamp,\n metadata: message.metadata,\n });\n }\n };\n\n\tpublic async deleteThread(userId: string, threadId: string): Promise<void> {\n\t\tconst messages = await MessageModel.find({ userId, threadId }).sort({\n\t\t\ttimestamp: 1,\n\t\t});\n\n\t\tmessages?.forEach((message: MessageDocument) => {\n message.deleteOne();\n\t\t});\n \n const thread = await ThreadModel.findOne({ userId, threadId });\n thread?.deleteOne();\n };\n\n\tpublic async listThreads(userId: string): Promise<ThreadMetadata[]> {\n const threads = await ThreadModel.find({ userId }).sort({\n updated_at: -1,\n });\n const data: ThreadMetadata[] = threads.map((thread: ThreadDocument) => {\n return {\n type: thread.type,\n threadId: thread.threadId,\n title: thread.title,\n updatedAt: thread.updated_at\n } as ThreadMetadata;\n })\n return data;\n };\n}","import { IMemory } from \"node_modules/@ainetwork/adk/dist/esm/modules/memory/base.memory\";\nimport mongoose from \"mongoose\";\nimport { loggers } from \"@ainetwork/adk/utils/logger\";\n\nexport class MongoDBMemory implements IMemory {\n private _isConnected: boolean = false;\n private _uri: string;\n\n constructor(uri: string) {\n this._uri = uri;\n }\n\n public async connect(): Promise<void> {\n\t\tif (this._isConnected) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n await mongoose.connect(this._uri, {\n maxPoolSize: 1,\n serverSelectionTimeoutMS: 30000,\n socketTimeoutMS: 45000,\n connectTimeoutMS: 30000,\n bufferCommands: false,\n });\n\t\t\tthis._isConnected = true;\n\t\t\tloggers.agent.info(\"MongoDB connected successfully\");\n\t\t} catch (error) {\n\t\t\tloggers.agent.error(\"Failed to connect to MongoDB:\", error);\n\t\t\tthrow error;\n\t\t}\n }\n\n public async disconnect(): Promise<void> {\n\t\tif (!this.isConnected) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait mongoose.disconnect();\n\t\t\tthis._isConnected = false;\n\t\t\tloggers.agent.info(\"MongoDB disconnected successfully\");\n\t\t} catch (error) {\n\t\t\tloggers.agent.error(\"Failed to disconnect from MongoDB:\", error);\n\t\t\tthrow error;\n\t\t}\n }\n\n public isConnected(): boolean {\n return this._isConnected;\n }\n}","import type { Intent } from \"@ainetwork/adk/types/memory\";\nimport { IIntentMemory } from \"@ainetwork/adk/modules\";\nimport { MongoDBMemory } from \"./base.memory\";\nimport { IntentModel } from \"../models/intent.model\";\nimport { Types } from \"mongoose\";\n\nexport class MongoDBIntent extends MongoDBMemory implements IIntentMemory {\n public async getIntent(intentId: string): Promise<Intent | undefined> {\n const intent = await IntentModel.findById(new Types.ObjectId(intentId));\n if (intent) {\n return {\n name: intent.name,\n description: intent.description,\n prompt: intent.prompt,\n llm: intent.llm,\n } as Intent;\n }\n return undefined;\n };\n\n\tpublic async getIntentByName(intentName: string): Promise<Intent | undefined> {\n\t\tconst intent = await IntentModel.findOne({ name: intentName });\n\t\tif (intent) {\n\t\t\treturn {\n\t\t\t\tname: intent.name,\n\t\t\t\tdescription: intent.description,\n\t\t\t\tprompt: intent.prompt,\n\t\t\t\tllm: intent.llm,\n\t\t\t} as Intent;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tpublic async saveIntent(intent: Intent): Promise<void> {\n // ObjectId automatically generated (MongoDB automatically generates)\n await IntentModel.create({\n name: intent.name,\n description: intent.description,\n prompt: intent.prompt,\n llm: intent.llm,\n });\n };\n\n\tpublic async updateIntent(intentId: string, intent: Intent): Promise<void> {\n await IntentModel.updateOne({\n _id: new Types.ObjectId(intentId),\n },{\n name: intent.name,\n description: intent.description,\n prompt: intent.prompt,\n llm: intent.llm,\n });\n };\n\n\tpublic async deleteIntent(intentId: string): Promise<void> {\n await IntentModel.deleteOne({ _id: new Types.ObjectId(intentId) });\n };\n\n\tpublic async listIntents(): Promise<Intent[]> {\n const intents = await IntentModel.find();\n return intents.map(intent => ({\n name: intent.name,\n description: intent.description,\n prompt: intent.prompt,\n llm: intent.llm,\n } as Intent));\n };\n}"],"mappings":"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","names":["loggers"]}
@@ -1,4 +1,4 @@
1
- import mongoose__default, { Document } from 'mongoose';
1
+ import mongoose, { Document } from 'mongoose';
2
2
 
3
3
  interface IntentDocument extends Document {
4
4
  name: string;
@@ -6,7 +6,7 @@ interface IntentDocument extends Document {
6
6
  prompt?: string;
7
7
  llm?: string;
8
8
  }
9
- declare const IntentModel: mongoose__default.Model<IntentDocument, {}, {}, {}, mongoose__default.Document<unknown, {}, IntentDocument, {}> & IntentDocument & Required<{
9
+ declare const IntentModel: mongoose.Model<IntentDocument, {}, {}, {}, mongoose.Document<unknown, {}, IntentDocument, {}> & IntentDocument & Required<{
10
10
  _id: unknown;
11
11
  }> & {
12
12
  __v: number;
@@ -1,4 +1,4 @@
1
- import mongoose__default, { Document } from 'mongoose';
1
+ import mongoose, { Document } from 'mongoose';
2
2
 
3
3
  interface IntentDocument extends Document {
4
4
  name: string;
@@ -6,7 +6,7 @@ interface IntentDocument extends Document {
6
6
  prompt?: string;
7
7
  llm?: string;
8
8
  }
9
- declare const IntentModel: mongoose__default.Model<IntentDocument, {}, {}, {}, mongoose__default.Document<unknown, {}, IntentDocument, {}> & IntentDocument & Required<{
9
+ declare const IntentModel: mongoose.Model<IntentDocument, {}, {}, {}, mongoose.Document<unknown, {}, IntentDocument, {}> & IntentDocument & Required<{
10
10
  _id: unknown;
11
11
  }> & {
12
12
  __v: number;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,60 +17,37 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
 
20
- // models/chats.model.ts
21
- var chats_model_exports = {};
22
- __export(chats_model_exports, {
23
- ChatContentObjectSchema: () => ChatContentObjectSchema,
24
- ChatObjectSchema: () => ChatObjectSchema,
25
- ChatRole: () => ChatRole,
26
- SessionObjectSchema: () => SessionObjectSchema
30
+ // models/messages.model.ts
31
+ var messages_model_exports = {};
32
+ __export(messages_model_exports, {
33
+ MessageContentObjectSchema: () => MessageContentObjectSchema,
34
+ MessageModel: () => MessageModel,
35
+ MessageObjectSchema: () => MessageObjectSchema
27
36
  });
28
- module.exports = __toCommonJS(chats_model_exports);
37
+ module.exports = __toCommonJS(messages_model_exports);
38
+ var import_memory = require("@ainetwork/adk/types/memory");
29
39
  var import_mongoose = require("mongoose");
30
- var ChatRole = /* @__PURE__ */ ((ChatRole2) => {
31
- ChatRole2["USER"] = "USER";
32
- ChatRole2["SYSTEM"] = "SYSTEM";
33
- ChatRole2["MODEL"] = "MODEL";
34
- return ChatRole2;
35
- })(ChatRole || {});
36
- var SessionObjectSchema = new import_mongoose.Schema(
37
- {
38
- sessionId: {
39
- type: String,
40
- required: true,
41
- index: true
42
- },
43
- userId: {
44
- type: String,
45
- required: true,
46
- index: true
47
- },
48
- title: {
49
- type: String,
50
- required: false
51
- },
52
- created_at: {
53
- type: Number,
54
- required: true
55
- },
56
- updated_at: {
57
- type: Number,
58
- required: true
59
- }
60
- }
61
- );
62
- var ChatContentObjectSchema = new import_mongoose.Schema(
40
+ var import_mongoose2 = __toESM(require("mongoose"), 1);
41
+ var MessageContentObjectSchema = new import_mongoose.Schema(
63
42
  {
64
43
  type: { type: String, required: true },
65
44
  parts: { type: [import_mongoose.Schema.Types.Mixed], required: true }
66
45
  },
67
46
  { _id: false }
68
47
  );
69
- var ChatObjectSchema = new import_mongoose.Schema(
48
+ var MessageObjectSchema = new import_mongoose.Schema(
70
49
  {
71
- sessionId: {
50
+ threadId: {
72
51
  type: String,
73
52
  required: true,
74
53
  index: true
@@ -80,11 +59,11 @@ var ChatObjectSchema = new import_mongoose.Schema(
80
59
  },
81
60
  role: {
82
61
  type: String,
83
- enum: Object.values(ChatRole),
62
+ enum: Object.values(import_memory.MessageRole),
84
63
  required: true
85
64
  },
86
65
  content: {
87
- type: ChatContentObjectSchema,
66
+ type: MessageContentObjectSchema,
88
67
  required: true
89
68
  },
90
69
  timestamp: {
@@ -97,11 +76,11 @@ var ChatObjectSchema = new import_mongoose.Schema(
97
76
  }
98
77
  }
99
78
  );
79
+ var MessageModel = import_mongoose2.default.model("Message", MessageObjectSchema);
100
80
  // Annotate the CommonJS export names for ESM import in node:
101
81
  0 && (module.exports = {
102
- ChatContentObjectSchema,
103
- ChatObjectSchema,
104
- ChatRole,
105
- SessionObjectSchema
82
+ MessageContentObjectSchema,
83
+ MessageModel,
84
+ MessageObjectSchema
106
85
  });
107
- //# sourceMappingURL=chats.model.cjs.map
86
+ //# sourceMappingURL=messages.model.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../models/messages.model.ts"],"sourcesContent":["import { MessageRole } from \"@ainetwork/adk/types/memory\";\nimport { type Document, Schema } from \"mongoose\";\nimport mongoose from \"mongoose\";\n\n// MessageContentObject schema\nexport const MessageContentObjectSchema = new Schema(\n\t{\n\t\ttype: { type: String, required: true },\n\t\tparts: { type: [Schema.Types.Mixed], required: true },\n\t},\n\t{ _id: false },\n);\n\n// MessageObject schema - 개별 문서로 저장\nexport const MessageObjectSchema = new Schema(\n\t{\n\t\tthreadId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\tuserId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\trole: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(MessageRole),\n\t\t\trequired: true,\n\t\t},\n\t\tcontent: {\n\t\t\ttype: MessageContentObjectSchema,\n\t\t\trequired: true,\n\t\t},\n\t\ttimestamp: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tmetadata: {\n\t\t\ttype: Schema.Types.Mixed,\n\t\t\tdefault: {},\n\t\t},\n\t},\n);\n\n// Message Document interface\nexport interface MessageDocument extends Document {\n\tthreadId: string;\n\trole: MessageRole;\n\tcontent: {\n\t\ttype: string;\n\t\tparts: any[];\n\t};\n\ttimestamp: number;\n\tmetadata?: { [key: string]: unknown };\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport const MessageModel = mongoose.model<MessageDocument>(\"Message\", MessageObjectSchema);"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA4B;AAC5B,sBAAsC;AACtC,IAAAA,mBAAqB;AAGd,IAAM,6BAA6B,IAAI;AAAA,EAC7C;AAAA,IACC,MAAM,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,IACrC,OAAO,EAAE,MAAM,CAAC,uBAAO,MAAM,KAAK,GAAG,UAAU,KAAK;AAAA,EACrD;AAAA,EACA,EAAE,KAAK,MAAM;AACd;AAGO,IAAM,sBAAsB,IAAI;AAAA,EACtC;AAAA,IACC,UAAU;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,MACV,OAAO;AAAA,IACR;AAAA,IACA,QAAQ;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,OAAO;AAAA,IACR;AAAA,IACA,MAAM;AAAA,MACL,MAAM;AAAA,MACN,MAAM,OAAO,OAAO,yBAAW;AAAA,MAC/B,UAAU;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACV,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,MAAM,uBAAO,MAAM;AAAA,MACnB,SAAS,CAAC;AAAA,IACX;AAAA,EACD;AACD;AAgBO,IAAM,eAAe,iBAAAC,QAAS,MAAuB,WAAW,mBAAmB;","names":["import_mongoose","mongoose"]}
@@ -0,0 +1,75 @@
1
+ import { MessageRole } from '@ainetwork/adk/types/memory';
2
+ import mongoose, { Schema, Document } from 'mongoose';
3
+
4
+ declare const MessageContentObjectSchema: Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
5
+ _id: false;
6
+ }, {
7
+ type: string;
8
+ parts: any[];
9
+ }, Document<unknown, {}, mongoose.FlatRecord<{
10
+ type: string;
11
+ parts: any[];
12
+ }>, {}> & mongoose.FlatRecord<{
13
+ type: string;
14
+ parts: any[];
15
+ }> & {
16
+ _id: mongoose.Types.ObjectId;
17
+ } & {
18
+ __v: number;
19
+ }>;
20
+ declare const MessageObjectSchema: Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
21
+ threadId: string;
22
+ userId: string;
23
+ role: MessageRole;
24
+ content: {
25
+ type: string;
26
+ parts: any[];
27
+ };
28
+ timestamp: number;
29
+ metadata: any;
30
+ }, Document<unknown, {}, mongoose.FlatRecord<{
31
+ threadId: string;
32
+ userId: string;
33
+ role: MessageRole;
34
+ content: {
35
+ type: string;
36
+ parts: any[];
37
+ };
38
+ timestamp: number;
39
+ metadata: any;
40
+ }>, {}> & mongoose.FlatRecord<{
41
+ threadId: string;
42
+ userId: string;
43
+ role: MessageRole;
44
+ content: {
45
+ type: string;
46
+ parts: any[];
47
+ };
48
+ timestamp: number;
49
+ metadata: any;
50
+ }> & {
51
+ _id: mongoose.Types.ObjectId;
52
+ } & {
53
+ __v: number;
54
+ }>;
55
+ interface MessageDocument extends Document {
56
+ threadId: string;
57
+ role: MessageRole;
58
+ content: {
59
+ type: string;
60
+ parts: any[];
61
+ };
62
+ timestamp: number;
63
+ metadata?: {
64
+ [key: string]: unknown;
65
+ };
66
+ createdAt: Date;
67
+ updatedAt: Date;
68
+ }
69
+ declare const MessageModel: mongoose.Model<MessageDocument, {}, {}, {}, Document<unknown, {}, MessageDocument, {}> & MessageDocument & Required<{
70
+ _id: unknown;
71
+ }> & {
72
+ __v: number;
73
+ }, any>;
74
+
75
+ export { MessageContentObjectSchema, type MessageDocument, MessageModel, MessageObjectSchema };
@@ -0,0 +1,75 @@
1
+ import { MessageRole } from '@ainetwork/adk/types/memory';
2
+ import mongoose, { Schema, Document } from 'mongoose';
3
+
4
+ declare const MessageContentObjectSchema: Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
5
+ _id: false;
6
+ }, {
7
+ type: string;
8
+ parts: any[];
9
+ }, Document<unknown, {}, mongoose.FlatRecord<{
10
+ type: string;
11
+ parts: any[];
12
+ }>, {}> & mongoose.FlatRecord<{
13
+ type: string;
14
+ parts: any[];
15
+ }> & {
16
+ _id: mongoose.Types.ObjectId;
17
+ } & {
18
+ __v: number;
19
+ }>;
20
+ declare const MessageObjectSchema: Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
21
+ threadId: string;
22
+ userId: string;
23
+ role: MessageRole;
24
+ content: {
25
+ type: string;
26
+ parts: any[];
27
+ };
28
+ timestamp: number;
29
+ metadata: any;
30
+ }, Document<unknown, {}, mongoose.FlatRecord<{
31
+ threadId: string;
32
+ userId: string;
33
+ role: MessageRole;
34
+ content: {
35
+ type: string;
36
+ parts: any[];
37
+ };
38
+ timestamp: number;
39
+ metadata: any;
40
+ }>, {}> & mongoose.FlatRecord<{
41
+ threadId: string;
42
+ userId: string;
43
+ role: MessageRole;
44
+ content: {
45
+ type: string;
46
+ parts: any[];
47
+ };
48
+ timestamp: number;
49
+ metadata: any;
50
+ }> & {
51
+ _id: mongoose.Types.ObjectId;
52
+ } & {
53
+ __v: number;
54
+ }>;
55
+ interface MessageDocument extends Document {
56
+ threadId: string;
57
+ role: MessageRole;
58
+ content: {
59
+ type: string;
60
+ parts: any[];
61
+ };
62
+ timestamp: number;
63
+ metadata?: {
64
+ [key: string]: unknown;
65
+ };
66
+ createdAt: Date;
67
+ updatedAt: Date;
68
+ }
69
+ declare const MessageModel: mongoose.Model<MessageDocument, {}, {}, {}, Document<unknown, {}, MessageDocument, {}> & MessageDocument & Required<{
70
+ _id: unknown;
71
+ }> & {
72
+ __v: number;
73
+ }, any>;
74
+
75
+ export { MessageContentObjectSchema, type MessageDocument, MessageModel, MessageObjectSchema };
@@ -0,0 +1,11 @@
1
+ import {
2
+ MessageContentObjectSchema,
3
+ MessageModel,
4
+ MessageObjectSchema
5
+ } from "../chunk-MLPXPX2L.js";
6
+ export {
7
+ MessageContentObjectSchema,
8
+ MessageModel,
9
+ MessageObjectSchema
10
+ };
11
+ //# sourceMappingURL=messages.model.js.map