@falai/agent 0.6.8 → 0.7.0

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 (231) hide show
  1. package/README.md +62 -59
  2. package/dist/adapters/MemoryAdapter.js +2 -2
  3. package/dist/adapters/MemoryAdapter.js.map +1 -1
  4. package/dist/adapters/MongoAdapter.js +2 -2
  5. package/dist/adapters/MongoAdapter.js.map +1 -1
  6. package/dist/adapters/OpenSearchAdapter.js +7 -7
  7. package/dist/adapters/OpenSearchAdapter.js.map +1 -1
  8. package/dist/adapters/PostgreSQLAdapter.js +9 -9
  9. package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
  10. package/dist/adapters/PrismaAdapter.js +3 -3
  11. package/dist/adapters/PrismaAdapter.js.map +1 -1
  12. package/dist/adapters/RedisAdapter.js +2 -2
  13. package/dist/adapters/RedisAdapter.js.map +1 -1
  14. package/dist/adapters/SQLiteAdapter.d.ts +3 -3
  15. package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
  16. package/dist/adapters/SQLiteAdapter.js +11 -11
  17. package/dist/adapters/SQLiteAdapter.js.map +1 -1
  18. package/dist/adapters/index.d.ts +1 -1
  19. package/dist/adapters/index.d.ts.map +1 -1
  20. package/dist/cjs/adapters/MemoryAdapter.js +2 -2
  21. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
  22. package/dist/cjs/adapters/MongoAdapter.js +2 -2
  23. package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
  24. package/dist/cjs/adapters/OpenSearchAdapter.js +7 -7
  25. package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
  26. package/dist/cjs/adapters/PostgreSQLAdapter.js +9 -9
  27. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
  28. package/dist/cjs/adapters/PrismaAdapter.js +3 -3
  29. package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
  30. package/dist/cjs/adapters/RedisAdapter.js +2 -2
  31. package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
  32. package/dist/cjs/adapters/SQLiteAdapter.d.ts +3 -3
  33. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
  34. package/dist/cjs/adapters/SQLiteAdapter.js +11 -11
  35. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
  36. package/dist/cjs/adapters/index.d.ts +1 -1
  37. package/dist/cjs/adapters/index.d.ts.map +1 -1
  38. package/dist/cjs/constants/index.d.ts +4 -4
  39. package/dist/cjs/constants/index.js +5 -5
  40. package/dist/cjs/core/Agent.d.ts +22 -22
  41. package/dist/cjs/core/Agent.d.ts.map +1 -1
  42. package/dist/cjs/core/Agent.js +160 -152
  43. package/dist/cjs/core/Agent.js.map +1 -1
  44. package/dist/cjs/core/Events.d.ts +6 -6
  45. package/dist/cjs/core/Events.d.ts.map +1 -1
  46. package/dist/cjs/core/PersistenceManager.d.ts +13 -13
  47. package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
  48. package/dist/cjs/core/PersistenceManager.js +24 -24
  49. package/dist/cjs/core/PersistenceManager.js.map +1 -1
  50. package/dist/cjs/core/ResponseEngine.d.ts +3 -8
  51. package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
  52. package/dist/cjs/core/ResponseEngine.js +8 -8
  53. package/dist/cjs/core/ResponseEngine.js.map +1 -1
  54. package/dist/cjs/core/Route.d.ts +17 -17
  55. package/dist/cjs/core/Route.d.ts.map +1 -1
  56. package/dist/cjs/core/Route.js +33 -33
  57. package/dist/cjs/core/Route.js.map +1 -1
  58. package/dist/cjs/core/RoutingEngine.d.ts +30 -30
  59. package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
  60. package/dist/cjs/core/RoutingEngine.js +192 -192
  61. package/dist/cjs/core/RoutingEngine.js.map +1 -1
  62. package/dist/cjs/core/Step.d.ts +72 -0
  63. package/dist/cjs/core/Step.d.ts.map +1 -0
  64. package/dist/cjs/core/Step.js +150 -0
  65. package/dist/cjs/core/Step.js.map +1 -0
  66. package/dist/cjs/core/ToolExecutor.d.ts +5 -5
  67. package/dist/cjs/core/ToolExecutor.d.ts.map +1 -1
  68. package/dist/cjs/core/ToolExecutor.js +8 -8
  69. package/dist/cjs/core/ToolExecutor.js.map +1 -1
  70. package/dist/cjs/core/Transition.d.ts +14 -14
  71. package/dist/cjs/core/Transition.d.ts.map +1 -1
  72. package/dist/cjs/core/Transition.js +48 -19
  73. package/dist/cjs/core/Transition.js.map +1 -1
  74. package/dist/cjs/index.d.ts +7 -7
  75. package/dist/cjs/index.d.ts.map +1 -1
  76. package/dist/cjs/index.js +8 -8
  77. package/dist/cjs/index.js.map +1 -1
  78. package/dist/cjs/types/agent.d.ts +8 -8
  79. package/dist/cjs/types/agent.d.ts.map +1 -1
  80. package/dist/cjs/types/ai.d.ts +2 -2
  81. package/dist/cjs/types/ai.d.ts.map +1 -1
  82. package/dist/cjs/types/history.d.ts +3 -3
  83. package/dist/cjs/types/history.d.ts.map +1 -1
  84. package/dist/cjs/types/index.d.ts +1 -1
  85. package/dist/cjs/types/index.d.ts.map +1 -1
  86. package/dist/cjs/types/persistence.d.ts +5 -5
  87. package/dist/cjs/types/persistence.d.ts.map +1 -1
  88. package/dist/cjs/types/route.d.ts +57 -52
  89. package/dist/cjs/types/route.d.ts.map +1 -1
  90. package/dist/cjs/types/session.d.ts +27 -27
  91. package/dist/cjs/types/session.d.ts.map +1 -1
  92. package/dist/cjs/types/session.js +48 -50
  93. package/dist/cjs/types/session.js.map +1 -1
  94. package/dist/cjs/types/tool.d.ts +13 -13
  95. package/dist/cjs/types/tool.d.ts.map +1 -1
  96. package/dist/cjs/utils/id.d.ts +8 -3
  97. package/dist/cjs/utils/id.d.ts.map +1 -1
  98. package/dist/cjs/utils/id.js +16 -7
  99. package/dist/cjs/utils/id.js.map +1 -1
  100. package/dist/constants/index.d.ts +4 -4
  101. package/dist/constants/index.js +4 -4
  102. package/dist/core/Agent.d.ts +22 -22
  103. package/dist/core/Agent.d.ts.map +1 -1
  104. package/dist/core/Agent.js +162 -154
  105. package/dist/core/Agent.js.map +1 -1
  106. package/dist/core/Events.d.ts +6 -6
  107. package/dist/core/Events.d.ts.map +1 -1
  108. package/dist/core/PersistenceManager.d.ts +13 -13
  109. package/dist/core/PersistenceManager.d.ts.map +1 -1
  110. package/dist/core/PersistenceManager.js +25 -25
  111. package/dist/core/PersistenceManager.js.map +1 -1
  112. package/dist/core/ResponseEngine.d.ts +3 -8
  113. package/dist/core/ResponseEngine.d.ts.map +1 -1
  114. package/dist/core/ResponseEngine.js +8 -8
  115. package/dist/core/ResponseEngine.js.map +1 -1
  116. package/dist/core/Route.d.ts +17 -17
  117. package/dist/core/Route.d.ts.map +1 -1
  118. package/dist/core/Route.js +33 -33
  119. package/dist/core/Route.js.map +1 -1
  120. package/dist/core/RoutingEngine.d.ts +30 -30
  121. package/dist/core/RoutingEngine.d.ts.map +1 -1
  122. package/dist/core/RoutingEngine.js +193 -193
  123. package/dist/core/RoutingEngine.js.map +1 -1
  124. package/dist/core/Step.d.ts +72 -0
  125. package/dist/core/Step.d.ts.map +1 -0
  126. package/dist/core/Step.js +146 -0
  127. package/dist/core/Step.js.map +1 -0
  128. package/dist/core/ToolExecutor.d.ts +5 -5
  129. package/dist/core/ToolExecutor.d.ts.map +1 -1
  130. package/dist/core/ToolExecutor.js +8 -8
  131. package/dist/core/ToolExecutor.js.map +1 -1
  132. package/dist/core/Transition.d.ts +14 -14
  133. package/dist/core/Transition.d.ts.map +1 -1
  134. package/dist/core/Transition.js +48 -19
  135. package/dist/core/Transition.js.map +1 -1
  136. package/dist/index.d.ts +7 -7
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/index.js +4 -4
  139. package/dist/index.js.map +1 -1
  140. package/dist/types/agent.d.ts +8 -8
  141. package/dist/types/agent.d.ts.map +1 -1
  142. package/dist/types/ai.d.ts +2 -2
  143. package/dist/types/ai.d.ts.map +1 -1
  144. package/dist/types/history.d.ts +3 -3
  145. package/dist/types/history.d.ts.map +1 -1
  146. package/dist/types/index.d.ts +1 -1
  147. package/dist/types/index.d.ts.map +1 -1
  148. package/dist/types/persistence.d.ts +5 -5
  149. package/dist/types/persistence.d.ts.map +1 -1
  150. package/dist/types/route.d.ts +57 -52
  151. package/dist/types/route.d.ts.map +1 -1
  152. package/dist/types/session.d.ts +27 -27
  153. package/dist/types/session.d.ts.map +1 -1
  154. package/dist/types/session.js +44 -46
  155. package/dist/types/session.js.map +1 -1
  156. package/dist/types/tool.d.ts +13 -13
  157. package/dist/types/tool.d.ts.map +1 -1
  158. package/dist/utils/id.d.ts +8 -3
  159. package/dist/utils/id.d.ts.map +1 -1
  160. package/dist/utils/id.js +14 -6
  161. package/dist/utils/id.js.map +1 -1
  162. package/docs/ADAPTERS.md +21 -21
  163. package/docs/AGENT.md +57 -55
  164. package/docs/API_REFERENCE.md +218 -220
  165. package/docs/ARCHITECTURE.md +99 -104
  166. package/docs/CONTEXT_MANAGEMENT.md +81 -88
  167. package/docs/DOCS.md +18 -18
  168. package/docs/DOMAINS.md +16 -16
  169. package/docs/EXAMPLES.md +43 -43
  170. package/docs/GETTING_STARTED.md +60 -63
  171. package/docs/PERSISTENCE.md +66 -70
  172. package/docs/PROVIDERS.md +2 -2
  173. package/docs/README.md +6 -6
  174. package/docs/ROUTES.md +218 -220
  175. package/docs/STEPS.md +883 -0
  176. package/examples/business-onboarding.ts +84 -81
  177. package/examples/company-qna-agent.ts +68 -67
  178. package/examples/custom-database-persistence.ts +87 -89
  179. package/examples/declarative-agent.ts +32 -32
  180. package/examples/domain-scoping.ts +18 -18
  181. package/examples/extracted-data-modification.ts +92 -97
  182. package/examples/healthcare-agent.ts +89 -91
  183. package/examples/openai-agent.ts +29 -32
  184. package/examples/opensearch-persistence.ts +43 -45
  185. package/examples/persistent-onboarding.ts +65 -66
  186. package/examples/prisma-persistence.ts +108 -112
  187. package/examples/prisma-schema.example.prisma +3 -3
  188. package/examples/redis-persistence.ts +67 -73
  189. package/examples/route-transitions.ts +71 -47
  190. package/examples/rules-prohibitions.ts +28 -28
  191. package/examples/streaming-agent.ts +24 -24
  192. package/examples/travel-agent.ts +94 -109
  193. package/package.json +1 -1
  194. package/src/adapters/MemoryAdapter.ts +3 -3
  195. package/src/adapters/MongoAdapter.ts +3 -3
  196. package/src/adapters/OpenSearchAdapter.ts +8 -8
  197. package/src/adapters/PostgreSQLAdapter.ts +10 -10
  198. package/src/adapters/PrismaAdapter.ts +4 -4
  199. package/src/adapters/RedisAdapter.ts +3 -3
  200. package/src/adapters/SQLiteAdapter.ts +15 -15
  201. package/src/adapters/index.ts +1 -1
  202. package/src/constants/index.ts +4 -4
  203. package/src/core/Agent.ts +210 -206
  204. package/src/core/Events.ts +12 -12
  205. package/src/core/PersistenceManager.ts +32 -36
  206. package/src/core/ResponseEngine.ts +11 -17
  207. package/src/core/Route.ts +55 -49
  208. package/src/core/RoutingEngine.ts +244 -252
  209. package/src/core/Step.ts +197 -0
  210. package/src/core/ToolExecutor.ts +11 -11
  211. package/src/core/Transition.ts +72 -26
  212. package/src/index.ts +8 -8
  213. package/src/types/agent.ts +8 -8
  214. package/src/types/ai.ts +2 -2
  215. package/src/types/history.ts +3 -3
  216. package/src/types/index.ts +1 -1
  217. package/src/types/persistence.ts +6 -6
  218. package/src/types/route.ts +77 -61
  219. package/src/types/session.ts +75 -78
  220. package/src/types/tool.ts +17 -17
  221. package/src/utils/id.ts +15 -6
  222. package/dist/cjs/core/State.d.ts +0 -72
  223. package/dist/cjs/core/State.d.ts.map +0 -1
  224. package/dist/cjs/core/State.js +0 -148
  225. package/dist/cjs/core/State.js.map +0 -1
  226. package/dist/core/State.d.ts +0 -72
  227. package/dist/core/State.d.ts.map +0 -1
  228. package/dist/core/State.js +0 -144
  229. package/dist/core/State.js.map +0 -1
  230. package/docs/STATES.md +0 -888
  231. package/src/core/State.ts +0 -212
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Session state types for tracking conversation progress
2
+ * Session step types for tracking conversation progress
3
3
  */
4
4
  /**
5
5
  * Helper to create a new session
@@ -9,8 +9,8 @@
9
9
  export function createSession(sessionId, metadata) {
10
10
  return {
11
11
  id: sessionId,
12
- extracted: {},
13
- extractedByRoute: {},
12
+ data: {},
13
+ dataByRoute: {},
14
14
  routeHistory: [],
15
15
  metadata: {
16
16
  ...metadata,
@@ -21,15 +21,15 @@ export function createSession(sessionId, metadata) {
21
21
  }
22
22
  /**
23
23
  * Helper to update session with new route
24
- * Preserves extracted data per route in extractedByRoute map
24
+ * Preserves collected data per route in dataByRoute map
25
25
  */
26
26
  export function enterRoute(session, routeId, routeTitle) {
27
- // Save current route's extracted data before switching
28
- const extractedByRoute = { ...session.extractedByRoute };
27
+ // Save current route's collected data before switching
28
+ const dataByRoute = { ...session.dataByRoute };
29
29
  if (session.currentRoute &&
30
- session.extracted &&
31
- Object.keys(session.extracted).length > 0) {
32
- extractedByRoute[session.currentRoute.id] = session.extracted;
30
+ session.data &&
31
+ Object.keys(session.data).length > 0) {
32
+ dataByRoute[session.currentRoute.id] = session.data;
33
33
  }
34
34
  // Exit current route if exists
35
35
  const routeHistory = [...session.routeHistory];
@@ -39,8 +39,8 @@ export function enterRoute(session, routeId, routeTitle) {
39
39
  routeHistory[lastRouteIndex].exitedAt = new Date();
40
40
  }
41
41
  }
42
- // Load extracted data for new route (if resuming) or start fresh
43
- const newExtracted = extractedByRoute[routeId] || {};
42
+ // Load collected data for new route (if resuming) or start fresh
43
+ const newCollected = dataByRoute[routeId] || {};
44
44
  // Enter new route
45
45
  const now = new Date();
46
46
  return {
@@ -50,9 +50,9 @@ export function enterRoute(session, routeId, routeTitle) {
50
50
  title: routeTitle,
51
51
  enteredAt: now,
52
52
  },
53
- currentState: undefined,
54
- extracted: newExtracted, // Load route's data or start fresh
55
- extractedByRoute,
53
+ currentStep: undefined,
54
+ data: newCollected, // Load route's data or start fresh
55
+ dataByRoute,
56
56
  routeHistory: [
57
57
  ...routeHistory,
58
58
  {
@@ -68,14 +68,14 @@ export function enterRoute(session, routeId, routeTitle) {
68
68
  };
69
69
  }
70
70
  /**
71
- * Helper to update session with new state
71
+ * Helper to update session with new step
72
72
  */
73
- export function enterState(session, stateId, stateDescription) {
73
+ export function enterStep(session, stepId, stepDescription) {
74
74
  return {
75
75
  ...session,
76
- currentState: {
77
- id: stateId,
78
- description: stateDescription,
76
+ currentStep: {
77
+ id: stepId,
78
+ description: stepDescription,
79
79
  enteredAt: new Date(),
80
80
  },
81
81
  metadata: {
@@ -85,23 +85,23 @@ export function enterState(session, stateId, stateDescription) {
85
85
  };
86
86
  }
87
87
  /**
88
- * Helper to merge extracted data into session
89
- * Updates both the extracted field and the extractedByRoute map
88
+ * Helper to merge collected data into session
89
+ * Updates both the data field and the dataByRoute map
90
90
  */
91
- export function mergeExtracted(session, extracted) {
92
- const newExtracted = {
93
- ...session.extracted,
94
- ...extracted,
91
+ export function mergeCollected(session, data) {
92
+ const newCollected = {
93
+ ...session.data,
94
+ ...data,
95
95
  };
96
- // Also update the extractedByRoute map for the current route
97
- const extractedByRoute = { ...session.extractedByRoute };
96
+ // Also update the dataByRoute map for the current route
97
+ const dataByRoute = { ...session.dataByRoute };
98
98
  if (session.currentRoute) {
99
- extractedByRoute[session.currentRoute.id] = newExtracted;
99
+ dataByRoute[session.currentRoute.id] = newCollected;
100
100
  }
101
101
  return {
102
102
  ...session,
103
- extracted: newExtracted,
104
- extractedByRoute,
103
+ data: newCollected,
104
+ dataByRoute,
105
105
  metadata: {
106
106
  ...session.metadata,
107
107
  lastUpdatedAt: new Date(),
@@ -109,30 +109,30 @@ export function mergeExtracted(session, extracted) {
109
109
  };
110
110
  }
111
111
  /**
112
- * Helper to convert SessionState to persistence-friendly format
112
+ * Helper to convert SessionStep to persistence-friendly format
113
113
  * Used when saving to database
114
114
  */
115
- export function sessionStateToData(session) {
115
+ export function sessionStepToData(session) {
116
116
  return {
117
117
  currentRoute: session.currentRoute?.id,
118
- currentState: session.currentState?.id,
118
+ currentStep: session.currentStep?.id,
119
119
  collectedData: {
120
- extracted: session.extracted,
121
- extractedByRoute: session.extractedByRoute, // Include per-route data
120
+ data: session.data,
121
+ dataByRoute: session.dataByRoute, // Include per-route data
122
122
  routeHistory: session.routeHistory,
123
123
  currentRouteTitle: session.currentRoute?.title,
124
- currentStateDescription: session.currentState?.description,
124
+ currentStepDescription: session.currentStep?.description,
125
125
  metadata: session.metadata,
126
126
  },
127
127
  };
128
128
  }
129
129
  /**
130
- * Helper to convert database SessionData back to SessionState
130
+ * Helper to convert database SessionData back to SessionStep
131
131
  * Used when loading from database
132
132
  * @param sessionId - The database session ID
133
133
  * @param data - The database session data
134
134
  */
135
- export function sessionDataToState(sessionId, data) {
135
+ export function sessionDataToStep(sessionId, data) {
136
136
  const collectedData = data.collectedData || {};
137
137
  return {
138
138
  id: sessionId,
@@ -143,18 +143,16 @@ export function sessionDataToState(sessionId, data) {
143
143
  enteredAt: new Date(),
144
144
  }
145
145
  : undefined,
146
- currentState: data.currentState
146
+ currentStep: data.currentStep
147
147
  ? {
148
- id: data.currentState,
149
- description: collectedData.currentStateDescription || undefined,
148
+ id: data.currentStep,
149
+ description: collectedData.currentStepDescription || undefined,
150
150
  enteredAt: new Date(),
151
151
  }
152
152
  : undefined,
153
- extracted: collectedData.extracted || {},
154
- extractedByRoute: collectedData.extractedByRoute ||
155
- {}, // Restore per-route data
156
- routeHistory: collectedData.routeHistory ||
157
- [],
153
+ data: collectedData.data || {},
154
+ dataByRoute: collectedData.dataByRoute || {}, // Restore per-route data
155
+ routeHistory: collectedData.routeHistory || [],
158
156
  metadata: collectedData.metadata || {},
159
157
  };
160
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
@@ -1,51 +1,51 @@
1
1
  /**
2
2
  * Tool system type definitions
3
3
  */
4
- import type { Event, StateRef } from "./index";
4
+ import type { Event, StepRef } from "./index";
5
5
  /**
6
6
  * Context provided to tool handlers
7
7
  */
8
- export interface ToolContext<TContext = unknown, TExtracted = unknown> {
8
+ export interface ToolContext<TContext = unknown, TData = unknown> {
9
9
  /** The agent's context data */
10
10
  context: TContext;
11
11
  /** Update the agent's context (triggers lifecycle hooks if configured) */
12
12
  updateContext: (updates: Partial<TContext>) => Promise<void>;
13
- /** Current state reference (if in a route) */
14
- state?: StateRef;
13
+ /** Current step reference (if in a route) */
14
+ step?: StepRef;
15
15
  /** Interaction history */
16
16
  history: Event[];
17
- /** Data extracted so far in the current route */
18
- extracted?: Partial<TExtracted>;
17
+ /** Data collected so far in the current route */
18
+ data?: Partial<TData>;
19
19
  /** Additional metadata */
20
20
  metadata?: Record<string, unknown>;
21
21
  }
22
22
  /**
23
23
  * Result returned by a tool
24
24
  */
25
- export interface ToolResult<TData = unknown, TContext = unknown, TExtracted = unknown> {
25
+ export interface ToolResult<TResultData = unknown, TContext = unknown, TData = unknown> {
26
26
  /** The result data */
27
- data: TData;
27
+ data: TResultData;
28
28
  /** Optional context update to be merged with current context */
29
29
  contextUpdate?: Partial<TContext>;
30
- /** Optional extracted data update to be merged with session state */
31
- extractedUpdate?: Partial<TExtracted>;
30
+ /** Optional collected data update to be merged with session step */
31
+ collectedUpdate?: Partial<TData>;
32
32
  /** Optional metadata about the execution */
33
33
  meta?: Record<string, unknown>;
34
34
  }
35
35
  /**
36
36
  * Handler function for a tool
37
37
  */
38
- export type ToolHandler<TContext, TArgs extends unknown[], TResult, TExtracted = unknown> = (context: ToolContext<TContext, TExtracted>, ...args: TArgs) => Promise<ToolResult<TResult, TContext, TExtracted>> | ToolResult<TResult, TContext, TExtracted>;
38
+ export type ToolHandler<TContext, TArgs extends unknown[], TResult, TData = unknown> = (context: ToolContext<TContext, TData>, ...args: TArgs) => Promise<ToolResult<TResult, TContext, TData>> | ToolResult<TResult, TContext, TData>;
39
39
  /**
40
40
  * Reference to a defined tool
41
41
  */
42
- export interface ToolRef<TContext, TArgs extends unknown[], TResult, TExtracted = unknown> {
42
+ export interface ToolRef<TContext, TArgs extends unknown[], TResult, TData = unknown> {
43
43
  /** Tool identifier */
44
44
  id: string;
45
45
  /** Tool name */
46
46
  name: string;
47
47
  /** Tool handler function */
48
- handler: ToolHandler<TContext, TArgs, TResult, TExtracted>;
48
+ handler: ToolHandler<TContext, TArgs, TResult, TData>;
49
49
  /** Description of what the tool does */
50
50
  description?: string;
51
51
  /** Parameter schema or description */
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/types/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;IACnE,+BAA+B;IAC/B,OAAO,EAAE,QAAQ,CAAC;IAClB,0EAA0E;IAC1E,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,8CAA8C;IAC9C,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,0BAA0B;IAC1B,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CACzB,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,UAAU,GAAG,OAAO;IAEpB,sBAAsB;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,qEAAqE;IACrE,eAAe,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,CACrB,QAAQ,EACR,KAAK,SAAS,OAAO,EAAE,EACvB,OAAO,EACP,UAAU,GAAG,OAAO,IAClB,CACF,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,EAC1C,GAAG,IAAI,EAAE,KAAK,KAEZ,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,GAClD,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,OAAO,CACtB,QAAQ,EACR,KAAK,SAAS,OAAO,EAAE,EACvB,OAAO,EACP,UAAU,GAAG,OAAO;IAEpB,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC3D,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/types/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IAC9D,+BAA+B;IAC/B,OAAO,EAAE,QAAQ,CAAC;IAClB,0EAA0E;IAC1E,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0BAA0B;IAC1B,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,iDAAiD;IACjD,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CACzB,WAAW,GAAG,OAAO,EACrB,QAAQ,GAAG,OAAO,EAClB,KAAK,GAAG,OAAO;IAEf,sBAAsB;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,CACrB,QAAQ,EACR,KAAK,SAAS,OAAO,EAAE,EACvB,OAAO,EACP,KAAK,GAAG,OAAO,IACb,CACF,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,EACrC,GAAG,IAAI,EAAE,KAAK,KAEZ,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,GAC7C,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,OAAO,CACtB,QAAQ,EACR,KAAK,SAAS,OAAO,EAAE,EACvB,OAAO,EACP,KAAK,GAAG,OAAO;IAEf,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACtD,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -8,13 +8,18 @@
8
8
  */
9
9
  export declare function generateRouteId(title: string): string;
10
10
  /**
11
- * Generate a deterministic state ID
12
- * Format: state_{sanitized_description}_{hash} or state_{routeId}_{index}
11
+ * Generate a deterministic step ID
12
+ * Format: step_{sanitized_description}_{hash} or step_{routeId}_{index}
13
13
  */
14
- export declare function generateStateId(routeId: string, description?: string, index?: number): string;
14
+ export declare function generateStepId(routeId: string, description?: string, index?: number): string;
15
15
  /**
16
16
  * Generate a deterministic tool ID
17
17
  * Format: tool_{sanitized_name}_{hash}
18
18
  */
19
19
  export declare function generateToolId(name: string): string;
20
+ /**
21
+ * Generate a deterministic tool ID for inline tool handlers
22
+ * Format: tool_inline_{stepId}_{hash}
23
+ */
24
+ export declare function generateInlineToolId(stepId: string): string;
20
25
  //# sourceMappingURL=id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CASR;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAInD"}
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CASR;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG3D"}
package/dist/utils/id.js CHANGED
@@ -31,18 +31,18 @@ export function generateRouteId(title) {
31
31
  return `route_${sanitized}_${hash}`;
32
32
  }
33
33
  /**
34
- * Generate a deterministic state ID
35
- * Format: state_{sanitized_description}_{hash} or state_{routeId}_{index}
34
+ * Generate a deterministic step ID
35
+ * Format: step_{sanitized_description}_{hash} or step_{routeId}_{index}
36
36
  */
37
- export function generateStateId(routeId, description, index) {
37
+ export function generateStepId(routeId, description, index) {
38
38
  if (description) {
39
39
  const sanitized = sanitize(description);
40
40
  const hash = simpleHash(`${routeId}_${description}`);
41
- return `state_${sanitized}_${hash}`;
41
+ return `step_${sanitized}_${hash}`;
42
42
  }
43
- // Fallback for states without descriptions
43
+ // Fallback for steps without descriptions
44
44
  const suffix = index !== undefined ? index : simpleHash(routeId);
45
- return `state_${routeId}_${suffix}`;
45
+ return `step_${routeId}_${suffix}`;
46
46
  }
47
47
  /**
48
48
  * Generate a deterministic tool ID
@@ -53,4 +53,12 @@ export function generateToolId(name) {
53
53
  const hash = simpleHash(name);
54
54
  return `tool_${sanitized}_${hash}`;
55
55
  }
56
+ /**
57
+ * Generate a deterministic tool ID for inline tool handlers
58
+ * Format: tool_inline_{stepId}_{hash}
59
+ */
60
+ export function generateInlineToolId(stepId) {
61
+ const hash = simpleHash(`${stepId}_inline_tool`);
62
+ return `tool_inline_${stepId}_${hash}`;
63
+ }
56
64
  //# sourceMappingURL=id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,4BAA4B;IAClD,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,SAAS,SAAS,IAAI,IAAI,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,WAAoB,EACpB,KAAc;IAEd,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;QACrD,OAAO,SAAS,SAAS,IAAI,IAAI,EAAE,CAAC;IACtC,CAAC;IACD,2CAA2C;IAC3C,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,SAAS,OAAO,IAAI,MAAM,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,QAAQ,SAAS,IAAI,IAAI,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,4BAA4B;IAClD,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,SAAS,SAAS,IAAI,IAAI,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,WAAoB,EACpB,KAAc;IAEd,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;QACrD,OAAO,QAAQ,SAAS,IAAI,IAAI,EAAE,CAAC;IACrC,CAAC;IACD,0CAA0C;IAC1C,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,QAAQ,OAAO,IAAI,MAAM,EAAE,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,QAAQ,SAAS,IAAI,IAAI,EAAE,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,MAAM,cAAc,CAAC,CAAC;IACjD,OAAO,eAAe,MAAM,IAAI,IAAI,EAAE,CAAC;AACzC,CAAC"}
package/docs/ADAPTERS.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  All adapters follow the **provider pattern** - no dependencies required in the package, users install only what they need.
4
4
 
5
- **NEW**: All adapters now support the new **Session State** pattern with automatic persistence of extracted data, current route/state, and conversation progress!
5
+ **NEW**: All adapters now support the new **Session Step** pattern with automatic persistence of collected data, current route/step, and conversation progress!
6
6
 
7
7
  ### 🎯 Available Adapters
8
8
 
@@ -87,7 +87,7 @@ All adapters follow the **provider pattern** - no dependencies required in the p
87
87
 
88
88
  ## 🎯 Usage Pattern
89
89
 
90
- All adapters follow the same simple pattern with full session state support:
90
+ All adapters follow the same simple pattern with full session step support:
91
91
 
92
92
  ```typescript
93
93
  import { Agent, [Adapter]Adapter } from "@falai/agent";
@@ -107,14 +107,14 @@ const agent = new Agent({
107
107
  persistence: {
108
108
  adapter,
109
109
  userId: "user_123",
110
- autoSave: true, // ✨ Auto-saves session state!
110
+ autoSave: true, // ✨ Auto-saves session step!
111
111
  },
112
112
  });
113
113
 
114
114
  // Create a route with data extraction
115
115
  const route = agent.createRoute<YourDataType>({
116
116
  title: "My Route",
117
- extractionSchema: {
117
+ schema: {
118
118
  type: "object",
119
119
  properties: {
120
120
  field1: { type: "string" },
@@ -124,28 +124,28 @@ const route = agent.createRoute<YourDataType>({
124
124
  },
125
125
  });
126
126
 
127
- // Define states
128
- route.initialState.transitionTo({
129
- chatState: "Collect data",
130
- gather: ["field1", "field2"],
127
+ // Define steps
128
+ route.initialStep.nextStep({
129
+ instructions: "Collect data",
130
+ collect: ["field1", "field2"],
131
131
  });
132
132
 
133
- // Use with session state
133
+ // Use with session step
134
134
  const persistence = agent.getPersistenceManager();
135
- const { sessionData, sessionState } =
136
- await persistence.createSessionWithState<YourDataType>({
135
+ const { sessionData, sessionStep } =
136
+ await persistence.createSessionWithStep<YourDataType>({
137
137
  userId: "user_123",
138
138
  agentName: "My Agent",
139
139
  });
140
140
 
141
- // Chat with automatic session state persistence
141
+ // Chat with automatic session step persistence
142
142
  const response = await agent.respond({
143
143
  history: [...],
144
- session: sessionState, // Pass session state
144
+ session: sessionStep, // Pass session step
145
145
  });
146
146
 
147
- // Session state auto-saved! Includes extracted data
148
- console.log("Extracted:", response.session?.extracted);
147
+ // Session step auto-saved! Includes collected data
148
+ console.log("Data:", response.session?.data);
149
149
  ```
150
150
 
151
151
  ## 🔌 Optional Dependencies
@@ -206,18 +206,18 @@ export class MyCustomAdapter implements PersistenceAdapter {
206
206
 
207
207
  All adapters are fully typed with **zero `any` types** (except for Prisma's dynamic model access):
208
208
 
209
- - Generic client interfaces with `SessionState<TExtracted>` support
209
+ - Generic client interfaces with `SessionStep<TData>` support
210
210
  - Typed repository methods
211
211
  - Full IDE autocomplete
212
212
  - Type-safe data extraction throughout
213
213
 
214
214
  ## 💾 What Gets Stored
215
215
 
216
- All adapters store session state in the `collectedData` JSON field:
216
+ All adapters store session step in the `collectedData` JSON field:
217
217
 
218
218
  ```json
219
219
  {
220
- "extracted": {
220
+ "data": {
221
221
  "destination": "Paris",
222
222
  "departureDate": "2025-06-15",
223
223
  "passengers": 2
@@ -230,7 +230,7 @@ All adapters store session state in the `collectedData` JSON field:
230
230
  }
231
231
  ],
232
232
  "currentRouteTitle": "Book a Flight",
233
- "currentStateDescription": "Ask about travel dates",
233
+ "currentStepDescription": "Ask about travel dates",
234
234
  "metadata": {
235
235
  "sessionId": "session_123",
236
236
  "createdAt": "2025-10-15T10:00:00Z",
@@ -241,8 +241,8 @@ All adapters store session state in the `collectedData` JSON field:
241
241
 
242
242
  This allows:
243
243
 
244
- - ✅ Full session state recovery
245
- - ✅ Analytics on extracted data
244
+ - ✅ Full session step recovery
245
+ - ✅ Analytics on collected data
246
246
  - ✅ Conversation progress tracking
247
247
  - ✅ Multi-turn conversation support
248
248