@falai/agent 0.3.10 → 0.3.12

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 (131) hide show
  1. package/README.md +192 -16
  2. package/dist/adapters/PrismaAdapter.d.ts +115 -0
  3. package/dist/adapters/PrismaAdapter.d.ts.map +1 -0
  4. package/dist/adapters/PrismaAdapter.js +331 -0
  5. package/dist/adapters/PrismaAdapter.js.map +1 -0
  6. package/dist/adapters/index.d.ts +6 -0
  7. package/dist/adapters/index.d.ts.map +1 -0
  8. package/dist/adapters/index.js +5 -0
  9. package/dist/adapters/index.js.map +1 -0
  10. package/dist/cjs/adapters/PrismaAdapter.d.ts +115 -0
  11. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +1 -0
  12. package/dist/cjs/adapters/PrismaAdapter.js +335 -0
  13. package/dist/cjs/adapters/PrismaAdapter.js.map +1 -0
  14. package/dist/cjs/adapters/index.d.ts +6 -0
  15. package/dist/cjs/adapters/index.d.ts.map +1 -0
  16. package/dist/cjs/adapters/index.js +9 -0
  17. package/dist/cjs/adapters/index.js.map +1 -0
  18. package/dist/cjs/core/Agent.d.ts +35 -0
  19. package/dist/cjs/core/Agent.d.ts.map +1 -1
  20. package/dist/cjs/core/Agent.js +153 -0
  21. package/dist/cjs/core/Agent.js.map +1 -1
  22. package/dist/cjs/core/PersistenceManager.d.ts +77 -0
  23. package/dist/cjs/core/PersistenceManager.d.ts.map +1 -0
  24. package/dist/cjs/core/PersistenceManager.js +153 -0
  25. package/dist/cjs/core/PersistenceManager.js.map +1 -0
  26. package/dist/cjs/index.d.ts +6 -0
  27. package/dist/cjs/index.d.ts.map +1 -1
  28. package/dist/cjs/index.js +8 -1
  29. package/dist/cjs/index.js.map +1 -1
  30. package/dist/cjs/providers/AnthropicProvider.d.ts +43 -0
  31. package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -0
  32. package/dist/cjs/providers/AnthropicProvider.js +328 -0
  33. package/dist/cjs/providers/AnthropicProvider.js.map +1 -0
  34. package/dist/cjs/providers/GeminiProvider.d.ts +4 -1
  35. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  36. package/dist/cjs/providers/GeminiProvider.js +96 -0
  37. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  38. package/dist/cjs/providers/OpenAIProvider.d.ts +4 -1
  39. package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
  40. package/dist/cjs/providers/OpenAIProvider.js +115 -0
  41. package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
  42. package/dist/cjs/providers/OpenRouterProvider.d.ts +4 -1
  43. package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -1
  44. package/dist/cjs/providers/OpenRouterProvider.js +115 -0
  45. package/dist/cjs/providers/OpenRouterProvider.js.map +1 -1
  46. package/dist/cjs/providers/index.d.ts +13 -0
  47. package/dist/cjs/providers/index.d.ts.map +1 -0
  48. package/dist/cjs/providers/index.js +16 -0
  49. package/dist/cjs/providers/index.js.map +1 -0
  50. package/dist/cjs/types/agent.d.ts +3 -0
  51. package/dist/cjs/types/agent.d.ts.map +1 -1
  52. package/dist/cjs/types/agent.js.map +1 -1
  53. package/dist/cjs/types/ai.d.ts +28 -0
  54. package/dist/cjs/types/ai.d.ts.map +1 -1
  55. package/dist/cjs/types/index.d.ts +1 -0
  56. package/dist/cjs/types/index.d.ts.map +1 -1
  57. package/dist/cjs/types/persistence.d.ts +194 -0
  58. package/dist/cjs/types/persistence.d.ts.map +1 -0
  59. package/dist/cjs/types/persistence.js +7 -0
  60. package/dist/cjs/types/persistence.js.map +1 -0
  61. package/dist/core/Agent.d.ts +35 -0
  62. package/dist/core/Agent.d.ts.map +1 -1
  63. package/dist/core/Agent.js +153 -0
  64. package/dist/core/Agent.js.map +1 -1
  65. package/dist/core/PersistenceManager.d.ts +77 -0
  66. package/dist/core/PersistenceManager.d.ts.map +1 -0
  67. package/dist/core/PersistenceManager.js +149 -0
  68. package/dist/core/PersistenceManager.js.map +1 -0
  69. package/dist/index.d.ts +6 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +4 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/providers/AnthropicProvider.d.ts +43 -0
  74. package/dist/providers/AnthropicProvider.d.ts.map +1 -0
  75. package/dist/providers/AnthropicProvider.js +321 -0
  76. package/dist/providers/AnthropicProvider.js.map +1 -0
  77. package/dist/providers/GeminiProvider.d.ts +4 -1
  78. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  79. package/dist/providers/GeminiProvider.js +96 -0
  80. package/dist/providers/GeminiProvider.js.map +1 -1
  81. package/dist/providers/OpenAIProvider.d.ts +4 -1
  82. package/dist/providers/OpenAIProvider.d.ts.map +1 -1
  83. package/dist/providers/OpenAIProvider.js +115 -0
  84. package/dist/providers/OpenAIProvider.js.map +1 -1
  85. package/dist/providers/OpenRouterProvider.d.ts +4 -1
  86. package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
  87. package/dist/providers/OpenRouterProvider.js +115 -0
  88. package/dist/providers/OpenRouterProvider.js.map +1 -1
  89. package/dist/providers/index.d.ts +13 -0
  90. package/dist/providers/index.d.ts.map +1 -0
  91. package/dist/providers/index.js +9 -0
  92. package/dist/providers/index.js.map +1 -0
  93. package/dist/types/agent.d.ts +3 -0
  94. package/dist/types/agent.d.ts.map +1 -1
  95. package/dist/types/agent.js.map +1 -1
  96. package/dist/types/ai.d.ts +28 -0
  97. package/dist/types/ai.d.ts.map +1 -1
  98. package/dist/types/index.d.ts +1 -0
  99. package/dist/types/index.d.ts.map +1 -1
  100. package/dist/types/persistence.d.ts +194 -0
  101. package/dist/types/persistence.d.ts.map +1 -0
  102. package/dist/types/persistence.js +6 -0
  103. package/dist/types/persistence.js.map +1 -0
  104. package/docs/API_REFERENCE.md +260 -2
  105. package/docs/PERSISTENCE.md +419 -0
  106. package/docs/PROVIDERS.md +139 -2
  107. package/examples/business-onboarding.ts +5 -4
  108. package/examples/declarative-agent.ts +1 -1
  109. package/examples/domain-scoping.ts +5 -4
  110. package/examples/healthcare-agent.ts +4 -4
  111. package/examples/openai-agent.ts +6 -4
  112. package/examples/prisma-persistence.ts +313 -0
  113. package/examples/prisma-schema.example.prisma +74 -0
  114. package/examples/rules-prohibitions.ts +4 -4
  115. package/examples/streaming-agent.ts +371 -0
  116. package/examples/travel-agent.ts +7 -4
  117. package/package.json +10 -1
  118. package/src/adapters/PrismaAdapter.ts +510 -0
  119. package/src/adapters/index.ts +10 -0
  120. package/src/core/Agent.ts +205 -0
  121. package/src/core/PersistenceManager.ts +222 -0
  122. package/src/index.ts +23 -0
  123. package/src/providers/AnthropicProvider.ts +467 -0
  124. package/src/providers/GeminiProvider.ts +135 -0
  125. package/src/providers/OpenAIProvider.ts +157 -0
  126. package/src/providers/OpenRouterProvider.ts +157 -0
  127. package/src/providers/index.ts +16 -0
  128. package/src/types/agent.ts +3 -0
  129. package/src/types/ai.ts +32 -0
  130. package/src/types/index.ts +14 -0
  131. package/src/types/persistence.ts +234 -0
package/README.md CHANGED
@@ -34,7 +34,7 @@
34
34
  ### 🚀 **Production Ready**
35
35
 
36
36
  - **Robust Retry Logic** - Exponential backoff & backup models
37
- - **AI Provider Strategy** - Pluggable backends (Gemini, OpenAI, OpenRouter)
37
+ - **AI Provider Strategy** - Pluggable backends (Claude, Gemini, OpenAI, OpenRouter)
38
38
  - **Prompt Composition** - Sophisticated prompt building system
39
39
 
40
40
  </td>
@@ -57,6 +57,27 @@
57
57
  - **Domain Registry** - Organize capabilities by domain
58
58
  - **Context Awareness** - Tools receive typed context automatically
59
59
 
60
+ </td>
61
+ </tr>
62
+ <tr>
63
+ <td width="50%">
64
+
65
+ ### 💾 **Optional Persistence**
66
+
67
+ - **Provider Pattern** - Simple API like AI providers
68
+ - **Prisma Ready** - Built-in ORM adapter
69
+ - **Auto-save** - Automatic session & message persistence
70
+ - **Extensible** - Create adapters for any database
71
+
72
+ </td>
73
+ <td width="50%">
74
+
75
+ ### 🎯 **Smart Routing**
76
+
77
+ - **Deterministic IDs** - Consistent identifiers across restarts
78
+ - **Route Scoping** - Control tool access per route
79
+ - **Rules & Prohibitions** - Fine-grained behavior control
80
+
60
81
  </td>
61
82
  </tr>
62
83
  </table>
@@ -87,8 +108,10 @@ Get up and running in 60 seconds:
87
108
  ```typescript
88
109
  import {
89
110
  Agent,
111
+ AnthropicProvider,
90
112
  GeminiProvider,
91
- OpenAIProvider, // or use OpenAI
113
+ OpenAIProvider,
114
+ OpenRouterProvider,
92
115
  createMessageEvent,
93
116
  EventSource,
94
117
  } from "@falai/agent";
@@ -101,15 +124,25 @@ interface SupportContext {
101
124
  }
102
125
 
103
126
  // 2️⃣ Create AI provider (choose one)
104
- const ai = new GeminiProvider({
105
- apiKey: process.env.GEMINI_API_KEY!,
106
- model: "models/gemini-2.5-flash",
127
+ const ai = new AnthropicProvider({
128
+ apiKey: process.env.ANTHROPIC_API_KEY!,
129
+ model: "claude-sonnet-4-5",
107
130
  });
108
131
 
109
- // Or use OpenAI:
132
+ // Or use other providers:
133
+ // const ai = new GeminiProvider({
134
+ // apiKey: process.env.GEMINI_API_KEY!,
135
+ // model: "models/gemini-2.5-flash",
136
+ // });
137
+
110
138
  // const ai = new OpenAIProvider({
111
139
  // apiKey: process.env.OPENAI_API_KEY!,
112
- // model: "gpt-5", // Required - specify your model
140
+ // model: "gpt-5",
141
+ // });
142
+
143
+ // const ai = new OpenRouterProvider({
144
+ // apiKey: process.env.OPENROUTER_API_KEY!,
145
+ // model: "anthropic/claude-sonnet-4-5", // Access to 200+ models
113
146
  // });
114
147
 
115
148
  // 3️⃣ Initialize your agent - two ways!
@@ -174,6 +207,36 @@ const response = await agent.respond({
174
207
  console.log(response.message); // 🎉 AI-powered response ready!
175
208
  ```
176
209
 
210
+ ### ⚡ Streaming Responses (NEW!)
211
+
212
+ Stream AI responses in real-time for better user experience:
213
+
214
+ ```typescript
215
+ // Use respondStream for real-time streaming
216
+ for await (const chunk of agent.respondStream({ history })) {
217
+ // chunk.delta contains the new text
218
+ process.stdout.write(chunk.delta);
219
+
220
+ if (chunk.done) {
221
+ // Stream complete - access final metadata
222
+ console.log("\n✅ Complete!");
223
+ console.log("Route:", chunk.route?.title);
224
+ console.log("Tool calls:", chunk.toolCalls?.length);
225
+ }
226
+ }
227
+ ```
228
+
229
+ **Benefits:**
230
+
231
+ - ✨ Real-time response generation
232
+ - 🎯 Better perceived performance
233
+ - 🛑 Cancellable with AbortSignal
234
+ - 📊 Access to route/state/tool information in final chunk
235
+
236
+ **Supported Providers:** All providers support streaming (Anthropic, OpenAI, Gemini, OpenRouter)
237
+
238
+ See [streaming-agent.ts](./examples/streaming-agent.ts) for complete examples.
239
+
177
240
  ---
178
241
 
179
242
  ## 📚 Documentation
@@ -183,6 +246,7 @@ console.log(response.message); // 🎉 AI-powered response ready!
183
246
  - **[Getting Started](./docs/GETTING_STARTED.md)** - Your first agent in 5 minutes
184
247
  - **[Constructor Options](./docs/CONSTRUCTOR_OPTIONS.md)** - Declarative vs Fluent API patterns
185
248
  - **[Context Management](./docs/CONTEXT_MANAGEMENT.md)** - Persistent conversations & state management
249
+ - **[Persistence](./docs/PERSISTENCE.md)** - Optional database persistence with Prisma **(NEW!)**
186
250
  - **[API Reference](./docs/API_REFERENCE.md)** - Complete API documentation
187
251
  - **[Architecture](./docs/STRUCTURE.md)** - Package structure and design principles
188
252
 
@@ -553,6 +617,66 @@ const saveTool = defineTool("save_data", async (ctx, data) => {
553
617
 
554
618
  See [Context Management Guide](./docs/CONTEXT_MANAGEMENT.md) for complete patterns and best practices.
555
619
 
620
+ ### 💾 Optional Database Persistence (NEW!)
621
+
622
+ For **production applications** that need to persist sessions and messages:
623
+
624
+ ```typescript
625
+ import { Agent, PrismaAdapter } from "@falai/agent";
626
+ import { PrismaClient } from "@prisma/client";
627
+
628
+ const prisma = new PrismaClient();
629
+
630
+ const agent = new Agent({
631
+ name: "My Agent",
632
+ ai: provider,
633
+ // ✨ Just add this!
634
+ persistence: {
635
+ adapter: new PrismaAdapter({ prisma }),
636
+ autoSave: true,
637
+ userId: "user_123",
638
+ },
639
+ });
640
+
641
+ // Access persistence manager
642
+ const persistence = agent.getPersistenceManager();
643
+
644
+ // Create a session
645
+ const session = await persistence.createSession({
646
+ userId: "user_123",
647
+ agentName: "My Agent",
648
+ });
649
+
650
+ // Load history
651
+ const history = await persistence.loadSessionHistory(session.id);
652
+
653
+ // Generate response
654
+ const response = await agent.respond({ history });
655
+
656
+ // Optionally Save message (automatically saves if autoSave: true)
657
+ await persistence.saveMessage({
658
+ sessionId: session.id,
659
+ role: "agent",
660
+ content: response.message,
661
+ });
662
+ ```
663
+
664
+ **Features:**
665
+
666
+ - ✅ **Provider Pattern** - Simple API like AI providers
667
+ - ✅ **Prisma Built-in** - Ready-to-use ORM adapter
668
+ - ✅ **Auto-save** - Automatic message tracking
669
+ - ✅ **Custom Adapters** - Create for any database (MongoDB, Redis, etc.)
670
+ - ✅ **Lifecycle Integration** - Works seamlessly with context hooks
671
+
672
+ **Setup (3 steps):**
673
+
674
+ 1. Install: `npm install @prisma/client prisma`
675
+ 2. Copy schema from `examples/prisma-schema.example.prisma`
676
+ 3. Run: `npx prisma generate && npx prisma migrate dev`
677
+
678
+ See [Persistence Guide](./docs/PERSISTENCE.md) for complete documentation and custom adapter examples.
679
+
556
680
  ### 📖 Domain Glossary
557
681
 
558
682
  Teach your agent business-specific language:
@@ -616,9 +740,27 @@ const event = createMessageEvent(
616
740
 
617
741
  ### ⚙️ Advanced Configuration
618
742
 
619
- Fine-tune AI provider behavior - works with both Gemini and OpenAI:
743
+ Fine-tune AI provider behavior - works with all providers:
620
744
 
621
745
  ```typescript
746
+ // Anthropic (Claude) configuration
747
+ const anthropicProvider = new AnthropicProvider({
748
+ apiKey: process.env.ANTHROPIC_API_KEY!,
749
+ model: "claude-sonnet-4-5", // Primary model
750
+ backupModels: [
751
+ "claude-opus-4-1", // Backup if primary fails
752
+ "claude-sonnet-4-0", // Stable fallback
753
+ ],
754
+ config: {
755
+ temperature: 0.7,
756
+ top_p: 0.9,
757
+ },
758
+ retryConfig: {
759
+ timeout: 60000, // 60s timeout
760
+ retries: 3, // 3 attempts with exponential backoff
761
+ },
762
+ });
763
+
622
764
  // Gemini configuration
623
765
  const geminiProvider = new GeminiProvider({
624
766
  apiKey: process.env.GEMINI_API_KEY!,
@@ -628,8 +770,8 @@ const geminiProvider = new GeminiProvider({
628
770
  "models/gemini-2.0-flash",
629
771
  ],
630
772
  retryConfig: {
631
- timeout: 60000, // 60s timeout
632
- retries: 3, // 3 attempts with exponential backoff
773
+ timeout: 60000,
774
+ retries: 3,
633
775
  },
634
776
  });
635
777
 
@@ -643,6 +785,19 @@ const openaiProvider = new OpenAIProvider({
643
785
  retries: 3,
644
786
  },
645
787
  });
788
+
789
+ // OpenRouter configuration (access to 200+ models)
790
+ const openrouterProvider = new OpenRouterProvider({
791
+ apiKey: process.env.OPENROUTER_API_KEY!,
792
+ model: "anthropic/claude-sonnet-4-5",
793
+ backupModels: ["openai/gpt-5", "google/gemini-2.5-flash"],
794
+ siteUrl: "https://yourapp.com",
795
+ siteName: "Your App Name",
796
+ retryConfig: {
797
+ timeout: 60000,
798
+ retries: 3,
799
+ },
800
+ });
646
801
  ```
647
802
 
648
803
  ---
@@ -658,6 +813,16 @@ const openaiProvider = new OpenAIProvider({
658
813
  - 🔗 Route references by title in observations
659
814
  - ➕ Dynamic additions after construction
660
815
 
816
+ ### ⚡ [Streaming Responses](./examples/streaming-agent.ts) **(NEW!)**
817
+
818
+ **Real-time streaming responses for better UX:**
819
+
820
+ - 🌊 Stream responses from all providers (Anthropic, OpenAI, Gemini, OpenRouter)
821
+ - 📡 Real-time text generation with `respondStream`
822
+ - 🛑 Cancellable streams with AbortSignal
823
+ - 📊 Access route, state, and tool information
824
+ - 🎯 5 comprehensive examples covering different use cases
825
+
661
826
  ### 💾 [Persistent Onboarding Agent](./examples/persistent-onboarding.ts)
662
827
 
663
828
  **Multi-turn conversation with state persistence:**
@@ -668,6 +833,16 @@ const openaiProvider = new OpenAIProvider({
668
833
  - 🔧 Two approaches: lifecycle hooks vs context provider
669
834
  - 📝 Complete onboarding flow across multiple turns
670
835
 
836
+ ### 💾 [Prisma Persistence](./examples/prisma-persistence.ts) **(NEW!)**
837
+
838
+ **Production-ready database persistence:**
839
+
840
+ - ✨ Provider pattern - simple as `new PrismaAdapter({ prisma })`
841
+ - 🗄️ Automatic session and message persistence
842
+ - 🔄 Seamless lifecycle hook integration
843
+ - 📊 Complete examples: basic, advanced, and minimal
844
+ - 🎯 3-step setup with Prisma ORM
845
+
671
846
  ### 🏢 [Business Onboarding](./examples/business-onboarding.ts)
672
847
 
673
848
  **Production-ready business onboarding with advanced patterns:**
@@ -699,13 +874,14 @@ Healthcare-focused agent demonstrating:
699
874
  - 🔐 Sensitive data handling
700
875
  - ⚠️ Urgent case prioritization
701
876
 
702
- ### 🌐 [OpenAI Agent](./examples/openai-agent.ts)
877
+ ### 🌐 Multiple Provider Examples
703
878
 
704
- Using OpenAI provider instead of Gemini:
879
+ See how different AI providers work:
705
880
 
706
- - 🤖 OpenAI GPT-5 integration
707
- - 🔄 Backup model configuration
708
- - ⚙️ Custom retry settings
881
+ - **[OpenAI Agent](./examples/openai-agent.ts)** - GPT-5 integration
882
+ - **[Healthcare Agent](./examples/healthcare-agent.ts)** - Claude 3.5 Sonnet
883
+ - **[Travel Agent](./examples/travel-agent.ts)** - OpenRouter with backup models
884
+ - 🔄 All with backup model configuration and retry settings
709
885
  - 🌤️ Weather checking example
710
886
 
711
887
  ### 🔐 [Domain Scoping](./examples/domain-scoping.ts)
@@ -734,7 +910,7 @@ Control agent behavior and communication style per route:
734
910
  src/
735
911
  ├── types/ # Type definitions (strongly typed contracts)
736
912
  ├── core/ # Core framework (Agent, Route, State, Tools, etc.)
737
- ├── providers/ # AI providers (Gemini with retry/backup logic)
913
+ ├── providers/ # AI providers (Anthropic, Gemini, OpenAI, OpenRouter)
738
914
  ├── utils/ # Utilities (retry, timeout, helpers)
739
915
  ├── constants/ # Constants (END_ROUTE, symbols)
740
916
  └── index.ts # Public API exports
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Prisma adapter for persistence
3
+ * Simple, provider-like API with automatic schema creation
4
+ */
5
+ import type { SessionRepository, MessageRepository, SessionData, MessageData, PersistenceAdapter } from "../types/persistence";
6
+ /**
7
+ * Prisma model operations
8
+ */
9
+ export interface PrismaModel {
10
+ create: (params: {
11
+ data: Record<string, unknown>;
12
+ }) => Promise<Record<string, unknown>>;
13
+ findUnique: (params: {
14
+ where: Record<string, unknown>;
15
+ }) => Promise<Record<string, unknown> | null>;
16
+ findFirst: (params: {
17
+ where: Record<string, unknown>;
18
+ orderBy?: Record<string, string>;
19
+ }) => Promise<Record<string, unknown> | null>;
20
+ findMany: (params: {
21
+ where: Record<string, unknown>;
22
+ orderBy?: Record<string, string>;
23
+ take?: number;
24
+ }) => Promise<Array<Record<string, unknown>>>;
25
+ update: (params: {
26
+ where: Record<string, unknown>;
27
+ data: Record<string, unknown>;
28
+ }) => Promise<Record<string, unknown>>;
29
+ delete: (params: {
30
+ where: Record<string, unknown>;
31
+ }) => Promise<Record<string, unknown>>;
32
+ deleteMany: (params: {
33
+ where: Record<string, unknown>;
34
+ }) => Promise<{
35
+ count: number;
36
+ }>;
37
+ }
38
+ /**
39
+ * Prisma client interface - matches the shape of a generated Prisma client
40
+ */
41
+ export interface PrismaClient extends Record<string, unknown> {
42
+ $queryRaw?: <T = unknown>(query: TemplateStringsArray | string, ...values: unknown[]) => Promise<T>;
43
+ $executeRaw?: (query: TemplateStringsArray | string, ...values: unknown[]) => Promise<number>;
44
+ $disconnect?: () => Promise<void>;
45
+ }
46
+ /**
47
+ * Configuration for field mappings
48
+ */
49
+ export interface FieldMappings {
50
+ sessions?: Partial<Record<keyof SessionData, string>>;
51
+ messages?: Partial<Record<keyof MessageData, string>>;
52
+ }
53
+ /**
54
+ * Options for creating a Prisma adapter
55
+ */
56
+ export interface PrismaAdapterOptions {
57
+ /**
58
+ * Prisma client instance
59
+ */
60
+ prisma: PrismaClient;
61
+ /**
62
+ * Table/model names (defaults to 'agentSession' and 'agentMessage')
63
+ */
64
+ tables?: {
65
+ sessions?: string;
66
+ messages?: string;
67
+ };
68
+ /**
69
+ * Field mappings (optional, if your schema uses different field names)
70
+ */
71
+ fieldMappings?: FieldMappings;
72
+ /**
73
+ * Whether to auto-create tables if they don't exist (default: false)
74
+ * Note: Only works if your Prisma client has $executeRaw method
75
+ */
76
+ autoMigrate?: boolean;
77
+ }
78
+ /**
79
+ * Prisma Adapter - Provider-style API for Prisma persistence
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * import { PrismaClient } from '@prisma/client';
84
+ * import { Agent, PrismaAdapter } from '@falai/agent';
85
+ *
86
+ * const prisma = new PrismaClient();
87
+ *
88
+ * const agent = new Agent({
89
+ * name: "My Agent",
90
+ * ai: provider,
91
+ * persistence: {
92
+ * adapter: new PrismaAdapter({ prisma }),
93
+ * userId: "user_123",
94
+ * },
95
+ * });
96
+ * ```
97
+ */
98
+ export declare class PrismaAdapter implements PersistenceAdapter {
99
+ readonly sessionRepository: SessionRepository;
100
+ readonly messageRepository: MessageRepository;
101
+ private prisma;
102
+ private options;
103
+ private initialized;
104
+ constructor(options: PrismaAdapterOptions);
105
+ /**
106
+ * Initialize the adapter (check/create tables)
107
+ * Called automatically if autoMigrate is enabled
108
+ */
109
+ initialize(): Promise<void>;
110
+ /**
111
+ * Disconnect from the database
112
+ */
113
+ disconnect(): Promise<void>;
114
+ }
115
+ //# sourceMappingURL=PrismaAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrismaAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/PrismaAdapter.ts"],"names":[],"mappings":"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"}