@falai/agent 0.8.0 → 0.8.1

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 (55) hide show
  1. package/dist/cjs/core/Agent.d.ts +8 -8
  2. package/dist/cjs/core/Agent.d.ts.map +1 -1
  3. package/dist/cjs/core/Agent.js +2 -2
  4. package/dist/cjs/core/Agent.js.map +1 -1
  5. package/dist/cjs/core/PersistenceManager.d.ts +10 -10
  6. package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
  7. package/dist/cjs/core/PersistenceManager.js +9 -9
  8. package/dist/cjs/core/PersistenceManager.js.map +1 -1
  9. package/dist/cjs/core/RoutingEngine.d.ts +4 -4
  10. package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
  11. package/dist/cjs/core/RoutingEngine.js.map +1 -1
  12. package/dist/cjs/index.d.ts +1 -1
  13. package/dist/cjs/index.d.ts.map +1 -1
  14. package/dist/cjs/types/agent.d.ts +2 -2
  15. package/dist/cjs/types/agent.d.ts.map +1 -1
  16. package/dist/cjs/types/session.d.ts +9 -9
  17. package/dist/cjs/types/session.d.ts.map +1 -1
  18. package/dist/cjs/types/session.js +2 -2
  19. package/dist/cjs/types/session.js.map +1 -1
  20. package/dist/core/Agent.d.ts +8 -8
  21. package/dist/core/Agent.d.ts.map +1 -1
  22. package/dist/core/Agent.js +2 -2
  23. package/dist/core/Agent.js.map +1 -1
  24. package/dist/core/PersistenceManager.d.ts +10 -10
  25. package/dist/core/PersistenceManager.d.ts.map +1 -1
  26. package/dist/core/PersistenceManager.js +9 -9
  27. package/dist/core/PersistenceManager.js.map +1 -1
  28. package/dist/core/RoutingEngine.d.ts +4 -4
  29. package/dist/core/RoutingEngine.d.ts.map +1 -1
  30. package/dist/core/RoutingEngine.js.map +1 -1
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/types/agent.d.ts +2 -2
  34. package/dist/types/agent.d.ts.map +1 -1
  35. package/dist/types/session.d.ts +9 -9
  36. package/dist/types/session.d.ts.map +1 -1
  37. package/dist/types/session.js +2 -2
  38. package/dist/types/session.js.map +1 -1
  39. package/docs/ADAPTERS.md +1 -1
  40. package/docs/AGENT.md +2 -2
  41. package/docs/API_REFERENCE.md +15 -15
  42. package/docs/CONTEXT_MANAGEMENT.md +3 -3
  43. package/docs/PERSISTENCE.md +7 -7
  44. package/examples/custom-database-persistence.ts +6 -6
  45. package/examples/opensearch-persistence.ts +1 -1
  46. package/examples/prisma-persistence.ts +1 -1
  47. package/examples/redis-persistence.ts +2 -2
  48. package/examples/route-transitions.ts +3 -3
  49. package/package.json +1 -1
  50. package/src/core/Agent.ts +15 -15
  51. package/src/core/PersistenceManager.ts +13 -13
  52. package/src/core/RoutingEngine.ts +6 -6
  53. package/src/index.ts +1 -1
  54. package/src/types/agent.ts +2 -2
  55. package/src/types/session.ts +15 -15
@@ -14,7 +14,7 @@ import type {
14
14
  MessageRepository,
15
15
  } from "../types/persistence";
16
16
  import type { Event } from "../types/history";
17
- import type { SessionStep } from "../types/session";
17
+ import type { SessionState } from "../types/session";
18
18
  import {
19
19
  createSession,
20
20
  sessionStepToData,
@@ -223,12 +223,12 @@ export class PersistenceManager {
223
223
  }
224
224
 
225
225
  /**
226
- * Save SessionStep to database
227
- * Converts SessionStep to SessionData and persists it
226
+ * Save SessionState to database
227
+ * Converts SessionState to SessionData and persists it
228
228
  */
229
- async saveSessionStep<TData = Record<string, unknown>>(
229
+ async saveSessionState<TData = Record<string, unknown>>(
230
230
  sessionId: string,
231
- sessionStep: SessionStep<TData>
231
+ sessionStep: SessionState<TData>
232
232
  ): Promise<SessionData | null> {
233
233
  const persistenceData = sessionStepToData(sessionStep);
234
234
 
@@ -241,12 +241,12 @@ export class PersistenceManager {
241
241
  }
242
242
 
243
243
  /**
244
- * Load SessionStep from database
245
- * Converts SessionData to SessionStep
244
+ * Load SessionState from database
245
+ * Converts SessionData to SessionState
246
246
  */
247
- async loadSessionStep<TData = Record<string, unknown>>(
247
+ async loadSessionState<TData = Record<string, unknown>>(
248
248
  sessionId: string
249
- ): Promise<SessionStep<TData> | null> {
249
+ ): Promise<SessionState<TData> | null> {
250
250
  const sessionData = await this.sessionRepository.findById(sessionId);
251
251
 
252
252
  if (!sessionData) {
@@ -272,18 +272,18 @@ export class PersistenceManager {
272
272
  }
273
273
 
274
274
  /**
275
- * Create session with SessionStep support
276
- * Returns both SessionData and initialized SessionStep
275
+ * Create session with SessionState support
276
+ * Returns both SessionData and initialized SessionState
277
277
  */
278
278
  async createSessionWithStep<TData = Record<string, unknown>>(
279
279
  options: CreateSessionOptions
280
280
  ): Promise<{
281
281
  sessionData: SessionData;
282
- sessionStep: SessionStep<TData>;
282
+ sessionStep: SessionState<TData>;
283
283
  }> {
284
284
  const sessionData = await this.createSession(options);
285
285
 
286
- // Create SessionStep with database session ID
286
+ // Create SessionState with database session ID
287
287
  const sessionStep = createSession<TData>(sessionData.id, {
288
288
  createdAt: sessionData.createdAt,
289
289
  lastUpdatedAt: sessionData.updatedAt,
@@ -3,7 +3,7 @@ import type { Route } from "./Route";
3
3
  import type { Step } from "./Step";
4
4
  import type { StructuredSchema } from "../types/schema";
5
5
  import type { RoutingDecision } from "../types/routing";
6
- import type { SessionStep } from "../types/session";
6
+ import type { SessionState } from "../types/session";
7
7
  import type { AiProvider } from "../types/ai";
8
8
  import { enterRoute, mergeCollected } from "../types/session";
9
9
  import { PromptComposer } from "./PromptComposer";
@@ -42,7 +42,7 @@ export class RoutingEngine<TContext = unknown> {
42
42
  */
43
43
  private async decideSingleRouteStep(params: {
44
44
  route: Route<TContext, unknown>;
45
- session: SessionStep;
45
+ session: SessionState;
46
46
  history: Event[];
47
47
  agentMeta?: {
48
48
  name?: string;
@@ -57,7 +57,7 @@ export class RoutingEngine<TContext = unknown> {
57
57
  selectedRoute?: Route<TContext>;
58
58
  selectedStep?: Step<TContext>;
59
59
  responseDirectives?: string[];
60
- session: SessionStep;
60
+ session: SessionState;
61
61
  isRouteComplete?: boolean;
62
62
  }> {
63
63
  const { route, session, history, agentMeta, provider, context, signal } =
@@ -404,7 +404,7 @@ export class RoutingEngine<TContext = unknown> {
404
404
  */
405
405
  async decideRouteAndStep(params: {
406
406
  routes: Route<TContext, unknown>[];
407
- session: SessionStep;
407
+ session: SessionState;
408
408
  history: Event[];
409
409
  agentMeta?: {
410
410
  name?: string;
@@ -419,7 +419,7 @@ export class RoutingEngine<TContext = unknown> {
419
419
  selectedRoute?: Route<TContext>;
420
420
  selectedStep?: Step<TContext>;
421
421
  responseDirectives?: string[];
422
- session: SessionStep;
422
+ session: SessionState;
423
423
  isRouteComplete?: boolean;
424
424
  }> {
425
425
  const { routes, session, history, agentMeta, provider, context, signal } =
@@ -821,7 +821,7 @@ export class RoutingEngine<TContext = unknown> {
821
821
  description?: string;
822
822
  personality?: string;
823
823
  },
824
- session?: SessionStep,
824
+ session?: SessionState,
825
825
  activeRouteSteps?: Array<{
826
826
  stepId: string;
827
827
  description: string;
package/src/index.ts CHANGED
@@ -99,7 +99,7 @@ export type {
99
99
  RouteCompletionHandler,
100
100
  } from "./types/route";
101
101
 
102
- export type { SessionStep, PendingTransition } from "./types/session";
102
+ export type { SessionState, PendingTransition } from "./types/session";
103
103
  export {
104
104
  createSession,
105
105
  enterRoute,
@@ -6,7 +6,7 @@ import type { AiProvider } from "./ai";
6
6
  import type { ToolRef } from "./tool";
7
7
  import type { RouteOptions } from "./route";
8
8
  import type { PersistenceConfig } from "./persistence";
9
- import type { SessionStep } from "./session";
9
+ import type { SessionState } from "./session";
10
10
 
11
11
  /**
12
12
  * Composition mode determines how the agent processes and structures responses
@@ -80,7 +80,7 @@ export interface AgentOptions<TContext = unknown> {
80
80
  /** Default context data available to the agent */
81
81
  context?: TContext;
82
82
  /** Optional current session for convenience methods */
83
- session?: SessionStep;
83
+ session?: SessionState;
84
84
  /** Context provider function for always-fresh context (alternative to static context) */
85
85
  contextProvider?: ContextProvider<TContext>;
86
86
  /** Lifecycle hooks for context management */
@@ -18,7 +18,7 @@ export interface PendingTransition {
18
18
  * Session step tracks the current position in the conversation flow
19
19
  * and data collected during the route progression
20
20
  */
21
- export interface SessionStep<TData = Record<string, unknown>> {
21
+ export interface SessionState<TData = Record<string, unknown>> {
22
22
  /** Unique session identifier (useful for persistence) */
23
23
  id?: string;
24
24
 
@@ -78,8 +78,8 @@ export interface SessionStep<TData = Record<string, unknown>> {
78
78
  */
79
79
  export function createSession<TData = Record<string, unknown>>(
80
80
  sessionId?: string,
81
- metadata?: SessionStep<TData>["metadata"]
82
- ): SessionStep<TData> {
81
+ metadata?: SessionState<TData>["metadata"]
82
+ ): SessionState<TData> {
83
83
  return {
84
84
  id: sessionId,
85
85
  data: {},
@@ -98,10 +98,10 @@ export function createSession<TData = Record<string, unknown>>(
98
98
  * Preserves collected data per route in dataByRoute map
99
99
  */
100
100
  export function enterRoute<TData = Record<string, unknown>>(
101
- session: SessionStep<TData>,
101
+ session: SessionState<TData>,
102
102
  routeId: string,
103
103
  routeTitle: string
104
- ): SessionStep<TData> {
104
+ ): SessionState<TData> {
105
105
  // Save current route's collected data before switching
106
106
  const dataByRoute = { ...session.dataByRoute };
107
107
  if (
@@ -157,10 +157,10 @@ export function enterRoute<TData = Record<string, unknown>>(
157
157
  * Helper to update session with new step
158
158
  */
159
159
  export function enterStep<TData = Record<string, unknown>>(
160
- session: SessionStep<TData>,
160
+ session: SessionState<TData>,
161
161
  stepId: string,
162
162
  stepDescription?: string
163
- ): SessionStep<TData> {
163
+ ): SessionState<TData> {
164
164
  return {
165
165
  ...session,
166
166
  currentStep: {
@@ -180,9 +180,9 @@ export function enterStep<TData = Record<string, unknown>>(
180
180
  * Updates both the data field and the dataByRoute map
181
181
  */
182
182
  export function mergeCollected<TData = Record<string, unknown>>(
183
- session: SessionStep<TData>,
183
+ session: SessionState<TData>,
184
184
  data: Partial<unknown>
185
- ): SessionStep<TData> {
185
+ ): SessionState<TData> {
186
186
  const newCollected = {
187
187
  ...session.data,
188
188
  ...data,
@@ -206,11 +206,11 @@ export function mergeCollected<TData = Record<string, unknown>>(
206
206
  }
207
207
 
208
208
  /**
209
- * Helper to convert SessionStep to persistence-friendly format
209
+ * Helper to convert SessionState to persistence-friendly format
210
210
  * Used when saving to database
211
211
  */
212
212
  export function sessionStepToData<TData = Record<string, unknown>>(
213
- session: SessionStep<TData>
213
+ session: SessionState<TData>
214
214
  ): {
215
215
  currentRoute?: string;
216
216
  currentStep?: string;
@@ -231,7 +231,7 @@ export function sessionStepToData<TData = Record<string, unknown>>(
231
231
  }
232
232
 
233
233
  /**
234
- * Helper to convert database SessionData back to SessionStep
234
+ * Helper to convert database SessionData back to SessionState
235
235
  * Used when loading from database
236
236
  * @param sessionId - The database session ID
237
237
  * @param data - The database session data
@@ -243,7 +243,7 @@ export function sessionDataToStep<TData = Record<string, unknown>>(
243
243
  currentStep?: string;
244
244
  collectedData?: Record<string, unknown>;
245
245
  }
246
- ): SessionStep<TData> {
246
+ ): SessionState<TData> {
247
247
  const collectedData = data.collectedData || {};
248
248
 
249
249
  return {
@@ -268,7 +268,7 @@ export function sessionDataToStep<TData = Record<string, unknown>>(
268
268
  dataByRoute:
269
269
  (collectedData.dataByRoute as Record<string, Partial<unknown>>) || {}, // Restore per-route data
270
270
  routeHistory:
271
- (collectedData.routeHistory as SessionStep<TData>["routeHistory"]) || [],
272
- metadata: (collectedData.metadata as SessionStep<TData>["metadata"]) || {},
271
+ (collectedData.routeHistory as SessionState<TData>["routeHistory"]) || [],
272
+ metadata: (collectedData.metadata as SessionState<TData>["metadata"]) || {},
273
273
  };
274
274
  }