@falai/agent 0.6.9 → 0.8.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 (242) hide show
  1. package/README.md +78 -82
  2. package/dist/adapters/MemoryAdapter.d.ts +1 -1
  3. package/dist/adapters/MemoryAdapter.js +3 -3
  4. package/dist/adapters/MemoryAdapter.js.map +1 -1
  5. package/dist/adapters/MongoAdapter.d.ts +1 -1
  6. package/dist/adapters/MongoAdapter.js +3 -3
  7. package/dist/adapters/MongoAdapter.js.map +1 -1
  8. package/dist/adapters/OpenSearchAdapter.js +7 -7
  9. package/dist/adapters/OpenSearchAdapter.js.map +1 -1
  10. package/dist/adapters/PostgreSQLAdapter.d.ts +1 -1
  11. package/dist/adapters/PostgreSQLAdapter.js +10 -10
  12. package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
  13. package/dist/adapters/PrismaAdapter.d.ts +1 -1
  14. package/dist/adapters/PrismaAdapter.js +4 -4
  15. package/dist/adapters/PrismaAdapter.js.map +1 -1
  16. package/dist/adapters/RedisAdapter.d.ts +1 -1
  17. package/dist/adapters/RedisAdapter.js +3 -3
  18. package/dist/adapters/RedisAdapter.js.map +1 -1
  19. package/dist/adapters/SQLiteAdapter.d.ts +4 -4
  20. package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
  21. package/dist/adapters/SQLiteAdapter.js +12 -12
  22. package/dist/adapters/SQLiteAdapter.js.map +1 -1
  23. package/dist/adapters/index.d.ts +1 -1
  24. package/dist/adapters/index.d.ts.map +1 -1
  25. package/dist/cjs/adapters/MemoryAdapter.d.ts +1 -1
  26. package/dist/cjs/adapters/MemoryAdapter.js +3 -3
  27. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
  28. package/dist/cjs/adapters/MongoAdapter.d.ts +1 -1
  29. package/dist/cjs/adapters/MongoAdapter.js +3 -3
  30. package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
  31. package/dist/cjs/adapters/OpenSearchAdapter.js +7 -7
  32. package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
  33. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +1 -1
  34. package/dist/cjs/adapters/PostgreSQLAdapter.js +10 -10
  35. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
  36. package/dist/cjs/adapters/PrismaAdapter.d.ts +1 -1
  37. package/dist/cjs/adapters/PrismaAdapter.js +4 -4
  38. package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
  39. package/dist/cjs/adapters/RedisAdapter.d.ts +1 -1
  40. package/dist/cjs/adapters/RedisAdapter.js +3 -3
  41. package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
  42. package/dist/cjs/adapters/SQLiteAdapter.d.ts +4 -4
  43. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
  44. package/dist/cjs/adapters/SQLiteAdapter.js +12 -12
  45. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
  46. package/dist/cjs/adapters/index.d.ts +1 -1
  47. package/dist/cjs/adapters/index.d.ts.map +1 -1
  48. package/dist/cjs/constants/index.d.ts +4 -4
  49. package/dist/cjs/constants/index.js +5 -5
  50. package/dist/cjs/core/Agent.d.ts +22 -22
  51. package/dist/cjs/core/Agent.d.ts.map +1 -1
  52. package/dist/cjs/core/Agent.js +168 -160
  53. package/dist/cjs/core/Agent.js.map +1 -1
  54. package/dist/cjs/core/Events.d.ts +6 -6
  55. package/dist/cjs/core/Events.d.ts.map +1 -1
  56. package/dist/cjs/core/PersistenceManager.d.ts +13 -13
  57. package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
  58. package/dist/cjs/core/PersistenceManager.js +24 -24
  59. package/dist/cjs/core/PersistenceManager.js.map +1 -1
  60. package/dist/cjs/core/ResponseEngine.d.ts +3 -8
  61. package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
  62. package/dist/cjs/core/ResponseEngine.js +8 -8
  63. package/dist/cjs/core/ResponseEngine.js.map +1 -1
  64. package/dist/cjs/core/Route.d.ts +17 -17
  65. package/dist/cjs/core/Route.d.ts.map +1 -1
  66. package/dist/cjs/core/Route.js +33 -33
  67. package/dist/cjs/core/Route.js.map +1 -1
  68. package/dist/cjs/core/RoutingEngine.d.ts +31 -31
  69. package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
  70. package/dist/cjs/core/RoutingEngine.js +196 -196
  71. package/dist/cjs/core/RoutingEngine.js.map +1 -1
  72. package/dist/cjs/core/Step.d.ts +72 -0
  73. package/dist/cjs/core/Step.d.ts.map +1 -0
  74. package/dist/cjs/core/Step.js +150 -0
  75. package/dist/cjs/core/Step.js.map +1 -0
  76. package/dist/cjs/core/ToolExecutor.d.ts +5 -5
  77. package/dist/cjs/core/ToolExecutor.d.ts.map +1 -1
  78. package/dist/cjs/core/ToolExecutor.js +8 -8
  79. package/dist/cjs/core/ToolExecutor.js.map +1 -1
  80. package/dist/cjs/core/Transition.d.ts +14 -14
  81. package/dist/cjs/core/Transition.d.ts.map +1 -1
  82. package/dist/cjs/core/Transition.js +48 -19
  83. package/dist/cjs/core/Transition.js.map +1 -1
  84. package/dist/cjs/index.d.ts +7 -7
  85. package/dist/cjs/index.d.ts.map +1 -1
  86. package/dist/cjs/index.js +8 -8
  87. package/dist/cjs/index.js.map +1 -1
  88. package/dist/cjs/types/agent.d.ts +9 -9
  89. package/dist/cjs/types/agent.d.ts.map +1 -1
  90. package/dist/cjs/types/ai.d.ts +2 -2
  91. package/dist/cjs/types/ai.d.ts.map +1 -1
  92. package/dist/cjs/types/history.d.ts +3 -3
  93. package/dist/cjs/types/history.d.ts.map +1 -1
  94. package/dist/cjs/types/index.d.ts +1 -1
  95. package/dist/cjs/types/index.d.ts.map +1 -1
  96. package/dist/cjs/types/persistence.d.ts +5 -5
  97. package/dist/cjs/types/persistence.d.ts.map +1 -1
  98. package/dist/cjs/types/route.d.ts +57 -52
  99. package/dist/cjs/types/route.d.ts.map +1 -1
  100. package/dist/cjs/types/session.d.ts +27 -27
  101. package/dist/cjs/types/session.d.ts.map +1 -1
  102. package/dist/cjs/types/session.js +48 -50
  103. package/dist/cjs/types/session.js.map +1 -1
  104. package/dist/cjs/types/tool.d.ts +13 -13
  105. package/dist/cjs/types/tool.d.ts.map +1 -1
  106. package/dist/cjs/utils/id.d.ts +8 -3
  107. package/dist/cjs/utils/id.d.ts.map +1 -1
  108. package/dist/cjs/utils/id.js +16 -7
  109. package/dist/cjs/utils/id.js.map +1 -1
  110. package/dist/constants/index.d.ts +4 -4
  111. package/dist/constants/index.js +4 -4
  112. package/dist/core/Agent.d.ts +22 -22
  113. package/dist/core/Agent.d.ts.map +1 -1
  114. package/dist/core/Agent.js +170 -162
  115. package/dist/core/Agent.js.map +1 -1
  116. package/dist/core/Events.d.ts +6 -6
  117. package/dist/core/Events.d.ts.map +1 -1
  118. package/dist/core/PersistenceManager.d.ts +13 -13
  119. package/dist/core/PersistenceManager.d.ts.map +1 -1
  120. package/dist/core/PersistenceManager.js +25 -25
  121. package/dist/core/PersistenceManager.js.map +1 -1
  122. package/dist/core/ResponseEngine.d.ts +3 -8
  123. package/dist/core/ResponseEngine.d.ts.map +1 -1
  124. package/dist/core/ResponseEngine.js +8 -8
  125. package/dist/core/ResponseEngine.js.map +1 -1
  126. package/dist/core/Route.d.ts +17 -17
  127. package/dist/core/Route.d.ts.map +1 -1
  128. package/dist/core/Route.js +33 -33
  129. package/dist/core/Route.js.map +1 -1
  130. package/dist/core/RoutingEngine.d.ts +31 -31
  131. package/dist/core/RoutingEngine.d.ts.map +1 -1
  132. package/dist/core/RoutingEngine.js +197 -197
  133. package/dist/core/RoutingEngine.js.map +1 -1
  134. package/dist/core/Step.d.ts +72 -0
  135. package/dist/core/Step.d.ts.map +1 -0
  136. package/dist/core/Step.js +146 -0
  137. package/dist/core/Step.js.map +1 -0
  138. package/dist/core/ToolExecutor.d.ts +5 -5
  139. package/dist/core/ToolExecutor.d.ts.map +1 -1
  140. package/dist/core/ToolExecutor.js +8 -8
  141. package/dist/core/ToolExecutor.js.map +1 -1
  142. package/dist/core/Transition.d.ts +14 -14
  143. package/dist/core/Transition.d.ts.map +1 -1
  144. package/dist/core/Transition.js +48 -19
  145. package/dist/core/Transition.js.map +1 -1
  146. package/dist/index.d.ts +7 -7
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +4 -4
  149. package/dist/index.js.map +1 -1
  150. package/dist/types/agent.d.ts +9 -9
  151. package/dist/types/agent.d.ts.map +1 -1
  152. package/dist/types/ai.d.ts +2 -2
  153. package/dist/types/ai.d.ts.map +1 -1
  154. package/dist/types/history.d.ts +3 -3
  155. package/dist/types/history.d.ts.map +1 -1
  156. package/dist/types/index.d.ts +1 -1
  157. package/dist/types/index.d.ts.map +1 -1
  158. package/dist/types/persistence.d.ts +5 -5
  159. package/dist/types/persistence.d.ts.map +1 -1
  160. package/dist/types/route.d.ts +57 -52
  161. package/dist/types/route.d.ts.map +1 -1
  162. package/dist/types/session.d.ts +27 -27
  163. package/dist/types/session.d.ts.map +1 -1
  164. package/dist/types/session.js +44 -46
  165. package/dist/types/session.js.map +1 -1
  166. package/dist/types/tool.d.ts +13 -13
  167. package/dist/types/tool.d.ts.map +1 -1
  168. package/dist/utils/id.d.ts +8 -3
  169. package/dist/utils/id.d.ts.map +1 -1
  170. package/dist/utils/id.js +14 -6
  171. package/dist/utils/id.js.map +1 -1
  172. package/docs/ADAPTERS.md +21 -21
  173. package/docs/AGENT.md +63 -61
  174. package/docs/API_REFERENCE.md +218 -220
  175. package/docs/ARCHITECTURE.md +99 -104
  176. package/docs/CONTEXT_MANAGEMENT.md +84 -91
  177. package/docs/CONTRIBUTING.md +3 -3
  178. package/docs/DOCS.md +18 -18
  179. package/docs/DOMAINS.md +18 -18
  180. package/docs/EXAMPLES.md +44 -44
  181. package/docs/GETTING_STARTED.md +63 -66
  182. package/docs/PERSISTENCE.md +70 -74
  183. package/docs/PROVIDERS.md +6 -6
  184. package/docs/README.md +6 -6
  185. package/docs/ROUTES.md +218 -220
  186. package/docs/STEPS.md +883 -0
  187. package/examples/business-onboarding.ts +85 -82
  188. package/examples/company-qna-agent.ts +69 -68
  189. package/examples/custom-database-persistence.ts +89 -91
  190. package/examples/declarative-agent.ts +33 -33
  191. package/examples/domain-scoping.ts +20 -20
  192. package/examples/extracted-data-modification.ts +93 -98
  193. package/examples/healthcare-agent.ts +90 -92
  194. package/examples/openai-agent.ts +30 -33
  195. package/examples/opensearch-persistence.ts +46 -48
  196. package/examples/persistent-onboarding.ts +67 -68
  197. package/examples/prisma-persistence.ts +111 -115
  198. package/examples/prisma-schema.example.prisma +3 -3
  199. package/examples/redis-persistence.ts +70 -76
  200. package/examples/route-transitions.ts +72 -48
  201. package/examples/rules-prohibitions.ts +31 -31
  202. package/examples/streaming-agent.ts +29 -29
  203. package/examples/travel-agent.ts +95 -110
  204. package/package.json +1 -1
  205. package/src/adapters/MemoryAdapter.ts +4 -4
  206. package/src/adapters/MongoAdapter.ts +4 -4
  207. package/src/adapters/OpenSearchAdapter.ts +8 -8
  208. package/src/adapters/PostgreSQLAdapter.ts +11 -11
  209. package/src/adapters/PrismaAdapter.ts +5 -5
  210. package/src/adapters/RedisAdapter.ts +4 -4
  211. package/src/adapters/SQLiteAdapter.ts +16 -16
  212. package/src/adapters/index.ts +1 -1
  213. package/src/constants/index.ts +4 -4
  214. package/src/core/Agent.ts +218 -214
  215. package/src/core/Events.ts +12 -12
  216. package/src/core/PersistenceManager.ts +32 -36
  217. package/src/core/ResponseEngine.ts +11 -17
  218. package/src/core/Route.ts +55 -49
  219. package/src/core/RoutingEngine.ts +252 -258
  220. package/src/core/Step.ts +197 -0
  221. package/src/core/ToolExecutor.ts +11 -11
  222. package/src/core/Transition.ts +72 -26
  223. package/src/index.ts +8 -8
  224. package/src/types/agent.ts +9 -9
  225. package/src/types/ai.ts +2 -2
  226. package/src/types/history.ts +3 -3
  227. package/src/types/index.ts +1 -1
  228. package/src/types/persistence.ts +6 -6
  229. package/src/types/route.ts +77 -61
  230. package/src/types/session.ts +75 -78
  231. package/src/types/tool.ts +17 -17
  232. package/src/utils/id.ts +15 -6
  233. package/dist/cjs/core/State.d.ts +0 -72
  234. package/dist/cjs/core/State.d.ts.map +0 -1
  235. package/dist/cjs/core/State.js +0 -148
  236. package/dist/cjs/core/State.js.map +0 -1
  237. package/dist/core/State.d.ts +0 -72
  238. package/dist/core/State.d.ts.map +0 -1
  239. package/dist/core/State.js +0 -144
  240. package/dist/core/State.js.map +0 -1
  241. package/docs/STATES.md +0 -888
  242. package/src/core/State.ts +0 -212
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Rules & Prohibitions Example
3
- * Updated for v2 architecture with session state management
3
+ * Updated for v2 architecture with session step management
4
4
  *
5
5
  * Demonstrates how to use rules and prohibitions to control agent behavior
6
6
  * in different conversation routes (e.g., WhatsApp bot with different styles)
@@ -12,14 +12,14 @@ import {
12
12
  type MessageEventData,
13
13
  EventKind,
14
14
  EventSource,
15
- END_STATE,
15
+ END_ROUTE,
16
16
  } from "../src";
17
17
  import { OpenAIProvider } from "../src/providers/OpenAIProvider";
18
18
 
19
19
  /**
20
20
  * Configuration for the AI provider
21
21
  */
22
- const ai = new OpenAIProvider({
22
+ const provider = new OpenAIProvider({
23
23
  apiKey: process.env.OPENAI_API_KEY || "your-api-key-here",
24
24
  model: "gpt-5",
25
25
  });
@@ -32,7 +32,7 @@ const agent = new Agent({
32
32
  description:
33
33
  "A versatile customer service agent that adapts its behavior based on the conversation's context.",
34
34
  goal: "Provide excellent customer service by following route-specific rules and prohibitions.",
35
- ai,
35
+ provider,
36
36
  debug: true,
37
37
  });
38
38
 
@@ -99,26 +99,26 @@ agent.createRoute({
99
99
  ],
100
100
  });
101
101
 
102
- // Add a stateful feedback flow to the Technical Support route
102
+ // Add a stepful feedback flow to the Technical Support route
103
103
  const techSupportRoute = agent
104
104
  .getRoutes()
105
105
  .find((r) => r.title === "Technical Support")!;
106
- techSupportRoute.initialState
107
- .transitionTo({
108
- chatState: "Provide step-by-step technical assistance.",
106
+ techSupportRoute.initialStep
107
+ .nextStep({
108
+ instructions: "Provide step-by-step technical assistance.",
109
109
  })
110
- .transitionTo({
111
- chatState: "Ask for a rating of the support provided (1-5).",
112
- gather: ["feedbackRating"],
110
+ .nextStep({
111
+ instructions: "Ask for a rating of the support provided (1-5).",
112
+ collect: ["feedbackRating"],
113
113
  })
114
- .transitionTo({
115
- chatState: "Ask for any additional comments.",
116
- gather: ["feedbackComments"],
114
+ .nextStep({
115
+ instructions: "Ask for any additional comments.",
116
+ collect: ["feedbackComments"],
117
117
  })
118
- .transitionTo({
119
- chatState: "Thank the user for their feedback.",
118
+ .nextStep({
119
+ instructions: "Thank the user for their feedback.",
120
120
  })
121
- .transitionTo({ state: END_STATE });
121
+ .nextStep({ step: END_ROUTE });
122
122
 
123
123
  agent.createRoute({
124
124
  title: "Emergency Support",
@@ -166,7 +166,7 @@ async function demonstrateRulesAndProhibitions() {
166
166
  description:
167
167
  "A versatile customer service agent that adapts its behavior based on the conversation's context.",
168
168
  goal: "Provide excellent customer service by following route-specific rules and prohibitions.",
169
- ai,
169
+ provider,
170
170
  debug: true,
171
171
  });
172
172
 
@@ -231,26 +231,26 @@ async function demonstrateRulesAndProhibitions() {
231
231
  ],
232
232
  });
233
233
 
234
- // Add a stateful feedback flow to the Technical Support route
234
+ // Add a stepful feedback flow to the Technical Support route
235
235
  const techSupportRoute = agent
236
236
  .getRoutes()
237
237
  .find((r) => r.title === "Technical Support")!;
238
- techSupportRoute.initialState
239
- .transitionTo({
240
- chatState: "Provide step-by-step technical assistance.",
238
+ techSupportRoute.initialStep
239
+ .nextStep({
240
+ instructions: "Provide step-by-step technical assistance.",
241
241
  })
242
- .transitionTo({
243
- chatState: "Ask for a rating of the support provided (1-5).",
244
- gather: ["feedbackRating"],
242
+ .nextStep({
243
+ instructions: "Ask for a rating of the support provided (1-5).",
244
+ collect: ["feedbackRating"],
245
245
  })
246
- .transitionTo({
247
- chatState: "Ask for any additional comments.",
248
- gather: ["feedbackComments"],
246
+ .nextStep({
247
+ instructions: "Ask for any additional comments.",
248
+ collect: ["feedbackComments"],
249
249
  })
250
- .transitionTo({
251
- chatState: "Thank the user for their feedback.",
250
+ .nextStep({
251
+ instructions: "Thank the user for their feedback.",
252
252
  })
253
- .transitionTo({ state: END_STATE });
253
+ .nextStep({ step: END_ROUTE });
254
254
 
255
255
  agent.createRoute({
256
256
  title: "Emergency Support",
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Example: Streaming Responses
3
- * Updated for v2 architecture with session state management
3
+ * Updated for v2 architecture with session step management
4
4
  *
5
5
  * This example demonstrates how to use the respondStream method
6
6
  * to stream AI responses in real-time for better user experience
@@ -14,7 +14,7 @@ import {
14
14
  OpenAIProvider,
15
15
  GeminiProvider,
16
16
  createSession,
17
- END_STATE,
17
+ END_ROUTE,
18
18
  } from "../src/index";
19
19
 
20
20
  // Custom context type
@@ -51,7 +51,7 @@ async function streamingWithAnthropic() {
51
51
  streamingEnabled: true,
52
52
  },
53
53
  },
54
- ai: provider,
54
+ provider: provider,
55
55
  });
56
56
 
57
57
  // Add guidelines
@@ -73,10 +73,10 @@ async function streamingWithAnthropic() {
73
73
  console.log("šŸ“¤ Streaming response from Claude...\n");
74
74
  console.log("Response: ");
75
75
 
76
- // Initialize session state for streaming conversation
76
+ // Initialize session step for streaming conversation
77
77
  let session = createSession();
78
78
 
79
- // Use respondStream for real-time streaming with session state
79
+ // Use respondStream for real-time streaming with session step
80
80
  let fullMessage = "";
81
81
  for await (const chunk of agent.respondStream({ history, session })) {
82
82
  // chunk.delta contains the new text
@@ -94,7 +94,7 @@ async function streamingWithAnthropic() {
94
94
  console.log(
95
95
  ` - Route: ${chunk.session?.currentRoute?.title || "None"}`
96
96
  );
97
- console.log(` - Extracted:`, chunk.session?.extracted || "None");
97
+ console.log(` - Data:`, chunk.session?.data || "None");
98
98
  console.log(` - Tool Calls: ${chunk.toolCalls?.length || 0}`);
99
99
 
100
100
  // Update session with progress
@@ -127,7 +127,7 @@ async function streamingWithOpenAI() {
127
127
  streamingEnabled: true,
128
128
  },
129
129
  },
130
- ai: provider,
130
+ provider: provider,
131
131
  });
132
132
 
133
133
  const history = [
@@ -142,7 +142,7 @@ async function streamingWithOpenAI() {
142
142
  console.log("šŸ“¤ Streaming response from OpenAI...\n");
143
143
  console.log("Response: ");
144
144
 
145
- // Initialize session state for streaming conversation
145
+ // Initialize session step for streaming conversation
146
146
  let session = createSession();
147
147
 
148
148
  for await (const chunk of agent.respondStream({ history, session })) {
@@ -155,7 +155,7 @@ async function streamingWithOpenAI() {
155
155
  console.log(
156
156
  ` - Route: ${chunk.session?.currentRoute?.title || "None"}`
157
157
  );
158
- console.log(` - Extracted:`, chunk.session?.extracted || "None");
158
+ console.log(` - Data:`, chunk.session?.data || "None");
159
159
 
160
160
  // Update session with progress
161
161
  session = chunk.session!;
@@ -187,7 +187,7 @@ async function streamingWithGemini() {
187
187
  streamingEnabled: true,
188
188
  },
189
189
  },
190
- ai: provider,
190
+ provider: provider,
191
191
  });
192
192
 
193
193
  const history = [
@@ -202,7 +202,7 @@ async function streamingWithGemini() {
202
202
  console.log("šŸ“¤ Streaming response from Gemini...\n");
203
203
  console.log("Response: ");
204
204
 
205
- // Initialize session state for streaming conversation
205
+ // Initialize session step for streaming conversation
206
206
  let session = createSession();
207
207
 
208
208
  for await (const chunk of agent.respondStream({ history, session })) {
@@ -215,7 +215,7 @@ async function streamingWithGemini() {
215
215
  console.log(
216
216
  ` - Route: ${chunk.session?.currentRoute?.title || "None"}`
217
217
  );
218
- console.log(` - Extracted:`, chunk.session?.extracted || "None");
218
+ console.log(` - Data:`, chunk.session?.data || "None");
219
219
 
220
220
  // Update session with progress
221
221
  session = chunk.session!;
@@ -227,7 +227,7 @@ async function streamingWithGemini() {
227
227
  }
228
228
 
229
229
  async function streamingWithRoutes() {
230
- console.log("\nšŸ¤– Example 4: Streaming with Routes and States\n");
230
+ console.log("\nšŸ¤– Example 4: Streaming with Routes and Steps\n");
231
231
 
232
232
  const provider = new AnthropicProvider({
233
233
  apiKey: process.env.ANTHROPIC_API_KEY || "",
@@ -244,7 +244,7 @@ async function streamingWithRoutes() {
244
244
  streamingEnabled: true,
245
245
  },
246
246
  },
247
- ai: provider,
247
+ provider: provider,
248
248
  });
249
249
 
250
250
  // Create a route
@@ -254,8 +254,8 @@ async function streamingWithRoutes() {
254
254
  conditions: ["User asks about product features or issues"],
255
255
  });
256
256
 
257
- supportRoute.initialState.transitionTo({
258
- chatState: "Understand the user's product question",
257
+ supportRoute.initialStep.nextStep({
258
+ instructions: "Understand the user's product question",
259
259
  });
260
260
 
261
261
  // Create a feedback route
@@ -266,7 +266,7 @@ async function streamingWithRoutes() {
266
266
  title: "Collect Feedback",
267
267
  description: "Collect user feedback on their support experience",
268
268
  conditions: ["User wants to provide feedback"],
269
- extractionSchema: {
269
+ schema: {
270
270
  type: "object",
271
271
  properties: {
272
272
  rating: { type: "number", minimum: 1, maximum: 5 },
@@ -276,15 +276,15 @@ async function streamingWithRoutes() {
276
276
  },
277
277
  steps: [
278
278
  {
279
- chatState: "How would you rate your support experience from 1 to 5?",
280
- gather: ["rating"],
279
+ instructions: "How would you rate your support experience from 1 to 5?",
280
+ collect: ["rating"],
281
281
  },
282
282
  {
283
- chatState: "Thanks for the rating! Any other comments?",
284
- gather: ["comments"],
283
+ instructions: "Thanks for the rating! Any other comments?",
284
+ collect: ["comments"],
285
285
  },
286
286
  {
287
- chatState: "We appreciate your feedback!",
287
+ instructions: "We appreciate your feedback!",
288
288
  },
289
289
  ],
290
290
  });
@@ -301,7 +301,7 @@ async function streamingWithRoutes() {
301
301
  console.log("šŸ“¤ Streaming response with route detection...\n");
302
302
  console.log("Response: ");
303
303
 
304
- // Initialize session state for streaming conversation
304
+ // Initialize session step for streaming conversation
305
305
  let session = createSession();
306
306
 
307
307
  for await (const chunk of agent.respondStream({ history, session })) {
@@ -315,14 +315,14 @@ async function streamingWithRoutes() {
315
315
  console.log(
316
316
  ` - Route: ${chunk.session?.currentRoute?.title || "None"}`
317
317
  );
318
- console.log(` - Extracted:`, chunk.session?.extracted || "None");
318
+ console.log(` - Data:`, chunk.session?.data || "None");
319
319
 
320
320
  // Check for route completion
321
321
  if (chunk.isRouteComplete) {
322
322
  console.log("\nāœ… Route complete!");
323
323
  if (chunk.session?.currentRoute?.title === "Collect Feedback") {
324
324
  await logFeedback(
325
- agent.getExtractedData(chunk.session?.id) as {
325
+ agent.getData(chunk.session?.id) as {
326
326
  rating: number;
327
327
  comments: string;
328
328
  }
@@ -357,7 +357,7 @@ async function streamingWithAbortSignal() {
357
357
  streamingEnabled: true,
358
358
  },
359
359
  },
360
- ai: provider,
360
+ provider: provider,
361
361
  });
362
362
 
363
363
  const history = [
@@ -381,7 +381,7 @@ async function streamingWithAbortSignal() {
381
381
  console.log("šŸ“¤ Streaming response (will abort after 3s)...\n");
382
382
  console.log("Response: ");
383
383
 
384
- // Initialize session state for streaming conversation
384
+ // Initialize session step for streaming conversation
385
385
  let session = createSession();
386
386
 
387
387
  for await (const chunk of agent.respondStream({
@@ -399,7 +399,7 @@ async function streamingWithAbortSignal() {
399
399
  console.log(
400
400
  ` - Route: ${chunk.session?.currentRoute?.title || "None"}`
401
401
  );
402
- console.log(` - Extracted:`, chunk.session?.extracted || "None");
402
+ console.log(` - Data:`, chunk.session?.data || "None");
403
403
 
404
404
  // Update session with progress
405
405
  session = chunk.session!;
@@ -453,7 +453,7 @@ async function main() {
453
453
  console.log(" - Set ANTHROPIC_API_KEY, OPENAI_API_KEY, or GEMINI_API_KEY");
454
454
  console.log(" - Streaming provides real-time responses for better UX");
455
455
  console.log(" - Use AbortSignal to cancel long-running streams");
456
- console.log(" - Access chunk.route and chunk.state for flow information");
456
+ console.log(" - Access chunk.route and chunk.step for flow information");
457
457
 
458
458
  console.log("\n" + "=".repeat(60));
459
459