@falai/agent 0.3.20 → 0.3.21

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 (41) hide show
  1. package/README.md +8 -6
  2. package/dist/adapters/MemoryAdapter.d.ts +47 -0
  3. package/dist/adapters/MemoryAdapter.d.ts.map +1 -0
  4. package/dist/adapters/MemoryAdapter.js +178 -0
  5. package/dist/adapters/MemoryAdapter.js.map +1 -0
  6. package/dist/adapters/SQLiteAdapter.d.ts +69 -0
  7. package/dist/adapters/SQLiteAdapter.d.ts.map +1 -0
  8. package/dist/adapters/SQLiteAdapter.js +307 -0
  9. package/dist/adapters/SQLiteAdapter.js.map +1 -0
  10. package/dist/adapters/index.d.ts +3 -0
  11. package/dist/adapters/index.d.ts.map +1 -1
  12. package/dist/adapters/index.js +2 -0
  13. package/dist/adapters/index.js.map +1 -1
  14. package/dist/cjs/adapters/MemoryAdapter.d.ts +47 -0
  15. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +1 -0
  16. package/dist/cjs/adapters/MemoryAdapter.js +182 -0
  17. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -0
  18. package/dist/cjs/adapters/SQLiteAdapter.d.ts +69 -0
  19. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -0
  20. package/dist/cjs/adapters/SQLiteAdapter.js +311 -0
  21. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -0
  22. package/dist/cjs/adapters/index.d.ts +3 -0
  23. package/dist/cjs/adapters/index.d.ts.map +1 -1
  24. package/dist/cjs/adapters/index.js +5 -1
  25. package/dist/cjs/adapters/index.js.map +1 -1
  26. package/dist/cjs/index.d.ts +3 -0
  27. package/dist/cjs/index.d.ts.map +1 -1
  28. package/dist/cjs/index.js +5 -1
  29. package/dist/cjs/index.js.map +1 -1
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +2 -0
  33. package/dist/index.js.map +1 -1
  34. package/docs/ADAPTERS.md +27 -3
  35. package/docs/API_REFERENCE.md +111 -0
  36. package/docs/PERSISTENCE.md +76 -0
  37. package/package.json +6 -2
  38. package/src/adapters/MemoryAdapter.ts +245 -0
  39. package/src/adapters/SQLiteAdapter.ts +449 -0
  40. package/src/adapters/index.ts +9 -0
  41. package/src/index.ts +7 -0
package/README.md CHANGED
@@ -929,12 +929,14 @@ Fast, in-memory persistence for high-throughput applications:
929
929
 
930
930
  ### 🎯 Available Adapters
931
931
 
932
- | Adapter | Use Case | Install |
933
- | --------------------- | --------------------------------- | ---------------------------- |
934
- | **PrismaAdapter** | Type-safe ORM with migrations | `npm install @prisma/client` |
935
- | **RedisAdapter** | Fast in-memory for real-time apps | `npm install ioredis` |
936
- | **MongoAdapter** | Flexible document storage | `npm install mongodb` |
937
- | **PostgreSQLAdapter** | Raw SQL with auto table creation | `npm install pg` |
932
+ | Adapter | Use Case | Install |
933
+ | --------------------- | ---------------------------------- | ----------------------------- |
934
+ | **PrismaAdapter** | Type-safe ORM with migrations | `npm install @prisma/client` |
935
+ | **RedisAdapter** | Fast in-memory for real-time apps | `npm install ioredis` |
936
+ | **MongoAdapter** | Flexible document storage | `npm install mongodb` |
937
+ | **PostgreSQLAdapter** | Raw SQL with auto table creation | `npm install pg` |
938
+ | **SQLiteAdapter** | Lightweight local database | `npm install better-sqlite3` |
939
+ | **MemoryAdapter** | Testing & development (no install) | Built-in (no dependencies) ✨ |
938
940
 
939
941
  ### ⚡ Quick Setup
940
942
 
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Memory adapter for persistence
3
+ * In-memory storage for testing and development (no database required)
4
+ */
5
+ import type { SessionRepository, MessageRepository, SessionData, MessageData, PersistenceAdapter } from "../types/persistence";
6
+ /**
7
+ * Memory Adapter - Provider-style API for in-memory persistence
8
+ *
9
+ * Perfect for:
10
+ * - Testing
11
+ * - Development
12
+ * - Prototyping
13
+ * - No database setup required
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { Agent, MemoryAdapter } from '@falai/agent';
18
+ *
19
+ * const agent = new Agent({
20
+ * name: "My Agent",
21
+ * ai: provider,
22
+ * persistence: {
23
+ * adapter: new MemoryAdapter(),
24
+ * userId: "user_123",
25
+ * },
26
+ * });
27
+ * ```
28
+ */
29
+ export declare class MemoryAdapter implements PersistenceAdapter {
30
+ readonly sessionRepository: SessionRepository;
31
+ readonly messageRepository: MessageRepository;
32
+ private sessions;
33
+ private messages;
34
+ constructor();
35
+ /**
36
+ * Clear all data (useful for testing)
37
+ */
38
+ clear(): void;
39
+ /**
40
+ * Get data snapshot (useful for debugging)
41
+ */
42
+ getSnapshot(): {
43
+ sessions: SessionData[];
44
+ messages: MessageData[];
45
+ };
46
+ }
47
+ //# sourceMappingURL=MemoryAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/MemoryAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,WAAW,EAEX,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,aAAc,YAAW,kBAAkB;IACtD,SAAgB,iBAAiB,EAAE,iBAAiB,CAAC;IACrD,SAAgB,iBAAiB,EAAE,iBAAiB,CAAC;IACrD,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAA2B;;IAU3C;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,WAAW,IAAI;QACb,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,QAAQ,EAAE,WAAW,EAAE,CAAC;KACzB;CAMF"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Memory adapter for persistence
3
+ * In-memory storage for testing and development (no database required)
4
+ */
5
+ /**
6
+ * Memory Adapter - Provider-style API for in-memory persistence
7
+ *
8
+ * Perfect for:
9
+ * - Testing
10
+ * - Development
11
+ * - Prototyping
12
+ * - No database setup required
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { Agent, MemoryAdapter } from '@falai/agent';
17
+ *
18
+ * const agent = new Agent({
19
+ * name: "My Agent",
20
+ * ai: provider,
21
+ * persistence: {
22
+ * adapter: new MemoryAdapter(),
23
+ * userId: "user_123",
24
+ * },
25
+ * });
26
+ * ```
27
+ */
28
+ export class MemoryAdapter {
29
+ constructor() {
30
+ this.sessions = new Map();
31
+ this.messages = new Map();
32
+ this.sessionRepository = new MemorySessionRepository(this.sessions);
33
+ this.messageRepository = new MemoryMessageRepository(this.messages);
34
+ }
35
+ /**
36
+ * Clear all data (useful for testing)
37
+ */
38
+ clear() {
39
+ this.sessions.clear();
40
+ this.messages.clear();
41
+ }
42
+ /**
43
+ * Get data snapshot (useful for debugging)
44
+ */
45
+ getSnapshot() {
46
+ return {
47
+ sessions: Array.from(this.sessions.values()),
48
+ messages: Array.from(this.messages.values()),
49
+ };
50
+ }
51
+ }
52
+ /**
53
+ * Memory Session Repository
54
+ */
55
+ class MemorySessionRepository {
56
+ constructor(sessions) {
57
+ this.sessions = sessions;
58
+ }
59
+ async create(data) {
60
+ const id = `session_${Date.now()}_${Math.random().toString(36).slice(2)}`;
61
+ const now = new Date();
62
+ const session = {
63
+ ...data,
64
+ id,
65
+ status: data.status || "active",
66
+ messageCount: data.messageCount || 0,
67
+ createdAt: now,
68
+ updatedAt: now,
69
+ };
70
+ this.sessions.set(id, session);
71
+ return Promise.resolve(session);
72
+ }
73
+ async findById(id) {
74
+ const session = this.sessions.get(id) || null;
75
+ return Promise.resolve(session);
76
+ }
77
+ async findActiveByUserId(userId) {
78
+ const sessions = Array.from(this.sessions.values())
79
+ .filter((s) => s.userId === userId && s.status === "active")
80
+ .sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
81
+ return Promise.resolve(sessions[0] || null);
82
+ }
83
+ async findByUserId(userId, limit = 100) {
84
+ const sessions = Array.from(this.sessions.values())
85
+ .filter((s) => s.userId === userId)
86
+ .sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime())
87
+ .slice(0, limit);
88
+ return Promise.resolve(sessions);
89
+ }
90
+ async update(id, data) {
91
+ const existing = this.sessions.get(id);
92
+ if (!existing)
93
+ return null;
94
+ const updated = {
95
+ ...existing,
96
+ ...data,
97
+ updatedAt: new Date(),
98
+ };
99
+ this.sessions.set(id, updated);
100
+ return Promise.resolve(updated);
101
+ }
102
+ async updateStatus(id, status, completedAt) {
103
+ return await this.update(id, { status, completedAt });
104
+ }
105
+ async updateCollectedData(id, collectedData) {
106
+ return await this.update(id, { collectedData });
107
+ }
108
+ async updateRouteState(id, route, state) {
109
+ return await this.update(id, {
110
+ currentRoute: route,
111
+ currentState: state,
112
+ });
113
+ }
114
+ async incrementMessageCount(id) {
115
+ const session = this.sessions.get(id);
116
+ if (!session)
117
+ return null;
118
+ return await this.update(id, {
119
+ messageCount: (session.messageCount || 0) + 1,
120
+ lastMessageAt: new Date(),
121
+ });
122
+ }
123
+ async delete(id) {
124
+ const result = this.sessions.delete(id);
125
+ return Promise.resolve(result);
126
+ }
127
+ }
128
+ /**
129
+ * Memory Message Repository
130
+ */
131
+ class MemoryMessageRepository {
132
+ constructor(messages) {
133
+ this.messages = messages;
134
+ }
135
+ async create(data) {
136
+ const id = `msg_${Date.now()}_${Math.random().toString(36).slice(2)}`;
137
+ const message = {
138
+ ...data,
139
+ id,
140
+ createdAt: new Date(),
141
+ };
142
+ this.messages.set(id, message);
143
+ return Promise.resolve(message);
144
+ }
145
+ async findById(id) {
146
+ const message = this.messages.get(id) || null;
147
+ return Promise.resolve(message);
148
+ }
149
+ async findBySessionId(sessionId, limit = 1000) {
150
+ const messages = Array.from(this.messages.values())
151
+ .filter((m) => m.sessionId === sessionId)
152
+ .sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime())
153
+ .slice(0, limit);
154
+ return Promise.resolve(messages);
155
+ }
156
+ async findByUserId(userId, limit = 100) {
157
+ const messages = Array.from(this.messages.values())
158
+ .filter((m) => m.userId === userId)
159
+ .sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime())
160
+ .slice(0, limit);
161
+ return Promise.resolve(messages);
162
+ }
163
+ async delete(id) {
164
+ const result = this.messages.delete(id);
165
+ return Promise.resolve(result);
166
+ }
167
+ async deleteBySessionId(sessionId) {
168
+ const toDelete = Array.from(this.messages.values()).filter((m) => m.sessionId === sessionId);
169
+ toDelete.forEach((m) => this.messages.delete(m.id));
170
+ return Promise.resolve(toDelete.length);
171
+ }
172
+ async deleteByUserId(userId) {
173
+ const toDelete = Array.from(this.messages.values()).filter((m) => m.userId === userId);
174
+ toDelete.forEach((m) => this.messages.delete(m.id));
175
+ return Promise.resolve(toDelete.length);
176
+ }
177
+ }
178
+ //# sourceMappingURL=MemoryAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryAdapter.js","sourceRoot":"","sources":["../../src/adapters/MemoryAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * SQLite adapter for persistence
3
+ * Lightweight, file-based database perfect for local development
4
+ */
5
+ import type { SessionRepository, MessageRepository, PersistenceAdapter } from "../types/persistence";
6
+ /**
7
+ * SQLite database interface - matches better-sqlite3
8
+ */
9
+ export interface SqliteDatabase {
10
+ prepare(sql: string): SqliteStatement;
11
+ exec(sql: string): void;
12
+ close(): void;
13
+ }
14
+ /**
15
+ * SQLite statement interface
16
+ */
17
+ export interface SqliteStatement {
18
+ run(...params: unknown[]): {
19
+ changes: number;
20
+ lastInsertRowid: number;
21
+ };
22
+ get(...params: unknown[]): Record<string, unknown> | undefined;
23
+ all(...params: unknown[]): Array<Record<string, unknown>>;
24
+ }
25
+ /**
26
+ * Options for SQLite adapter
27
+ */
28
+ export interface SQLiteAdapterOptions {
29
+ /**
30
+ * SQLite database instance (better-sqlite3)
31
+ */
32
+ db: SqliteDatabase;
33
+ /**
34
+ * Table names (default: "agent_sessions" and "agent_messages")
35
+ */
36
+ tables?: {
37
+ sessions?: string;
38
+ messages?: string;
39
+ };
40
+ }
41
+ /**
42
+ * SQLite Adapter - Provider-style API for SQLite persistence
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * import Database from 'better-sqlite3';
47
+ * import { Agent, SQLiteAdapter } from '@falai/agent';
48
+ *
49
+ * const db = new Database('agent.db');
50
+ *
51
+ * const agent = new Agent({
52
+ * name: "My Agent",
53
+ * ai: provider,
54
+ * persistence: {
55
+ * adapter: new SQLiteAdapter({ db }),
56
+ * userId: "user_123",
57
+ * },
58
+ * });
59
+ * ```
60
+ */
61
+ export declare class SQLiteAdapter implements PersistenceAdapter {
62
+ readonly sessionRepository: SessionRepository;
63
+ readonly messageRepository: MessageRepository;
64
+ private db;
65
+ constructor(options: SQLiteAdapterOptions);
66
+ initialize(): Promise<void>;
67
+ disconnect(): Promise<void>;
68
+ }
69
+ //# sourceMappingURL=SQLiteAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLiteAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/SQLiteAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAIjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC/D,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,EAAE,EAAE,cAAc,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,aAAc,YAAW,kBAAkB;IACtD,SAAgB,iBAAiB,EAAE,iBAAiB,CAAC;IACrD,SAAgB,iBAAiB,EAAE,iBAAiB,CAAC;IACrD,OAAO,CAAC,EAAE,CAAiB;gBAEf,OAAO,EAAE,oBAAoB;IAUnC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqD3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAIlC"}
@@ -0,0 +1,307 @@
1
+ /**
2
+ * SQLite adapter for persistence
3
+ * Lightweight, file-based database perfect for local development
4
+ */
5
+ /**
6
+ * SQLite Adapter - Provider-style API for SQLite persistence
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import Database from 'better-sqlite3';
11
+ * import { Agent, SQLiteAdapter } from '@falai/agent';
12
+ *
13
+ * const db = new Database('agent.db');
14
+ *
15
+ * const agent = new Agent({
16
+ * name: "My Agent",
17
+ * ai: provider,
18
+ * persistence: {
19
+ * adapter: new SQLiteAdapter({ db }),
20
+ * userId: "user_123",
21
+ * },
22
+ * });
23
+ * ```
24
+ */
25
+ export class SQLiteAdapter {
26
+ constructor(options) {
27
+ this.db = options.db;
28
+ const sessionTable = options.tables?.sessions || "agent_sessions";
29
+ const messageTable = options.tables?.messages || "agent_messages";
30
+ this.sessionRepository = new SQLiteSessionRepository(this.db, sessionTable);
31
+ this.messageRepository = new SQLiteMessageRepository(this.db, messageTable);
32
+ }
33
+ async initialize() {
34
+ const sessionTable = "agent_sessions";
35
+ const messageTable = "agent_messages";
36
+ // Create sessions table
37
+ this.db.exec(`
38
+ CREATE TABLE IF NOT EXISTS ${sessionTable} (
39
+ id TEXT PRIMARY KEY,
40
+ user_id TEXT,
41
+ agent_name TEXT,
42
+ status TEXT DEFAULT 'active',
43
+ current_route TEXT,
44
+ current_state TEXT,
45
+ collected_data TEXT,
46
+ message_count INTEGER DEFAULT 0,
47
+ last_message_at TEXT,
48
+ completed_at TEXT,
49
+ created_at TEXT NOT NULL,
50
+ updated_at TEXT NOT NULL
51
+ )
52
+ `);
53
+ // Create indexes for sessions
54
+ this.db.exec(`
55
+ CREATE INDEX IF NOT EXISTS idx_sessions_user_id ON ${sessionTable}(user_id);
56
+ CREATE INDEX IF NOT EXISTS idx_sessions_status ON ${sessionTable}(status);
57
+ `);
58
+ // Create messages table
59
+ this.db.exec(`
60
+ CREATE TABLE IF NOT EXISTS ${messageTable} (
61
+ id TEXT PRIMARY KEY,
62
+ session_id TEXT NOT NULL,
63
+ user_id TEXT,
64
+ role TEXT NOT NULL,
65
+ content TEXT NOT NULL,
66
+ route TEXT,
67
+ state TEXT,
68
+ tool_calls TEXT,
69
+ event TEXT,
70
+ created_at TEXT NOT NULL,
71
+ FOREIGN KEY (session_id) REFERENCES ${sessionTable}(id) ON DELETE CASCADE
72
+ )
73
+ `);
74
+ // Create indexes for messages
75
+ this.db.exec(`
76
+ CREATE INDEX IF NOT EXISTS idx_messages_session_id ON ${messageTable}(session_id);
77
+ CREATE INDEX IF NOT EXISTS idx_messages_user_id ON ${messageTable}(user_id);
78
+ `);
79
+ await Promise.resolve();
80
+ }
81
+ async disconnect() {
82
+ this.db.close();
83
+ await Promise.resolve();
84
+ }
85
+ }
86
+ /**
87
+ * SQLite Session Repository
88
+ */
89
+ class SQLiteSessionRepository {
90
+ constructor(db, tableName) {
91
+ this.db = db;
92
+ this.tableName = tableName;
93
+ }
94
+ create(data) {
95
+ const id = `session_${Date.now()}_${Math.random().toString(36).slice(2)}`;
96
+ const now = new Date();
97
+ const session = {
98
+ ...data,
99
+ id,
100
+ status: data.status || "active",
101
+ messageCount: data.messageCount || 0,
102
+ createdAt: now,
103
+ updatedAt: now,
104
+ };
105
+ const stmt = this.db.prepare(`
106
+ INSERT INTO ${this.tableName}
107
+ (id, user_id, agent_name, status, collected_data, message_count, created_at, updated_at)
108
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
109
+ `);
110
+ stmt.run(id, data.userId || null, data.agentName || null, session.status, JSON.stringify(data.collectedData || {}), session.messageCount, now.toISOString(), now.toISOString());
111
+ return Promise.resolve(session);
112
+ }
113
+ findById(id) {
114
+ const stmt = this.db.prepare(`SELECT * FROM ${this.tableName} WHERE id = ?`);
115
+ const row = stmt.get(id);
116
+ return Promise.resolve(row ? this.deserializeSession(row) : null);
117
+ }
118
+ findActiveByUserId(userId) {
119
+ const stmt = this.db.prepare(`SELECT * FROM ${this.tableName}
120
+ WHERE user_id = ? AND status = 'active'
121
+ ORDER BY created_at DESC
122
+ LIMIT 1`);
123
+ const row = stmt.get(userId);
124
+ return Promise.resolve(row ? this.deserializeSession(row) : null);
125
+ }
126
+ findByUserId(userId, limit = 100) {
127
+ const stmt = this.db.prepare(`SELECT * FROM ${this.tableName}
128
+ WHERE user_id = ?
129
+ ORDER BY created_at DESC
130
+ LIMIT ?`);
131
+ const rows = stmt.all(userId, limit);
132
+ return Promise.resolve(rows.map((row) => this.deserializeSession(row)));
133
+ }
134
+ async update(id, data) {
135
+ const fields = [];
136
+ const values = [];
137
+ if (data.status !== undefined) {
138
+ fields.push("status = ?");
139
+ values.push(data.status);
140
+ }
141
+ if (data.collectedData !== undefined) {
142
+ fields.push("collected_data = ?");
143
+ values.push(JSON.stringify(data.collectedData));
144
+ }
145
+ if (data.currentRoute !== undefined) {
146
+ fields.push("current_route = ?");
147
+ values.push(data.currentRoute);
148
+ }
149
+ if (data.currentState !== undefined) {
150
+ fields.push("current_state = ?");
151
+ values.push(data.currentState);
152
+ }
153
+ if (data.messageCount !== undefined) {
154
+ fields.push("message_count = ?");
155
+ values.push(data.messageCount);
156
+ }
157
+ if (data.lastMessageAt !== undefined) {
158
+ fields.push("last_message_at = ?");
159
+ values.push(data.lastMessageAt.toISOString());
160
+ }
161
+ if (data.completedAt !== undefined) {
162
+ fields.push("completed_at = ?");
163
+ values.push(data.completedAt.toISOString());
164
+ }
165
+ fields.push("updated_at = ?");
166
+ values.push(new Date().toISOString());
167
+ values.push(id);
168
+ const stmt = this.db.prepare(`UPDATE ${this.tableName}
169
+ SET ${fields.join(", ")}
170
+ WHERE id = ?`);
171
+ const result = stmt.run(...values);
172
+ if (result.changes === 0)
173
+ return null;
174
+ return await this.findById(id);
175
+ }
176
+ async updateStatus(id, status, completedAt) {
177
+ return await this.update(id, { status, completedAt });
178
+ }
179
+ async updateCollectedData(id, collectedData) {
180
+ return await this.update(id, { collectedData });
181
+ }
182
+ async updateRouteState(id, route, state) {
183
+ return await this.update(id, {
184
+ currentRoute: route,
185
+ currentState: state,
186
+ });
187
+ }
188
+ async incrementMessageCount(id) {
189
+ const stmt = this.db.prepare(`UPDATE ${this.tableName}
190
+ SET message_count = message_count + 1,
191
+ last_message_at = ?,
192
+ updated_at = ?
193
+ WHERE id = ?`);
194
+ const now = new Date();
195
+ const result = stmt.run(now.toISOString(), now.toISOString(), id);
196
+ if (result.changes === 0)
197
+ return null;
198
+ return await this.findById(id);
199
+ }
200
+ delete(id) {
201
+ const stmt = this.db.prepare(`DELETE FROM ${this.tableName} WHERE id = ?`);
202
+ const result = stmt.run(id);
203
+ return Promise.resolve(result.changes > 0);
204
+ }
205
+ deserializeSession(row) {
206
+ return {
207
+ id: row.id,
208
+ userId: row.user_id || undefined,
209
+ agentName: row.agent_name || undefined,
210
+ status: row.status,
211
+ currentRoute: row.current_route || undefined,
212
+ currentState: row.current_state || undefined,
213
+ collectedData: row.collected_data
214
+ ? JSON.parse(row.collected_data)
215
+ : undefined,
216
+ messageCount: row.message_count || 0,
217
+ lastMessageAt: row.last_message_at
218
+ ? new Date(row.last_message_at)
219
+ : undefined,
220
+ completedAt: row.completed_at
221
+ ? new Date(row.completed_at)
222
+ : undefined,
223
+ createdAt: new Date(row.created_at),
224
+ updatedAt: new Date(row.updated_at),
225
+ };
226
+ }
227
+ }
228
+ /**
229
+ * SQLite Message Repository
230
+ */
231
+ class SQLiteMessageRepository {
232
+ constructor(db, tableName) {
233
+ this.db = db;
234
+ this.tableName = tableName;
235
+ }
236
+ create(data) {
237
+ const id = `msg_${Date.now()}_${Math.random().toString(36).slice(2)}`;
238
+ const now = new Date();
239
+ const message = {
240
+ ...data,
241
+ id,
242
+ createdAt: now,
243
+ };
244
+ const stmt = this.db.prepare(`
245
+ INSERT INTO ${this.tableName}
246
+ (id, session_id, user_id, role, content, route, state, tool_calls, event, created_at)
247
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
248
+ `);
249
+ stmt.run(id, data.sessionId, data.userId || null, data.role, data.content, data.route || null, data.state || null, JSON.stringify(data.toolCalls || null), JSON.stringify(data.event || null), now.toISOString());
250
+ return Promise.resolve(message);
251
+ }
252
+ findById(id) {
253
+ const stmt = this.db.prepare(`SELECT * FROM ${this.tableName} WHERE id = ?`);
254
+ const row = stmt.get(id);
255
+ return Promise.resolve(row ? this.deserializeMessage(row) : null);
256
+ }
257
+ findBySessionId(sessionId, limit = 1000) {
258
+ const stmt = this.db.prepare(`SELECT * FROM ${this.tableName}
259
+ WHERE session_id = ?
260
+ ORDER BY created_at ASC
261
+ LIMIT ?`);
262
+ const rows = stmt.all(sessionId, limit);
263
+ return Promise.resolve(rows.map((row) => this.deserializeMessage(row)));
264
+ }
265
+ findByUserId(userId, limit = 100) {
266
+ const stmt = this.db.prepare(`SELECT * FROM ${this.tableName}
267
+ WHERE user_id = ?
268
+ ORDER BY created_at DESC
269
+ LIMIT ?`);
270
+ const rows = stmt.all(userId, limit);
271
+ return Promise.resolve(rows.map((row) => this.deserializeMessage(row)));
272
+ }
273
+ delete(id) {
274
+ const stmt = this.db.prepare(`DELETE FROM ${this.tableName} WHERE id = ?`);
275
+ const result = stmt.run(id);
276
+ return Promise.resolve(result.changes > 0);
277
+ }
278
+ deleteBySessionId(sessionId) {
279
+ const stmt = this.db.prepare(`DELETE FROM ${this.tableName} WHERE session_id = ?`);
280
+ const result = stmt.run(sessionId);
281
+ return Promise.resolve(result.changes);
282
+ }
283
+ deleteByUserId(userId) {
284
+ const stmt = this.db.prepare(`DELETE FROM ${this.tableName} WHERE user_id = ?`);
285
+ const result = stmt.run(userId);
286
+ return Promise.resolve(result.changes);
287
+ }
288
+ deserializeMessage(row) {
289
+ return {
290
+ id: row.id,
291
+ sessionId: row.session_id,
292
+ userId: row.user_id || undefined,
293
+ role: row.role,
294
+ content: row.content,
295
+ route: row.route || undefined,
296
+ state: row.state || undefined,
297
+ toolCalls: row.tool_calls
298
+ ? JSON.parse(row.tool_calls)
299
+ : undefined,
300
+ event: row.event
301
+ ? JSON.parse(row.event)
302
+ : undefined,
303
+ createdAt: new Date(row.created_at),
304
+ };
305
+ }
306
+ }
307
+ //# sourceMappingURL=SQLiteAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLiteAdapter.js","sourceRoot":"","sources":["../../src/adapters/SQLiteAdapter.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,7 @@ export { MongoAdapter } from "./MongoAdapter";
9
9
  export type { MongoClient, MongoDatabase, MongoCollection, MongoAdapterOptions, } from "./MongoAdapter";
10
10
  export { PostgreSQLAdapter } from "./PostgreSQLAdapter";
11
11
  export type { PgClient, PgQueryResult, PostgreSQLAdapterOptions, } from "./PostgreSQLAdapter";
12
+ export { SQLiteAdapter } from "./SQLiteAdapter";
13
+ export type { SqliteDatabase, SqliteStatement, SQLiteAdapterOptions, } from "./SQLiteAdapter";
14
+ export { MemoryAdapter } from "./MemoryAdapter";
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,YAAY,EACZ,aAAa,EACb,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,QAAQ,EACR,aAAa,EACb,wBAAwB,GACzB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,YAAY,EACZ,aAAa,EACb,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,QAAQ,EACR,aAAa,EACb,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}