@t0ken.ai/memoryx-sdk 1.0.0
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/README.md +135 -0
- package/dist/client.d.ts +31 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +289 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +123 -0
- package/dist/index.js.map +1 -0
- package/dist/queue.d.ts +33 -0
- package/dist/queue.d.ts.map +1 -0
- package/dist/queue.js +309 -0
- package/dist/queue.js.map +1 -0
- package/dist/storage.d.ts +62 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +317 -0
- package/dist/storage.js.map +1 -0
- package/dist/types.d.ts +81 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +43 -0
package/dist/storage.js
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SQLiteStorage = void 0;
|
|
37
|
+
exports.setStorageDir = setStorageDir;
|
|
38
|
+
exports.getStorageDir = getStorageDir;
|
|
39
|
+
exports.getDb = getDb;
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const os = __importStar(require("os"));
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
let dbPromise = null;
|
|
44
|
+
let storageDir = null;
|
|
45
|
+
function setStorageDir(dir) {
|
|
46
|
+
storageDir = dir;
|
|
47
|
+
}
|
|
48
|
+
function getStorageDir() {
|
|
49
|
+
if (storageDir)
|
|
50
|
+
return storageDir;
|
|
51
|
+
return path.join(os.homedir(), ".memoryx", "sdk");
|
|
52
|
+
}
|
|
53
|
+
async function getDb() {
|
|
54
|
+
if (dbPromise)
|
|
55
|
+
return dbPromise;
|
|
56
|
+
dbPromise = (async () => {
|
|
57
|
+
const dir = getStorageDir();
|
|
58
|
+
if (!fs.existsSync(dir)) {
|
|
59
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
60
|
+
}
|
|
61
|
+
const Database = (await Promise.resolve().then(() => __importStar(require("better-sqlite3")))).default;
|
|
62
|
+
const dbPath = path.join(dir, "memoryx.db");
|
|
63
|
+
const db = new Database(dbPath);
|
|
64
|
+
db.exec(`
|
|
65
|
+
CREATE TABLE IF NOT EXISTS config (
|
|
66
|
+
key TEXT PRIMARY KEY,
|
|
67
|
+
value TEXT
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
CREATE TABLE IF NOT EXISTS memory_queue (
|
|
71
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
72
|
+
content TEXT NOT NULL,
|
|
73
|
+
metadata TEXT DEFAULT '{}',
|
|
74
|
+
timestamp INTEGER NOT NULL,
|
|
75
|
+
retry_count INTEGER DEFAULT 0
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
CREATE TABLE IF NOT EXISTS conversation_queue (
|
|
79
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
80
|
+
conversation_id TEXT NOT NULL,
|
|
81
|
+
conversation_created_at INTEGER NOT NULL,
|
|
82
|
+
role TEXT NOT NULL,
|
|
83
|
+
content TEXT NOT NULL,
|
|
84
|
+
timestamp INTEGER NOT NULL,
|
|
85
|
+
retry_count INTEGER DEFAULT 0
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
CREATE INDEX IF NOT EXISTS idx_memory_queue_timestamp ON memory_queue(timestamp);
|
|
89
|
+
CREATE INDEX IF NOT EXISTS idx_conversation_created ON conversation_queue(conversation_created_at);
|
|
90
|
+
CREATE INDEX IF NOT EXISTS idx_conversation_id ON conversation_queue(conversation_id);
|
|
91
|
+
|
|
92
|
+
CREATE TABLE IF NOT EXISTS dead_letter_queue (
|
|
93
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
94
|
+
queue_type TEXT NOT NULL,
|
|
95
|
+
conversation_id TEXT,
|
|
96
|
+
data TEXT NOT NULL,
|
|
97
|
+
retry_count INTEGER DEFAULT 0,
|
|
98
|
+
error_message TEXT,
|
|
99
|
+
created_at INTEGER NOT NULL
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
CREATE INDEX IF NOT EXISTS idx_dlq_type ON dead_letter_queue(queue_type);
|
|
103
|
+
CREATE INDEX IF NOT EXISTS idx_dlq_created ON dead_letter_queue(created_at);
|
|
104
|
+
`);
|
|
105
|
+
return db;
|
|
106
|
+
})();
|
|
107
|
+
return dbPromise;
|
|
108
|
+
}
|
|
109
|
+
class SQLiteStorage {
|
|
110
|
+
static async loadConfig() {
|
|
111
|
+
try {
|
|
112
|
+
const db = await getDb();
|
|
113
|
+
const row = db.prepare("SELECT value FROM config WHERE key = 'config'").get();
|
|
114
|
+
if (row) {
|
|
115
|
+
return JSON.parse(row.value);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
// ignore
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
static async saveConfig(config) {
|
|
124
|
+
try {
|
|
125
|
+
const db = await getDb();
|
|
126
|
+
db.prepare("INSERT OR REPLACE INTO config (key, value) VALUES ('config', ?)").run(JSON.stringify(config));
|
|
127
|
+
}
|
|
128
|
+
catch (e) {
|
|
129
|
+
// ignore
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Memory queue operations
|
|
133
|
+
static async addToMemoryQueue(content, metadata = {}) {
|
|
134
|
+
const db = await getDb();
|
|
135
|
+
const result = db.prepare(`
|
|
136
|
+
INSERT INTO memory_queue (content, metadata, timestamp)
|
|
137
|
+
VALUES (?, ?, ?)
|
|
138
|
+
`).run(content, JSON.stringify(metadata), Date.now());
|
|
139
|
+
return result.lastInsertRowid;
|
|
140
|
+
}
|
|
141
|
+
static async getMemoryQueueItems(limit = 100) {
|
|
142
|
+
const db = await getDb();
|
|
143
|
+
return db.prepare(`
|
|
144
|
+
SELECT id, content, metadata, timestamp, retry_count
|
|
145
|
+
FROM memory_queue
|
|
146
|
+
ORDER BY id ASC
|
|
147
|
+
LIMIT ?
|
|
148
|
+
`).all(limit);
|
|
149
|
+
}
|
|
150
|
+
static async deleteMemoryItems(ids) {
|
|
151
|
+
if (ids.length === 0)
|
|
152
|
+
return;
|
|
153
|
+
const db = await getDb();
|
|
154
|
+
const placeholders = ids.map(() => '?').join(',');
|
|
155
|
+
db.prepare(`DELETE FROM memory_queue WHERE id IN (${placeholders})`).run(...ids);
|
|
156
|
+
}
|
|
157
|
+
static async incrementMemoryRetry(ids) {
|
|
158
|
+
if (ids.length === 0)
|
|
159
|
+
return;
|
|
160
|
+
const db = await getDb();
|
|
161
|
+
const placeholders = ids.map(() => '?').join(',');
|
|
162
|
+
db.prepare(`UPDATE memory_queue SET retry_count = retry_count + 1 WHERE id IN (${placeholders})`).run(...ids);
|
|
163
|
+
}
|
|
164
|
+
static async deleteOldMemoryRetries(maxRetry = 5, maxAgeSeconds = 7 * 24 * 60 * 60) {
|
|
165
|
+
const db = await getDb();
|
|
166
|
+
const cutoffMs = Date.now() - maxAgeSeconds * 1000;
|
|
167
|
+
db.prepare("DELETE FROM memory_queue WHERE retry_count >= ? OR timestamp < ?").run(maxRetry, cutoffMs);
|
|
168
|
+
}
|
|
169
|
+
static async getMemoryQueueLength() {
|
|
170
|
+
const db = await getDb();
|
|
171
|
+
const row = db.prepare("SELECT COUNT(*) as count FROM memory_queue").get();
|
|
172
|
+
return row?.count || 0;
|
|
173
|
+
}
|
|
174
|
+
static async getMemoryQueueItemsExceedingRetry(maxRetry) {
|
|
175
|
+
const db = await getDb();
|
|
176
|
+
return db.prepare(`
|
|
177
|
+
SELECT id, content, metadata, retry_count
|
|
178
|
+
FROM memory_queue
|
|
179
|
+
WHERE retry_count >= ?
|
|
180
|
+
`).all(maxRetry);
|
|
181
|
+
}
|
|
182
|
+
static async moveMemoryToDeadLetterQueue(id, queueType = 'memory', errorMessage = '') {
|
|
183
|
+
const db = await getDb();
|
|
184
|
+
// 获取 memory 数据
|
|
185
|
+
const row = db.prepare("SELECT content, metadata, retry_count FROM memory_queue WHERE id = ?").get(id);
|
|
186
|
+
if (!row)
|
|
187
|
+
return;
|
|
188
|
+
// 插入死信队列
|
|
189
|
+
db.prepare(`
|
|
190
|
+
INSERT INTO dead_letter_queue (queue_type, conversation_id, data, retry_count, error_message, created_at)
|
|
191
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
192
|
+
`).run(queueType, null, JSON.stringify({ content: row.content, metadata: row.metadata }), row.retry_count, errorMessage, Date.now());
|
|
193
|
+
}
|
|
194
|
+
// Conversation queue operations
|
|
195
|
+
static async addToConversationQueue(conversationId, conversationCreatedAt, role, content) {
|
|
196
|
+
const db = await getDb();
|
|
197
|
+
const result = db.prepare(`
|
|
198
|
+
INSERT INTO conversation_queue (conversation_id, conversation_created_at, role, content, timestamp)
|
|
199
|
+
VALUES (?, ?, ?, ?, ?)
|
|
200
|
+
`).run(conversationId, conversationCreatedAt, role, content, Date.now());
|
|
201
|
+
return result.lastInsertRowid;
|
|
202
|
+
}
|
|
203
|
+
static async getConversationStats(conversationId) {
|
|
204
|
+
const db = await getDb();
|
|
205
|
+
const rows = db.prepare(`
|
|
206
|
+
SELECT role FROM conversation_queue
|
|
207
|
+
WHERE conversation_id = ?
|
|
208
|
+
ORDER BY id ASC
|
|
209
|
+
`).all(conversationId);
|
|
210
|
+
let rounds = 0;
|
|
211
|
+
let i = 0;
|
|
212
|
+
while (i < rows.length) {
|
|
213
|
+
if (rows[i].role === 'user') {
|
|
214
|
+
if (i + 1 < rows.length && rows[i + 1].role === 'assistant') {
|
|
215
|
+
rounds++;
|
|
216
|
+
i += 2;
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
i++;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
i++;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return { count: rows.length, rounds };
|
|
227
|
+
}
|
|
228
|
+
static async getConversationMessages(conversationId) {
|
|
229
|
+
const db = await getDb();
|
|
230
|
+
return db.prepare(`
|
|
231
|
+
SELECT id, role, content, timestamp, retry_count
|
|
232
|
+
FROM conversation_queue
|
|
233
|
+
WHERE conversation_id = ?
|
|
234
|
+
ORDER BY id ASC
|
|
235
|
+
`).all(conversationId);
|
|
236
|
+
}
|
|
237
|
+
static async getNextConversation() {
|
|
238
|
+
const db = await getDb();
|
|
239
|
+
const row = db.prepare(`
|
|
240
|
+
SELECT conversation_id, MIN(conversation_created_at) as conversation_created_at
|
|
241
|
+
FROM conversation_queue
|
|
242
|
+
GROUP BY conversation_id
|
|
243
|
+
ORDER BY MIN(conversation_created_at) ASC
|
|
244
|
+
LIMIT 1
|
|
245
|
+
`).get();
|
|
246
|
+
return row ? { conversationId: row.conversation_id, conversationCreatedAt: row.conversation_created_at } : null;
|
|
247
|
+
}
|
|
248
|
+
static async deleteConversation(conversationId) {
|
|
249
|
+
const db = await getDb();
|
|
250
|
+
db.prepare("DELETE FROM conversation_queue WHERE conversation_id = ?").run(conversationId);
|
|
251
|
+
}
|
|
252
|
+
static async incrementConversationRetry(conversationId) {
|
|
253
|
+
const db = await getDb();
|
|
254
|
+
db.prepare("UPDATE conversation_queue SET retry_count = retry_count + 1 WHERE conversation_id = ?").run(conversationId);
|
|
255
|
+
}
|
|
256
|
+
static async getConversationMaxRetry(conversationId) {
|
|
257
|
+
const db = await getDb();
|
|
258
|
+
const row = db.prepare("SELECT MAX(retry_count) as max_retry FROM conversation_queue WHERE conversation_id = ?").get(conversationId);
|
|
259
|
+
return row?.max_retry || 0;
|
|
260
|
+
}
|
|
261
|
+
static async clearOldConversations(maxAgeSeconds = 7 * 24 * 60 * 60) {
|
|
262
|
+
const db = await getDb();
|
|
263
|
+
const cutoff = Math.floor(Date.now() / 1000) - maxAgeSeconds;
|
|
264
|
+
db.prepare("DELETE FROM conversation_queue WHERE conversation_created_at < ?").run(cutoff);
|
|
265
|
+
}
|
|
266
|
+
static async getConversationQueueLength() {
|
|
267
|
+
const db = await getDb();
|
|
268
|
+
const row = db.prepare("SELECT COUNT(DISTINCT conversation_id) as count FROM conversation_queue").get();
|
|
269
|
+
return row?.count || 0;
|
|
270
|
+
}
|
|
271
|
+
static async getOldestMessageAge(conversationId) {
|
|
272
|
+
const db = await getDb();
|
|
273
|
+
const row = db.prepare("SELECT MIN(timestamp) as oldest FROM conversation_queue WHERE conversation_id = ?").get(conversationId);
|
|
274
|
+
if (!row?.oldest)
|
|
275
|
+
return 0;
|
|
276
|
+
return Date.now() - row.oldest;
|
|
277
|
+
}
|
|
278
|
+
// Dead Letter Queue operations
|
|
279
|
+
static async moveToDeadLetterQueue(conversationId, queueType = 'conversation', errorMessage = '') {
|
|
280
|
+
const db = await getDb();
|
|
281
|
+
// 获取会话的所有消息
|
|
282
|
+
const messages = await this.getConversationMessages(conversationId);
|
|
283
|
+
if (messages.length === 0)
|
|
284
|
+
return;
|
|
285
|
+
const maxRetry = await this.getConversationMaxRetry(conversationId);
|
|
286
|
+
// 插入死信队列
|
|
287
|
+
db.prepare(`
|
|
288
|
+
INSERT INTO dead_letter_queue (queue_type, conversation_id, data, retry_count, error_message, created_at)
|
|
289
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
290
|
+
`).run(queueType, conversationId, JSON.stringify(messages), maxRetry, errorMessage, Date.now());
|
|
291
|
+
}
|
|
292
|
+
static async getDeadLetterQueueItems(limit = 100) {
|
|
293
|
+
const db = await getDb();
|
|
294
|
+
return db.prepare(`
|
|
295
|
+
SELECT id, queue_type, conversation_id, data, retry_count, error_message, created_at
|
|
296
|
+
FROM dead_letter_queue
|
|
297
|
+
ORDER BY created_at DESC
|
|
298
|
+
LIMIT ?
|
|
299
|
+
`).all(limit);
|
|
300
|
+
}
|
|
301
|
+
static async getDeadLetterQueueCount() {
|
|
302
|
+
const db = await getDb();
|
|
303
|
+
const row = db.prepare("SELECT COUNT(*) as count FROM dead_letter_queue").get();
|
|
304
|
+
return row?.count || 0;
|
|
305
|
+
}
|
|
306
|
+
static async deleteDeadLetterItem(id) {
|
|
307
|
+
const db = await getDb();
|
|
308
|
+
db.prepare("DELETE FROM dead_letter_queue WHERE id = ?").run(id);
|
|
309
|
+
}
|
|
310
|
+
static async clearDeadLetterQueue(maxAgeSeconds = 30 * 24 * 60 * 60) {
|
|
311
|
+
const db = await getDb();
|
|
312
|
+
const cutoff = Date.now() - maxAgeSeconds * 1000;
|
|
313
|
+
db.prepare("DELETE FROM dead_letter_queue WHERE created_at < ?").run(cutoff);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
exports.SQLiteStorage = SQLiteStorage;
|
|
317
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export interface FlushStrategy {
|
|
2
|
+
rounds?: number;
|
|
3
|
+
batchSize?: number;
|
|
4
|
+
intervalMs?: number;
|
|
5
|
+
maxTokens?: number;
|
|
6
|
+
customTrigger?: (stats: QueueStats) => boolean;
|
|
7
|
+
}
|
|
8
|
+
export type PresetMode = 'realtime' | 'batch' | 'conversation';
|
|
9
|
+
export interface MemoryXSDKOptions {
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
apiUrl?: string;
|
|
12
|
+
projectId?: string;
|
|
13
|
+
strategy?: FlushStrategy;
|
|
14
|
+
preset?: PresetMode;
|
|
15
|
+
storageDir?: string;
|
|
16
|
+
autoRegister?: boolean;
|
|
17
|
+
agentType?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface QueueStats {
|
|
20
|
+
messageCount: number;
|
|
21
|
+
rounds: number;
|
|
22
|
+
totalTokens: number;
|
|
23
|
+
oldestMessageAge: number;
|
|
24
|
+
conversationId: string;
|
|
25
|
+
}
|
|
26
|
+
export interface QueueItem {
|
|
27
|
+
id: number;
|
|
28
|
+
content: string;
|
|
29
|
+
metadata: string;
|
|
30
|
+
timestamp: number;
|
|
31
|
+
retry_count: number;
|
|
32
|
+
}
|
|
33
|
+
export interface ConversationItem {
|
|
34
|
+
id: number;
|
|
35
|
+
conversation_id: string;
|
|
36
|
+
conversation_created_at: number;
|
|
37
|
+
role: string;
|
|
38
|
+
content: string;
|
|
39
|
+
timestamp: number;
|
|
40
|
+
retry_count: number;
|
|
41
|
+
}
|
|
42
|
+
export interface Memory {
|
|
43
|
+
content: string;
|
|
44
|
+
metadata?: Record<string, any>;
|
|
45
|
+
}
|
|
46
|
+
export interface Message {
|
|
47
|
+
role: 'user' | 'assistant';
|
|
48
|
+
content: string;
|
|
49
|
+
timestamp?: number;
|
|
50
|
+
tokens?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface SearchResult {
|
|
53
|
+
id: string;
|
|
54
|
+
content: string;
|
|
55
|
+
category: string;
|
|
56
|
+
score: number;
|
|
57
|
+
}
|
|
58
|
+
export interface SearchResponse {
|
|
59
|
+
success: boolean;
|
|
60
|
+
data: SearchResult[];
|
|
61
|
+
related_memories?: SearchResult[];
|
|
62
|
+
remaining_quota?: number;
|
|
63
|
+
}
|
|
64
|
+
export interface AddResponse {
|
|
65
|
+
success: boolean;
|
|
66
|
+
task_id?: string;
|
|
67
|
+
status?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface AccountInfo {
|
|
70
|
+
agent_id: string;
|
|
71
|
+
api_key: string;
|
|
72
|
+
project_id: string;
|
|
73
|
+
}
|
|
74
|
+
export interface StoredConfig {
|
|
75
|
+
apiKey: string | null;
|
|
76
|
+
projectId: string;
|
|
77
|
+
userId: string | null;
|
|
78
|
+
apiBaseUrl: string;
|
|
79
|
+
}
|
|
80
|
+
export declare const PRESETS: Record<PresetMode, FlushStrategy>;
|
|
81
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PRESETS = void 0;
|
|
4
|
+
exports.PRESETS = {
|
|
5
|
+
realtime: { batchSize: 1, intervalMs: 0 },
|
|
6
|
+
batch: { batchSize: 50, intervalMs: 5000 },
|
|
7
|
+
conversation: { maxTokens: 30000, intervalMs: 5 * 60 * 1000 }
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA4Fa,QAAA,OAAO,GAAsC;IACxD,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IACzC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;IAC1C,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE;CAC9D,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@t0ken.ai/memoryx-sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MemoryX Node.js SDK - 让 AI Agents 轻松拥有持久记忆",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"prepublishOnly": "npm run build"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [
|
|
12
|
+
"memory",
|
|
13
|
+
"ai",
|
|
14
|
+
"agent",
|
|
15
|
+
"llm",
|
|
16
|
+
"cognitive",
|
|
17
|
+
"memoryx",
|
|
18
|
+
"mcp"
|
|
19
|
+
],
|
|
20
|
+
"author": "MemoryX Team",
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "https://github.com/CensorKo/MemoryX"
|
|
25
|
+
},
|
|
26
|
+
"homepage": "https://t0ken.ai",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"better-sqlite3": "^11.0.0",
|
|
29
|
+
"js-tiktoken": "^1.0.0"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/better-sqlite3": "^7.6.11",
|
|
33
|
+
"@types/node": "^20.0.0",
|
|
34
|
+
"typescript": "^5.0.0"
|
|
35
|
+
},
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=18.0.0"
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"dist",
|
|
41
|
+
"README.md"
|
|
42
|
+
]
|
|
43
|
+
}
|