@falai/agent 0.6.3 → 0.6.5

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 (137) hide show
  1. package/README.md +89 -29
  2. package/dist/cjs/constants/index.d.ts +6 -1
  3. package/dist/cjs/constants/index.d.ts.map +1 -1
  4. package/dist/cjs/constants/index.js +8 -3
  5. package/dist/cjs/constants/index.js.map +1 -1
  6. package/dist/cjs/core/Agent.d.ts +22 -0
  7. package/dist/cjs/core/Agent.d.ts.map +1 -1
  8. package/dist/cjs/core/Agent.js +113 -26
  9. package/dist/cjs/core/Agent.js.map +1 -1
  10. package/dist/cjs/core/Events.d.ts +13 -0
  11. package/dist/cjs/core/Events.d.ts.map +1 -1
  12. package/dist/cjs/core/Events.js +28 -14
  13. package/dist/cjs/core/Events.js.map +1 -1
  14. package/dist/cjs/core/ResponseEngine.d.ts +1 -1
  15. package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
  16. package/dist/cjs/core/ResponseEngine.js +4 -1
  17. package/dist/cjs/core/ResponseEngine.js.map +1 -1
  18. package/dist/cjs/core/Route.d.ts.map +1 -1
  19. package/dist/cjs/core/Route.js +4 -4
  20. package/dist/cjs/core/Route.js.map +1 -1
  21. package/dist/cjs/core/RoutingEngine.d.ts +6 -1
  22. package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
  23. package/dist/cjs/core/RoutingEngine.js +116 -41
  24. package/dist/cjs/core/RoutingEngine.js.map +1 -1
  25. package/dist/cjs/core/State.d.ts +18 -6
  26. package/dist/cjs/core/State.d.ts.map +1 -1
  27. package/dist/cjs/core/State.js +30 -7
  28. package/dist/cjs/core/State.js.map +1 -1
  29. package/dist/cjs/core/Tool.d.ts +8 -1
  30. package/dist/cjs/core/Tool.d.ts.map +1 -1
  31. package/dist/cjs/core/Tool.js +25 -28
  32. package/dist/cjs/core/Tool.js.map +1 -1
  33. package/dist/cjs/core/Transition.js +1 -1
  34. package/dist/cjs/index.d.ts +1 -1
  35. package/dist/cjs/index.d.ts.map +1 -1
  36. package/dist/cjs/index.js +3 -2
  37. package/dist/cjs/index.js.map +1 -1
  38. package/dist/cjs/types/agent.d.ts +5 -0
  39. package/dist/cjs/types/agent.d.ts.map +1 -1
  40. package/dist/cjs/types/agent.js.map +1 -1
  41. package/dist/cjs/types/route.d.ts +7 -1
  42. package/dist/cjs/types/route.d.ts.map +1 -1
  43. package/dist/cjs/types/session.d.ts +13 -2
  44. package/dist/cjs/types/session.d.ts.map +1 -1
  45. package/dist/cjs/types/session.js +28 -5
  46. package/dist/cjs/types/session.js.map +1 -1
  47. package/dist/cjs/utils/logger.d.ts +10 -0
  48. package/dist/cjs/utils/logger.d.ts.map +1 -0
  49. package/dist/cjs/utils/logger.js +23 -0
  50. package/dist/cjs/utils/logger.js.map +1 -0
  51. package/dist/constants/index.d.ts +6 -1
  52. package/dist/constants/index.d.ts.map +1 -1
  53. package/dist/constants/index.js +6 -1
  54. package/dist/constants/index.js.map +1 -1
  55. package/dist/core/Agent.d.ts +22 -0
  56. package/dist/core/Agent.d.ts.map +1 -1
  57. package/dist/core/Agent.js +113 -26
  58. package/dist/core/Agent.js.map +1 -1
  59. package/dist/core/Events.d.ts +13 -0
  60. package/dist/core/Events.d.ts.map +1 -1
  61. package/dist/core/Events.js +28 -14
  62. package/dist/core/Events.js.map +1 -1
  63. package/dist/core/ResponseEngine.d.ts +1 -1
  64. package/dist/core/ResponseEngine.d.ts.map +1 -1
  65. package/dist/core/ResponseEngine.js +4 -1
  66. package/dist/core/ResponseEngine.js.map +1 -1
  67. package/dist/core/Route.d.ts.map +1 -1
  68. package/dist/core/Route.js +4 -4
  69. package/dist/core/Route.js.map +1 -1
  70. package/dist/core/RoutingEngine.d.ts +6 -1
  71. package/dist/core/RoutingEngine.d.ts.map +1 -1
  72. package/dist/core/RoutingEngine.js +116 -41
  73. package/dist/core/RoutingEngine.js.map +1 -1
  74. package/dist/core/State.d.ts +18 -6
  75. package/dist/core/State.d.ts.map +1 -1
  76. package/dist/core/State.js +31 -8
  77. package/dist/core/State.js.map +1 -1
  78. package/dist/core/Tool.d.ts +8 -1
  79. package/dist/core/Tool.d.ts.map +1 -1
  80. package/dist/core/Tool.js +25 -28
  81. package/dist/core/Tool.js.map +1 -1
  82. package/dist/core/Transition.js +1 -1
  83. package/dist/index.d.ts +1 -1
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +1 -1
  86. package/dist/index.js.map +1 -1
  87. package/dist/types/agent.d.ts +5 -0
  88. package/dist/types/agent.d.ts.map +1 -1
  89. package/dist/types/agent.js.map +1 -1
  90. package/dist/types/route.d.ts +7 -1
  91. package/dist/types/route.d.ts.map +1 -1
  92. package/dist/types/session.d.ts +13 -2
  93. package/dist/types/session.d.ts.map +1 -1
  94. package/dist/types/session.js +28 -5
  95. package/dist/types/session.js.map +1 -1
  96. package/dist/utils/logger.d.ts +10 -0
  97. package/dist/utils/logger.d.ts.map +1 -0
  98. package/dist/utils/logger.js +17 -0
  99. package/dist/utils/logger.js.map +1 -0
  100. package/docs/{CONSTRUCTOR_OPTIONS.md → AGENT.md} +79 -7
  101. package/docs/API_REFERENCE.md +309 -18
  102. package/docs/ARCHITECTURE.md +1 -1
  103. package/docs/DOCS.md +46 -22
  104. package/docs/GETTING_STARTED.md +1 -1
  105. package/docs/README.md +13 -5
  106. package/docs/ROUTES.md +743 -0
  107. package/docs/STATES.md +798 -0
  108. package/examples/business-onboarding.ts +46 -5
  109. package/examples/company-qna-agent.ts +107 -1
  110. package/examples/custom-database-persistence.ts +44 -1
  111. package/examples/declarative-agent.ts +80 -37
  112. package/examples/domain-scoping.ts +91 -21
  113. package/examples/extracted-data-modification.ts +64 -2
  114. package/examples/healthcare-agent.ts +61 -4
  115. package/examples/openai-agent.ts +24 -2
  116. package/examples/opensearch-persistence.ts +26 -1
  117. package/examples/persistent-onboarding.ts +84 -18
  118. package/examples/prisma-persistence.ts +90 -16
  119. package/examples/redis-persistence.ts +89 -17
  120. package/examples/rules-prohibitions.ts +300 -139
  121. package/examples/streaming-agent.ts +60 -0
  122. package/examples/travel-agent.ts +66 -24
  123. package/package.json +3 -2
  124. package/src/constants/index.ts +6 -1
  125. package/src/core/Agent.ts +140 -24
  126. package/src/core/Events.ts +73 -10
  127. package/src/core/ResponseEngine.ts +6 -0
  128. package/src/core/Route.ts +8 -4
  129. package/src/core/RoutingEngine.ts +154 -43
  130. package/src/core/State.ts +45 -12
  131. package/src/core/Tool.ts +67 -10
  132. package/src/core/Transition.ts +1 -1
  133. package/src/index.ts +1 -1
  134. package/src/types/agent.ts +5 -0
  135. package/src/types/route.ts +10 -1
  136. package/src/types/session.ts +47 -7
  137. package/src/utils/logger.ts +19 -0
package/README.md CHANGED
@@ -93,7 +93,6 @@
93
93
 
94
94
  ---
95
95
 
96
-
97
96
  ## 📦 Installation
98
97
 
99
98
  ```bash
@@ -113,7 +112,7 @@ yarn add @falai/agent
113
112
 
114
113
  ## 🚀 Quick Start
115
114
 
116
- Build a conversational AI agent in 2 minutes:
115
+ Build a data-driven conversational AI agent in minutes. This example shows how to intelligently gather structured data over multiple turns.
117
116
 
118
117
  ```typescript
119
118
  import {
@@ -122,65 +121,117 @@ import {
122
121
  defineTool,
123
122
  createMessageEvent,
124
123
  EventSource,
124
+ END_STATE,
125
+ type ToolContext,
125
126
  } from "@falai/agent";
126
127
 
127
- // 1️⃣ Create your agent
128
+ // 1️⃣ Define the data you want to collect
129
+ interface HotelBookingData {
130
+ hotelName: string;
131
+ date: string;
132
+ guests: number;
133
+ }
134
+
135
+ // 2️⃣ Create your agent
128
136
  const agent = new Agent({
129
137
  name: "BookingBot",
130
- description: "Hotel booking assistant",
138
+ description: "A hotel booking assistant that gathers information.",
131
139
  ai: new GeminiProvider({
132
140
  apiKey: process.env.GEMINI_API_KEY!,
133
- model: "models/gemini-2.5-flash",
141
+ model: "models/gemini-2.5-flash", // or your preferred model
134
142
  }),
135
- context: { userId: "user_123" },
136
143
  });
137
144
 
138
- // 2️⃣ Define a simple tool
139
- const checkAvailability = defineTool(
140
- "check_availability",
141
- async (ctx, hotelName: string, date: string) => {
142
- return { data: `${hotelName} has rooms available on ${date}` };
145
+ // 3️⃣ Define a tool that uses the collected data
146
+ const bookHotel = defineTool(
147
+ "book_hotel",
148
+ async ({ extracted }: ToolContext<{}, HotelBookingData>) => {
149
+ // Logic to book the hotel...
150
+ return {
151
+ data: `Booking confirmed for ${extracted?.guests} at ${extracted?.hotelName} on ${extracted?.date}!`,
152
+ };
143
153
  },
144
- { description: "Check hotel availability" }
154
+ { description: "Books a hotel once all information is collected." }
145
155
  );
146
156
 
147
- // 3️⃣ Create a route with 2 states
148
- const bookingRoute = agent.createRoute({
157
+ // 4️⃣ Create a data-driven route
158
+ const bookingRoute = agent.createRoute<HotelBookingData>({
149
159
  title: "Book Hotel",
160
+ description: "Guides the user through the hotel booking process.",
150
161
  conditions: ["User wants to book a hotel"],
162
+ extractionSchema: {
163
+ type: "object",
164
+ properties: {
165
+ hotelName: { type: "string", description: "The name of the hotel." },
166
+ date: { type: "string", description: "The desired booking date." },
167
+ guests: { type: "number", description: "The number of guests." },
168
+ },
169
+ required: ["hotelName", "date", "guests"],
170
+ },
171
+ });
172
+
173
+ // 5️⃣ Build the flow to gather data step-by-step
174
+ const askHotel = bookingRoute.initialState.transitionTo({
175
+ chatState: "Ask which hotel they want to book",
176
+ gather: ["hotelName"],
177
+ skipIf: (extracted) => !!extracted.hotelName, // Skip if we already have it
151
178
  });
152
179
 
153
- bookingRoute.initialState
154
- .transitionTo({
155
- toolState: checkAvailability,
156
- condition: "User provided hotel name and date",
157
- })
158
- .transitionTo({ chatState: "Confirm booking and provide summary" });
180
+ const askDate = askHotel.transitionTo({
181
+ chatState: "Ask for the booking date",
182
+ gather: ["date"],
183
+ skipIf: (extracted) => !!extracted.date,
184
+ });
185
+
186
+ const askGuests = askDate.transitionTo({
187
+ chatState: "Ask for the number of guests",
188
+ gather: ["guests"],
189
+ skipIf: (extracted) => !!extracted.guests,
190
+ });
159
191
 
160
- // 4️⃣ Start conversing
192
+ const confirmBooking = askGuests.transitionTo({
193
+ toolState: bookHotel,
194
+ condition:
195
+ "All required information (hotel, date, guests) has been collected.",
196
+ });
197
+
198
+ confirmBooking.transitionTo({
199
+ state: END_STATE, // End the conversation flow
200
+ });
201
+
202
+ // 6️⃣ Start conversing
161
203
  const response = await agent.respond({
162
204
  history: [
163
205
  createMessageEvent(
164
206
  EventSource.CUSTOMER,
165
207
  "Alice",
166
- "Book me a room at Grand Hotel for tomorrow"
208
+ "I want to book a room at the Grand Hotel for 2 people."
167
209
  ),
168
210
  ],
169
211
  });
170
212
 
171
- console.log(response.message); // 🎉 AI handles the rest!
213
+ // The agent sees that `hotelName` and `guests` are provided,
214
+ // skips the first and third steps, and only asks for the date.
215
+ console.log(response.message);
216
+ // Expected: "Sure, for what date would you like to book at the Grand Hotel?"
172
217
  ```
173
218
 
174
- **That's it!** The agent will:
175
- - ✅ Route to the correct conversation flow
176
- - ✅ Execute tools automatically when conditions match
177
- - ✅ Generate natural responses based on state
219
+ **That's it!** The data-driven agent will:
220
+
221
+ - ✅ **Understand the Goal** - Route to the `Book Hotel` flow based on user intent.
222
+ - ✅ **Extract Known Data** - Automatically pull `hotelName` and `guests` from the first message.
223
+ - ✅ **Skip Unneeded Steps** - Use `skipIf` to bypass questions for data it already has.
224
+ - ✅ **Gather Missing Data** - Intelligently ask only for the missing `date`.
225
+ - ✅ **Execute Deterministically** - Call the `bookHotel` tool only when all required data is present.
226
+
227
+ This creates a flexible and natural conversation, guided by a clear data structure.
178
228
 
179
229
  📖 **[See more examples →](./docs/EXAMPLES.md)** | **[Full tutorial →](./docs/GETTING_STARTED.md)**
180
230
 
181
231
  ### ⚡ Advanced Features
182
232
 
183
233
  **Streaming responses** for real-time UX:
234
+
184
235
  ```typescript
185
236
  for await (const chunk of agent.respondStream({ history })) {
186
237
  process.stdout.write(chunk.delta);
@@ -188,6 +239,7 @@ for await (const chunk of agent.respondStream({ history })) {
188
239
  ```
189
240
 
190
241
  **Session state** for multi-turn conversations:
242
+
191
243
  ```typescript
192
244
  let session = createSession<MyData>();
193
245
  const response = await agent.respond({ history, session });
@@ -195,10 +247,11 @@ session = response.session!; // Tracks progress across turns
195
247
  ```
196
248
 
197
249
  **Database persistence** with any adapter:
250
+
198
251
  ```typescript
199
252
  import { PrismaAdapter } from "@falai/agent";
200
253
  const agent = new Agent({
201
- persistence: { adapter: new PrismaAdapter({ prisma }) }
254
+ persistence: { adapter: new PrismaAdapter({ prisma }) },
202
255
  });
203
256
  ```
204
257
 
@@ -211,15 +264,19 @@ const agent = new Agent({
211
264
  📋 **[Complete Documentation Index →](docs/DOCS.md)** - Searchable index of all docs
212
265
 
213
266
  **Core Guides:**
267
+
214
268
  - 📘 **[Getting Started](./docs/GETTING_STARTED.md)** - Build your first agent in 5 minutes
215
269
  - 🏗️ **[Architecture](./docs/ARCHITECTURE.md)** - Design principles & philosophy
216
270
  - 🔧 **[API Reference](./docs/API_REFERENCE.md)** - Complete API documentation
217
271
  - 📝 **[Examples](./docs/EXAMPLES.md)** - Production-ready code examples
218
272
 
219
273
  **Feature Guides:**
274
+
275
+ - 🛤️ **[Routes](./docs/ROUTES.md)** - Creating conversational routes & flows
276
+ - 🔄 **[States](./docs/STATES.md)** - Managing states & transitions
220
277
  - 💾 **[Persistence](./docs/PERSISTENCE.md)** - Database integration with adapters
221
278
  - 🔒 **[Domains](./docs/DOMAINS.md)** - Optional tool security & organization
222
- - 🎛️ **[Constructor Options](./docs/CONSTRUCTOR_OPTIONS.md)** - Configuration patterns
279
+ - 🎛️ **[Agent](./docs/AGENT.md)** - Configuration patterns
223
280
  - 📊 **[Context Management](./docs/CONTEXT_MANAGEMENT.md)** - Session state & lifecycle hooks
224
281
  - 🤖 **[AI Providers](./docs/PROVIDERS.md)** - Anthropic, OpenAI, Gemini, OpenRouter
225
282
 
@@ -228,6 +285,7 @@ const agent = new Agent({
228
285
  ## 🎯 Examples
229
286
 
230
287
  **Core Examples:**
288
+
231
289
  - 🏢 **[Business Onboarding](./examples/business-onboarding.ts)** - Complex multi-step flow with branching
232
290
  - ✈️ **[Travel Agent](./examples/travel-agent.ts)** - Multi-route booking system with session state
233
291
  - 🏥 **[Healthcare Assistant](./examples/healthcare-agent.ts)** - Appointment scheduling & lab results
@@ -235,6 +293,7 @@ const agent = new Agent({
235
293
  - ⚡ **[Streaming Responses](./examples/streaming-agent.ts)** - Real-time response streaming
236
294
 
237
295
  **Persistence & Advanced:**
296
+
238
297
  - 💾 **[Prisma Persistence](./examples/prisma-persistence.ts)** - Auto-save with Prisma ORM
239
298
  - ⚡ **[Redis Persistence](./examples/redis-persistence.ts)** - Fast in-memory sessions
240
299
  - 🔐 **[Domain Scoping](./examples/domain-scoping.ts)** - Tool security per route
@@ -255,6 +314,7 @@ const agent = new Agent({
255
314
  5. **Message Generation** - AI generates natural responses based on current state
256
315
 
257
316
  **Behind the scenes:**
317
+
258
318
  - The AI only generates messages and extracts data - it never decides which tools to call
259
319
  - Tools execute deterministically based on state transitions and code-based conditions
260
320
  - Session state tracks progress and extracted data across conversation turns
@@ -1,5 +1,10 @@
1
1
  /**
2
2
  * Special marker to end a route/journey
3
3
  */
4
- export declare const END_ROUTE: unique symbol;
4
+ export declare const END_STATE: unique symbol;
5
+ /**
6
+ * String constant for END_STATE comparisons
7
+ * Use this when checking if currentState.id has reached END_STATE
8
+ */
9
+ export declare const END_STATE_ID = "END_STATE";
5
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,SAAS,eAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS,eAAsB,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,YAAY,cAAc,CAAC"}
@@ -1,8 +1,13 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.END_STATE_ID = exports.END_STATE = void 0;
2
4
  /**
3
5
  * Special marker to end a route/journey
4
6
  */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.END_ROUTE = void 0;
7
- exports.END_ROUTE = Symbol("END_ROUTE");
7
+ exports.END_STATE = Symbol("END_STATE");
8
+ /**
9
+ * String constant for END_STATE comparisons
10
+ * Use this when checking if currentState.id has reached END_STATE
11
+ */
12
+ exports.END_STATE_ID = "END_STATE";
8
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAE7C;;;GAGG;AACU,QAAA,YAAY,GAAG,WAAW,CAAC"}
@@ -22,6 +22,7 @@ export declare class Agent<TContext = unknown> {
22
22
  private persistenceManager;
23
23
  private routingEngine;
24
24
  private responseEngine;
25
+ private currentSession?;
25
26
  /**
26
27
  * Dynamic domain property - populated via addDomain
27
28
  */
@@ -95,6 +96,7 @@ export declare class Agent<TContext = unknown> {
95
96
  toolName: string;
96
97
  arguments: Record<string, unknown>;
97
98
  }>;
99
+ isRouteComplete?: boolean;
98
100
  }>;
99
101
  /**
100
102
  * Generate a response based on history and context
@@ -112,6 +114,7 @@ export declare class Agent<TContext = unknown> {
112
114
  toolName: string;
113
115
  arguments: Record<string, unknown>;
114
116
  }>;
117
+ isRouteComplete?: boolean;
115
118
  }>;
116
119
  /**
117
120
  * Get all routes
@@ -153,5 +156,24 @@ export declare class Agent<TContext = unknown> {
153
156
  * @returns Filtered domains object, or all domains if route has no restrictions
154
157
  */
155
158
  getDomainsForRouteByTitle(routeTitle: string): Record<string, Record<string, unknown>>;
159
+ /**
160
+ * Set the current session for convenience methods
161
+ * @param session - Session state to use for subsequent calls
162
+ */
163
+ setCurrentSession(session: SessionState): void;
164
+ /**
165
+ * Get the current session (if set)
166
+ */
167
+ getCurrentSession(): SessionState | undefined;
168
+ /**
169
+ * Clear the current session
170
+ */
171
+ clearCurrentSession(): void;
172
+ /**
173
+ * Get extracted data from current session
174
+ * @param routeId - Optional route ID to get data for (uses current route if not provided)
175
+ * @returns The extracted data from the current session
176
+ */
177
+ getExtractedData<TExtracted = unknown>(routeId?: string): Partial<TExtracted>;
156
178
  }
157
179
  //# sourceMappingURL=Agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/core/Agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/core/Agent.ts"],"names":[],"mappings":"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"}