@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.
- package/dist/chunk-GPOFS7ZT.js +42 -0
- package/dist/chunk-GPOFS7ZT.js.map +1 -0
- package/dist/chunk-MLPXPX2L.js +50 -0
- package/dist/chunk-MLPXPX2L.js.map +1 -0
- package/dist/index.cjs +107 -87
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -14
- package/dist/index.d.ts +10 -14
- package/dist/index.js +85 -69
- package/dist/index.js.map +1 -1
- package/dist/models/intent.model.d.cts +2 -2
- package/dist/models/intent.model.d.ts +2 -2
- package/dist/models/{chats.model.cjs → messages.model.cjs} +29 -50
- package/dist/models/messages.model.cjs.map +1 -0
- package/dist/models/messages.model.d.cts +75 -0
- package/dist/models/messages.model.d.ts +75 -0
- package/dist/models/messages.model.js +11 -0
- package/dist/models/threads.model.cjs +77 -0
- package/dist/models/threads.model.cjs.map +1 -0
- package/dist/models/threads.model.d.cts +44 -0
- package/dist/models/threads.model.d.ts +44 -0
- package/dist/models/threads.model.js +9 -0
- package/dist/models/threads.model.js.map +1 -0
- package/implements/base.memory.ts +9 -9
- package/implements/intent.memory.ts +18 -6
- package/implements/thread.memory.ts +115 -0
- package/index.ts +1 -1
- package/models/messages.model.ts +61 -0
- package/models/threads.model.ts +46 -0
- package/package.json +7 -5
- package/dist/chunk-N5FAVJ4Z.js +0 -80
- package/dist/chunk-N5FAVJ4Z.js.map +0 -1
- package/dist/models/chats.model.cjs.map +0 -1
- package/dist/models/chats.model.d.cts +0 -105
- package/dist/models/chats.model.d.ts +0 -105
- package/dist/models/chats.model.js +0 -13
- package/implements/session.memory.ts +0 -104
- package/models/chats.model.ts +0 -99
- /package/dist/models/{chats.model.js.map → messages.model.js.map} +0 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// models/threads.model.ts
|
|
2
|
+
import { ThreadType } from "@ainetwork/adk/types/memory";
|
|
3
|
+
import { Schema } from "mongoose";
|
|
4
|
+
import mongoose from "mongoose";
|
|
5
|
+
var ThreadObjectSchema = new Schema(
|
|
6
|
+
{
|
|
7
|
+
type: {
|
|
8
|
+
type: String,
|
|
9
|
+
enum: Object.values(ThreadType),
|
|
10
|
+
required: true
|
|
11
|
+
},
|
|
12
|
+
threadId: {
|
|
13
|
+
type: String,
|
|
14
|
+
required: true,
|
|
15
|
+
index: true
|
|
16
|
+
},
|
|
17
|
+
userId: {
|
|
18
|
+
type: String,
|
|
19
|
+
required: true,
|
|
20
|
+
index: true
|
|
21
|
+
},
|
|
22
|
+
title: {
|
|
23
|
+
type: String,
|
|
24
|
+
required: false
|
|
25
|
+
},
|
|
26
|
+
created_at: {
|
|
27
|
+
type: Number,
|
|
28
|
+
required: true
|
|
29
|
+
},
|
|
30
|
+
updated_at: {
|
|
31
|
+
type: Number,
|
|
32
|
+
required: true
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
var ThreadModel = mongoose.model("Thread", ThreadObjectSchema);
|
|
37
|
+
|
|
38
|
+
export {
|
|
39
|
+
ThreadObjectSchema,
|
|
40
|
+
ThreadModel
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=chunk-GPOFS7ZT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../models/threads.model.ts"],"sourcesContent":["import { ThreadType } from \"@ainetwork/adk/types/memory\";\nimport { type Document, Schema } from \"mongoose\";\nimport mongoose from \"mongoose\";\n\nexport const ThreadObjectSchema = new Schema(\n\t{\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(ThreadType),\n\t\t\trequired: true,\n\t\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\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t},\n\t\tcreated_at: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tupdated_at: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t}\n\t},\n);\n\nexport interface ThreadDocument extends Document {\n\ttype: ThreadType;\n\tthreadId: string;\n\tuserId: string;\n\ttitle: string;\n\tcreated_at: number;\n\tupdated_at: number;\n}\n\nexport const ThreadModel = mongoose.model<ThreadDocument>(\"Thread\", ThreadObjectSchema);\n"],"mappings":";AAAA,SAAS,kBAAkB;AAC3B,SAAwB,cAAc;AACtC,OAAO,cAAc;AAEd,IAAM,qBAAqB,IAAI;AAAA,EACrC;AAAA,IACC,MAAM;AAAA,MACL,MAAM;AAAA,MACN,MAAM,OAAO,OAAO,UAAU;AAAA,MAC9B,UAAU;AAAA,IACX;AAAA,IACA,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,OAAO;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACX,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACX,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACD;AACD;AAWO,IAAM,cAAc,SAAS,MAAsB,UAAU,kBAAkB;","names":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// models/messages.model.ts
|
|
2
|
+
import { MessageRole } from "@ainetwork/adk/types/memory";
|
|
3
|
+
import { Schema } from "mongoose";
|
|
4
|
+
import mongoose from "mongoose";
|
|
5
|
+
var MessageContentObjectSchema = new Schema(
|
|
6
|
+
{
|
|
7
|
+
type: { type: String, required: true },
|
|
8
|
+
parts: { type: [Schema.Types.Mixed], required: true }
|
|
9
|
+
},
|
|
10
|
+
{ _id: false }
|
|
11
|
+
);
|
|
12
|
+
var MessageObjectSchema = new Schema(
|
|
13
|
+
{
|
|
14
|
+
threadId: {
|
|
15
|
+
type: String,
|
|
16
|
+
required: true,
|
|
17
|
+
index: true
|
|
18
|
+
},
|
|
19
|
+
userId: {
|
|
20
|
+
type: String,
|
|
21
|
+
required: true,
|
|
22
|
+
index: true
|
|
23
|
+
},
|
|
24
|
+
role: {
|
|
25
|
+
type: String,
|
|
26
|
+
enum: Object.values(MessageRole),
|
|
27
|
+
required: true
|
|
28
|
+
},
|
|
29
|
+
content: {
|
|
30
|
+
type: MessageContentObjectSchema,
|
|
31
|
+
required: true
|
|
32
|
+
},
|
|
33
|
+
timestamp: {
|
|
34
|
+
type: Number,
|
|
35
|
+
required: true
|
|
36
|
+
},
|
|
37
|
+
metadata: {
|
|
38
|
+
type: Schema.Types.Mixed,
|
|
39
|
+
default: {}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
var MessageModel = mongoose.model("Message", MessageObjectSchema);
|
|
44
|
+
|
|
45
|
+
export {
|
|
46
|
+
MessageContentObjectSchema,
|
|
47
|
+
MessageObjectSchema,
|
|
48
|
+
MessageModel
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=chunk-MLPXPX2L.js.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,SAAS,mBAAmB;AAC5B,SAAwB,cAAc;AACtC,OAAO,cAAc;AAGd,IAAM,6BAA6B,IAAI;AAAA,EAC7C;AAAA,IACC,MAAM,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,IACrC,OAAO,EAAE,MAAM,CAAC,OAAO,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,WAAW;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,OAAO,MAAM;AAAA,MACnB,SAAS,CAAC;AAAA,IACX;AAAA,EACD;AACD;AAgBO,IAAM,eAAe,SAAS,MAAuB,WAAW,mBAAmB;","names":[]}
|
package/dist/index.cjs
CHANGED
|
@@ -31,33 +31,34 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var index_exports = {};
|
|
32
32
|
__export(index_exports, {
|
|
33
33
|
MongoDBIntent: () => MongoDBIntent,
|
|
34
|
-
|
|
34
|
+
MongoDBThread: () => MongoDBThread
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(index_exports);
|
|
37
37
|
|
|
38
|
-
// implements/
|
|
38
|
+
// implements/thread.memory.ts
|
|
39
39
|
var import_node_crypto = require("crypto");
|
|
40
40
|
|
|
41
41
|
// implements/base.memory.ts
|
|
42
|
-
var import_mongoose = require("mongoose");
|
|
42
|
+
var import_mongoose = __toESM(require("mongoose"), 1);
|
|
43
43
|
var import_logger = require("@ainetwork/adk/utils/logger");
|
|
44
44
|
var MongoDBMemory = class {
|
|
45
45
|
_isConnected = false;
|
|
46
46
|
_uri;
|
|
47
|
-
_mongoose;
|
|
48
47
|
constructor(uri) {
|
|
49
48
|
this._uri = uri;
|
|
50
|
-
this._mongoose = new import_mongoose.Mongoose();
|
|
51
|
-
}
|
|
52
|
-
getInstance() {
|
|
53
|
-
return this._mongoose;
|
|
54
49
|
}
|
|
55
50
|
async connect() {
|
|
56
51
|
if (this._isConnected) {
|
|
57
52
|
return;
|
|
58
53
|
}
|
|
59
54
|
try {
|
|
60
|
-
await
|
|
55
|
+
await import_mongoose.default.connect(this._uri, {
|
|
56
|
+
maxPoolSize: 1,
|
|
57
|
+
serverSelectionTimeoutMS: 3e4,
|
|
58
|
+
socketTimeoutMS: 45e3,
|
|
59
|
+
connectTimeoutMS: 3e4,
|
|
60
|
+
bufferCommands: false
|
|
61
|
+
});
|
|
61
62
|
this._isConnected = true;
|
|
62
63
|
import_logger.loggers.agent.info("MongoDB connected successfully");
|
|
63
64
|
} catch (error) {
|
|
@@ -70,7 +71,7 @@ var MongoDBMemory = class {
|
|
|
70
71
|
return;
|
|
71
72
|
}
|
|
72
73
|
try {
|
|
73
|
-
await
|
|
74
|
+
await import_mongoose.default.disconnect();
|
|
74
75
|
this._isConnected = false;
|
|
75
76
|
import_logger.loggers.agent.info("MongoDB disconnected successfully");
|
|
76
77
|
} catch (error) {
|
|
@@ -83,17 +84,18 @@ var MongoDBMemory = class {
|
|
|
83
84
|
}
|
|
84
85
|
};
|
|
85
86
|
|
|
86
|
-
// models/
|
|
87
|
+
// models/threads.model.ts
|
|
88
|
+
var import_memory = require("@ainetwork/adk/types/memory");
|
|
87
89
|
var import_mongoose2 = require("mongoose");
|
|
88
|
-
var
|
|
89
|
-
|
|
90
|
-
ChatRole3["SYSTEM"] = "SYSTEM";
|
|
91
|
-
ChatRole3["MODEL"] = "MODEL";
|
|
92
|
-
return ChatRole3;
|
|
93
|
-
})(ChatRole || {});
|
|
94
|
-
var SessionObjectSchema = new import_mongoose2.Schema(
|
|
90
|
+
var import_mongoose3 = __toESM(require("mongoose"), 1);
|
|
91
|
+
var ThreadObjectSchema = new import_mongoose2.Schema(
|
|
95
92
|
{
|
|
96
|
-
|
|
93
|
+
type: {
|
|
94
|
+
type: String,
|
|
95
|
+
enum: Object.values(import_memory.ThreadType),
|
|
96
|
+
required: true
|
|
97
|
+
},
|
|
98
|
+
threadId: {
|
|
97
99
|
type: String,
|
|
98
100
|
required: true,
|
|
99
101
|
index: true
|
|
@@ -117,16 +119,22 @@ var SessionObjectSchema = new import_mongoose2.Schema(
|
|
|
117
119
|
}
|
|
118
120
|
}
|
|
119
121
|
);
|
|
120
|
-
var
|
|
122
|
+
var ThreadModel = import_mongoose3.default.model("Thread", ThreadObjectSchema);
|
|
123
|
+
|
|
124
|
+
// models/messages.model.ts
|
|
125
|
+
var import_memory2 = require("@ainetwork/adk/types/memory");
|
|
126
|
+
var import_mongoose4 = require("mongoose");
|
|
127
|
+
var import_mongoose5 = __toESM(require("mongoose"), 1);
|
|
128
|
+
var MessageContentObjectSchema = new import_mongoose4.Schema(
|
|
121
129
|
{
|
|
122
130
|
type: { type: String, required: true },
|
|
123
|
-
parts: { type: [
|
|
131
|
+
parts: { type: [import_mongoose4.Schema.Types.Mixed], required: true }
|
|
124
132
|
},
|
|
125
133
|
{ _id: false }
|
|
126
134
|
);
|
|
127
|
-
var
|
|
135
|
+
var MessageObjectSchema = new import_mongoose4.Schema(
|
|
128
136
|
{
|
|
129
|
-
|
|
137
|
+
threadId: {
|
|
130
138
|
type: String,
|
|
131
139
|
required: true,
|
|
132
140
|
index: true
|
|
@@ -138,11 +146,11 @@ var ChatObjectSchema = new import_mongoose2.Schema(
|
|
|
138
146
|
},
|
|
139
147
|
role: {
|
|
140
148
|
type: String,
|
|
141
|
-
enum: Object.values(
|
|
149
|
+
enum: Object.values(import_memory2.MessageRole),
|
|
142
150
|
required: true
|
|
143
151
|
},
|
|
144
152
|
content: {
|
|
145
|
-
type:
|
|
153
|
+
type: MessageContentObjectSchema,
|
|
146
154
|
required: true
|
|
147
155
|
},
|
|
148
156
|
timestamp: {
|
|
@@ -150,99 +158,100 @@ var ChatObjectSchema = new import_mongoose2.Schema(
|
|
|
150
158
|
required: true
|
|
151
159
|
},
|
|
152
160
|
metadata: {
|
|
153
|
-
type:
|
|
161
|
+
type: import_mongoose4.Schema.Types.Mixed,
|
|
154
162
|
default: {}
|
|
155
163
|
}
|
|
156
164
|
}
|
|
157
165
|
);
|
|
166
|
+
var MessageModel = import_mongoose5.default.model("Message", MessageObjectSchema);
|
|
158
167
|
|
|
159
|
-
// implements/
|
|
168
|
+
// implements/thread.memory.ts
|
|
160
169
|
var import_logger2 = require("@ainetwork/adk/utils/logger");
|
|
161
|
-
var
|
|
162
|
-
chatModel;
|
|
163
|
-
sessionModel;
|
|
170
|
+
var MongoDBThread = class extends MongoDBMemory {
|
|
164
171
|
constructor(uri) {
|
|
165
172
|
super(uri);
|
|
166
|
-
const _mongoose = super.getInstance();
|
|
167
|
-
this.chatModel = _mongoose.model("Chat", ChatObjectSchema);
|
|
168
|
-
this.sessionModel = _mongoose.model("Session", SessionObjectSchema);
|
|
169
173
|
}
|
|
170
|
-
async
|
|
171
|
-
const
|
|
174
|
+
async getThread(type, userId, threadId) {
|
|
175
|
+
const thread = await ThreadModel.findOne({ type, threadId, userId });
|
|
176
|
+
const messages = await MessageModel.find({ threadId, userId }).sort({
|
|
172
177
|
timestamp: 1
|
|
173
178
|
});
|
|
174
|
-
|
|
175
|
-
import_logger2.loggers.agent.debug(`Found ${
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
179
|
+
if (!thread) return void 0;
|
|
180
|
+
import_logger2.loggers.agent.debug(`Found ${messages.length} messages for thread ${threadId}`);
|
|
181
|
+
const threadObject = {
|
|
182
|
+
type: thread.type,
|
|
183
|
+
title: thread.title || "New thread",
|
|
184
|
+
messages: {}
|
|
185
|
+
};
|
|
186
|
+
messages.forEach((message) => {
|
|
187
|
+
const messageId = message._id?.toString() || message.id;
|
|
188
|
+
threadObject.messages[messageId] = {
|
|
189
|
+
role: message.role,
|
|
190
|
+
content: message.content,
|
|
191
|
+
timestamp: message.timestamp,
|
|
192
|
+
metadata: message.metadata
|
|
185
193
|
};
|
|
186
194
|
});
|
|
187
|
-
return
|
|
195
|
+
return threadObject;
|
|
188
196
|
}
|
|
189
|
-
async
|
|
197
|
+
async createThread(type, userId, threadId, title) {
|
|
190
198
|
const now = Date.now();
|
|
191
|
-
await
|
|
192
|
-
|
|
199
|
+
await ThreadModel.create({
|
|
200
|
+
type,
|
|
193
201
|
userId,
|
|
202
|
+
threadId,
|
|
194
203
|
title,
|
|
195
204
|
updated_at: now,
|
|
196
205
|
created_at: now
|
|
197
206
|
});
|
|
198
|
-
return {
|
|
207
|
+
return { type, threadId, title, updatedAt: now };
|
|
199
208
|
}
|
|
200
|
-
async
|
|
201
|
-
|
|
202
|
-
await this.sessionModel.updateOne({ sessionId, userId }, {
|
|
209
|
+
async addMessagesToThread(userId, threadId, messages) {
|
|
210
|
+
await ThreadModel.updateOne({ threadId, userId }, {
|
|
203
211
|
updated_at: Date.now()
|
|
204
212
|
});
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
213
|
+
for (const message of messages) {
|
|
214
|
+
const newId = (0, import_node_crypto.randomUUID)();
|
|
215
|
+
await MessageModel.create({
|
|
216
|
+
threadId,
|
|
217
|
+
messageId: newId,
|
|
218
|
+
userId,
|
|
219
|
+
role: message.role,
|
|
220
|
+
content: message.content,
|
|
221
|
+
timestamp: message.timestamp,
|
|
222
|
+
metadata: message.metadata
|
|
223
|
+
});
|
|
224
|
+
}
|
|
214
225
|
}
|
|
215
|
-
async
|
|
216
|
-
const
|
|
226
|
+
async deleteThread(userId, threadId) {
|
|
227
|
+
const messages = await MessageModel.find({ userId, threadId }).sort({
|
|
217
228
|
timestamp: 1
|
|
218
229
|
});
|
|
219
|
-
|
|
220
|
-
|
|
230
|
+
messages?.forEach((message) => {
|
|
231
|
+
message.deleteOne();
|
|
221
232
|
});
|
|
222
|
-
const
|
|
223
|
-
|
|
233
|
+
const thread = await ThreadModel.findOne({ userId, threadId });
|
|
234
|
+
thread?.deleteOne();
|
|
224
235
|
}
|
|
225
|
-
async
|
|
226
|
-
const
|
|
236
|
+
async listThreads(userId) {
|
|
237
|
+
const threads = await ThreadModel.find({ userId }).sort({
|
|
227
238
|
updated_at: -1
|
|
228
239
|
});
|
|
229
|
-
const data =
|
|
240
|
+
const data = threads.map((thread) => {
|
|
230
241
|
return {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
242
|
+
type: thread.type,
|
|
243
|
+
threadId: thread.threadId,
|
|
244
|
+
title: thread.title,
|
|
245
|
+
updatedAt: thread.updated_at
|
|
234
246
|
};
|
|
235
247
|
});
|
|
236
248
|
return data;
|
|
237
249
|
}
|
|
238
250
|
};
|
|
239
251
|
|
|
240
|
-
// implements/intent.memory.ts
|
|
241
|
-
var import_node_crypto2 = require("crypto");
|
|
242
|
-
|
|
243
252
|
// models/intent.model.ts
|
|
244
|
-
var
|
|
245
|
-
var IntentObjectSchema = new
|
|
253
|
+
var import_mongoose6 = __toESM(require("mongoose"), 1);
|
|
254
|
+
var IntentObjectSchema = new import_mongoose6.Schema(
|
|
246
255
|
{
|
|
247
256
|
name: {
|
|
248
257
|
type: String,
|
|
@@ -263,12 +272,25 @@ var IntentObjectSchema = new import_mongoose3.Schema(
|
|
|
263
272
|
}
|
|
264
273
|
}
|
|
265
274
|
);
|
|
266
|
-
var IntentModel =
|
|
275
|
+
var IntentModel = import_mongoose6.default.model("Intent", IntentObjectSchema);
|
|
267
276
|
|
|
268
277
|
// implements/intent.memory.ts
|
|
278
|
+
var import_mongoose7 = require("mongoose");
|
|
269
279
|
var MongoDBIntent = class extends MongoDBMemory {
|
|
270
280
|
async getIntent(intentId) {
|
|
271
|
-
const intent = await IntentModel.findById(intentId);
|
|
281
|
+
const intent = await IntentModel.findById(new import_mongoose7.Types.ObjectId(intentId));
|
|
282
|
+
if (intent) {
|
|
283
|
+
return {
|
|
284
|
+
name: intent.name,
|
|
285
|
+
description: intent.description,
|
|
286
|
+
prompt: intent.prompt,
|
|
287
|
+
llm: intent.llm
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
return void 0;
|
|
291
|
+
}
|
|
292
|
+
async getIntentByName(intentName) {
|
|
293
|
+
const intent = await IntentModel.findOne({ name: intentName });
|
|
272
294
|
if (intent) {
|
|
273
295
|
return {
|
|
274
296
|
name: intent.name,
|
|
@@ -280,9 +302,7 @@ var MongoDBIntent = class extends MongoDBMemory {
|
|
|
280
302
|
return void 0;
|
|
281
303
|
}
|
|
282
304
|
async saveIntent(intent) {
|
|
283
|
-
const newId = (0, import_node_crypto2.randomUUID)();
|
|
284
305
|
await IntentModel.create({
|
|
285
|
-
_id: newId,
|
|
286
306
|
name: intent.name,
|
|
287
307
|
description: intent.description,
|
|
288
308
|
prompt: intent.prompt,
|
|
@@ -291,7 +311,7 @@ var MongoDBIntent = class extends MongoDBMemory {
|
|
|
291
311
|
}
|
|
292
312
|
async updateIntent(intentId, intent) {
|
|
293
313
|
await IntentModel.updateOne({
|
|
294
|
-
_id: intentId
|
|
314
|
+
_id: new import_mongoose7.Types.ObjectId(intentId)
|
|
295
315
|
}, {
|
|
296
316
|
name: intent.name,
|
|
297
317
|
description: intent.description,
|
|
@@ -300,7 +320,7 @@ var MongoDBIntent = class extends MongoDBMemory {
|
|
|
300
320
|
});
|
|
301
321
|
}
|
|
302
322
|
async deleteIntent(intentId) {
|
|
303
|
-
await IntentModel.deleteOne({ _id: intentId });
|
|
323
|
+
await IntentModel.deleteOne({ _id: new import_mongoose7.Types.ObjectId(intentId) });
|
|
304
324
|
}
|
|
305
325
|
async listIntents() {
|
|
306
326
|
const intents = await IntentModel.find();
|
|
@@ -315,6 +335,6 @@ var MongoDBIntent = class extends MongoDBMemory {
|
|
|
315
335
|
// Annotate the CommonJS export names for ESM import in node:
|
|
316
336
|
0 && (module.exports = {
|
|
317
337
|
MongoDBIntent,
|
|
318
|
-
|
|
338
|
+
MongoDBThread
|
|
319
339
|
});
|
|
320
340
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../index.ts","../implements/session.memory.ts","../implements/base.memory.ts","../models/chats.model.ts","../implements/intent.memory.ts","../models/intent.model.ts"],"sourcesContent":["export { MongoDBSession } from \"./implements/session.memory\";\nexport { MongoDBIntent } from \"./implements/intent.memory\";","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 { type Document, Schema } from \"mongoose\";\n\n// ChatRole enum\nexport enum ChatRole {\n\tUSER = \"USER\",\n\tSYSTEM = \"SYSTEM\",\n\tMODEL = \"MODEL\",\n}\n\nexport const SessionObjectSchema = new Schema(\n\t{\n\t\tsessionId: {\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\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t},\n\t\tcreated_at: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tupdated_at: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t}\n\t},\n);\n\nexport interface SessionDocument extends Document {\n\tsessionId: string;\n\tuserId: string;\n\ttitle?: string;\n\tcreated_at: number;\n\tupdated_at: number;\n}\n\n// ChatContentObject schema\nexport const ChatContentObjectSchema = 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// ChatObject schema - 개별 문서로 저장\nexport const ChatObjectSchema = new Schema(\n\t{\n\t\tsessionId: {\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(ChatRole),\n\t\t\trequired: true,\n\t\t},\n\t\tcontent: {\n\t\t\ttype: ChatContentObjectSchema,\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// Chat Document interface\nexport interface ChatDocument extends Document {\n\tsessionId: string;\n\trole: ChatRole;\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","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}","import mongoose, { type Document, Schema } from \"mongoose\";\n\nconst IntentObjectSchema = new Schema(\n\t{\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprompt: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t},\n\t\tllm: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t},\n\t}\n);\n\nexport interface IntentDocument extends Document {\n\tname: string;\n\tdescription: string;\n\tprompt?: string;\n\tllm?: string;\n}\n\nexport const IntentModel = mongoose.model<IntentDocument>(\"Intent\", IntentObjectSchema);"],"mappings":"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","names":["import_mongoose","ChatRole","import_logger","import_node_crypto","import_mongoose","mongoose"]}
|
|
1
|
+
{"version":3,"sources":["../index.ts","../implements/thread.memory.ts","../implements/base.memory.ts","../models/threads.model.ts","../models/messages.model.ts","../models/intent.model.ts","../implements/intent.memory.ts"],"sourcesContent":["export { MongoDBThread } from \"./implements/thread.memory\";\nexport { MongoDBIntent } from \"./implements/intent.memory\";","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 { ThreadType } from \"@ainetwork/adk/types/memory\";\nimport { type Document, Schema } from \"mongoose\";\nimport mongoose from \"mongoose\";\n\nexport const ThreadObjectSchema = new Schema(\n\t{\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(ThreadType),\n\t\t\trequired: true,\n\t\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\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t},\n\t\tcreated_at: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tupdated_at: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t}\n\t},\n);\n\nexport interface ThreadDocument extends Document {\n\ttype: ThreadType;\n\tthreadId: string;\n\tuserId: string;\n\ttitle: string;\n\tcreated_at: number;\n\tupdated_at: number;\n}\n\nexport const ThreadModel = mongoose.model<ThreadDocument>(\"Thread\", ThreadObjectSchema);\n","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);","import mongoose, { type Document, Schema } from \"mongoose\";\n\nconst IntentObjectSchema = new Schema(\n\t{\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprompt: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t},\n\t\tllm: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t},\n\t}\n);\n\nexport interface IntentDocument extends Document {\n\tname: string;\n\tdescription: string;\n\tprompt?: string;\n\tllm?: string;\n}\n\nexport const IntentModel = mongoose.model<IntentDocument>(\"Intent\", IntentObjectSchema);","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":["mongoose","import_mongoose","mongoose","import_memory","import_mongoose","mongoose","import_logger","import_mongoose","mongoose","import_mongoose"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,36 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ThreadType, ThreadObject, ThreadMetadata, MessageObject, Intent } from '@ainetwork/adk/types/memory';
|
|
2
|
+
import { IThreadMemory, IIntentMemory } from '@ainetwork/adk/modules';
|
|
3
3
|
import { IMemory } from 'node_modules/@ainetwork/adk/dist/esm/modules/memory/base.memory';
|
|
4
|
-
import { Mongoose } from 'mongoose';
|
|
5
4
|
|
|
6
5
|
declare class MongoDBMemory implements IMemory {
|
|
7
6
|
private _isConnected;
|
|
8
7
|
private _uri;
|
|
9
|
-
private _mongoose;
|
|
10
8
|
constructor(uri: string);
|
|
11
|
-
getInstance(): Mongoose;
|
|
12
9
|
connect(): Promise<void>;
|
|
13
10
|
disconnect(): Promise<void>;
|
|
14
11
|
isConnected(): boolean;
|
|
15
12
|
}
|
|
16
13
|
|
|
17
|
-
declare class
|
|
18
|
-
private chatModel;
|
|
19
|
-
private sessionModel;
|
|
14
|
+
declare class MongoDBThread extends MongoDBMemory implements IThreadMemory {
|
|
20
15
|
constructor(uri: string);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
getThread(type: ThreadType, userId: string, threadId: string): Promise<ThreadObject | undefined>;
|
|
17
|
+
createThread(type: ThreadType, userId: string, threadId: string, title: string): Promise<ThreadMetadata>;
|
|
18
|
+
addMessagesToThread(userId: string, threadId: string, messages: MessageObject[]): Promise<void>;
|
|
19
|
+
deleteThread(userId: string, threadId: string): Promise<void>;
|
|
20
|
+
listThreads(userId: string): Promise<ThreadMetadata[]>;
|
|
26
21
|
}
|
|
27
22
|
|
|
28
23
|
declare class MongoDBIntent extends MongoDBMemory implements IIntentMemory {
|
|
29
24
|
getIntent(intentId: string): Promise<Intent | undefined>;
|
|
25
|
+
getIntentByName(intentName: string): Promise<Intent | undefined>;
|
|
30
26
|
saveIntent(intent: Intent): Promise<void>;
|
|
31
27
|
updateIntent(intentId: string, intent: Intent): Promise<void>;
|
|
32
28
|
deleteIntent(intentId: string): Promise<void>;
|
|
33
29
|
listIntents(): Promise<Intent[]>;
|
|
34
30
|
}
|
|
35
31
|
|
|
36
|
-
export { MongoDBIntent,
|
|
32
|
+
export { MongoDBIntent, MongoDBThread };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,36 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ThreadType, ThreadObject, ThreadMetadata, MessageObject, Intent } from '@ainetwork/adk/types/memory';
|
|
2
|
+
import { IThreadMemory, IIntentMemory } from '@ainetwork/adk/modules';
|
|
3
3
|
import { IMemory } from 'node_modules/@ainetwork/adk/dist/esm/modules/memory/base.memory';
|
|
4
|
-
import { Mongoose } from 'mongoose';
|
|
5
4
|
|
|
6
5
|
declare class MongoDBMemory implements IMemory {
|
|
7
6
|
private _isConnected;
|
|
8
7
|
private _uri;
|
|
9
|
-
private _mongoose;
|
|
10
8
|
constructor(uri: string);
|
|
11
|
-
getInstance(): Mongoose;
|
|
12
9
|
connect(): Promise<void>;
|
|
13
10
|
disconnect(): Promise<void>;
|
|
14
11
|
isConnected(): boolean;
|
|
15
12
|
}
|
|
16
13
|
|
|
17
|
-
declare class
|
|
18
|
-
private chatModel;
|
|
19
|
-
private sessionModel;
|
|
14
|
+
declare class MongoDBThread extends MongoDBMemory implements IThreadMemory {
|
|
20
15
|
constructor(uri: string);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
getThread(type: ThreadType, userId: string, threadId: string): Promise<ThreadObject | undefined>;
|
|
17
|
+
createThread(type: ThreadType, userId: string, threadId: string, title: string): Promise<ThreadMetadata>;
|
|
18
|
+
addMessagesToThread(userId: string, threadId: string, messages: MessageObject[]): Promise<void>;
|
|
19
|
+
deleteThread(userId: string, threadId: string): Promise<void>;
|
|
20
|
+
listThreads(userId: string): Promise<ThreadMetadata[]>;
|
|
26
21
|
}
|
|
27
22
|
|
|
28
23
|
declare class MongoDBIntent extends MongoDBMemory implements IIntentMemory {
|
|
29
24
|
getIntent(intentId: string): Promise<Intent | undefined>;
|
|
25
|
+
getIntentByName(intentName: string): Promise<Intent | undefined>;
|
|
30
26
|
saveIntent(intent: Intent): Promise<void>;
|
|
31
27
|
updateIntent(intentId: string, intent: Intent): Promise<void>;
|
|
32
28
|
deleteIntent(intentId: string): Promise<void>;
|
|
33
29
|
listIntents(): Promise<Intent[]>;
|
|
34
30
|
}
|
|
35
31
|
|
|
36
|
-
export { MongoDBIntent,
|
|
32
|
+
export { MongoDBIntent, MongoDBThread };
|