@falai/agent 0.6.8 → 0.7.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 +62 -59
- package/dist/adapters/MemoryAdapter.js +2 -2
- package/dist/adapters/MemoryAdapter.js.map +1 -1
- package/dist/adapters/MongoAdapter.js +2 -2
- package/dist/adapters/MongoAdapter.js.map +1 -1
- package/dist/adapters/OpenSearchAdapter.js +7 -7
- package/dist/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.js +9 -9
- package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/adapters/PrismaAdapter.js +3 -3
- package/dist/adapters/PrismaAdapter.js.map +1 -1
- package/dist/adapters/RedisAdapter.js +2 -2
- package/dist/adapters/RedisAdapter.js.map +1 -1
- package/dist/adapters/SQLiteAdapter.d.ts +3 -3
- package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/adapters/SQLiteAdapter.js +11 -11
- package/dist/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/cjs/adapters/MemoryAdapter.js +2 -2
- package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
- package/dist/cjs/adapters/MongoAdapter.js +2 -2
- package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js +7 -7
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js +9 -9
- package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/cjs/adapters/PrismaAdapter.js +3 -3
- package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
- package/dist/cjs/adapters/RedisAdapter.js +2 -2
- package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.d.ts +3 -3
- package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.js +11 -11
- package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/cjs/adapters/index.d.ts +1 -1
- package/dist/cjs/adapters/index.d.ts.map +1 -1
- package/dist/cjs/constants/index.d.ts +4 -4
- package/dist/cjs/constants/index.js +5 -5
- package/dist/cjs/core/Agent.d.ts +22 -22
- package/dist/cjs/core/Agent.d.ts.map +1 -1
- package/dist/cjs/core/Agent.js +160 -152
- package/dist/cjs/core/Agent.js.map +1 -1
- package/dist/cjs/core/Events.d.ts +6 -6
- package/dist/cjs/core/Events.d.ts.map +1 -1
- package/dist/cjs/core/PersistenceManager.d.ts +13 -13
- package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
- package/dist/cjs/core/PersistenceManager.js +24 -24
- package/dist/cjs/core/PersistenceManager.js.map +1 -1
- package/dist/cjs/core/ResponseEngine.d.ts +3 -8
- package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.js +8 -8
- package/dist/cjs/core/ResponseEngine.js.map +1 -1
- package/dist/cjs/core/Route.d.ts +17 -17
- package/dist/cjs/core/Route.d.ts.map +1 -1
- package/dist/cjs/core/Route.js +33 -33
- package/dist/cjs/core/Route.js.map +1 -1
- package/dist/cjs/core/RoutingEngine.d.ts +30 -30
- package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
- package/dist/cjs/core/RoutingEngine.js +192 -192
- package/dist/cjs/core/RoutingEngine.js.map +1 -1
- package/dist/cjs/core/Step.d.ts +72 -0
- package/dist/cjs/core/Step.d.ts.map +1 -0
- package/dist/cjs/core/Step.js +150 -0
- package/dist/cjs/core/Step.js.map +1 -0
- package/dist/cjs/core/ToolExecutor.d.ts +5 -5
- package/dist/cjs/core/ToolExecutor.d.ts.map +1 -1
- package/dist/cjs/core/ToolExecutor.js +8 -8
- package/dist/cjs/core/ToolExecutor.js.map +1 -1
- package/dist/cjs/core/Transition.d.ts +14 -14
- package/dist/cjs/core/Transition.d.ts.map +1 -1
- package/dist/cjs/core/Transition.js +48 -19
- package/dist/cjs/core/Transition.js.map +1 -1
- package/dist/cjs/index.d.ts +7 -7
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +8 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/agent.d.ts +8 -8
- package/dist/cjs/types/agent.d.ts.map +1 -1
- package/dist/cjs/types/ai.d.ts +2 -2
- package/dist/cjs/types/ai.d.ts.map +1 -1
- package/dist/cjs/types/history.d.ts +3 -3
- package/dist/cjs/types/history.d.ts.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -1
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/persistence.d.ts +5 -5
- package/dist/cjs/types/persistence.d.ts.map +1 -1
- package/dist/cjs/types/route.d.ts +57 -52
- package/dist/cjs/types/route.d.ts.map +1 -1
- package/dist/cjs/types/session.d.ts +27 -27
- package/dist/cjs/types/session.d.ts.map +1 -1
- package/dist/cjs/types/session.js +48 -50
- package/dist/cjs/types/session.js.map +1 -1
- package/dist/cjs/types/tool.d.ts +13 -13
- package/dist/cjs/types/tool.d.ts.map +1 -1
- package/dist/cjs/utils/id.d.ts +8 -3
- package/dist/cjs/utils/id.d.ts.map +1 -1
- package/dist/cjs/utils/id.js +16 -7
- package/dist/cjs/utils/id.js.map +1 -1
- package/dist/constants/index.d.ts +4 -4
- package/dist/constants/index.js +4 -4
- package/dist/core/Agent.d.ts +22 -22
- package/dist/core/Agent.d.ts.map +1 -1
- package/dist/core/Agent.js +162 -154
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/Events.d.ts +6 -6
- package/dist/core/Events.d.ts.map +1 -1
- package/dist/core/PersistenceManager.d.ts +13 -13
- package/dist/core/PersistenceManager.d.ts.map +1 -1
- package/dist/core/PersistenceManager.js +25 -25
- package/dist/core/PersistenceManager.js.map +1 -1
- package/dist/core/ResponseEngine.d.ts +3 -8
- package/dist/core/ResponseEngine.d.ts.map +1 -1
- package/dist/core/ResponseEngine.js +8 -8
- package/dist/core/ResponseEngine.js.map +1 -1
- package/dist/core/Route.d.ts +17 -17
- package/dist/core/Route.d.ts.map +1 -1
- package/dist/core/Route.js +33 -33
- package/dist/core/Route.js.map +1 -1
- package/dist/core/RoutingEngine.d.ts +30 -30
- package/dist/core/RoutingEngine.d.ts.map +1 -1
- package/dist/core/RoutingEngine.js +193 -193
- package/dist/core/RoutingEngine.js.map +1 -1
- package/dist/core/Step.d.ts +72 -0
- package/dist/core/Step.d.ts.map +1 -0
- package/dist/core/Step.js +146 -0
- package/dist/core/Step.js.map +1 -0
- package/dist/core/ToolExecutor.d.ts +5 -5
- package/dist/core/ToolExecutor.d.ts.map +1 -1
- package/dist/core/ToolExecutor.js +8 -8
- package/dist/core/ToolExecutor.js.map +1 -1
- package/dist/core/Transition.d.ts +14 -14
- package/dist/core/Transition.d.ts.map +1 -1
- package/dist/core/Transition.js +48 -19
- package/dist/core/Transition.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/types/agent.d.ts +8 -8
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/ai.d.ts +2 -2
- package/dist/types/ai.d.ts.map +1 -1
- package/dist/types/history.d.ts +3 -3
- package/dist/types/history.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/persistence.d.ts +5 -5
- package/dist/types/persistence.d.ts.map +1 -1
- package/dist/types/route.d.ts +57 -52
- package/dist/types/route.d.ts.map +1 -1
- package/dist/types/session.d.ts +27 -27
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js +44 -46
- package/dist/types/session.js.map +1 -1
- package/dist/types/tool.d.ts +13 -13
- package/dist/types/tool.d.ts.map +1 -1
- package/dist/utils/id.d.ts +8 -3
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +14 -6
- package/dist/utils/id.js.map +1 -1
- package/docs/ADAPTERS.md +21 -21
- package/docs/AGENT.md +57 -55
- package/docs/API_REFERENCE.md +218 -220
- package/docs/ARCHITECTURE.md +99 -104
- package/docs/CONTEXT_MANAGEMENT.md +81 -88
- package/docs/DOCS.md +18 -18
- package/docs/DOMAINS.md +16 -16
- package/docs/EXAMPLES.md +43 -43
- package/docs/GETTING_STARTED.md +60 -63
- package/docs/PERSISTENCE.md +66 -70
- package/docs/PROVIDERS.md +2 -2
- package/docs/README.md +6 -6
- package/docs/ROUTES.md +218 -220
- package/docs/STEPS.md +883 -0
- package/examples/business-onboarding.ts +84 -81
- package/examples/company-qna-agent.ts +68 -67
- package/examples/custom-database-persistence.ts +87 -89
- package/examples/declarative-agent.ts +32 -32
- package/examples/domain-scoping.ts +18 -18
- package/examples/extracted-data-modification.ts +92 -97
- package/examples/healthcare-agent.ts +89 -91
- package/examples/openai-agent.ts +29 -32
- package/examples/opensearch-persistence.ts +43 -45
- package/examples/persistent-onboarding.ts +65 -66
- package/examples/prisma-persistence.ts +108 -112
- package/examples/prisma-schema.example.prisma +3 -3
- package/examples/redis-persistence.ts +67 -73
- package/examples/route-transitions.ts +71 -47
- package/examples/rules-prohibitions.ts +28 -28
- package/examples/streaming-agent.ts +24 -24
- package/examples/travel-agent.ts +94 -109
- package/package.json +1 -1
- package/src/adapters/MemoryAdapter.ts +3 -3
- package/src/adapters/MongoAdapter.ts +3 -3
- package/src/adapters/OpenSearchAdapter.ts +8 -8
- package/src/adapters/PostgreSQLAdapter.ts +10 -10
- package/src/adapters/PrismaAdapter.ts +4 -4
- package/src/adapters/RedisAdapter.ts +3 -3
- package/src/adapters/SQLiteAdapter.ts +15 -15
- package/src/adapters/index.ts +1 -1
- package/src/constants/index.ts +4 -4
- package/src/core/Agent.ts +210 -206
- package/src/core/Events.ts +12 -12
- package/src/core/PersistenceManager.ts +32 -36
- package/src/core/ResponseEngine.ts +11 -17
- package/src/core/Route.ts +55 -49
- package/src/core/RoutingEngine.ts +244 -252
- package/src/core/Step.ts +197 -0
- package/src/core/ToolExecutor.ts +11 -11
- package/src/core/Transition.ts +72 -26
- package/src/index.ts +8 -8
- package/src/types/agent.ts +8 -8
- package/src/types/ai.ts +2 -2
- package/src/types/history.ts +3 -3
- package/src/types/index.ts +1 -1
- package/src/types/persistence.ts +6 -6
- package/src/types/route.ts +77 -61
- package/src/types/session.ts +75 -78
- package/src/types/tool.ts +17 -17
- package/src/utils/id.ts +15 -6
- package/dist/cjs/core/State.d.ts +0 -72
- package/dist/cjs/core/State.d.ts.map +0 -1
- package/dist/cjs/core/State.js +0 -148
- package/dist/cjs/core/State.js.map +0 -1
- package/dist/core/State.d.ts +0 -72
- package/dist/core/State.d.ts.map +0 -1
- package/dist/core/State.js +0 -144
- package/dist/core/State.js.map +0 -1
- package/docs/STATES.md +0 -888
- package/src/core/State.ts +0 -212
|
@@ -191,7 +191,7 @@ export class OpenSearchAdapter implements PersistenceAdapter {
|
|
|
191
191
|
agentName: { type: "keyword" },
|
|
192
192
|
status: { type: "keyword" },
|
|
193
193
|
currentRoute: { type: "keyword" },
|
|
194
|
-
|
|
194
|
+
currentStep: { type: "keyword" },
|
|
195
195
|
collectedData: { type: "object", enabled: false },
|
|
196
196
|
messageCount: { type: "integer" },
|
|
197
197
|
createdAt: { type: "date" },
|
|
@@ -221,7 +221,7 @@ export class OpenSearchAdapter implements PersistenceAdapter {
|
|
|
221
221
|
role: { type: "keyword" },
|
|
222
222
|
content: { type: "text" },
|
|
223
223
|
route: { type: "keyword" },
|
|
224
|
-
|
|
224
|
+
step: { type: "keyword" },
|
|
225
225
|
toolCalls: { type: "object", enabled: false },
|
|
226
226
|
event: { type: "object", enabled: false },
|
|
227
227
|
createdAt: { type: "date" },
|
|
@@ -396,10 +396,10 @@ class OpenSearchSessionRepository implements SessionRepository {
|
|
|
396
396
|
return await this.findById(id);
|
|
397
397
|
}
|
|
398
398
|
|
|
399
|
-
async
|
|
399
|
+
async updateRouteStep(
|
|
400
400
|
id: string,
|
|
401
401
|
route?: string,
|
|
402
|
-
|
|
402
|
+
step?: string
|
|
403
403
|
): Promise<SessionData | null> {
|
|
404
404
|
const doc: Record<string, unknown> = {
|
|
405
405
|
updatedAt: new Date().toISOString(),
|
|
@@ -408,8 +408,8 @@ class OpenSearchSessionRepository implements SessionRepository {
|
|
|
408
408
|
if (route !== undefined) {
|
|
409
409
|
doc.currentRoute = route;
|
|
410
410
|
}
|
|
411
|
-
if (
|
|
412
|
-
doc.
|
|
411
|
+
if (step !== undefined) {
|
|
412
|
+
doc.currentStep = step;
|
|
413
413
|
}
|
|
414
414
|
|
|
415
415
|
await this.client.update({
|
|
@@ -478,7 +478,7 @@ class OpenSearchSessionRepository implements SessionRepository {
|
|
|
478
478
|
agentName: doc.agentName as string | undefined,
|
|
479
479
|
status: doc.status as SessionData["status"],
|
|
480
480
|
currentRoute: doc.currentRoute as string | undefined,
|
|
481
|
-
|
|
481
|
+
currentStep: doc.currentStep as string | undefined,
|
|
482
482
|
collectedData: doc.collectedData as Record<string, unknown> | undefined,
|
|
483
483
|
messageCount: doc.messageCount as number | undefined,
|
|
484
484
|
createdAt: new Date(doc.createdAt as string),
|
|
@@ -646,7 +646,7 @@ class OpenSearchMessageRepository implements MessageRepository {
|
|
|
646
646
|
role: doc.role as MessageData["role"],
|
|
647
647
|
content: doc.content as string,
|
|
648
648
|
route: doc.route as string | undefined,
|
|
649
|
-
|
|
649
|
+
step: doc.step as string | undefined,
|
|
650
650
|
toolCalls: doc.toolCalls as
|
|
651
651
|
| Array<{ toolName: string; arguments: Record<string, unknown> }>
|
|
652
652
|
| undefined,
|
|
@@ -110,7 +110,7 @@ export class PostgreSQLAdapter implements PersistenceAdapter {
|
|
|
110
110
|
agent_name VARCHAR(255),
|
|
111
111
|
status VARCHAR(50) DEFAULT 'active',
|
|
112
112
|
current_route VARCHAR(255),
|
|
113
|
-
|
|
113
|
+
current_step VARCHAR(255),
|
|
114
114
|
collected_data JSONB,
|
|
115
115
|
message_count INTEGER DEFAULT 0,
|
|
116
116
|
last_message_at TIMESTAMP,
|
|
@@ -133,7 +133,7 @@ export class PostgreSQLAdapter implements PersistenceAdapter {
|
|
|
133
133
|
role VARCHAR(50) NOT NULL,
|
|
134
134
|
content TEXT NOT NULL,
|
|
135
135
|
route VARCHAR(255),
|
|
136
|
-
|
|
136
|
+
step VARCHAR(255),
|
|
137
137
|
tool_calls JSONB,
|
|
138
138
|
event JSONB,
|
|
139
139
|
created_at TIMESTAMP DEFAULT NOW(),
|
|
@@ -237,9 +237,9 @@ class PostgreSQLSessionRepository implements SessionRepository {
|
|
|
237
237
|
fields.push(`current_route = $${paramIndex++}`);
|
|
238
238
|
values.push(data.currentRoute);
|
|
239
239
|
}
|
|
240
|
-
if (data.
|
|
241
|
-
fields.push(`
|
|
242
|
-
values.push(data.
|
|
240
|
+
if (data.currentStep !== undefined) {
|
|
241
|
+
fields.push(`current_step = $${paramIndex++}`);
|
|
242
|
+
values.push(data.currentStep);
|
|
243
243
|
}
|
|
244
244
|
if (data.messageCount !== undefined) {
|
|
245
245
|
fields.push(`message_count = $${paramIndex++}`);
|
|
@@ -285,14 +285,14 @@ class PostgreSQLSessionRepository implements SessionRepository {
|
|
|
285
285
|
return await this.update(id, { collectedData });
|
|
286
286
|
}
|
|
287
287
|
|
|
288
|
-
async
|
|
288
|
+
async updateRouteStep(
|
|
289
289
|
id: string,
|
|
290
290
|
route?: string,
|
|
291
|
-
|
|
291
|
+
step?: string
|
|
292
292
|
): Promise<SessionData | null> {
|
|
293
293
|
return await this.update(id, {
|
|
294
294
|
currentRoute: route,
|
|
295
|
-
|
|
295
|
+
currentStep: step,
|
|
296
296
|
});
|
|
297
297
|
}
|
|
298
298
|
|
|
@@ -333,7 +333,7 @@ class PostgreSQLMessageRepository implements MessageRepository {
|
|
|
333
333
|
|
|
334
334
|
const result = await this.client.query<MessageData>(
|
|
335
335
|
`INSERT INTO ${this.tableName}
|
|
336
|
-
(id, session_id, user_id, role, content, route,
|
|
336
|
+
(id, session_id, user_id, role, content, route, step, tool_calls, event, created_at)
|
|
337
337
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, NOW())
|
|
338
338
|
RETURNING *`,
|
|
339
339
|
[
|
|
@@ -343,7 +343,7 @@ class PostgreSQLMessageRepository implements MessageRepository {
|
|
|
343
343
|
data.role,
|
|
344
344
|
data.content,
|
|
345
345
|
data.route || null,
|
|
346
|
-
data.
|
|
346
|
+
data.step || null,
|
|
347
347
|
JSON.stringify(data.toolCalls || null),
|
|
348
348
|
JSON.stringify(data.event || null),
|
|
349
349
|
]
|
|
@@ -333,10 +333,10 @@ class PrismaSessionRepository implements SessionRepository {
|
|
|
333
333
|
return this.unmapFields(result);
|
|
334
334
|
}
|
|
335
335
|
|
|
336
|
-
async
|
|
336
|
+
async updateRouteStep(
|
|
337
337
|
id: string,
|
|
338
338
|
route?: string,
|
|
339
|
-
|
|
339
|
+
step?: string
|
|
340
340
|
): Promise<SessionData | null> {
|
|
341
341
|
const data: Record<string, unknown> = {
|
|
342
342
|
[this.fieldMap.updatedAt || "updatedAt"]: new Date(),
|
|
@@ -344,8 +344,8 @@ class PrismaSessionRepository implements SessionRepository {
|
|
|
344
344
|
if (route !== undefined) {
|
|
345
345
|
data[this.fieldMap.currentRoute || "currentRoute"] = route;
|
|
346
346
|
}
|
|
347
|
-
if (
|
|
348
|
-
data[this.fieldMap.
|
|
347
|
+
if (step !== undefined) {
|
|
348
|
+
data[this.fieldMap.currentStep || "currentStep"] = step;
|
|
349
349
|
}
|
|
350
350
|
const result = await this.getModel().update({
|
|
351
351
|
where: { [this.fieldMap.id || "id"]: id },
|
|
@@ -223,12 +223,12 @@ class RedisSessionRepository implements SessionRepository {
|
|
|
223
223
|
return this.update(id, { collectedData });
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
async
|
|
226
|
+
async updateRouteStep(
|
|
227
227
|
id: string,
|
|
228
228
|
route?: string,
|
|
229
|
-
|
|
229
|
+
step?: string
|
|
230
230
|
): Promise<SessionData | null> {
|
|
231
|
-
return this.update(id, { currentRoute: route,
|
|
231
|
+
return this.update(id, { currentRoute: route, currentStep: step });
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
async incrementMessageCount(id: string): Promise<SessionData | null> {
|
|
@@ -16,15 +16,15 @@ import type {
|
|
|
16
16
|
* SQLite database interface - matches better-sqlite3
|
|
17
17
|
*/
|
|
18
18
|
export interface SqliteDatabase {
|
|
19
|
-
prepare(sql: string):
|
|
19
|
+
prepare(sql: string): SqliteStepment;
|
|
20
20
|
exec(sql: string): void;
|
|
21
21
|
close(): void;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
* SQLite
|
|
25
|
+
* SQLite stepment interface
|
|
26
26
|
*/
|
|
27
|
-
export interface
|
|
27
|
+
export interface SqliteStepment {
|
|
28
28
|
run(...params: unknown[]): { changes: number; lastInsertRowid: number };
|
|
29
29
|
get(...params: unknown[]): Record<string, unknown> | undefined;
|
|
30
30
|
all(...params: unknown[]): Array<Record<string, unknown>>;
|
|
@@ -95,7 +95,7 @@ export class SQLiteAdapter implements PersistenceAdapter {
|
|
|
95
95
|
agent_name TEXT,
|
|
96
96
|
status TEXT DEFAULT 'active',
|
|
97
97
|
current_route TEXT,
|
|
98
|
-
|
|
98
|
+
current_step TEXT,
|
|
99
99
|
collected_data TEXT,
|
|
100
100
|
message_count INTEGER DEFAULT 0,
|
|
101
101
|
last_message_at TEXT,
|
|
@@ -120,7 +120,7 @@ export class SQLiteAdapter implements PersistenceAdapter {
|
|
|
120
120
|
role TEXT NOT NULL,
|
|
121
121
|
content TEXT NOT NULL,
|
|
122
122
|
route TEXT,
|
|
123
|
-
|
|
123
|
+
step TEXT,
|
|
124
124
|
tool_calls TEXT,
|
|
125
125
|
event TEXT,
|
|
126
126
|
created_at TEXT NOT NULL,
|
|
@@ -232,9 +232,9 @@ class SQLiteSessionRepository implements SessionRepository {
|
|
|
232
232
|
fields.push("current_route = ?");
|
|
233
233
|
values.push(data.currentRoute);
|
|
234
234
|
}
|
|
235
|
-
if (data.
|
|
236
|
-
fields.push("
|
|
237
|
-
values.push(data.
|
|
235
|
+
if (data.currentStep !== undefined) {
|
|
236
|
+
fields.push("current_step = ?");
|
|
237
|
+
values.push(data.currentStep);
|
|
238
238
|
}
|
|
239
239
|
if (data.messageCount !== undefined) {
|
|
240
240
|
fields.push("message_count = ?");
|
|
@@ -281,14 +281,14 @@ class SQLiteSessionRepository implements SessionRepository {
|
|
|
281
281
|
return await this.update(id, { collectedData });
|
|
282
282
|
}
|
|
283
283
|
|
|
284
|
-
async
|
|
284
|
+
async updateRouteStep(
|
|
285
285
|
id: string,
|
|
286
286
|
route?: string,
|
|
287
|
-
|
|
287
|
+
step?: string
|
|
288
288
|
): Promise<SessionData | null> {
|
|
289
289
|
return await this.update(id, {
|
|
290
290
|
currentRoute: route,
|
|
291
|
-
|
|
291
|
+
currentStep: step,
|
|
292
292
|
});
|
|
293
293
|
}
|
|
294
294
|
|
|
@@ -321,7 +321,7 @@ class SQLiteSessionRepository implements SessionRepository {
|
|
|
321
321
|
agentName: (row.agent_name as string) || undefined,
|
|
322
322
|
status: row.status as SessionStatus,
|
|
323
323
|
currentRoute: (row.current_route as string) || undefined,
|
|
324
|
-
|
|
324
|
+
currentStep: (row.current_step as string) || undefined,
|
|
325
325
|
collectedData: row.collected_data
|
|
326
326
|
? (JSON.parse(row.collected_data as string) as Record<string, unknown>)
|
|
327
327
|
: undefined,
|
|
@@ -356,7 +356,7 @@ class SQLiteMessageRepository implements MessageRepository {
|
|
|
356
356
|
|
|
357
357
|
const stmt = this.db.prepare(`
|
|
358
358
|
INSERT INTO ${this.tableName}
|
|
359
|
-
(id, session_id, user_id, role, content, route,
|
|
359
|
+
(id, session_id, user_id, role, content, route, step, tool_calls, event, created_at)
|
|
360
360
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
361
361
|
`);
|
|
362
362
|
|
|
@@ -367,7 +367,7 @@ class SQLiteMessageRepository implements MessageRepository {
|
|
|
367
367
|
data.role,
|
|
368
368
|
data.content,
|
|
369
369
|
data.route || null,
|
|
370
|
-
data.
|
|
370
|
+
data.step || null,
|
|
371
371
|
JSON.stringify(data.toolCalls || null),
|
|
372
372
|
JSON.stringify(data.event || null),
|
|
373
373
|
now.toISOString()
|
|
@@ -436,7 +436,7 @@ class SQLiteMessageRepository implements MessageRepository {
|
|
|
436
436
|
role: row.role as MessageData["role"],
|
|
437
437
|
content: row.content as string,
|
|
438
438
|
route: (row.route as string) || undefined,
|
|
439
|
-
|
|
439
|
+
step: (row.step as string) || undefined,
|
|
440
440
|
toolCalls: row.tool_calls
|
|
441
441
|
? (JSON.parse(row.tool_calls as string) as MessageData["toolCalls"])
|
|
442
442
|
: undefined,
|
package/src/adapters/index.ts
CHANGED
package/src/constants/index.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Special marker to end a route/journey
|
|
3
3
|
*/
|
|
4
|
-
export const
|
|
4
|
+
export const END_ROUTE = Symbol("END_ROUTE");
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* String constant for
|
|
8
|
-
* Use this when checking if
|
|
7
|
+
* String constant for END_ROUTE comparisons
|
|
8
|
+
* Use this when checking if currentStep.id has reached END_ROUTE
|
|
9
9
|
*/
|
|
10
|
-
export const
|
|
10
|
+
export const END_ROUTE_ID = "END_ROUTE";
|