@falai/agent 3.4.2 → 3.4.3

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 (110) hide show
  1. package/package.json +1 -1
  2. package/dist/cjs/adapters/MemoryAdapter.d.ts +0 -47
  3. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +0 -1
  4. package/dist/cjs/adapters/MemoryAdapter.js +0 -208
  5. package/dist/cjs/adapters/MemoryAdapter.js.map +0 -1
  6. package/dist/cjs/adapters/MongoAdapter.d.ts +0 -97
  7. package/dist/cjs/adapters/MongoAdapter.d.ts.map +0 -1
  8. package/dist/cjs/adapters/MongoAdapter.js +0 -200
  9. package/dist/cjs/adapters/MongoAdapter.js.map +0 -1
  10. package/dist/cjs/adapters/OpenSearchAdapter.d.ts +0 -169
  11. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +0 -1
  12. package/dist/cjs/adapters/OpenSearchAdapter.js +0 -475
  13. package/dist/cjs/adapters/OpenSearchAdapter.js.map +0 -1
  14. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +0 -85
  15. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  16. package/dist/cjs/adapters/PostgreSQLAdapter.js +0 -312
  17. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +0 -1
  18. package/dist/cjs/adapters/PrismaAdapter.d.ts +0 -115
  19. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +0 -1
  20. package/dist/cjs/adapters/PrismaAdapter.js +0 -410
  21. package/dist/cjs/adapters/PrismaAdapter.js.map +0 -1
  22. package/dist/cjs/adapters/RedisAdapter.d.ts +0 -72
  23. package/dist/cjs/adapters/RedisAdapter.d.ts.map +0 -1
  24. package/dist/cjs/adapters/RedisAdapter.js +0 -290
  25. package/dist/cjs/adapters/RedisAdapter.js.map +0 -1
  26. package/dist/cjs/adapters/SQLiteAdapter.d.ts +0 -86
  27. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +0 -1
  28. package/dist/cjs/adapters/SQLiteAdapter.js +0 -341
  29. package/dist/cjs/adapters/SQLiteAdapter.js.map +0 -1
  30. package/dist/cjs/adapters/index.d.ts +0 -17
  31. package/dist/cjs/adapters/index.d.ts.map +0 -1
  32. package/dist/cjs/adapters/index.js +0 -21
  33. package/dist/cjs/adapters/index.js.map +0 -1
  34. package/dist/cjs/adapters/sessionRow.d.ts +0 -22
  35. package/dist/cjs/adapters/sessionRow.d.ts.map +0 -1
  36. package/dist/cjs/adapters/sessionRow.js +0 -52
  37. package/dist/cjs/adapters/sessionRow.js.map +0 -1
  38. package/dist/cjs/constants/index.d.ts +0 -1
  39. package/dist/cjs/constants/index.d.ts.map +0 -1
  40. package/dist/cjs/constants/index.js +0 -4
  41. package/dist/cjs/constants/index.js.map +0 -1
  42. package/dist/cjs/core/Agent.d.ts +0 -382
  43. package/dist/cjs/core/Agent.d.ts.map +0 -1
  44. package/dist/cjs/core/Agent.js +0 -1198
  45. package/dist/cjs/core/Agent.js.map +0 -1
  46. package/dist/cjs/core/ResponseModal.d.ts +0 -305
  47. package/dist/cjs/core/ResponseModal.d.ts.map +0 -1
  48. package/dist/cjs/core/ResponseModal.js +0 -1414
  49. package/dist/cjs/core/ResponseModal.js.map +0 -1
  50. package/dist/cjs/core/ToolLoopExecutor.d.ts +0 -133
  51. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +0 -1
  52. package/dist/cjs/core/ToolLoopExecutor.js +0 -568
  53. package/dist/cjs/core/ToolLoopExecutor.js.map +0 -1
  54. package/dist/cjs/core/createAgent.d.ts +0 -35
  55. package/dist/cjs/core/createAgent.d.ts.map +0 -1
  56. package/dist/cjs/core/createAgent.js +0 -39
  57. package/dist/cjs/core/createAgent.js.map +0 -1
  58. package/dist/cjs/index.d.ts +0 -61
  59. package/dist/cjs/index.d.ts.map +0 -1
  60. package/dist/cjs/index.js +0 -113
  61. package/dist/cjs/index.js.map +0 -1
  62. package/dist/cjs/package.json +0 -1
  63. package/dist/cjs/providers/AnthropicProvider.d.ts +0 -46
  64. package/dist/cjs/providers/AnthropicProvider.d.ts.map +0 -1
  65. package/dist/cjs/providers/AnthropicProvider.js +0 -50
  66. package/dist/cjs/providers/AnthropicProvider.js.map +0 -1
  67. package/dist/cjs/providers/DeepSeekProvider.d.ts +0 -47
  68. package/dist/cjs/providers/DeepSeekProvider.d.ts.map +0 -1
  69. package/dist/cjs/providers/DeepSeekProvider.js +0 -42
  70. package/dist/cjs/providers/DeepSeekProvider.js.map +0 -1
  71. package/dist/cjs/providers/FallbackAiProvider.d.ts +0 -26
  72. package/dist/cjs/providers/FallbackAiProvider.d.ts.map +0 -1
  73. package/dist/cjs/providers/FallbackAiProvider.js +0 -54
  74. package/dist/cjs/providers/FallbackAiProvider.js.map +0 -1
  75. package/dist/cjs/providers/GeminiProvider.d.ts +0 -51
  76. package/dist/cjs/providers/GeminiProvider.d.ts.map +0 -1
  77. package/dist/cjs/providers/GeminiProvider.js +0 -53
  78. package/dist/cjs/providers/GeminiProvider.js.map +0 -1
  79. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts +0 -80
  80. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts.map +0 -1
  81. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js +0 -89
  82. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js.map +0 -1
  83. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +0 -61
  84. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +0 -1
  85. package/dist/cjs/providers/OpenAICompatibleProvider.js +0 -58
  86. package/dist/cjs/providers/OpenAICompatibleProvider.js.map +0 -1
  87. package/dist/cjs/providers/OpenAIProvider.d.ts +0 -40
  88. package/dist/cjs/providers/OpenAIProvider.d.ts.map +0 -1
  89. package/dist/cjs/providers/OpenAIProvider.js +0 -42
  90. package/dist/cjs/providers/OpenAIProvider.js.map +0 -1
  91. package/dist/cjs/providers/OpenRouterProvider.d.ts +0 -56
  92. package/dist/cjs/providers/OpenRouterProvider.d.ts.map +0 -1
  93. package/dist/cjs/providers/OpenRouterProvider.js +0 -45
  94. package/dist/cjs/providers/OpenRouterProvider.js.map +0 -1
  95. package/dist/cjs/providers/ProviderAdapter.d.ts +0 -126
  96. package/dist/cjs/providers/ProviderAdapter.d.ts.map +0 -1
  97. package/dist/cjs/providers/ProviderAdapter.js +0 -313
  98. package/dist/cjs/providers/ProviderAdapter.js.map +0 -1
  99. package/dist/cjs/providers/ZaiProvider.d.ts +0 -45
  100. package/dist/cjs/providers/ZaiProvider.d.ts.map +0 -1
  101. package/dist/cjs/providers/ZaiProvider.js +0 -51
  102. package/dist/cjs/providers/ZaiProvider.js.map +0 -1
  103. package/dist/cjs/providers/index.d.ts +0 -26
  104. package/dist/cjs/providers/index.d.ts.map +0 -1
  105. package/dist/cjs/providers/index.js +0 -30
  106. package/dist/cjs/providers/index.js.map +0 -1
  107. package/dist/cjs/utils/streamingMessage.d.ts +0 -48
  108. package/dist/cjs/utils/streamingMessage.d.ts.map +0 -1
  109. package/dist/cjs/utils/streamingMessage.js +0 -210
  110. package/dist/cjs/utils/streamingMessage.js.map +0 -1
@@ -1,410 +0,0 @@
1
- "use strict";
2
- /**
3
- * Prisma adapter for persistence
4
- * Simple, provider-like API with automatic schema creation
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.PrismaAdapter = void 0;
8
- const errors_js_1 = require("../types/errors.js");
9
- const index_js_1 = require("../utils/index.js");
10
- const index_js_2 = require("../utils/index.js");
11
- /**
12
- * Prisma Adapter - Provider-style API for Prisma persistence
13
- *
14
- * @example
15
- * ```typescript
16
- * import { PrismaClient } from '@prisma/client';
17
- * import { Agent, PrismaAdapter } from '@falai/agent';
18
- *
19
- * const prisma = new PrismaClient();
20
- *
21
- * const agent = new Agent({
22
- * name: "My Agent",
23
- * provider: provider,
24
- * persistence: {
25
- * adapter: new PrismaAdapter({ prisma }),
26
- * userId: "user_123",
27
- * },
28
- * });
29
- * ```
30
- */
31
- class PrismaAdapter {
32
- constructor(options) {
33
- this.initialized = false;
34
- this.prisma = options.prisma;
35
- this.options = {
36
- prisma: options.prisma,
37
- tables: {
38
- sessions: options.tables?.sessions || "agentSession",
39
- messages: options.tables?.messages || "agentMessage",
40
- },
41
- fieldMappings: options.fieldMappings,
42
- autoMigrate: options.autoMigrate ?? false,
43
- };
44
- // Initialize repositories
45
- this.sessionRepository = new PrismaSessionRepository(this.prisma, this.options.tables.sessions, this.options.fieldMappings?.sessions);
46
- this.messageRepository = new PrismaMessageRepository(this.prisma, this.options.tables.messages, this.options.fieldMappings?.messages);
47
- // Auto-initialize if configured
48
- if (this.options.autoMigrate) {
49
- this.initialize().catch((error) => {
50
- index_js_1.logger.error("[PrismaAdapter] Auto-migration failed:", error);
51
- });
52
- }
53
- }
54
- /**
55
- * Initialize the adapter (check/create tables)
56
- * Called automatically if autoMigrate is enabled
57
- */
58
- async initialize() {
59
- if (this.initialized)
60
- return;
61
- if (this.options.autoMigrate && this.prisma.$executeRaw) {
62
- // Note: This is a simplified example. In production, use Prisma Migrate.
63
- index_js_1.logger.warn("[PrismaAdapter] autoMigrate is experimental. Use Prisma Migrate for production.");
64
- // Table creation would go here, but it's database-specific
65
- // Better to rely on Prisma Migrate
66
- await Promise.resolve(); // Satisfy async requirement
67
- }
68
- this.initialized = true;
69
- }
70
- /**
71
- * Disconnect from the database
72
- */
73
- async disconnect() {
74
- if (this.prisma.$disconnect) {
75
- await this.prisma.$disconnect();
76
- }
77
- }
78
- }
79
- exports.PrismaAdapter = PrismaAdapter;
80
- /**
81
- * Prisma Session Repository
82
- * Internal implementation - users should use PrismaAdapter instead
83
- */
84
- class PrismaSessionRepository {
85
- constructor(prismaClient, tableName, fieldMappings) {
86
- this.prisma = prismaClient;
87
- this.tableName = tableName;
88
- this.fieldMap = fieldMappings || {};
89
- }
90
- /**
91
- * Run a write that includes the `version` field, retrying without it once
92
- * if the model evidently lacks the column. The outcome is remembered.
93
- */
94
- async writeWithVersionFallback(write) {
95
- if (this.versionSupported === false) {
96
- return write(false);
97
- }
98
- try {
99
- const result = await write(true);
100
- this.versionSupported = true;
101
- return result;
102
- }
103
- catch (error) {
104
- const versionField = this.fieldMap.version || "version";
105
- if (this.versionSupported === undefined &&
106
- error instanceof Error &&
107
- error.message.includes(versionField)) {
108
- this.versionSupported = false;
109
- return write(false);
110
- }
111
- throw error;
112
- }
113
- }
114
- /**
115
- * Map our standard field names to custom schema field names
116
- */
117
- mapFields(data) {
118
- const mapped = {};
119
- for (const [key, value] of Object.entries(data)) {
120
- const mappedKey = this.fieldMap[key] || key;
121
- mapped[mappedKey] = value;
122
- }
123
- return mapped;
124
- }
125
- /**
126
- * Map custom schema field names back to our standard field names
127
- */
128
- unmapFields(data) {
129
- if (!data)
130
- throw new Error("Data cannot be null");
131
- const reverseMap = {};
132
- for (const [standardKey, customKey] of Object.entries(this.fieldMap)) {
133
- reverseMap[customKey] = standardKey;
134
- }
135
- const unmapped = {};
136
- for (const [key, value] of Object.entries(data)) {
137
- const unmappedKey = reverseMap[key] || key;
138
- unmapped[unmappedKey] = value;
139
- }
140
- // Construct proper SessionData object
141
- return {
142
- id: unmapped.id,
143
- userId: unmapped.userId,
144
- agentName: unmapped.agentName,
145
- status: unmapped.status,
146
- currentFlow: unmapped.currentFlow,
147
- currentStep: unmapped.currentStep,
148
- collectedData: unmapped.collectedData,
149
- messageCount: unmapped.messageCount,
150
- lastMessageAt: unmapped.lastMessageAt,
151
- completedAt: unmapped.completedAt,
152
- version: unmapped.version ?? undefined,
153
- createdAt: unmapped.createdAt,
154
- updatedAt: unmapped.updatedAt,
155
- };
156
- }
157
- getModel() {
158
- return this.prisma[this.tableName];
159
- }
160
- async create(data) {
161
- const id = data.id || (0, index_js_2.createSessionId)();
162
- const result = await this.writeWithVersionFallback((includeVersion) => {
163
- const mapped = this.mapFields(includeVersion
164
- ? { ...data, id, version: data.version ?? 1 }
165
- : { ...data, id });
166
- return this.getModel().create({ data: mapped });
167
- });
168
- return this.unmapFields(result);
169
- }
170
- async findById(id) {
171
- const result = await this.getModel().findUnique({
172
- where: { [this.fieldMap.id || "id"]: id },
173
- });
174
- return result ? this.unmapFields(result) : null;
175
- }
176
- async findActiveByUserId(userId) {
177
- const result = await this.getModel().findFirst({
178
- where: {
179
- [this.fieldMap.userId || "userId"]: userId,
180
- [this.fieldMap.status || "status"]: "active",
181
- },
182
- orderBy: {
183
- [this.fieldMap.createdAt || "createdAt"]: "desc",
184
- },
185
- });
186
- return result ? this.unmapFields(result) : null;
187
- }
188
- async findByUserId(userId, limit = 100) {
189
- const results = await this.getModel().findMany({
190
- where: {
191
- [this.fieldMap.userId || "userId"]: userId,
192
- },
193
- orderBy: {
194
- [this.fieldMap.createdAt || "createdAt"]: "desc",
195
- },
196
- take: limit,
197
- });
198
- return results.map((r) => this.unmapFields(r));
199
- }
200
- async update(id, data, options) {
201
- // Read-check-write: the Prisma model is user-defined, so we cannot emit a
202
- // conditional UPDATE generically. Add `version Int?` to your Prisma model
203
- // for optimistic locking to be effective.
204
- const existing = await this.findById(id);
205
- if (!existing)
206
- return null;
207
- if (options?.expectedVersion !== undefined &&
208
- existing.version !== undefined &&
209
- existing.version !== options.expectedVersion) {
210
- throw new errors_js_1.SessionConflictError(id, options.expectedVersion, existing.version);
211
- }
212
- const result = await this.writeWithVersionFallback((includeVersion) => {
213
- const mapped = this.mapFields(includeVersion
214
- ? {
215
- ...data,
216
- version: (existing.version ?? options?.expectedVersion ?? 0) + 1,
217
- }
218
- : { ...data });
219
- return this.getModel().update({
220
- where: { [this.fieldMap.id || "id"]: id },
221
- data: {
222
- ...mapped,
223
- [this.fieldMap.updatedAt || "updatedAt"]: new Date(),
224
- },
225
- });
226
- });
227
- return this.unmapFields(result);
228
- }
229
- async updateStatus(id, status, completedAt) {
230
- const data = {
231
- [this.fieldMap.status || "status"]: status,
232
- [this.fieldMap.updatedAt || "updatedAt"]: new Date(),
233
- };
234
- if (completedAt) {
235
- data[this.fieldMap.completedAt || "completedAt"] = completedAt;
236
- }
237
- const result = await this.getModel().update({
238
- where: { [this.fieldMap.id || "id"]: id },
239
- data,
240
- });
241
- return this.unmapFields(result);
242
- }
243
- async updateCollectedData(id, collectedData) {
244
- const result = await this.getModel().update({
245
- where: { [this.fieldMap.id || "id"]: id },
246
- data: {
247
- [this.fieldMap.collectedData || "collectedData"]: collectedData,
248
- [this.fieldMap.updatedAt || "updatedAt"]: new Date(),
249
- },
250
- });
251
- return this.unmapFields(result);
252
- }
253
- async updateFlowStep(id, flow, step) {
254
- const data = {
255
- [this.fieldMap.updatedAt || "updatedAt"]: new Date(),
256
- };
257
- if (flow !== undefined) {
258
- data[this.fieldMap.currentFlow || "currentFlow"] = flow;
259
- }
260
- if (step !== undefined) {
261
- data[this.fieldMap.currentStep || "currentStep"] = step;
262
- }
263
- const result = await this.getModel().update({
264
- where: { [this.fieldMap.id || "id"]: id },
265
- data,
266
- });
267
- return this.unmapFields(result);
268
- }
269
- async incrementMessageCount(id) {
270
- const result = await this.getModel().update({
271
- where: { [this.fieldMap.id || "id"]: id },
272
- data: {
273
- [this.fieldMap.messageCount || "messageCount"]: { increment: 1 },
274
- [this.fieldMap.lastMessageAt || "lastMessageAt"]: new Date(),
275
- [this.fieldMap.updatedAt || "updatedAt"]: new Date(),
276
- },
277
- });
278
- return this.unmapFields(result);
279
- }
280
- async delete(id) {
281
- try {
282
- await this.getModel().delete({
283
- where: { [this.fieldMap.id || "id"]: id },
284
- });
285
- return true;
286
- }
287
- catch {
288
- return false;
289
- }
290
- }
291
- }
292
- /**
293
- * Prisma Message Repository
294
- * Internal implementation - users should use PrismaAdapter instead
295
- */
296
- class PrismaMessageRepository {
297
- constructor(prismaClient, tableName, fieldMappings) {
298
- this.prisma = prismaClient;
299
- this.tableName = tableName;
300
- this.fieldMap = fieldMappings || {};
301
- }
302
- /**
303
- * Map our standard field names to custom schema field names
304
- */
305
- mapFields(data) {
306
- const mapped = {};
307
- for (const [key, value] of Object.entries(data)) {
308
- const mappedKey = this.fieldMap[key] || key;
309
- mapped[mappedKey] = value;
310
- }
311
- return mapped;
312
- }
313
- /**
314
- * Map custom schema field names back to our standard field names
315
- */
316
- unmapFields(data) {
317
- if (!data)
318
- throw new Error("Data cannot be null");
319
- const reverseMap = {};
320
- for (const [standardKey, customKey] of Object.entries(this.fieldMap)) {
321
- reverseMap[customKey] = standardKey;
322
- }
323
- const unmapped = {};
324
- for (const [key, value] of Object.entries(data)) {
325
- const unmappedKey = reverseMap[key] || key;
326
- unmapped[unmappedKey] = value;
327
- }
328
- // Construct proper MessageData object
329
- return {
330
- id: unmapped.id,
331
- sessionId: unmapped.sessionId,
332
- userId: unmapped.userId,
333
- role: unmapped.role,
334
- content: unmapped.content,
335
- flow: unmapped.flow,
336
- step: unmapped.step,
337
- toolCalls: unmapped.toolCalls,
338
- event: unmapped.event,
339
- createdAt: unmapped.createdAt,
340
- };
341
- }
342
- getModel() {
343
- return this.prisma[this.tableName];
344
- }
345
- async create(data) {
346
- const mapped = this.mapFields(data);
347
- const result = await this.getModel().create({
348
- data: mapped,
349
- });
350
- return this.unmapFields(result);
351
- }
352
- async findById(id) {
353
- const result = await this.getModel().findUnique({
354
- where: { [this.fieldMap.id || "id"]: id },
355
- });
356
- return result ? this.unmapFields(result) : null;
357
- }
358
- async findBySessionId(sessionId, limit = 1000) {
359
- const results = await this.getModel().findMany({
360
- where: {
361
- [this.fieldMap.sessionId || "sessionId"]: sessionId,
362
- },
363
- orderBy: {
364
- [this.fieldMap.createdAt || "createdAt"]: "asc",
365
- },
366
- take: limit,
367
- });
368
- return results.map((r) => this.unmapFields(r));
369
- }
370
- async findByUserId(userId, limit = 100) {
371
- const results = await this.getModel().findMany({
372
- where: {
373
- [this.fieldMap.userId || "userId"]: userId,
374
- },
375
- orderBy: {
376
- [this.fieldMap.createdAt || "createdAt"]: "desc",
377
- },
378
- take: limit,
379
- });
380
- return results.map((r) => this.unmapFields(r));
381
- }
382
- async delete(id) {
383
- try {
384
- await this.getModel().delete({
385
- where: { [this.fieldMap.id || "id"]: id },
386
- });
387
- return true;
388
- }
389
- catch {
390
- return false;
391
- }
392
- }
393
- async deleteBySessionId(sessionId) {
394
- const result = await this.getModel().deleteMany({
395
- where: {
396
- [this.fieldMap.sessionId || "sessionId"]: sessionId,
397
- },
398
- });
399
- return result.count || 0;
400
- }
401
- async deleteByUserId(userId) {
402
- const result = await this.getModel().deleteMany({
403
- where: {
404
- [this.fieldMap.userId || "userId"]: userId,
405
- },
406
- });
407
- return result.count || 0;
408
- }
409
- }
410
- //# sourceMappingURL=PrismaAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PrismaAdapter.js","sourceRoot":"","sources":["../../../src/adapters/PrismaAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- /**
2
- * Redis adapter for persistence
3
- * Uses Redis for fast session/message storage
4
- */
5
- import type { MessageRepository, PersistenceAdapter, SessionRepository } from "../types/index.js";
6
- /**
7
- * Redis client interface - matches ioredis/redis clients
8
- */
9
- export interface RedisClient {
10
- get(key: string): Promise<string | null>;
11
- set(key: string, value: string): Promise<string | null>;
12
- setex(key: string, seconds: number, value: string): Promise<string>;
13
- del(...keys: string[]): Promise<number>;
14
- keys(pattern: string): Promise<string[]>;
15
- hgetall(key: string): Promise<Record<string, string>>;
16
- hset(key: string, field: string, value: string): Promise<number>;
17
- hdel(key: string, field: string): Promise<number>;
18
- expire(key: string, seconds: number): Promise<number>;
19
- quit(): Promise<string>;
20
- }
21
- /**
22
- * Options for Redis adapter
23
- */
24
- export interface RedisAdapterOptions {
25
- /**
26
- * Redis client instance (ioredis or node-redis)
27
- */
28
- redis: RedisClient;
29
- /**
30
- * Key prefix for all keys (default: "agent:")
31
- */
32
- keyPrefix?: string;
33
- /**
34
- * TTL in seconds for sessions (default: 7 days)
35
- */
36
- sessionTTL?: number;
37
- /**
38
- * TTL in seconds for messages (default: 30 days)
39
- */
40
- messageTTL?: number;
41
- }
42
- /**
43
- * Redis Adapter - Provider-style API for Redis persistence
44
- *
45
- * @example
46
- * ```typescript
47
- * import Redis from 'ioredis';
48
- * import { Agent, RedisAdapter } from '@falai/agent';
49
- *
50
- * const redis = new Redis();
51
- *
52
- * const agent = new Agent({
53
- * name: "My Agent",
54
- * provider: provider,
55
- * persistence: {
56
- * adapter: new RedisAdapter({ redis }),
57
- * userId: "user_123",
58
- * },
59
- * });
60
- * ```
61
- */
62
- export declare class RedisAdapter<TData = Record<string, unknown>> implements PersistenceAdapter<TData> {
63
- readonly sessionRepository: SessionRepository<TData>;
64
- readonly messageRepository: MessageRepository;
65
- private redis;
66
- private keyPrefix;
67
- private sessionTTL;
68
- private messageTTL;
69
- constructor(options: RedisAdapterOptions);
70
- disconnect(): Promise<void>;
71
- }
72
- //# sourceMappingURL=RedisAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RedisAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/RedisAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAEV,iBAAiB,EACjB,kBAAkB,EAElB,iBAAiB,EAIlB,MAAM,mBAAmB,CAAC;AAK3B;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,YAAW,kBAAkB,CAAC,KAAK,CAAC;IAC7F,SAAgB,iBAAiB,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5D,SAAgB,iBAAiB,EAAE,iBAAiB,CAAC;IACrD,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,EAAE,mBAAmB;IAmBlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}