@falai/agent 0.6.2 → 0.6.4
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 +89 -56
- package/dist/cjs/constants/index.d.ts +6 -1
- package/dist/cjs/constants/index.d.ts.map +1 -1
- package/dist/cjs/constants/index.js +8 -3
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/core/Agent.d.ts +22 -0
- package/dist/cjs/core/Agent.d.ts.map +1 -1
- package/dist/cjs/core/Agent.js +108 -21
- package/dist/cjs/core/Agent.js.map +1 -1
- package/dist/cjs/core/Events.d.ts +13 -0
- package/dist/cjs/core/Events.d.ts.map +1 -1
- package/dist/cjs/core/Events.js +28 -14
- package/dist/cjs/core/Events.js.map +1 -1
- package/dist/cjs/core/Route.d.ts.map +1 -1
- package/dist/cjs/core/Route.js +4 -4
- package/dist/cjs/core/Route.js.map +1 -1
- package/dist/cjs/core/RoutingEngine.d.ts +6 -1
- package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
- package/dist/cjs/core/RoutingEngine.js +112 -37
- package/dist/cjs/core/RoutingEngine.js.map +1 -1
- package/dist/cjs/core/State.d.ts +15 -5
- package/dist/cjs/core/State.d.ts.map +1 -1
- package/dist/cjs/core/State.js +24 -5
- package/dist/cjs/core/State.js.map +1 -1
- package/dist/cjs/core/Tool.d.ts +8 -1
- package/dist/cjs/core/Tool.d.ts.map +1 -1
- package/dist/cjs/core/Tool.js +25 -28
- package/dist/cjs/core/Tool.js.map +1 -1
- package/dist/cjs/core/Transition.js +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/agent.d.ts +5 -0
- package/dist/cjs/types/agent.d.ts.map +1 -1
- package/dist/cjs/types/agent.js.map +1 -1
- package/dist/cjs/types/route.d.ts +7 -1
- package/dist/cjs/types/route.d.ts.map +1 -1
- package/dist/cjs/types/session.d.ts +12 -1
- package/dist/cjs/types/session.d.ts.map +1 -1
- package/dist/cjs/types/session.js +26 -5
- package/dist/cjs/types/session.js.map +1 -1
- package/dist/cjs/utils/logger.d.ts +10 -0
- package/dist/cjs/utils/logger.d.ts.map +1 -0
- package/dist/cjs/utils/logger.js +23 -0
- package/dist/cjs/utils/logger.js.map +1 -0
- package/dist/constants/index.d.ts +6 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +6 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/core/Agent.d.ts +22 -0
- package/dist/core/Agent.d.ts.map +1 -1
- package/dist/core/Agent.js +108 -21
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/Events.d.ts +13 -0
- package/dist/core/Events.d.ts.map +1 -1
- package/dist/core/Events.js +28 -14
- package/dist/core/Events.js.map +1 -1
- package/dist/core/Route.d.ts.map +1 -1
- package/dist/core/Route.js +4 -4
- package/dist/core/Route.js.map +1 -1
- package/dist/core/RoutingEngine.d.ts +6 -1
- package/dist/core/RoutingEngine.d.ts.map +1 -1
- package/dist/core/RoutingEngine.js +112 -37
- package/dist/core/RoutingEngine.js.map +1 -1
- package/dist/core/State.d.ts +15 -5
- package/dist/core/State.d.ts.map +1 -1
- package/dist/core/State.js +25 -6
- package/dist/core/State.js.map +1 -1
- package/dist/core/Tool.d.ts +8 -1
- package/dist/core/Tool.d.ts.map +1 -1
- package/dist/core/Tool.js +25 -28
- package/dist/core/Tool.js.map +1 -1
- package/dist/core/Transition.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/agent.d.ts +5 -0
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js.map +1 -1
- package/dist/types/route.d.ts +7 -1
- package/dist/types/route.d.ts.map +1 -1
- package/dist/types/session.d.ts +12 -1
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js +26 -5
- package/dist/types/session.js.map +1 -1
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +17 -0
- package/dist/utils/logger.js.map +1 -0
- package/docs/{CONSTRUCTOR_OPTIONS.md → AGENT.md} +79 -7
- package/docs/API_REFERENCE.md +309 -18
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/DOCS.md +46 -22
- package/docs/GETTING_STARTED.md +1 -1
- package/docs/README.md +13 -5
- package/docs/ROUTES.md +743 -0
- package/docs/STATES.md +798 -0
- package/examples/business-onboarding.ts +46 -5
- package/examples/company-qna-agent.ts +107 -1
- package/examples/custom-database-persistence.ts +44 -1
- package/examples/declarative-agent.ts +80 -37
- package/examples/domain-scoping.ts +91 -21
- package/examples/extracted-data-modification.ts +64 -2
- package/examples/healthcare-agent.ts +61 -4
- package/examples/openai-agent.ts +24 -2
- package/examples/opensearch-persistence.ts +26 -1
- package/examples/persistent-onboarding.ts +84 -18
- package/examples/prisma-persistence.ts +90 -16
- package/examples/redis-persistence.ts +89 -17
- package/examples/rules-prohibitions.ts +300 -139
- package/examples/streaming-agent.ts +60 -0
- package/examples/travel-agent.ts +66 -24
- package/package.json +3 -2
- package/src/constants/index.ts +6 -1
- package/src/core/Agent.ts +135 -21
- package/src/core/Events.ts +73 -10
- package/src/core/Route.ts +8 -4
- package/src/core/RoutingEngine.ts +150 -39
- package/src/core/State.ts +35 -10
- package/src/core/Tool.ts +67 -10
- package/src/core/Transition.ts +1 -1
- package/src/index.ts +1 -1
- package/src/types/agent.ts +5 -0
- package/src/types/route.ts +10 -1
- package/src/types/session.ts +42 -6
- package/src/utils/logger.ts +19 -0
package/README.md
CHANGED
|
@@ -93,34 +93,6 @@
|
|
|
93
93
|
|
|
94
94
|
---
|
|
95
95
|
|
|
96
|
-
## 🏗️ Architecture
|
|
97
|
-
|
|
98
|
-
`@falai/agent` uses a **state machine-driven architecture** where:
|
|
99
|
-
|
|
100
|
-
- 🎯 **Conversations are explicit state machines** - Predictable, testable flows using the Route DSL
|
|
101
|
-
- 🔧 **Tools execute automatically** - Based on state transitions and guideline matching, not AI decisions
|
|
102
|
-
- 🧠 **AI only generates messages** - The AI never sees or calls tools; it just creates natural responses
|
|
103
|
-
- 🔄 **Preparation iterations gather data** - Tools run in loops before message generation to enrich context
|
|
104
|
-
- 📦 **Domain-based organization** - Tools grouped logically with route-level access control
|
|
105
|
-
|
|
106
|
-
**Example:**
|
|
107
|
-
|
|
108
|
-
```typescript
|
|
109
|
-
route.initialState
|
|
110
|
-
.transitionTo({ chatState: "What's your name?" })
|
|
111
|
-
.transitionTo(
|
|
112
|
-
{ toolState: saveName }, // ← Tool executes automatically
|
|
113
|
-
"User provided their name"
|
|
114
|
-
)
|
|
115
|
-
.transitionTo({ chatState: "Thanks! What's your email?" });
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
The AI generates conversational messages while the engine handles tool execution and flow control. This creates **deterministic, controllable agents** perfect for structured conversations like customer support, onboarding, and multi-step processes.
|
|
119
|
-
|
|
120
|
-
📖 **[Read the full architecture guide →](./docs/ARCHITECTURE.md)**
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
96
|
## 📦 Installation
|
|
125
97
|
|
|
126
98
|
```bash
|
|
@@ -140,7 +112,7 @@ yarn add @falai/agent
|
|
|
140
112
|
|
|
141
113
|
## 🚀 Quick Start
|
|
142
114
|
|
|
143
|
-
Build a conversational AI agent in
|
|
115
|
+
Build a data-driven conversational AI agent in minutes. This example shows how to intelligently gather structured data over multiple turns.
|
|
144
116
|
|
|
145
117
|
```typescript
|
|
146
118
|
import {
|
|
@@ -149,65 +121,117 @@ import {
|
|
|
149
121
|
defineTool,
|
|
150
122
|
createMessageEvent,
|
|
151
123
|
EventSource,
|
|
124
|
+
END_STATE,
|
|
125
|
+
type ToolContext,
|
|
152
126
|
} from "@falai/agent";
|
|
153
127
|
|
|
154
|
-
// 1️⃣
|
|
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
|
|
155
136
|
const agent = new Agent({
|
|
156
137
|
name: "BookingBot",
|
|
157
|
-
description: "
|
|
138
|
+
description: "A hotel booking assistant that gathers information.",
|
|
158
139
|
ai: new GeminiProvider({
|
|
159
140
|
apiKey: process.env.GEMINI_API_KEY!,
|
|
160
|
-
model: "models/gemini-2.5-flash",
|
|
141
|
+
model: "models/gemini-2.5-flash", // or your preferred model
|
|
161
142
|
}),
|
|
162
|
-
context: { userId: "user_123" },
|
|
163
143
|
});
|
|
164
144
|
|
|
165
|
-
//
|
|
166
|
-
const
|
|
167
|
-
"
|
|
168
|
-
async (
|
|
169
|
-
|
|
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
|
+
};
|
|
170
153
|
},
|
|
171
|
-
{ description: "
|
|
154
|
+
{ description: "Books a hotel once all information is collected." }
|
|
172
155
|
);
|
|
173
156
|
|
|
174
|
-
//
|
|
175
|
-
const bookingRoute = agent.createRoute({
|
|
157
|
+
// 4️⃣ Create a data-driven route
|
|
158
|
+
const bookingRoute = agent.createRoute<HotelBookingData>({
|
|
176
159
|
title: "Book Hotel",
|
|
160
|
+
description: "Guides the user through the hotel booking process.",
|
|
177
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
|
|
178
178
|
});
|
|
179
179
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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
|
+
});
|
|
191
|
+
|
|
192
|
+
const confirmBooking = askGuests.transitionTo({
|
|
193
|
+
toolState: bookHotel,
|
|
194
|
+
condition:
|
|
195
|
+
"All required information (hotel, date, guests) has been collected.",
|
|
196
|
+
});
|
|
186
197
|
|
|
187
|
-
|
|
198
|
+
confirmBooking.transitionTo({
|
|
199
|
+
state: END_STATE, // End the conversation flow
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
// 6️⃣ Start conversing
|
|
188
203
|
const response = await agent.respond({
|
|
189
204
|
history: [
|
|
190
205
|
createMessageEvent(
|
|
191
206
|
EventSource.CUSTOMER,
|
|
192
207
|
"Alice",
|
|
193
|
-
"
|
|
208
|
+
"I want to book a room at the Grand Hotel for 2 people."
|
|
194
209
|
),
|
|
195
210
|
],
|
|
196
211
|
});
|
|
197
212
|
|
|
198
|
-
|
|
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?"
|
|
199
217
|
```
|
|
200
218
|
|
|
201
|
-
**That's it!** The agent will:
|
|
202
|
-
|
|
203
|
-
- ✅
|
|
204
|
-
- ✅
|
|
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.
|
|
205
228
|
|
|
206
229
|
📖 **[See more examples →](./docs/EXAMPLES.md)** | **[Full tutorial →](./docs/GETTING_STARTED.md)**
|
|
207
230
|
|
|
208
231
|
### ⚡ Advanced Features
|
|
209
232
|
|
|
210
233
|
**Streaming responses** for real-time UX:
|
|
234
|
+
|
|
211
235
|
```typescript
|
|
212
236
|
for await (const chunk of agent.respondStream({ history })) {
|
|
213
237
|
process.stdout.write(chunk.delta);
|
|
@@ -215,6 +239,7 @@ for await (const chunk of agent.respondStream({ history })) {
|
|
|
215
239
|
```
|
|
216
240
|
|
|
217
241
|
**Session state** for multi-turn conversations:
|
|
242
|
+
|
|
218
243
|
```typescript
|
|
219
244
|
let session = createSession<MyData>();
|
|
220
245
|
const response = await agent.respond({ history, session });
|
|
@@ -222,10 +247,11 @@ session = response.session!; // Tracks progress across turns
|
|
|
222
247
|
```
|
|
223
248
|
|
|
224
249
|
**Database persistence** with any adapter:
|
|
250
|
+
|
|
225
251
|
```typescript
|
|
226
252
|
import { PrismaAdapter } from "@falai/agent";
|
|
227
253
|
const agent = new Agent({
|
|
228
|
-
persistence: { adapter: new PrismaAdapter({ prisma }) }
|
|
254
|
+
persistence: { adapter: new PrismaAdapter({ prisma }) },
|
|
229
255
|
});
|
|
230
256
|
```
|
|
231
257
|
|
|
@@ -238,15 +264,19 @@ const agent = new Agent({
|
|
|
238
264
|
📋 **[Complete Documentation Index →](docs/DOCS.md)** - Searchable index of all docs
|
|
239
265
|
|
|
240
266
|
**Core Guides:**
|
|
267
|
+
|
|
241
268
|
- 📘 **[Getting Started](./docs/GETTING_STARTED.md)** - Build your first agent in 5 minutes
|
|
242
269
|
- 🏗️ **[Architecture](./docs/ARCHITECTURE.md)** - Design principles & philosophy
|
|
243
270
|
- 🔧 **[API Reference](./docs/API_REFERENCE.md)** - Complete API documentation
|
|
244
271
|
- 📝 **[Examples](./docs/EXAMPLES.md)** - Production-ready code examples
|
|
245
272
|
|
|
246
273
|
**Feature Guides:**
|
|
274
|
+
|
|
275
|
+
- 🛤️ **[Routes](./docs/ROUTES.md)** - Creating conversational routes & flows
|
|
276
|
+
- 🔄 **[States](./docs/STATES.md)** - Managing states & transitions
|
|
247
277
|
- 💾 **[Persistence](./docs/PERSISTENCE.md)** - Database integration with adapters
|
|
248
278
|
- 🔒 **[Domains](./docs/DOMAINS.md)** - Optional tool security & organization
|
|
249
|
-
- 🎛️ **[
|
|
279
|
+
- 🎛️ **[Agent](./docs/AGENT.md)** - Configuration patterns
|
|
250
280
|
- 📊 **[Context Management](./docs/CONTEXT_MANAGEMENT.md)** - Session state & lifecycle hooks
|
|
251
281
|
- 🤖 **[AI Providers](./docs/PROVIDERS.md)** - Anthropic, OpenAI, Gemini, OpenRouter
|
|
252
282
|
|
|
@@ -255,6 +285,7 @@ const agent = new Agent({
|
|
|
255
285
|
## 🎯 Examples
|
|
256
286
|
|
|
257
287
|
**Core Examples:**
|
|
288
|
+
|
|
258
289
|
- 🏢 **[Business Onboarding](./examples/business-onboarding.ts)** - Complex multi-step flow with branching
|
|
259
290
|
- ✈️ **[Travel Agent](./examples/travel-agent.ts)** - Multi-route booking system with session state
|
|
260
291
|
- 🏥 **[Healthcare Assistant](./examples/healthcare-agent.ts)** - Appointment scheduling & lab results
|
|
@@ -262,6 +293,7 @@ const agent = new Agent({
|
|
|
262
293
|
- ⚡ **[Streaming Responses](./examples/streaming-agent.ts)** - Real-time response streaming
|
|
263
294
|
|
|
264
295
|
**Persistence & Advanced:**
|
|
296
|
+
|
|
265
297
|
- 💾 **[Prisma Persistence](./examples/prisma-persistence.ts)** - Auto-save with Prisma ORM
|
|
266
298
|
- ⚡ **[Redis Persistence](./examples/redis-persistence.ts)** - Fast in-memory sessions
|
|
267
299
|
- 🔐 **[Domain Scoping](./examples/domain-scoping.ts)** - Tool security per route
|
|
@@ -282,6 +314,7 @@ const agent = new Agent({
|
|
|
282
314
|
5. **Message Generation** - AI generates natural responses based on current state
|
|
283
315
|
|
|
284
316
|
**Behind the scenes:**
|
|
317
|
+
|
|
285
318
|
- The AI only generates messages and extracts data - it never decides which tools to call
|
|
286
319
|
- Tools execute deterministically based on state transitions and code-based conditions
|
|
287
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
|
|
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;
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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":"
|
|
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"}
|
package/dist/cjs/core/Agent.d.ts
CHANGED
|
@@ -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":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/core/Agent.ts"],"names":[],"mappings":"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"}
|