@falai/agent 0.9.0-alpha-1 → 0.9.0-alpha-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/README.md +34 -22
- package/dist/cjs/src/core/Agent.d.ts +52 -24
- package/dist/cjs/src/core/Agent.d.ts.map +1 -1
- package/dist/cjs/src/core/Agent.js +266 -39
- package/dist/cjs/src/core/Agent.js.map +1 -1
- package/dist/cjs/src/core/PersistenceManager.d.ts.map +1 -1
- package/dist/cjs/src/core/PersistenceManager.js +48 -25
- package/dist/cjs/src/core/PersistenceManager.js.map +1 -1
- package/dist/cjs/src/core/PromptComposer.d.ts +1 -1
- package/dist/cjs/src/core/PromptComposer.d.ts.map +1 -1
- package/dist/cjs/src/core/PromptComposer.js.map +1 -1
- package/dist/cjs/src/core/ResponseEngine.d.ts +13 -12
- package/dist/cjs/src/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/src/core/ResponseEngine.js +4 -4
- package/dist/cjs/src/core/ResponseEngine.js.map +1 -1
- package/dist/cjs/src/core/ResponsePipeline.d.ts +66 -38
- package/dist/cjs/src/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/cjs/src/core/ResponsePipeline.js +71 -3
- package/dist/cjs/src/core/ResponsePipeline.js.map +1 -1
- package/dist/cjs/src/core/Route.d.ts +24 -5
- package/dist/cjs/src/core/Route.d.ts.map +1 -1
- package/dist/cjs/src/core/Route.js +45 -1
- package/dist/cjs/src/core/Route.js.map +1 -1
- package/dist/cjs/src/core/RoutingEngine.d.ts +31 -6
- package/dist/cjs/src/core/RoutingEngine.d.ts.map +1 -1
- package/dist/cjs/src/core/RoutingEngine.js +113 -9
- package/dist/cjs/src/core/RoutingEngine.js.map +1 -1
- package/dist/cjs/src/core/SessionManager.d.ts +14 -4
- package/dist/cjs/src/core/SessionManager.d.ts.map +1 -1
- package/dist/cjs/src/core/SessionManager.js +25 -5
- package/dist/cjs/src/core/SessionManager.js.map +1 -1
- package/dist/cjs/src/core/Step.d.ts +10 -10
- package/dist/cjs/src/core/Step.d.ts.map +1 -1
- package/dist/cjs/src/core/Step.js.map +1 -1
- package/dist/cjs/src/core/ToolExecutor.d.ts +4 -2
- package/dist/cjs/src/core/ToolExecutor.d.ts.map +1 -1
- package/dist/cjs/src/core/ToolExecutor.js +13 -3
- package/dist/cjs/src/core/ToolExecutor.js.map +1 -1
- package/dist/cjs/src/types/agent.d.ts +41 -21
- package/dist/cjs/src/types/agent.d.ts.map +1 -1
- package/dist/cjs/src/types/agent.js.map +1 -1
- package/dist/cjs/src/types/index.d.ts +1 -1
- package/dist/cjs/src/types/index.d.ts.map +1 -1
- package/dist/cjs/src/types/index.js.map +1 -1
- package/dist/cjs/src/types/persistence.d.ts +0 -1
- package/dist/cjs/src/types/persistence.d.ts.map +1 -1
- package/dist/cjs/src/types/route.d.ts +22 -16
- package/dist/cjs/src/types/route.d.ts.map +1 -1
- package/dist/cjs/src/types/session.d.ts +6 -11
- package/dist/cjs/src/types/session.d.ts.map +1 -1
- package/dist/cjs/src/types/tool.d.ts +12 -6
- package/dist/cjs/src/types/tool.d.ts.map +1 -1
- package/dist/cjs/src/utils/session.d.ts +2 -2
- package/dist/cjs/src/utils/session.d.ts.map +1 -1
- package/dist/cjs/src/utils/session.js +6 -26
- package/dist/cjs/src/utils/session.js.map +1 -1
- package/dist/src/core/Agent.d.ts +52 -24
- package/dist/src/core/Agent.d.ts.map +1 -1
- package/dist/src/core/Agent.js +266 -39
- package/dist/src/core/Agent.js.map +1 -1
- package/dist/src/core/PersistenceManager.d.ts.map +1 -1
- package/dist/src/core/PersistenceManager.js +48 -25
- package/dist/src/core/PersistenceManager.js.map +1 -1
- package/dist/src/core/PromptComposer.d.ts +1 -1
- package/dist/src/core/PromptComposer.d.ts.map +1 -1
- package/dist/src/core/PromptComposer.js.map +1 -1
- package/dist/src/core/ResponseEngine.d.ts +13 -12
- package/dist/src/core/ResponseEngine.d.ts.map +1 -1
- package/dist/src/core/ResponseEngine.js +4 -4
- package/dist/src/core/ResponseEngine.js.map +1 -1
- package/dist/src/core/ResponsePipeline.d.ts +66 -38
- package/dist/src/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/src/core/ResponsePipeline.js +71 -3
- package/dist/src/core/ResponsePipeline.js.map +1 -1
- package/dist/src/core/Route.d.ts +24 -5
- package/dist/src/core/Route.d.ts.map +1 -1
- package/dist/src/core/Route.js +45 -1
- package/dist/src/core/Route.js.map +1 -1
- package/dist/src/core/RoutingEngine.d.ts +31 -6
- package/dist/src/core/RoutingEngine.d.ts.map +1 -1
- package/dist/src/core/RoutingEngine.js +113 -9
- package/dist/src/core/RoutingEngine.js.map +1 -1
- package/dist/src/core/SessionManager.d.ts +14 -4
- package/dist/src/core/SessionManager.d.ts.map +1 -1
- package/dist/src/core/SessionManager.js +25 -5
- package/dist/src/core/SessionManager.js.map +1 -1
- package/dist/src/core/Step.d.ts +10 -10
- package/dist/src/core/Step.d.ts.map +1 -1
- package/dist/src/core/Step.js.map +1 -1
- package/dist/src/core/ToolExecutor.d.ts +4 -2
- package/dist/src/core/ToolExecutor.d.ts.map +1 -1
- package/dist/src/core/ToolExecutor.js +13 -3
- package/dist/src/core/ToolExecutor.js.map +1 -1
- package/dist/src/types/agent.d.ts +41 -21
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/index.d.ts +1 -1
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/persistence.d.ts +0 -1
- package/dist/src/types/persistence.d.ts.map +1 -1
- package/dist/src/types/route.d.ts +22 -16
- package/dist/src/types/route.d.ts.map +1 -1
- package/dist/src/types/session.d.ts +6 -11
- package/dist/src/types/session.d.ts.map +1 -1
- package/dist/src/types/tool.d.ts +12 -6
- package/dist/src/types/tool.d.ts.map +1 -1
- package/dist/src/utils/session.d.ts +2 -2
- package/dist/src/utils/session.d.ts.map +1 -1
- package/dist/src/utils/session.js +6 -26
- package/dist/src/utils/session.js.map +1 -1
- package/docs/README.md +3 -3
- package/docs/api/README.md +35 -4
- package/docs/api/overview.md +166 -12
- package/docs/core/agent/README.md +162 -17
- package/docs/core/agent/context-management.md +39 -15
- package/docs/core/agent/session-management.md +49 -16
- package/docs/core/ai-integration/prompt-composition.md +38 -14
- package/docs/core/ai-integration/response-processing.md +28 -17
- package/docs/core/conversation-flows/data-collection.md +103 -25
- package/docs/core/conversation-flows/route-dsl.md +45 -22
- package/docs/core/conversation-flows/routes.md +74 -18
- package/docs/core/conversation-flows/step-transitions.md +3 -3
- package/docs/core/conversation-flows/steps.md +39 -15
- package/docs/core/routing/intelligent-routing.md +18 -9
- package/docs/core/tools/tool-definition.md +8 -8
- package/docs/core/tools/tool-execution.md +26 -26
- package/docs/core/tools/tool-scoping.md +5 -5
- package/docs/guides/getting-started/README.md +54 -32
- package/examples/advanced-patterns/knowledge-based-agent.ts +37 -28
- package/examples/advanced-patterns/persistent-onboarding.ts +70 -41
- package/examples/advanced-patterns/route-lifecycle-hooks.ts +28 -2
- package/examples/advanced-patterns/streaming-responses.ts +28 -23
- package/examples/ai-providers/anthropic-integration.ts +40 -33
- package/examples/ai-providers/openai-integration.ts +25 -25
- package/examples/conversation-flows/completion-transitions.ts +36 -32
- package/examples/core-concepts/basic-agent.ts +76 -78
- package/examples/core-concepts/schema-driven-extraction.ts +20 -16
- package/examples/core-concepts/session-management.ts +65 -53
- package/examples/integrations/database-integration.ts +49 -34
- package/examples/integrations/healthcare-integration.ts +96 -91
- package/examples/integrations/search-integration.ts +79 -82
- package/examples/integrations/server-session-management.ts +25 -17
- package/examples/persistence/database-persistence.ts +61 -45
- package/examples/persistence/memory-sessions.ts +52 -63
- package/examples/persistence/redis-persistence.ts +81 -95
- package/examples/tools/basic-tools.ts +73 -62
- package/examples/tools/data-enrichment-tools.ts +52 -44
- package/package.json +1 -1
- package/src/core/Agent.ts +418 -128
- package/src/core/PersistenceManager.ts +51 -27
- package/src/core/PromptComposer.ts +1 -1
- package/src/core/ResponseEngine.ts +21 -19
- package/src/core/ResponsePipeline.ts +174 -59
- package/src/core/Route.ts +58 -6
- package/src/core/RoutingEngine.ts +174 -27
- package/src/core/SessionManager.ts +32 -8
- package/src/core/Step.ts +20 -12
- package/src/core/ToolExecutor.ts +19 -5
- package/src/types/agent.ts +46 -23
- package/src/types/index.ts +2 -0
- package/src/types/persistence.ts +0 -1
- package/src/types/route.ts +22 -16
- package/src/types/session.ts +6 -12
- package/src/types/tool.ts +15 -9
- package/src/utils/session.ts +6 -31
|
@@ -45,7 +45,7 @@ interface FlightData {
|
|
|
45
45
|
// ==============================================================================
|
|
46
46
|
|
|
47
47
|
// Tool 1: Convert city names to airport codes
|
|
48
|
-
const enrichDestinationTool: Tool<FlightBookingContext, [], void
|
|
48
|
+
const enrichDestinationTool: Tool<FlightBookingContext, FlightData, [], void> =
|
|
49
49
|
{
|
|
50
50
|
id: "enrich_destination",
|
|
51
51
|
name: "Destination Code Lookup",
|
|
@@ -84,7 +84,7 @@ const enrichDestinationTool: Tool<FlightBookingContext, [], void, FlightData> =
|
|
|
84
84
|
};
|
|
85
85
|
|
|
86
86
|
// Tool 2: Parse and validate dates
|
|
87
|
-
const validateDateTool: Tool<FlightBookingContext, [], void
|
|
87
|
+
const validateDateTool: Tool<FlightBookingContext, FlightData, [], void> = {
|
|
88
88
|
id: "validate_date",
|
|
89
89
|
name: "Date Parser & Validator",
|
|
90
90
|
description:
|
|
@@ -139,7 +139,7 @@ const validateDateTool: Tool<FlightBookingContext, [], void, FlightData> = {
|
|
|
139
139
|
};
|
|
140
140
|
|
|
141
141
|
// Tool 3: Search for flights (triggered by flag)
|
|
142
|
-
const searchFlightsTool: Tool<FlightBookingContext, [], void
|
|
142
|
+
const searchFlightsTool: Tool<FlightBookingContext, FlightData, [], void> = {
|
|
143
143
|
id: "search_flights",
|
|
144
144
|
name: "Flight Availability Search",
|
|
145
145
|
description: "Search for available flights based on collected data",
|
|
@@ -188,7 +188,7 @@ const searchFlightsTool: Tool<FlightBookingContext, [], void, FlightData> = {
|
|
|
188
188
|
};
|
|
189
189
|
|
|
190
190
|
// Tool 4: Book the flight
|
|
191
|
-
const bookFlightTool: Tool<FlightBookingContext, [], void
|
|
191
|
+
const bookFlightTool: Tool<FlightBookingContext, FlightData, [], void> = {
|
|
192
192
|
id: "book_flight",
|
|
193
193
|
name: "Flight Booking Processor",
|
|
194
194
|
description: "Finalize the flight booking",
|
|
@@ -252,7 +252,45 @@ function onDataUpdate(
|
|
|
252
252
|
// AGENT SETUP
|
|
253
253
|
// ==============================================================================
|
|
254
254
|
|
|
255
|
-
|
|
255
|
+
// Define flight booking schema
|
|
256
|
+
const flightBookingSchema = {
|
|
257
|
+
type: "object",
|
|
258
|
+
properties: {
|
|
259
|
+
destination: {
|
|
260
|
+
type: "string",
|
|
261
|
+
description: "City or airport the user wants to fly to",
|
|
262
|
+
},
|
|
263
|
+
destinationCode: {
|
|
264
|
+
type: "string",
|
|
265
|
+
description: "IATA airport code (enriched by tool)",
|
|
266
|
+
},
|
|
267
|
+
departureDate: {
|
|
268
|
+
type: "string",
|
|
269
|
+
description: "When the user wants to depart",
|
|
270
|
+
},
|
|
271
|
+
departureDateParsed: {
|
|
272
|
+
type: "string",
|
|
273
|
+
description: "Parsed ISO date (enriched by tool)",
|
|
274
|
+
},
|
|
275
|
+
passengers: {
|
|
276
|
+
type: "number",
|
|
277
|
+
minimum: 1,
|
|
278
|
+
maximum: 9,
|
|
279
|
+
},
|
|
280
|
+
cabinClass: {
|
|
281
|
+
type: "string",
|
|
282
|
+
enum: ["economy", "business", "first"],
|
|
283
|
+
default: "economy",
|
|
284
|
+
},
|
|
285
|
+
shouldSearchFlights: {
|
|
286
|
+
type: "boolean",
|
|
287
|
+
description: "Flag to trigger flight search",
|
|
288
|
+
},
|
|
289
|
+
},
|
|
290
|
+
required: ["destination", "departureDate", "passengers"],
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
const agent = new Agent<FlightBookingContext, FlightData>({
|
|
256
294
|
name: "Flight Booking Agent",
|
|
257
295
|
goal: "Help users book flights efficiently",
|
|
258
296
|
description: "I help you find and book flights",
|
|
@@ -261,55 +299,25 @@ const agent = new Agent<FlightBookingContext>({
|
|
|
261
299
|
model: "gpt-5o-mini",
|
|
262
300
|
}),
|
|
263
301
|
context: {},
|
|
302
|
+
// NEW: Agent-level schema
|
|
303
|
+
schema: flightBookingSchema,
|
|
264
304
|
hooks: {
|
|
265
305
|
onDataUpdate, // Validation & enrichment hook
|
|
266
306
|
},
|
|
267
307
|
});
|
|
268
308
|
|
|
269
309
|
// Define route with data extraction
|
|
270
|
-
const bookingRoute = agent.createRoute
|
|
310
|
+
const bookingRoute = agent.createRoute({
|
|
271
311
|
title: "Book Flight",
|
|
272
312
|
description: "Help user book a flight",
|
|
273
313
|
conditions: [
|
|
274
314
|
"User wants to book a flight",
|
|
275
315
|
"User mentions flying, traveling, or booking",
|
|
276
316
|
],
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
type: "string",
|
|
282
|
-
description: "City or airport the user wants to fly to",
|
|
283
|
-
},
|
|
284
|
-
destinationCode: {
|
|
285
|
-
type: "string",
|
|
286
|
-
description: "IATA airport code (enriched by tool)",
|
|
287
|
-
},
|
|
288
|
-
departureDate: {
|
|
289
|
-
type: "string",
|
|
290
|
-
description: "When the user wants to depart",
|
|
291
|
-
},
|
|
292
|
-
departureDateParsed: {
|
|
293
|
-
type: "string",
|
|
294
|
-
description: "Parsed ISO date (enriched by tool)",
|
|
295
|
-
},
|
|
296
|
-
passengers: {
|
|
297
|
-
type: "number",
|
|
298
|
-
minimum: 1,
|
|
299
|
-
maximum: 9,
|
|
300
|
-
},
|
|
301
|
-
cabinClass: {
|
|
302
|
-
type: "string",
|
|
303
|
-
enum: ["economy", "business", "first"],
|
|
304
|
-
default: "economy",
|
|
305
|
-
},
|
|
306
|
-
shouldSearchFlights: {
|
|
307
|
-
type: "boolean",
|
|
308
|
-
description: "Flag to trigger flight search",
|
|
309
|
-
},
|
|
310
|
-
},
|
|
311
|
-
required: ["destination", "departureDate", "passengers"],
|
|
312
|
-
},
|
|
317
|
+
// NEW: Required fields for route completion
|
|
318
|
+
requiredFields: ["destination", "departureDate", "passengers"],
|
|
319
|
+
// NEW: Optional fields that enhance the experience
|
|
320
|
+
optionalFields: ["destinationCode", "departureDateParsed", "cabinClass", "shouldSearchFlights"],
|
|
313
321
|
});
|
|
314
322
|
|
|
315
323
|
// Step 1: Collect destination
|
|
@@ -389,14 +397,14 @@ async function main() {
|
|
|
389
397
|
|
|
390
398
|
console.log("\n=== RESPONSE ===");
|
|
391
399
|
console.log("Message:", response.message);
|
|
392
|
-
console.log("Data:", agent.session.getData
|
|
400
|
+
console.log("Data:", agent.session.getData());
|
|
393
401
|
console.log("Context:", agent["context"]);
|
|
394
402
|
|
|
395
403
|
await agent.session.addMessage("assistant", response.message);
|
|
396
404
|
|
|
397
405
|
if (response.isRouteComplete) {
|
|
398
406
|
console.log("\n✅ Flight booking complete!");
|
|
399
|
-
await sendBookingConfirmation(agent.session.getData
|
|
407
|
+
await sendBookingConfirmation(agent.session.getData());
|
|
400
408
|
}
|
|
401
409
|
|
|
402
410
|
/*
|
package/package.json
CHANGED