@falai/agent 1.1.0 → 1.1.2
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/adapters/MemoryAdapter.d.ts.map +1 -1
- package/dist/adapters/MemoryAdapter.js +2 -1
- package/dist/adapters/MemoryAdapter.js.map +1 -1
- package/dist/adapters/MongoAdapter.d.ts.map +1 -1
- package/dist/adapters/MongoAdapter.js +2 -1
- package/dist/adapters/MongoAdapter.js.map +1 -1
- package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -1
- package/dist/adapters/OpenSearchAdapter.js +2 -1
- package/dist/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.js +2 -1
- package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/adapters/PrismaAdapter.d.ts.map +1 -1
- package/dist/adapters/PrismaAdapter.js +2 -1
- package/dist/adapters/PrismaAdapter.js.map +1 -1
- package/dist/adapters/RedisAdapter.d.ts.map +1 -1
- package/dist/adapters/RedisAdapter.js.map +1 -1
- package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/cjs/adapters/MemoryAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/MemoryAdapter.js +2 -1
- package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
- package/dist/cjs/adapters/MongoAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/MongoAdapter.js +2 -1
- package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js +2 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js +2 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/cjs/adapters/PrismaAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/PrismaAdapter.js +2 -1
- package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
- package/dist/cjs/adapters/RedisAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/cjs/core/Agent.d.ts +202 -67
- package/dist/cjs/core/Agent.d.ts.map +1 -1
- package/dist/cjs/core/Agent.js +366 -158
- package/dist/cjs/core/Agent.js.map +1 -1
- package/dist/cjs/core/BatchExecutor.js +5 -6
- package/dist/cjs/core/BatchExecutor.js.map +1 -1
- package/dist/cjs/core/BatchPromptBuilder.d.ts.map +1 -1
- package/dist/cjs/core/BatchPromptBuilder.js +5 -2
- package/dist/cjs/core/BatchPromptBuilder.js.map +1 -1
- package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.js +6 -3
- package/dist/cjs/core/ResponseEngine.js.map +1 -1
- package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
- package/dist/cjs/core/ResponseModal.js +18 -17
- package/dist/cjs/core/ResponseModal.js.map +1 -1
- package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
- package/dist/cjs/core/RoutingEngine.js +8 -73
- package/dist/cjs/core/RoutingEngine.js.map +1 -1
- package/dist/cjs/core/SessionManager.d.ts.map +1 -1
- package/dist/cjs/core/SessionManager.js +4 -11
- package/dist/cjs/core/SessionManager.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/session.d.ts +6 -0
- package/dist/cjs/utils/session.d.ts.map +1 -1
- package/dist/cjs/utils/session.js +26 -8
- package/dist/cjs/utils/session.js.map +1 -1
- package/dist/core/Agent.d.ts +202 -67
- package/dist/core/Agent.d.ts.map +1 -1
- package/dist/core/Agent.js +366 -158
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/BatchExecutor.js +6 -7
- package/dist/core/BatchExecutor.js.map +1 -1
- package/dist/core/BatchPromptBuilder.d.ts.map +1 -1
- package/dist/core/BatchPromptBuilder.js +5 -2
- package/dist/core/BatchPromptBuilder.js.map +1 -1
- package/dist/core/ResponseEngine.d.ts.map +1 -1
- package/dist/core/ResponseEngine.js +6 -3
- package/dist/core/ResponseEngine.js.map +1 -1
- package/dist/core/ResponseModal.d.ts.map +1 -1
- package/dist/core/ResponseModal.js +18 -17
- package/dist/core/ResponseModal.js.map +1 -1
- package/dist/core/RoutingEngine.d.ts.map +1 -1
- package/dist/core/RoutingEngine.js +8 -73
- package/dist/core/RoutingEngine.js.map +1 -1
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +4 -11
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/session.d.ts +6 -0
- package/dist/utils/session.d.ts.map +1 -1
- package/dist/utils/session.js +26 -8
- package/dist/utils/session.js.map +1 -1
- package/docs/api/README.md +33 -4
- package/docs/api/overview.md +9 -5
- package/docs/architecture/data-extraction-flow.md +17 -19
- package/docs/core/conversation-flows/data-collection.md +9 -3
- package/docs/core/conversation-flows/route-dsl.md +8 -1
- package/docs/core/error-handling.md +3 -4
- package/docs/core/persistence/session-storage.md +12 -0
- package/examples/integrations/database-integration.ts +10 -9
- package/examples/persistence/custom-adapter.ts +12 -15
- package/package.json +2 -2
- package/src/adapters/MemoryAdapter.ts +6 -8
- package/src/adapters/MongoAdapter.ts +6 -8
- package/src/adapters/OpenSearchAdapter.ts +6 -8
- package/src/adapters/PostgreSQLAdapter.ts +6 -8
- package/src/adapters/PrismaAdapter.ts +4 -6
- package/src/adapters/RedisAdapter.ts +4 -7
- package/src/adapters/SQLiteAdapter.ts +6 -9
- package/src/core/Agent.ts +427 -195
- package/src/core/BatchExecutor.ts +129 -129
- package/src/core/BatchPromptBuilder.ts +41 -38
- package/src/core/ResponseEngine.ts +56 -53
- package/src/core/ResponseModal.ts +79 -81
- package/src/core/RoutingEngine.ts +67 -149
- package/src/core/SessionManager.ts +4 -13
- package/src/index.ts +11 -11
- package/src/utils/session.ts +48 -10
|
@@ -14,6 +14,7 @@ import type {
|
|
|
14
14
|
CreateSessionData,
|
|
15
15
|
} from "../types";
|
|
16
16
|
import { cloneDeep } from "../utils/clone";
|
|
17
|
+
import { createSessionId } from "../utils";
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Memory Adapter - Provider-style API for in-memory persistence
|
|
@@ -38,9 +39,7 @@ import { cloneDeep } from "../utils/clone";
|
|
|
38
39
|
* });
|
|
39
40
|
* ```
|
|
40
41
|
*/
|
|
41
|
-
export class MemoryAdapter<TData = Record<string, unknown>>
|
|
42
|
-
implements PersistenceAdapter<TData>
|
|
43
|
-
{
|
|
42
|
+
export class MemoryAdapter<TData = Record<string, unknown>> implements PersistenceAdapter<TData> {
|
|
44
43
|
public readonly sessionRepository: SessionRepository<TData>;
|
|
45
44
|
public readonly messageRepository: MessageRepository;
|
|
46
45
|
private sessions: Map<string, SessionData<TData>>;
|
|
@@ -80,13 +79,12 @@ export class MemoryAdapter<TData = Record<string, unknown>>
|
|
|
80
79
|
* Memory Session Repository
|
|
81
80
|
*/
|
|
82
81
|
class MemorySessionRepository<TData = Record<string, unknown>>
|
|
83
|
-
implements SessionRepository<TData>
|
|
84
|
-
{
|
|
85
|
-
constructor(private sessions: Map<string, SessionData<TData>>) {}
|
|
82
|
+
implements SessionRepository<TData> {
|
|
83
|
+
constructor(private sessions: Map<string, SessionData<TData>>) { }
|
|
86
84
|
|
|
87
85
|
create(data: CreateSessionData<TData>): Promise<SessionData<TData>> {
|
|
88
86
|
const id =
|
|
89
|
-
data.id ||
|
|
87
|
+
data.id || createSessionId();
|
|
90
88
|
const now = new Date();
|
|
91
89
|
|
|
92
90
|
const session: SessionData<TData> = {
|
|
@@ -208,7 +206,7 @@ class MemorySessionRepository<TData = Record<string, unknown>>
|
|
|
208
206
|
* Memory Message Repository
|
|
209
207
|
*/
|
|
210
208
|
class MemoryMessageRepository implements MessageRepository {
|
|
211
|
-
constructor(private messages: Map<string, MessageData>) {}
|
|
209
|
+
constructor(private messages: Map<string, MessageData>) { }
|
|
212
210
|
|
|
213
211
|
async create(
|
|
214
212
|
data: Omit<MessageData, "id" | "createdAt">
|
|
@@ -13,6 +13,7 @@ import type {
|
|
|
13
13
|
CollectedStateData,
|
|
14
14
|
CreateSessionData,
|
|
15
15
|
} from "../types";
|
|
16
|
+
import { createSessionId } from "../utils";
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* MongoDB collection interface - matches mongodb driver
|
|
@@ -100,9 +101,7 @@ export interface MongoAdapterOptions {
|
|
|
100
101
|
* });
|
|
101
102
|
* ```
|
|
102
103
|
*/
|
|
103
|
-
export class MongoAdapter<TData = Record<string, unknown>>
|
|
104
|
-
implements PersistenceAdapter<TData>
|
|
105
|
-
{
|
|
104
|
+
export class MongoAdapter<TData = Record<string, unknown>> implements PersistenceAdapter<TData> {
|
|
106
105
|
public readonly sessionRepository: SessionRepository<TData>;
|
|
107
106
|
public readonly messageRepository: MessageRepository;
|
|
108
107
|
private client: MongoClient;
|
|
@@ -133,9 +132,8 @@ export class MongoAdapter<TData = Record<string, unknown>>
|
|
|
133
132
|
* MongoDB Session Repository
|
|
134
133
|
*/
|
|
135
134
|
class MongoSessionRepository<TData = Record<string, unknown>>
|
|
136
|
-
implements SessionRepository<TData>
|
|
137
|
-
{
|
|
138
|
-
constructor(private collection: MongoCollection<SessionData<TData>>) {}
|
|
135
|
+
implements SessionRepository<TData> {
|
|
136
|
+
constructor(private collection: MongoCollection<SessionData<TData>>) { }
|
|
139
137
|
|
|
140
138
|
async create(data: CreateSessionData<TData>): Promise<SessionData<TData>> {
|
|
141
139
|
const now = new Date();
|
|
@@ -143,7 +141,7 @@ class MongoSessionRepository<TData = Record<string, unknown>>
|
|
|
143
141
|
...data,
|
|
144
142
|
id:
|
|
145
143
|
data.id ||
|
|
146
|
-
|
|
144
|
+
createSessionId(),
|
|
147
145
|
status: data.status || "active",
|
|
148
146
|
messageCount: data.messageCount || 0,
|
|
149
147
|
createdAt: now,
|
|
@@ -249,7 +247,7 @@ class MongoSessionRepository<TData = Record<string, unknown>>
|
|
|
249
247
|
* MongoDB Message Repository
|
|
250
248
|
*/
|
|
251
249
|
class MongoMessageRepository implements MessageRepository {
|
|
252
|
-
constructor(private collection: MongoCollection<MessageData>) {}
|
|
250
|
+
constructor(private collection: MongoCollection<MessageData>) { }
|
|
253
251
|
|
|
254
252
|
async create(
|
|
255
253
|
data: Omit<MessageData, "id" | "createdAt">
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
35
|
import { cloneDeep } from "../utils/clone";
|
|
36
|
+
import { createSessionId } from "../utils";
|
|
36
37
|
import type {
|
|
37
38
|
PersistenceAdapter,
|
|
38
39
|
SessionRepository,
|
|
@@ -140,9 +141,7 @@ export interface OpenSearchAdapterOptions {
|
|
|
140
141
|
* Stores sessions and messages as documents in OpenSearch indices.
|
|
141
142
|
* Compatible with OpenSearch 1.x, 2.x and Elasticsearch 7.x.
|
|
142
143
|
*/
|
|
143
|
-
export class OpenSearchAdapter<TData = Record<string, unknown>>
|
|
144
|
-
implements PersistenceAdapter<TData>
|
|
145
|
-
{
|
|
144
|
+
export class OpenSearchAdapter<TData = Record<string, unknown>> implements PersistenceAdapter<TData> {
|
|
146
145
|
readonly sessionRepository: SessionRepository<TData>;
|
|
147
146
|
readonly messageRepository: MessageRepository;
|
|
148
147
|
|
|
@@ -248,17 +247,16 @@ export class OpenSearchAdapter<TData = Record<string, unknown>>
|
|
|
248
247
|
* OpenSearch-based session repository implementation
|
|
249
248
|
*/
|
|
250
249
|
class OpenSearchSessionRepository<TData = Record<string, unknown>>
|
|
251
|
-
implements SessionRepository<TData>
|
|
252
|
-
{
|
|
250
|
+
implements SessionRepository<TData> {
|
|
253
251
|
constructor(
|
|
254
252
|
private client: OpenSearchClient,
|
|
255
253
|
private index: string,
|
|
256
254
|
private refresh: boolean | "wait_for"
|
|
257
|
-
) {}
|
|
255
|
+
) { }
|
|
258
256
|
|
|
259
257
|
async create(data: CreateSessionData<TData>): Promise<SessionData<TData>> {
|
|
260
258
|
const id =
|
|
261
|
-
data.id ||
|
|
259
|
+
data.id || createSessionId();
|
|
262
260
|
const now = new Date();
|
|
263
261
|
|
|
264
262
|
const session: SessionData<TData> = {
|
|
@@ -514,7 +512,7 @@ class OpenSearchMessageRepository implements MessageRepository {
|
|
|
514
512
|
private client: OpenSearchClient,
|
|
515
513
|
private index: string,
|
|
516
514
|
private refresh: boolean | "wait_for"
|
|
517
|
-
) {}
|
|
515
|
+
) { }
|
|
518
516
|
|
|
519
517
|
async create(
|
|
520
518
|
data: Omit<MessageData, "id" | "createdAt">
|
|
@@ -12,6 +12,7 @@ import type {
|
|
|
12
12
|
SessionStatus,
|
|
13
13
|
PersistenceAdapter,
|
|
14
14
|
} from "../types";
|
|
15
|
+
import { createSessionId } from "../utils";
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* PostgreSQL query result interface
|
|
@@ -77,9 +78,7 @@ export interface PostgreSQLAdapterOptions {
|
|
|
77
78
|
* });
|
|
78
79
|
* ```
|
|
79
80
|
*/
|
|
80
|
-
export class PostgreSQLAdapter<TData = Record<string, unknown>>
|
|
81
|
-
implements PersistenceAdapter<TData>
|
|
82
|
-
{
|
|
81
|
+
export class PostgreSQLAdapter<TData = Record<string, unknown>> implements PersistenceAdapter<TData> {
|
|
83
82
|
public readonly sessionRepository: SessionRepository<TData>;
|
|
84
83
|
public readonly messageRepository: MessageRepository;
|
|
85
84
|
private client: PgClient;
|
|
@@ -159,9 +158,8 @@ export class PostgreSQLAdapter<TData = Record<string, unknown>>
|
|
|
159
158
|
* PostgreSQL Session Repository
|
|
160
159
|
*/
|
|
161
160
|
class PostgreSQLSessionRepository<TData = Record<string, unknown>>
|
|
162
|
-
implements SessionRepository<TData>
|
|
163
|
-
{
|
|
164
|
-
constructor(private client: PgClient, private tableName: string) {}
|
|
161
|
+
implements SessionRepository<TData> {
|
|
162
|
+
constructor(private client: PgClient, private tableName: string) { }
|
|
165
163
|
|
|
166
164
|
async create(
|
|
167
165
|
data: Omit<SessionData<TData>, "createdAt" | "updatedAt"> & {
|
|
@@ -169,7 +167,7 @@ class PostgreSQLSessionRepository<TData = Record<string, unknown>>
|
|
|
169
167
|
}
|
|
170
168
|
): Promise<SessionData<TData>> {
|
|
171
169
|
const id =
|
|
172
|
-
data.id ||
|
|
170
|
+
data.id || createSessionId();
|
|
173
171
|
const now = new Date();
|
|
174
172
|
|
|
175
173
|
const result = await this.client.query<SessionData<TData>>(
|
|
@@ -335,7 +333,7 @@ class PostgreSQLSessionRepository<TData = Record<string, unknown>>
|
|
|
335
333
|
* PostgreSQL Message Repository
|
|
336
334
|
*/
|
|
337
335
|
class PostgreSQLMessageRepository implements MessageRepository {
|
|
338
|
-
constructor(private client: PgClient, private tableName: string) {}
|
|
336
|
+
constructor(private client: PgClient, private tableName: string) { }
|
|
339
337
|
|
|
340
338
|
async create(
|
|
341
339
|
data: Omit<MessageData, "id" | "createdAt">
|
|
@@ -16,6 +16,7 @@ import type {
|
|
|
16
16
|
CreateSessionData,
|
|
17
17
|
} from "../types";
|
|
18
18
|
import { logger } from '../utils'
|
|
19
|
+
import { createSessionId } from '../utils';
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* Prisma model operations
|
|
@@ -120,9 +121,7 @@ export interface PrismaAdapterOptions {
|
|
|
120
121
|
* });
|
|
121
122
|
* ```
|
|
122
123
|
*/
|
|
123
|
-
export class PrismaAdapter<TData = Record<string, unknown>>
|
|
124
|
-
implements PersistenceAdapter<TData>
|
|
125
|
-
{
|
|
124
|
+
export class PrismaAdapter<TData = Record<string, unknown>> implements PersistenceAdapter<TData> {
|
|
126
125
|
public readonly sessionRepository: SessionRepository<TData>;
|
|
127
126
|
public readonly messageRepository: MessageRepository;
|
|
128
127
|
private prisma: PrismaClient;
|
|
@@ -199,8 +198,7 @@ export class PrismaAdapter<TData = Record<string, unknown>>
|
|
|
199
198
|
* Internal implementation - users should use PrismaAdapter instead
|
|
200
199
|
*/
|
|
201
200
|
class PrismaSessionRepository<TData = Record<string, unknown>>
|
|
202
|
-
implements SessionRepository<TData>
|
|
203
|
-
{
|
|
201
|
+
implements SessionRepository<TData> {
|
|
204
202
|
private prisma: PrismaClient;
|
|
205
203
|
private tableName: string;
|
|
206
204
|
private fieldMap: Partial<Record<keyof SessionData<TData>, string>>;
|
|
@@ -270,7 +268,7 @@ class PrismaSessionRepository<TData = Record<string, unknown>>
|
|
|
270
268
|
...data,
|
|
271
269
|
id:
|
|
272
270
|
data.id ||
|
|
273
|
-
|
|
271
|
+
createSessionId(),
|
|
274
272
|
});
|
|
275
273
|
const result = await this.getModel().create({
|
|
276
274
|
data: mapped,
|
|
@@ -74,9 +74,7 @@ export interface RedisAdapterOptions {
|
|
|
74
74
|
* });
|
|
75
75
|
* ```
|
|
76
76
|
*/
|
|
77
|
-
export class RedisAdapter<TData = Record<string, unknown>>
|
|
78
|
-
implements PersistenceAdapter<TData>
|
|
79
|
-
{
|
|
77
|
+
export class RedisAdapter<TData = Record<string, unknown>> implements PersistenceAdapter<TData> {
|
|
80
78
|
public readonly sessionRepository: SessionRepository<TData>;
|
|
81
79
|
public readonly messageRepository: MessageRepository;
|
|
82
80
|
private redis: RedisClient;
|
|
@@ -112,13 +110,12 @@ export class RedisAdapter<TData = Record<string, unknown>>
|
|
|
112
110
|
* Redis Session Repository
|
|
113
111
|
*/
|
|
114
112
|
class RedisSessionRepository<TData = Record<string, unknown>>
|
|
115
|
-
implements SessionRepository<TData>
|
|
116
|
-
{
|
|
113
|
+
implements SessionRepository<TData> {
|
|
117
114
|
constructor(
|
|
118
115
|
private redis: RedisClient,
|
|
119
116
|
private keyPrefix: string,
|
|
120
117
|
private ttl: number
|
|
121
|
-
) {}
|
|
118
|
+
) { }
|
|
122
119
|
|
|
123
120
|
private getKey(id: string): string {
|
|
124
121
|
return `${this.keyPrefix}session:${id}`;
|
|
@@ -267,7 +264,7 @@ class RedisMessageRepository implements MessageRepository {
|
|
|
267
264
|
private redis: RedisClient,
|
|
268
265
|
private keyPrefix: string,
|
|
269
266
|
private ttl: number
|
|
270
|
-
) {}
|
|
267
|
+
) { }
|
|
271
268
|
|
|
272
269
|
private getKey(id: string): string {
|
|
273
270
|
return `${this.keyPrefix}message:${id}`;
|
|
@@ -71,9 +71,7 @@ export interface SQLiteAdapterOptions {
|
|
|
71
71
|
* });
|
|
72
72
|
* ```
|
|
73
73
|
*/
|
|
74
|
-
export class SQLiteAdapter<TData = Record<string, unknown>>
|
|
75
|
-
implements PersistenceAdapter<TData>
|
|
76
|
-
{
|
|
74
|
+
export class SQLiteAdapter<TData = Record<string, unknown>> implements PersistenceAdapter<TData> {
|
|
77
75
|
public readonly sessionRepository: SessionRepository<TData>;
|
|
78
76
|
public readonly messageRepository: MessageRepository;
|
|
79
77
|
private db: SqliteDatabase;
|
|
@@ -154,9 +152,8 @@ export class SQLiteAdapter<TData = Record<string, unknown>>
|
|
|
154
152
|
* SQLite Session Repository
|
|
155
153
|
*/
|
|
156
154
|
class SQLiteSessionRepository<TData = Record<string, unknown>>
|
|
157
|
-
implements SessionRepository<TData>
|
|
158
|
-
{
|
|
159
|
-
constructor(private db: SqliteDatabase, private tableName: string) {}
|
|
155
|
+
implements SessionRepository<TData> {
|
|
156
|
+
constructor(private db: SqliteDatabase, private tableName: string) { }
|
|
160
157
|
|
|
161
158
|
create(data: CreateSessionData<TData>): Promise<SessionData<TData>> {
|
|
162
159
|
const id = data.id || createSessionId();
|
|
@@ -332,8 +329,8 @@ class SQLiteSessionRepository<TData = Record<string, unknown>>
|
|
|
332
329
|
currentStep: (row.current_step as string) || undefined,
|
|
333
330
|
collectedData: row.collected_data
|
|
334
331
|
? (JSON.parse(
|
|
335
|
-
|
|
336
|
-
|
|
332
|
+
row.collected_data as string
|
|
333
|
+
) as CollectedStateData<TData>)
|
|
337
334
|
: undefined,
|
|
338
335
|
messageCount: (row.message_count as number) || 0,
|
|
339
336
|
lastMessageAt: row.last_message_at
|
|
@@ -352,7 +349,7 @@ class SQLiteSessionRepository<TData = Record<string, unknown>>
|
|
|
352
349
|
* SQLite Message Repository
|
|
353
350
|
*/
|
|
354
351
|
class SQLiteMessageRepository implements MessageRepository {
|
|
355
|
-
constructor(private db: SqliteDatabase, private tableName: string) {}
|
|
352
|
+
constructor(private db: SqliteDatabase, private tableName: string) { }
|
|
356
353
|
|
|
357
354
|
create(data: Omit<MessageData, "id" | "createdAt">): Promise<MessageData> {
|
|
358
355
|
const id = `msg_${Date.now()}_${Math.random().toString(36).slice(2)}`;
|