@falai/agent 3.4.5 → 4.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (856) hide show
  1. package/README.md +41 -34
  2. package/dist/cjs/core/Agent.d.ts +22 -378
  3. package/dist/cjs/core/Agent.d.ts.map +1 -1
  4. package/dist/cjs/core/Agent.js +104 -1178
  5. package/dist/cjs/core/Agent.js.map +1 -1
  6. package/dist/cjs/core/CompactionEngine.d.ts.map +1 -1
  7. package/dist/cjs/core/CompactionEngine.js +5 -3
  8. package/dist/cjs/core/CompactionEngine.js.map +1 -1
  9. package/dist/cjs/core/FlowSpec.d.ts +136 -0
  10. package/dist/cjs/core/FlowSpec.d.ts.map +1 -0
  11. package/dist/cjs/core/FlowSpec.js +522 -0
  12. package/dist/cjs/core/FlowSpec.js.map +1 -0
  13. package/dist/cjs/core/Migrate.d.ts +38 -0
  14. package/dist/cjs/core/Migrate.d.ts.map +1 -0
  15. package/dist/cjs/core/Migrate.js +270 -0
  16. package/dist/cjs/core/Migrate.js.map +1 -0
  17. package/dist/cjs/core/Prompt.d.ts +54 -0
  18. package/dist/cjs/core/Prompt.d.ts.map +1 -0
  19. package/dist/cjs/core/Prompt.js +143 -0
  20. package/dist/cjs/core/Prompt.js.map +1 -0
  21. package/dist/cjs/core/Runner.d.ts +160 -0
  22. package/dist/cjs/core/Runner.d.ts.map +1 -0
  23. package/dist/cjs/core/Runner.js +1131 -0
  24. package/dist/cjs/core/Runner.js.map +1 -0
  25. package/dist/cjs/core/Speak.d.ts +37 -0
  26. package/dist/cjs/core/Speak.d.ts.map +1 -0
  27. package/dist/cjs/core/Speak.js +364 -0
  28. package/dist/cjs/core/Speak.js.map +1 -0
  29. package/dist/cjs/core/Understand.d.ts +28 -0
  30. package/dist/cjs/core/Understand.d.ts.map +1 -0
  31. package/dist/cjs/core/Understand.js +353 -0
  32. package/dist/cjs/core/Understand.js.map +1 -0
  33. package/dist/cjs/core/contracts.d.ts +122 -0
  34. package/dist/cjs/core/contracts.d.ts.map +1 -0
  35. package/dist/cjs/core/contracts.js +11 -0
  36. package/dist/cjs/core/contracts.js.map +1 -0
  37. package/dist/cjs/core/falai.d.ts +57 -0
  38. package/dist/cjs/core/falai.d.ts.map +1 -0
  39. package/dist/cjs/core/falai.js +43 -0
  40. package/dist/cjs/core/falai.js.map +1 -0
  41. package/dist/cjs/core/predicate.d.ts +9 -0
  42. package/dist/cjs/core/predicate.d.ts.map +1 -0
  43. package/dist/cjs/core/predicate.js +58 -0
  44. package/dist/cjs/core/predicate.js.map +1 -0
  45. package/dist/cjs/index.d.ts +26 -31
  46. package/dist/cjs/index.d.ts.map +1 -1
  47. package/dist/cjs/index.js +46 -68
  48. package/dist/cjs/index.js.map +1 -1
  49. package/dist/cjs/persistence/MemoryStore.d.ts +15 -0
  50. package/dist/cjs/persistence/MemoryStore.d.ts.map +1 -0
  51. package/dist/cjs/persistence/MemoryStore.js +39 -0
  52. package/dist/cjs/persistence/MemoryStore.js.map +1 -0
  53. package/dist/cjs/persistence/MongoStore.d.ts +42 -0
  54. package/dist/cjs/persistence/MongoStore.d.ts.map +1 -0
  55. package/dist/cjs/persistence/MongoStore.js +60 -0
  56. package/dist/cjs/persistence/MongoStore.js.map +1 -0
  57. package/dist/cjs/persistence/OpenSearchStore.d.ts +86 -0
  58. package/dist/cjs/persistence/OpenSearchStore.d.ts.map +1 -0
  59. package/dist/cjs/persistence/OpenSearchStore.js +120 -0
  60. package/dist/cjs/persistence/OpenSearchStore.js.map +1 -0
  61. package/dist/cjs/persistence/PostgresStore.d.ts +41 -0
  62. package/dist/cjs/persistence/PostgresStore.d.ts.map +1 -0
  63. package/dist/cjs/persistence/PostgresStore.js +58 -0
  64. package/dist/cjs/persistence/PostgresStore.js.map +1 -0
  65. package/dist/cjs/persistence/PrismaStore.d.ts +65 -0
  66. package/dist/cjs/persistence/PrismaStore.d.ts.map +1 -0
  67. package/dist/cjs/persistence/PrismaStore.js +95 -0
  68. package/dist/cjs/persistence/PrismaStore.js.map +1 -0
  69. package/dist/cjs/persistence/RedisStore.d.ts +34 -0
  70. package/dist/cjs/persistence/RedisStore.d.ts.map +1 -0
  71. package/dist/cjs/persistence/RedisStore.js +61 -0
  72. package/dist/cjs/persistence/RedisStore.js.map +1 -0
  73. package/dist/cjs/persistence/SQLiteStore.d.ts +45 -0
  74. package/dist/cjs/persistence/SQLiteStore.d.ts.map +1 -0
  75. package/dist/cjs/persistence/SQLiteStore.js +74 -0
  76. package/dist/cjs/persistence/SQLiteStore.js.map +1 -0
  77. package/dist/cjs/persistence/sessionRow.d.ts +14 -0
  78. package/dist/cjs/persistence/sessionRow.d.ts.map +1 -0
  79. package/dist/cjs/persistence/sessionRow.js +50 -0
  80. package/dist/cjs/persistence/sessionRow.js.map +1 -0
  81. package/dist/cjs/providers/DeepSeekProvider.d.ts.map +1 -1
  82. package/dist/cjs/providers/DeepSeekProvider.js +8 -3
  83. package/dist/cjs/providers/DeepSeekProvider.js.map +1 -1
  84. package/dist/cjs/providers/GeminiProvider.d.ts +4 -3
  85. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  86. package/dist/cjs/providers/GeminiProvider.js +4 -3
  87. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  88. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +4 -0
  89. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  90. package/dist/cjs/providers/OpenAICompatibleProvider.js +2 -0
  91. package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -1
  92. package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -1
  93. package/dist/cjs/providers/OpenRouterProvider.js +2 -4
  94. package/dist/cjs/providers/OpenRouterProvider.js.map +1 -1
  95. package/dist/cjs/providers/ProviderAdapter.d.ts +11 -6
  96. package/dist/cjs/providers/ProviderAdapter.d.ts.map +1 -1
  97. package/dist/cjs/providers/ProviderAdapter.js +33 -10
  98. package/dist/cjs/providers/ProviderAdapter.js.map +1 -1
  99. package/dist/cjs/providers/ZaiProvider.d.ts +6 -4
  100. package/dist/cjs/providers/ZaiProvider.d.ts.map +1 -1
  101. package/dist/cjs/providers/ZaiProvider.js +6 -4
  102. package/dist/cjs/providers/ZaiProvider.js.map +1 -1
  103. package/dist/cjs/types/agent.d.ts +153 -383
  104. package/dist/cjs/types/agent.d.ts.map +1 -1
  105. package/dist/cjs/types/agent.js +1 -1
  106. package/dist/cjs/types/ai.d.ts +32 -1
  107. package/dist/cjs/types/ai.d.ts.map +1 -1
  108. package/dist/cjs/types/compaction.d.ts +3 -1
  109. package/dist/cjs/types/compaction.d.ts.map +1 -1
  110. package/dist/cjs/types/errors.d.ts +9 -12
  111. package/dist/cjs/types/errors.d.ts.map +1 -1
  112. package/dist/cjs/types/errors.js +14 -17
  113. package/dist/cjs/types/errors.js.map +1 -1
  114. package/dist/cjs/types/flow.d.ts +265 -513
  115. package/dist/cjs/types/flow.d.ts.map +1 -1
  116. package/dist/cjs/types/flow.js +7 -1
  117. package/dist/cjs/types/flow.js.map +1 -1
  118. package/dist/cjs/types/history.d.ts +7 -18
  119. package/dist/cjs/types/history.d.ts.map +1 -1
  120. package/dist/cjs/types/history.js.map +1 -1
  121. package/dist/cjs/types/index.d.ts +9 -15
  122. package/dist/cjs/types/index.d.ts.map +1 -1
  123. package/dist/cjs/types/index.js +4 -14
  124. package/dist/cjs/types/index.js.map +1 -1
  125. package/dist/cjs/types/session.d.ts +94 -64
  126. package/dist/cjs/types/session.d.ts.map +1 -1
  127. package/dist/cjs/types/session.js +5 -1
  128. package/dist/cjs/types/session.js.map +1 -1
  129. package/dist/cjs/types/tool.d.ts +37 -207
  130. package/dist/cjs/types/tool.d.ts.map +1 -1
  131. package/dist/cjs/types/tool.js +5 -14
  132. package/dist/cjs/types/tool.js.map +1 -1
  133. package/dist/cjs/utils/clock.d.ts +28 -0
  134. package/dist/cjs/utils/clock.d.ts.map +1 -0
  135. package/dist/cjs/utils/clock.js +64 -0
  136. package/dist/cjs/utils/clock.js.map +1 -0
  137. package/dist/cjs/utils/duration.d.ts +11 -0
  138. package/dist/cjs/utils/duration.d.ts.map +1 -0
  139. package/dist/cjs/utils/duration.js +31 -0
  140. package/dist/cjs/utils/duration.js.map +1 -0
  141. package/dist/cjs/utils/history.d.ts +4 -1
  142. package/dist/cjs/utils/history.d.ts.map +1 -1
  143. package/dist/cjs/utils/history.js +2 -2
  144. package/dist/cjs/utils/history.js.map +1 -1
  145. package/dist/cjs/utils/index.d.ts +4 -10
  146. package/dist/cjs/utils/index.d.ts.map +1 -1
  147. package/dist/cjs/utils/index.js +14 -61
  148. package/dist/cjs/utils/index.js.map +1 -1
  149. package/dist/cjs/utils/json.d.ts +2 -0
  150. package/dist/cjs/utils/json.d.ts.map +1 -1
  151. package/dist/cjs/utils/json.js +5 -0
  152. package/dist/cjs/utils/json.js.map +1 -1
  153. package/dist/cjs/utils/outcomes.d.ts +48 -0
  154. package/dist/cjs/utils/outcomes.d.ts.map +1 -0
  155. package/dist/cjs/utils/outcomes.js +51 -0
  156. package/dist/cjs/utils/outcomes.js.map +1 -0
  157. package/dist/cjs/utils/schema.d.ts +50 -0
  158. package/dist/cjs/utils/schema.d.ts.map +1 -0
  159. package/dist/cjs/utils/schema.js +138 -0
  160. package/dist/cjs/utils/schema.js.map +1 -0
  161. package/dist/cjs/utils/streamingMessage.d.ts +3 -2
  162. package/dist/cjs/utils/streamingMessage.d.ts.map +1 -1
  163. package/dist/cjs/utils/streamingMessage.js +38 -4
  164. package/dist/cjs/utils/streamingMessage.js.map +1 -1
  165. package/dist/cjs/utils/template.d.ts +13 -149
  166. package/dist/cjs/utils/template.d.ts.map +1 -1
  167. package/dist/cjs/utils/template.js +31 -363
  168. package/dist/cjs/utils/template.js.map +1 -1
  169. package/dist/cjs/utils/usage.d.ts +19 -0
  170. package/dist/cjs/utils/usage.d.ts.map +1 -0
  171. package/dist/cjs/utils/usage.js +35 -0
  172. package/dist/cjs/utils/usage.js.map +1 -0
  173. package/dist/core/Agent.d.ts +22 -378
  174. package/dist/core/Agent.d.ts.map +1 -1
  175. package/dist/core/Agent.js +107 -1181
  176. package/dist/core/Agent.js.map +1 -1
  177. package/dist/core/CompactionEngine.d.ts.map +1 -1
  178. package/dist/core/CompactionEngine.js +5 -3
  179. package/dist/core/CompactionEngine.js.map +1 -1
  180. package/dist/core/FlowSpec.d.ts +136 -0
  181. package/dist/core/FlowSpec.d.ts.map +1 -0
  182. package/dist/core/FlowSpec.js +516 -0
  183. package/dist/core/FlowSpec.js.map +1 -0
  184. package/dist/core/Migrate.d.ts +38 -0
  185. package/dist/core/Migrate.d.ts.map +1 -0
  186. package/dist/core/Migrate.js +264 -0
  187. package/dist/core/Migrate.js.map +1 -0
  188. package/dist/core/Prompt.d.ts +54 -0
  189. package/dist/core/Prompt.d.ts.map +1 -0
  190. package/dist/core/Prompt.js +133 -0
  191. package/dist/core/Prompt.js.map +1 -0
  192. package/dist/core/Runner.d.ts +160 -0
  193. package/dist/core/Runner.d.ts.map +1 -0
  194. package/dist/core/Runner.js +1127 -0
  195. package/dist/core/Runner.js.map +1 -0
  196. package/dist/core/Speak.d.ts +37 -0
  197. package/dist/core/Speak.d.ts.map +1 -0
  198. package/dist/core/Speak.js +360 -0
  199. package/dist/core/Speak.js.map +1 -0
  200. package/dist/core/Understand.d.ts +28 -0
  201. package/dist/core/Understand.d.ts.map +1 -0
  202. package/dist/core/Understand.js +349 -0
  203. package/dist/core/Understand.js.map +1 -0
  204. package/dist/core/contracts.d.ts +122 -0
  205. package/dist/core/contracts.d.ts.map +1 -0
  206. package/dist/core/contracts.js +10 -0
  207. package/dist/core/contracts.js.map +1 -0
  208. package/dist/core/falai.d.ts +57 -0
  209. package/dist/core/falai.d.ts.map +1 -0
  210. package/dist/core/falai.js +40 -0
  211. package/dist/core/falai.js.map +1 -0
  212. package/dist/core/predicate.d.ts +9 -0
  213. package/dist/core/predicate.d.ts.map +1 -0
  214. package/dist/core/predicate.js +54 -0
  215. package/dist/core/predicate.js.map +1 -0
  216. package/dist/index.d.ts +26 -31
  217. package/dist/index.d.ts.map +1 -1
  218. package/dist/index.js +19 -24
  219. package/dist/index.js.map +1 -1
  220. package/dist/persistence/MemoryStore.d.ts +15 -0
  221. package/dist/persistence/MemoryStore.d.ts.map +1 -0
  222. package/dist/persistence/MemoryStore.js +35 -0
  223. package/dist/persistence/MemoryStore.js.map +1 -0
  224. package/dist/persistence/MongoStore.d.ts +42 -0
  225. package/dist/persistence/MongoStore.d.ts.map +1 -0
  226. package/dist/persistence/MongoStore.js +56 -0
  227. package/dist/persistence/MongoStore.js.map +1 -0
  228. package/dist/persistence/OpenSearchStore.d.ts +86 -0
  229. package/dist/persistence/OpenSearchStore.d.ts.map +1 -0
  230. package/dist/persistence/OpenSearchStore.js +116 -0
  231. package/dist/persistence/OpenSearchStore.js.map +1 -0
  232. package/dist/persistence/PostgresStore.d.ts +41 -0
  233. package/dist/persistence/PostgresStore.d.ts.map +1 -0
  234. package/dist/persistence/PostgresStore.js +54 -0
  235. package/dist/persistence/PostgresStore.js.map +1 -0
  236. package/dist/persistence/PrismaStore.d.ts +65 -0
  237. package/dist/persistence/PrismaStore.d.ts.map +1 -0
  238. package/dist/persistence/PrismaStore.js +91 -0
  239. package/dist/persistence/PrismaStore.js.map +1 -0
  240. package/dist/persistence/RedisStore.d.ts +34 -0
  241. package/dist/persistence/RedisStore.d.ts.map +1 -0
  242. package/dist/persistence/RedisStore.js +57 -0
  243. package/dist/persistence/RedisStore.js.map +1 -0
  244. package/dist/persistence/SQLiteStore.d.ts +45 -0
  245. package/dist/persistence/SQLiteStore.d.ts.map +1 -0
  246. package/dist/persistence/SQLiteStore.js +70 -0
  247. package/dist/persistence/SQLiteStore.js.map +1 -0
  248. package/dist/persistence/sessionRow.d.ts +14 -0
  249. package/dist/persistence/sessionRow.d.ts.map +1 -0
  250. package/dist/persistence/sessionRow.js +45 -0
  251. package/dist/persistence/sessionRow.js.map +1 -0
  252. package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
  253. package/dist/providers/DeepSeekProvider.js +8 -3
  254. package/dist/providers/DeepSeekProvider.js.map +1 -1
  255. package/dist/providers/GeminiProvider.d.ts +4 -3
  256. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  257. package/dist/providers/GeminiProvider.js +4 -3
  258. package/dist/providers/GeminiProvider.js.map +1 -1
  259. package/dist/providers/OpenAICompatibleProvider.d.ts +4 -0
  260. package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  261. package/dist/providers/OpenAICompatibleProvider.js +2 -0
  262. package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
  263. package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
  264. package/dist/providers/OpenRouterProvider.js +2 -4
  265. package/dist/providers/OpenRouterProvider.js.map +1 -1
  266. package/dist/providers/ProviderAdapter.d.ts +11 -6
  267. package/dist/providers/ProviderAdapter.d.ts.map +1 -1
  268. package/dist/providers/ProviderAdapter.js +34 -11
  269. package/dist/providers/ProviderAdapter.js.map +1 -1
  270. package/dist/providers/ZaiProvider.d.ts +6 -4
  271. package/dist/providers/ZaiProvider.d.ts.map +1 -1
  272. package/dist/providers/ZaiProvider.js +6 -4
  273. package/dist/providers/ZaiProvider.js.map +1 -1
  274. package/dist/types/agent.d.ts +153 -383
  275. package/dist/types/agent.d.ts.map +1 -1
  276. package/dist/types/agent.js +1 -1
  277. package/dist/types/ai.d.ts +32 -1
  278. package/dist/types/ai.d.ts.map +1 -1
  279. package/dist/types/compaction.d.ts +3 -1
  280. package/dist/types/compaction.d.ts.map +1 -1
  281. package/dist/types/errors.d.ts +9 -12
  282. package/dist/types/errors.d.ts.map +1 -1
  283. package/dist/types/errors.js +12 -15
  284. package/dist/types/errors.js.map +1 -1
  285. package/dist/types/flow.d.ts +265 -513
  286. package/dist/types/flow.d.ts.map +1 -1
  287. package/dist/types/flow.js +7 -1
  288. package/dist/types/flow.js.map +1 -1
  289. package/dist/types/history.d.ts +7 -18
  290. package/dist/types/history.d.ts.map +1 -1
  291. package/dist/types/history.js.map +1 -1
  292. package/dist/types/index.d.ts +9 -15
  293. package/dist/types/index.d.ts.map +1 -1
  294. package/dist/types/index.js +2 -7
  295. package/dist/types/index.js.map +1 -1
  296. package/dist/types/session.d.ts +94 -64
  297. package/dist/types/session.d.ts.map +1 -1
  298. package/dist/types/session.js +5 -1
  299. package/dist/types/session.js.map +1 -1
  300. package/dist/types/tool.d.ts +37 -207
  301. package/dist/types/tool.d.ts.map +1 -1
  302. package/dist/types/tool.js +6 -13
  303. package/dist/types/tool.js.map +1 -1
  304. package/dist/utils/clock.d.ts +28 -0
  305. package/dist/utils/clock.d.ts.map +1 -0
  306. package/dist/utils/clock.js +59 -0
  307. package/dist/utils/clock.js.map +1 -0
  308. package/dist/utils/duration.d.ts +11 -0
  309. package/dist/utils/duration.d.ts.map +1 -0
  310. package/dist/utils/duration.js +26 -0
  311. package/dist/utils/duration.js.map +1 -0
  312. package/dist/utils/history.d.ts +4 -1
  313. package/dist/utils/history.d.ts.map +1 -1
  314. package/dist/utils/history.js +2 -2
  315. package/dist/utils/history.js.map +1 -1
  316. package/dist/utils/index.d.ts +4 -10
  317. package/dist/utils/index.d.ts.map +1 -1
  318. package/dist/utils/index.js +4 -21
  319. package/dist/utils/index.js.map +1 -1
  320. package/dist/utils/json.d.ts +2 -0
  321. package/dist/utils/json.d.ts.map +1 -1
  322. package/dist/utils/json.js +4 -0
  323. package/dist/utils/json.js.map +1 -1
  324. package/dist/utils/outcomes.d.ts +48 -0
  325. package/dist/utils/outcomes.d.ts.map +1 -0
  326. package/dist/utils/outcomes.js +48 -0
  327. package/dist/utils/outcomes.js.map +1 -0
  328. package/dist/utils/schema.d.ts +50 -0
  329. package/dist/utils/schema.d.ts.map +1 -0
  330. package/dist/utils/schema.js +129 -0
  331. package/dist/utils/schema.js.map +1 -0
  332. package/dist/utils/streamingMessage.d.ts +3 -2
  333. package/dist/utils/streamingMessage.d.ts.map +1 -1
  334. package/dist/utils/streamingMessage.js +38 -4
  335. package/dist/utils/streamingMessage.js.map +1 -1
  336. package/dist/utils/template.d.ts +13 -149
  337. package/dist/utils/template.d.ts.map +1 -1
  338. package/dist/utils/template.js +28 -355
  339. package/dist/utils/template.js.map +1 -1
  340. package/dist/utils/usage.d.ts +19 -0
  341. package/dist/utils/usage.d.ts.map +1 -0
  342. package/dist/utils/usage.js +31 -0
  343. package/dist/utils/usage.js.map +1 -0
  344. package/docs/README.md +37 -19
  345. package/docs/concepts/architecture.md +117 -239
  346. package/docs/concepts/collection.md +170 -0
  347. package/docs/concepts/pipeline.md +132 -378
  348. package/docs/concepts/runs-and-waits.md +192 -0
  349. package/docs/guides/actions-and-events.md +276 -0
  350. package/docs/guides/branching.md +119 -208
  351. package/docs/guides/compaction.md +63 -158
  352. package/docs/guides/conditions.md +164 -128
  353. package/docs/guides/error-handling.md +168 -164
  354. package/docs/guides/flow-control.md +210 -349
  355. package/docs/guides/flows-from-json.md +224 -0
  356. package/docs/guides/instructions.md +125 -161
  357. package/docs/guides/persistence.md +182 -206
  358. package/docs/guides/streaming.md +50 -114
  359. package/docs/guides/testing.md +284 -0
  360. package/docs/guides/triggers.md +401 -0
  361. package/docs/migration/README.md +8 -15
  362. package/docs/migration/v1-to-v2.md +1 -1
  363. package/docs/migration/v2-3-to-v2-4.md +2 -2
  364. package/docs/migration/v2-6-to-v2-7.md +4 -4
  365. package/docs/migration/v3-to-v4.md +452 -0
  366. package/docs/reference/actions-events-conditions.md +396 -0
  367. package/docs/reference/agent.md +244 -0
  368. package/docs/reference/branches.md +75 -203
  369. package/docs/reference/errors.md +188 -144
  370. package/docs/reference/fields.md +125 -0
  371. package/docs/reference/flow-spec.md +248 -0
  372. package/docs/reference/flow.md +104 -192
  373. package/docs/reference/instruction.md +83 -137
  374. package/docs/reference/outcomes.md +273 -0
  375. package/docs/reference/providers.md +525 -302
  376. package/docs/reference/session.md +210 -0
  377. package/docs/reference/step.md +194 -312
  378. package/docs/reference/stores.md +496 -0
  379. package/docs/reference/tool.md +162 -231
  380. package/docs/reference/trigger.md +180 -0
  381. package/docs/rfc/v4-one-flow.md +477 -0
  382. package/docs/start/01-install.md +59 -44
  383. package/docs/start/02-first-agent.md +97 -147
  384. package/docs/start/03-collect-data.md +78 -183
  385. package/docs/start/04-add-tools.md +159 -227
  386. package/docs/start/05-go-to-production.md +167 -164
  387. package/examples/01-quickstart.ts +26 -16
  388. package/examples/02-fields.ts +75 -0
  389. package/examples/03-tools.ts +79 -119
  390. package/examples/04-instructions.ts +60 -87
  391. package/examples/05-branches.ts +78 -0
  392. package/examples/06-triggers-and-waits.ts +148 -0
  393. package/examples/07-streaming.ts +34 -60
  394. package/examples/08-store-and-migration.ts +97 -0
  395. package/examples/09-flows-from-json.ts +107 -0
  396. package/package.json +9 -6
  397. package/src/core/Agent.ts +116 -1512
  398. package/src/core/CompactionEngine.ts +7 -4
  399. package/src/core/FlowSpec.ts +712 -0
  400. package/src/core/Migrate.ts +256 -0
  401. package/src/core/Prompt.ts +156 -0
  402. package/src/core/Runner.ts +1181 -0
  403. package/src/core/Speak.ts +451 -0
  404. package/src/core/Understand.ts +422 -0
  405. package/src/core/contracts.ts +111 -0
  406. package/src/core/falai.ts +86 -0
  407. package/src/core/predicate.ts +56 -0
  408. package/src/index.ts +119 -147
  409. package/src/persistence/MemoryStore.ts +37 -0
  410. package/src/persistence/MongoStore.ts +89 -0
  411. package/src/persistence/OpenSearchStore.ts +153 -0
  412. package/src/persistence/PostgresStore.ts +89 -0
  413. package/src/persistence/PrismaStore.ts +127 -0
  414. package/src/persistence/RedisStore.ts +90 -0
  415. package/src/persistence/SQLiteStore.ts +103 -0
  416. package/src/persistence/sessionRow.ts +45 -0
  417. package/src/providers/DeepSeekProvider.ts +8 -3
  418. package/src/providers/GeminiProvider.ts +4 -3
  419. package/src/providers/OpenAICompatibleProvider.ts +6 -0
  420. package/src/providers/OpenRouterProvider.ts +2 -4
  421. package/src/providers/ProviderAdapter.ts +46 -13
  422. package/src/providers/ZaiProvider.ts +6 -4
  423. package/src/types/agent.ts +124 -397
  424. package/src/types/ai.ts +33 -1
  425. package/src/types/compaction.ts +3 -1
  426. package/src/types/errors.ts +13 -16
  427. package/src/types/flow.ts +249 -550
  428. package/src/types/history.ts +7 -20
  429. package/src/types/index.ts +87 -139
  430. package/src/types/session.ts +135 -70
  431. package/src/types/tool.ts +42 -267
  432. package/src/utils/clock.ts +70 -0
  433. package/src/utils/duration.ts +33 -0
  434. package/src/utils/history.ts +3 -2
  435. package/src/utils/index.ts +8 -66
  436. package/src/utils/json.ts +5 -0
  437. package/src/utils/outcomes.ts +56 -0
  438. package/src/utils/schema.ts +145 -0
  439. package/src/utils/streamingMessage.ts +34 -4
  440. package/src/utils/template.ts +32 -423
  441. package/src/utils/usage.ts +37 -0
  442. package/dist/adapters/MemoryAdapter.d.ts +0 -47
  443. package/dist/adapters/MemoryAdapter.d.ts.map +0 -1
  444. package/dist/adapters/MemoryAdapter.js +0 -204
  445. package/dist/adapters/MemoryAdapter.js.map +0 -1
  446. package/dist/adapters/MongoAdapter.d.ts +0 -97
  447. package/dist/adapters/MongoAdapter.d.ts.map +0 -1
  448. package/dist/adapters/MongoAdapter.js +0 -196
  449. package/dist/adapters/MongoAdapter.js.map +0 -1
  450. package/dist/adapters/OpenSearchAdapter.d.ts +0 -169
  451. package/dist/adapters/OpenSearchAdapter.d.ts.map +0 -1
  452. package/dist/adapters/OpenSearchAdapter.js +0 -471
  453. package/dist/adapters/OpenSearchAdapter.js.map +0 -1
  454. package/dist/adapters/PostgreSQLAdapter.d.ts +0 -85
  455. package/dist/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  456. package/dist/adapters/PostgreSQLAdapter.js +0 -308
  457. package/dist/adapters/PostgreSQLAdapter.js.map +0 -1
  458. package/dist/adapters/PrismaAdapter.d.ts +0 -115
  459. package/dist/adapters/PrismaAdapter.d.ts.map +0 -1
  460. package/dist/adapters/PrismaAdapter.js +0 -406
  461. package/dist/adapters/PrismaAdapter.js.map +0 -1
  462. package/dist/adapters/RedisAdapter.d.ts +0 -72
  463. package/dist/adapters/RedisAdapter.d.ts.map +0 -1
  464. package/dist/adapters/RedisAdapter.js +0 -286
  465. package/dist/adapters/RedisAdapter.js.map +0 -1
  466. package/dist/adapters/SQLiteAdapter.d.ts +0 -86
  467. package/dist/adapters/SQLiteAdapter.d.ts.map +0 -1
  468. package/dist/adapters/SQLiteAdapter.js +0 -337
  469. package/dist/adapters/SQLiteAdapter.js.map +0 -1
  470. package/dist/adapters/index.d.ts +0 -17
  471. package/dist/adapters/index.d.ts.map +0 -1
  472. package/dist/adapters/index.js +0 -11
  473. package/dist/adapters/index.js.map +0 -1
  474. package/dist/adapters/sessionRow.d.ts +0 -22
  475. package/dist/adapters/sessionRow.d.ts.map +0 -1
  476. package/dist/adapters/sessionRow.js +0 -48
  477. package/dist/adapters/sessionRow.js.map +0 -1
  478. package/dist/cjs/adapters/MemoryAdapter.d.ts +0 -47
  479. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +0 -1
  480. package/dist/cjs/adapters/MemoryAdapter.js +0 -208
  481. package/dist/cjs/adapters/MemoryAdapter.js.map +0 -1
  482. package/dist/cjs/adapters/MongoAdapter.d.ts +0 -97
  483. package/dist/cjs/adapters/MongoAdapter.d.ts.map +0 -1
  484. package/dist/cjs/adapters/MongoAdapter.js +0 -200
  485. package/dist/cjs/adapters/MongoAdapter.js.map +0 -1
  486. package/dist/cjs/adapters/OpenSearchAdapter.d.ts +0 -169
  487. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +0 -1
  488. package/dist/cjs/adapters/OpenSearchAdapter.js +0 -475
  489. package/dist/cjs/adapters/OpenSearchAdapter.js.map +0 -1
  490. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +0 -85
  491. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  492. package/dist/cjs/adapters/PostgreSQLAdapter.js +0 -312
  493. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +0 -1
  494. package/dist/cjs/adapters/PrismaAdapter.d.ts +0 -115
  495. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +0 -1
  496. package/dist/cjs/adapters/PrismaAdapter.js +0 -410
  497. package/dist/cjs/adapters/PrismaAdapter.js.map +0 -1
  498. package/dist/cjs/adapters/RedisAdapter.d.ts +0 -72
  499. package/dist/cjs/adapters/RedisAdapter.d.ts.map +0 -1
  500. package/dist/cjs/adapters/RedisAdapter.js +0 -290
  501. package/dist/cjs/adapters/RedisAdapter.js.map +0 -1
  502. package/dist/cjs/adapters/SQLiteAdapter.d.ts +0 -86
  503. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +0 -1
  504. package/dist/cjs/adapters/SQLiteAdapter.js +0 -341
  505. package/dist/cjs/adapters/SQLiteAdapter.js.map +0 -1
  506. package/dist/cjs/adapters/index.d.ts +0 -17
  507. package/dist/cjs/adapters/index.d.ts.map +0 -1
  508. package/dist/cjs/adapters/index.js +0 -21
  509. package/dist/cjs/adapters/index.js.map +0 -1
  510. package/dist/cjs/adapters/sessionRow.d.ts +0 -22
  511. package/dist/cjs/adapters/sessionRow.d.ts.map +0 -1
  512. package/dist/cjs/adapters/sessionRow.js +0 -52
  513. package/dist/cjs/adapters/sessionRow.js.map +0 -1
  514. package/dist/cjs/constants/index.d.ts +0 -1
  515. package/dist/cjs/constants/index.d.ts.map +0 -1
  516. package/dist/cjs/constants/index.js +0 -4
  517. package/dist/cjs/constants/index.js.map +0 -1
  518. package/dist/cjs/core/AutoChainExecutor.d.ts +0 -97
  519. package/dist/cjs/core/AutoChainExecutor.d.ts.map +0 -1
  520. package/dist/cjs/core/AutoChainExecutor.js +0 -288
  521. package/dist/cjs/core/AutoChainExecutor.js.map +0 -1
  522. package/dist/cjs/core/BranchEvaluator.d.ts +0 -55
  523. package/dist/cjs/core/BranchEvaluator.d.ts.map +0 -1
  524. package/dist/cjs/core/BranchEvaluator.js +0 -125
  525. package/dist/cjs/core/BranchEvaluator.js.map +0 -1
  526. package/dist/cjs/core/DirectiveChainTracker.d.ts +0 -49
  527. package/dist/cjs/core/DirectiveChainTracker.d.ts.map +0 -1
  528. package/dist/cjs/core/DirectiveChainTracker.js +0 -121
  529. package/dist/cjs/core/DirectiveChainTracker.js.map +0 -1
  530. package/dist/cjs/core/Events.d.ts +0 -26
  531. package/dist/cjs/core/Events.d.ts.map +0 -1
  532. package/dist/cjs/core/Events.js +0 -144
  533. package/dist/cjs/core/Events.js.map +0 -1
  534. package/dist/cjs/core/Flow.d.ts +0 -183
  535. package/dist/cjs/core/Flow.d.ts.map +0 -1
  536. package/dist/cjs/core/Flow.js +0 -551
  537. package/dist/cjs/core/Flow.js.map +0 -1
  538. package/dist/cjs/core/FlowRouter.d.ts +0 -183
  539. package/dist/cjs/core/FlowRouter.d.ts.map +0 -1
  540. package/dist/cjs/core/FlowRouter.js +0 -1047
  541. package/dist/cjs/core/FlowRouter.js.map +0 -1
  542. package/dist/cjs/core/PersistenceManager.d.ts +0 -114
  543. package/dist/cjs/core/PersistenceManager.d.ts.map +0 -1
  544. package/dist/cjs/core/PersistenceManager.js +0 -336
  545. package/dist/cjs/core/PersistenceManager.js.map +0 -1
  546. package/dist/cjs/core/PromptComposer.d.ts +0 -47
  547. package/dist/cjs/core/PromptComposer.d.ts.map +0 -1
  548. package/dist/cjs/core/PromptComposer.js +0 -397
  549. package/dist/cjs/core/PromptComposer.js.map +0 -1
  550. package/dist/cjs/core/PromptSectionCache.d.ts +0 -48
  551. package/dist/cjs/core/PromptSectionCache.d.ts.map +0 -1
  552. package/dist/cjs/core/PromptSectionCache.js +0 -108
  553. package/dist/cjs/core/PromptSectionCache.js.map +0 -1
  554. package/dist/cjs/core/ResponseEngine.d.ts +0 -43
  555. package/dist/cjs/core/ResponseEngine.d.ts.map +0 -1
  556. package/dist/cjs/core/ResponseEngine.js +0 -235
  557. package/dist/cjs/core/ResponseEngine.js.map +0 -1
  558. package/dist/cjs/core/ResponseGenerationError.d.ts +0 -30
  559. package/dist/cjs/core/ResponseGenerationError.d.ts.map +0 -1
  560. package/dist/cjs/core/ResponseGenerationError.js +0 -35
  561. package/dist/cjs/core/ResponseGenerationError.js.map +0 -1
  562. package/dist/cjs/core/ResponseModal.d.ts +0 -305
  563. package/dist/cjs/core/ResponseModal.d.ts.map +0 -1
  564. package/dist/cjs/core/ResponseModal.js +0 -1414
  565. package/dist/cjs/core/ResponseModal.js.map +0 -1
  566. package/dist/cjs/core/ResponsePipeline.d.ts +0 -220
  567. package/dist/cjs/core/ResponsePipeline.d.ts.map +0 -1
  568. package/dist/cjs/core/ResponsePipeline.js +0 -1040
  569. package/dist/cjs/core/ResponsePipeline.js.map +0 -1
  570. package/dist/cjs/core/SessionFinalizer.d.ts +0 -34
  571. package/dist/cjs/core/SessionFinalizer.d.ts.map +0 -1
  572. package/dist/cjs/core/SessionFinalizer.js +0 -88
  573. package/dist/cjs/core/SessionFinalizer.js.map +0 -1
  574. package/dist/cjs/core/SessionManager.d.ts +0 -112
  575. package/dist/cjs/core/SessionManager.d.ts.map +0 -1
  576. package/dist/cjs/core/SessionManager.js +0 -308
  577. package/dist/cjs/core/SessionManager.js.map +0 -1
  578. package/dist/cjs/core/SignalCoordinator.d.ts +0 -103
  579. package/dist/cjs/core/SignalCoordinator.d.ts.map +0 -1
  580. package/dist/cjs/core/SignalCoordinator.js +0 -207
  581. package/dist/cjs/core/SignalCoordinator.js.map +0 -1
  582. package/dist/cjs/core/SignalEvaluator.d.ts +0 -86
  583. package/dist/cjs/core/SignalEvaluator.d.ts.map +0 -1
  584. package/dist/cjs/core/SignalEvaluator.js +0 -319
  585. package/dist/cjs/core/SignalEvaluator.js.map +0 -1
  586. package/dist/cjs/core/SignalProcessor.d.ts +0 -152
  587. package/dist/cjs/core/SignalProcessor.d.ts.map +0 -1
  588. package/dist/cjs/core/SignalProcessor.js +0 -505
  589. package/dist/cjs/core/SignalProcessor.js.map +0 -1
  590. package/dist/cjs/core/Step.d.ts +0 -184
  591. package/dist/cjs/core/Step.d.ts.map +0 -1
  592. package/dist/cjs/core/Step.js +0 -599
  593. package/dist/cjs/core/Step.js.map +0 -1
  594. package/dist/cjs/core/StepLifecycle.d.ts +0 -43
  595. package/dist/cjs/core/StepLifecycle.d.ts.map +0 -1
  596. package/dist/cjs/core/StepLifecycle.js +0 -180
  597. package/dist/cjs/core/StepLifecycle.js.map +0 -1
  598. package/dist/cjs/core/StreamingToolExecutor.d.ts +0 -142
  599. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +0 -1
  600. package/dist/cjs/core/StreamingToolExecutor.js +0 -490
  601. package/dist/cjs/core/StreamingToolExecutor.js.map +0 -1
  602. package/dist/cjs/core/ToolLoopExecutor.d.ts +0 -133
  603. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +0 -1
  604. package/dist/cjs/core/ToolLoopExecutor.js +0 -568
  605. package/dist/cjs/core/ToolLoopExecutor.js.map +0 -1
  606. package/dist/cjs/core/ToolManager.d.ts +0 -250
  607. package/dist/cjs/core/ToolManager.d.ts.map +0 -1
  608. package/dist/cjs/core/ToolManager.js +0 -1104
  609. package/dist/cjs/core/ToolManager.js.map +0 -1
  610. package/dist/cjs/core/createAgent.d.ts +0 -35
  611. package/dist/cjs/core/createAgent.d.ts.map +0 -1
  612. package/dist/cjs/core/createAgent.js +0 -39
  613. package/dist/cjs/core/createAgent.js.map +0 -1
  614. package/dist/cjs/core/flow-namespace.d.ts +0 -64
  615. package/dist/cjs/core/flow-namespace.d.ts.map +0 -1
  616. package/dist/cjs/core/flow-namespace.js +0 -182
  617. package/dist/cjs/core/flow-namespace.js.map +0 -1
  618. package/dist/cjs/core/toolGates.d.ts +0 -24
  619. package/dist/cjs/core/toolGates.d.ts.map +0 -1
  620. package/dist/cjs/core/toolGates.js +0 -52
  621. package/dist/cjs/core/toolGates.js.map +0 -1
  622. package/dist/cjs/types/persistence.d.ts +0 -254
  623. package/dist/cjs/types/persistence.d.ts.map +0 -1
  624. package/dist/cjs/types/persistence.js +0 -7
  625. package/dist/cjs/types/persistence.js.map +0 -1
  626. package/dist/cjs/types/prompt-cache.d.ts +0 -15
  627. package/dist/cjs/types/prompt-cache.d.ts.map +0 -1
  628. package/dist/cjs/types/prompt-cache.js +0 -6
  629. package/dist/cjs/types/prompt-cache.js.map +0 -1
  630. package/dist/cjs/types/signals.d.ts +0 -263
  631. package/dist/cjs/types/signals.d.ts.map +0 -1
  632. package/dist/cjs/types/signals.js +0 -11
  633. package/dist/cjs/types/signals.js.map +0 -1
  634. package/dist/cjs/types/template.d.ts +0 -84
  635. package/dist/cjs/types/template.d.ts.map +0 -1
  636. package/dist/cjs/types/template.js +0 -3
  637. package/dist/cjs/types/template.js.map +0 -1
  638. package/dist/cjs/utils/condition.d.ts +0 -63
  639. package/dist/cjs/utils/condition.d.ts.map +0 -1
  640. package/dist/cjs/utils/condition.js +0 -239
  641. package/dist/cjs/utils/condition.js.map +0 -1
  642. package/dist/cjs/utils/event.d.ts +0 -6
  643. package/dist/cjs/utils/event.d.ts.map +0 -1
  644. package/dist/cjs/utils/event.js +0 -20
  645. package/dist/cjs/utils/event.js.map +0 -1
  646. package/dist/cjs/utils/id.d.ts +0 -33
  647. package/dist/cjs/utils/id.d.ts.map +0 -1
  648. package/dist/cjs/utils/id.js +0 -84
  649. package/dist/cjs/utils/id.js.map +0 -1
  650. package/dist/cjs/utils/serialize.d.ts +0 -36
  651. package/dist/cjs/utils/serialize.d.ts.map +0 -1
  652. package/dist/cjs/utils/serialize.js +0 -77
  653. package/dist/cjs/utils/serialize.js.map +0 -1
  654. package/dist/cjs/utils/session.d.ts +0 -124
  655. package/dist/cjs/utils/session.d.ts.map +0 -1
  656. package/dist/cjs/utils/session.js +0 -396
  657. package/dist/cjs/utils/session.js.map +0 -1
  658. package/dist/constants/index.d.ts +0 -2
  659. package/dist/constants/index.d.ts.map +0 -1
  660. package/dist/constants/index.js +0 -4
  661. package/dist/constants/index.js.map +0 -1
  662. package/dist/core/AutoChainExecutor.d.ts +0 -97
  663. package/dist/core/AutoChainExecutor.d.ts.map +0 -1
  664. package/dist/core/AutoChainExecutor.js +0 -284
  665. package/dist/core/AutoChainExecutor.js.map +0 -1
  666. package/dist/core/BranchEvaluator.d.ts +0 -55
  667. package/dist/core/BranchEvaluator.d.ts.map +0 -1
  668. package/dist/core/BranchEvaluator.js +0 -121
  669. package/dist/core/BranchEvaluator.js.map +0 -1
  670. package/dist/core/DirectiveChainTracker.d.ts +0 -49
  671. package/dist/core/DirectiveChainTracker.d.ts.map +0 -1
  672. package/dist/core/DirectiveChainTracker.js +0 -117
  673. package/dist/core/DirectiveChainTracker.js.map +0 -1
  674. package/dist/core/Events.d.ts +0 -26
  675. package/dist/core/Events.d.ts.map +0 -1
  676. package/dist/core/Events.js +0 -137
  677. package/dist/core/Events.js.map +0 -1
  678. package/dist/core/Flow.d.ts +0 -183
  679. package/dist/core/Flow.d.ts.map +0 -1
  680. package/dist/core/Flow.js +0 -547
  681. package/dist/core/Flow.js.map +0 -1
  682. package/dist/core/FlowRouter.d.ts +0 -183
  683. package/dist/core/FlowRouter.d.ts.map +0 -1
  684. package/dist/core/FlowRouter.js +0 -1043
  685. package/dist/core/FlowRouter.js.map +0 -1
  686. package/dist/core/PersistenceManager.d.ts +0 -114
  687. package/dist/core/PersistenceManager.d.ts.map +0 -1
  688. package/dist/core/PersistenceManager.js +0 -332
  689. package/dist/core/PersistenceManager.js.map +0 -1
  690. package/dist/core/PromptComposer.d.ts +0 -47
  691. package/dist/core/PromptComposer.d.ts.map +0 -1
  692. package/dist/core/PromptComposer.js +0 -393
  693. package/dist/core/PromptComposer.js.map +0 -1
  694. package/dist/core/PromptSectionCache.d.ts +0 -48
  695. package/dist/core/PromptSectionCache.d.ts.map +0 -1
  696. package/dist/core/PromptSectionCache.js +0 -104
  697. package/dist/core/PromptSectionCache.js.map +0 -1
  698. package/dist/core/ResponseEngine.d.ts +0 -43
  699. package/dist/core/ResponseEngine.d.ts.map +0 -1
  700. package/dist/core/ResponseEngine.js +0 -231
  701. package/dist/core/ResponseEngine.js.map +0 -1
  702. package/dist/core/ResponseGenerationError.d.ts +0 -30
  703. package/dist/core/ResponseGenerationError.d.ts.map +0 -1
  704. package/dist/core/ResponseGenerationError.js +0 -31
  705. package/dist/core/ResponseGenerationError.js.map +0 -1
  706. package/dist/core/ResponseModal.d.ts +0 -305
  707. package/dist/core/ResponseModal.d.ts.map +0 -1
  708. package/dist/core/ResponseModal.js +0 -1410
  709. package/dist/core/ResponseModal.js.map +0 -1
  710. package/dist/core/ResponsePipeline.d.ts +0 -220
  711. package/dist/core/ResponsePipeline.d.ts.map +0 -1
  712. package/dist/core/ResponsePipeline.js +0 -1035
  713. package/dist/core/ResponsePipeline.js.map +0 -1
  714. package/dist/core/SessionFinalizer.d.ts +0 -34
  715. package/dist/core/SessionFinalizer.d.ts.map +0 -1
  716. package/dist/core/SessionFinalizer.js +0 -84
  717. package/dist/core/SessionFinalizer.js.map +0 -1
  718. package/dist/core/SessionManager.d.ts +0 -112
  719. package/dist/core/SessionManager.d.ts.map +0 -1
  720. package/dist/core/SessionManager.js +0 -301
  721. package/dist/core/SessionManager.js.map +0 -1
  722. package/dist/core/SignalCoordinator.d.ts +0 -103
  723. package/dist/core/SignalCoordinator.d.ts.map +0 -1
  724. package/dist/core/SignalCoordinator.js +0 -203
  725. package/dist/core/SignalCoordinator.js.map +0 -1
  726. package/dist/core/SignalEvaluator.d.ts +0 -86
  727. package/dist/core/SignalEvaluator.d.ts.map +0 -1
  728. package/dist/core/SignalEvaluator.js +0 -312
  729. package/dist/core/SignalEvaluator.js.map +0 -1
  730. package/dist/core/SignalProcessor.d.ts +0 -152
  731. package/dist/core/SignalProcessor.d.ts.map +0 -1
  732. package/dist/core/SignalProcessor.js +0 -498
  733. package/dist/core/SignalProcessor.js.map +0 -1
  734. package/dist/core/Step.d.ts +0 -184
  735. package/dist/core/Step.d.ts.map +0 -1
  736. package/dist/core/Step.js +0 -594
  737. package/dist/core/Step.js.map +0 -1
  738. package/dist/core/StepLifecycle.d.ts +0 -43
  739. package/dist/core/StepLifecycle.d.ts.map +0 -1
  740. package/dist/core/StepLifecycle.js +0 -176
  741. package/dist/core/StepLifecycle.js.map +0 -1
  742. package/dist/core/StreamingToolExecutor.d.ts +0 -142
  743. package/dist/core/StreamingToolExecutor.d.ts.map +0 -1
  744. package/dist/core/StreamingToolExecutor.js +0 -483
  745. package/dist/core/StreamingToolExecutor.js.map +0 -1
  746. package/dist/core/ToolLoopExecutor.d.ts +0 -133
  747. package/dist/core/ToolLoopExecutor.d.ts.map +0 -1
  748. package/dist/core/ToolLoopExecutor.js +0 -564
  749. package/dist/core/ToolLoopExecutor.js.map +0 -1
  750. package/dist/core/ToolManager.d.ts +0 -250
  751. package/dist/core/ToolManager.d.ts.map +0 -1
  752. package/dist/core/ToolManager.js +0 -1098
  753. package/dist/core/ToolManager.js.map +0 -1
  754. package/dist/core/createAgent.d.ts +0 -35
  755. package/dist/core/createAgent.d.ts.map +0 -1
  756. package/dist/core/createAgent.js +0 -36
  757. package/dist/core/createAgent.js.map +0 -1
  758. package/dist/core/flow-namespace.d.ts +0 -64
  759. package/dist/core/flow-namespace.d.ts.map +0 -1
  760. package/dist/core/flow-namespace.js +0 -179
  761. package/dist/core/flow-namespace.js.map +0 -1
  762. package/dist/core/toolGates.d.ts +0 -24
  763. package/dist/core/toolGates.d.ts.map +0 -1
  764. package/dist/core/toolGates.js +0 -49
  765. package/dist/core/toolGates.js.map +0 -1
  766. package/dist/types/persistence.d.ts +0 -254
  767. package/dist/types/persistence.d.ts.map +0 -1
  768. package/dist/types/persistence.js +0 -6
  769. package/dist/types/persistence.js.map +0 -1
  770. package/dist/types/prompt-cache.d.ts +0 -15
  771. package/dist/types/prompt-cache.d.ts.map +0 -1
  772. package/dist/types/prompt-cache.js +0 -5
  773. package/dist/types/prompt-cache.js.map +0 -1
  774. package/dist/types/signals.d.ts +0 -263
  775. package/dist/types/signals.d.ts.map +0 -1
  776. package/dist/types/signals.js +0 -10
  777. package/dist/types/signals.js.map +0 -1
  778. package/dist/types/template.d.ts +0 -84
  779. package/dist/types/template.d.ts.map +0 -1
  780. package/dist/types/template.js +0 -2
  781. package/dist/types/template.js.map +0 -1
  782. package/dist/utils/condition.d.ts +0 -63
  783. package/dist/utils/condition.d.ts.map +0 -1
  784. package/dist/utils/condition.js +0 -230
  785. package/dist/utils/condition.js.map +0 -1
  786. package/dist/utils/event.d.ts +0 -6
  787. package/dist/utils/event.d.ts.map +0 -1
  788. package/dist/utils/event.js +0 -17
  789. package/dist/utils/event.js.map +0 -1
  790. package/dist/utils/id.d.ts +0 -33
  791. package/dist/utils/id.d.ts.map +0 -1
  792. package/dist/utils/id.js +0 -77
  793. package/dist/utils/id.js.map +0 -1
  794. package/dist/utils/serialize.d.ts +0 -36
  795. package/dist/utils/serialize.d.ts.map +0 -1
  796. package/dist/utils/serialize.js +0 -72
  797. package/dist/utils/serialize.js.map +0 -1
  798. package/dist/utils/session.d.ts +0 -124
  799. package/dist/utils/session.d.ts.map +0 -1
  800. package/dist/utils/session.js +0 -379
  801. package/dist/utils/session.js.map +0 -1
  802. package/docs/concepts/directives.md +0 -369
  803. package/docs/reference/adapters.md +0 -543
  804. package/docs/reference/create-agent.md +0 -216
  805. package/docs/reference/directive.md +0 -242
  806. package/docs/reference/signals.md +0 -368
  807. package/examples/02-data-extraction.ts +0 -90
  808. package/examples/05-branching.ts +0 -140
  809. package/examples/06-flow-control.ts +0 -103
  810. package/examples/08-persistence.ts +0 -98
  811. package/examples/09-signals.ts +0 -144
  812. package/src/adapters/MemoryAdapter.ts +0 -281
  813. package/src/adapters/MongoAdapter.ts +0 -341
  814. package/src/adapters/OpenSearchAdapter.ts +0 -693
  815. package/src/adapters/PostgreSQLAdapter.ts +0 -487
  816. package/src/adapters/PrismaAdapter.ts +0 -617
  817. package/src/adapters/RedisAdapter.ts +0 -439
  818. package/src/adapters/SQLiteAdapter.ts +0 -496
  819. package/src/adapters/index.ts +0 -43
  820. package/src/adapters/sessionRow.ts +0 -57
  821. package/src/constants/index.ts +0 -2
  822. package/src/core/AutoChainExecutor.ts +0 -397
  823. package/src/core/BranchEvaluator.ts +0 -161
  824. package/src/core/DirectiveChainTracker.ts +0 -144
  825. package/src/core/Events.ts +0 -164
  826. package/src/core/Flow.ts +0 -665
  827. package/src/core/FlowRouter.ts +0 -1540
  828. package/src/core/PersistenceManager.ts +0 -446
  829. package/src/core/PromptComposer.ts +0 -448
  830. package/src/core/PromptSectionCache.ts +0 -125
  831. package/src/core/ResponseEngine.ts +0 -338
  832. package/src/core/ResponseGenerationError.ts +0 -53
  833. package/src/core/ResponseModal.ts +0 -1902
  834. package/src/core/ResponsePipeline.ts +0 -1404
  835. package/src/core/SessionFinalizer.ts +0 -108
  836. package/src/core/SessionManager.ts +0 -372
  837. package/src/core/SignalCoordinator.ts +0 -263
  838. package/src/core/SignalEvaluator.ts +0 -404
  839. package/src/core/SignalProcessor.ts +0 -663
  840. package/src/core/Step.ts +0 -782
  841. package/src/core/StepLifecycle.ts +0 -242
  842. package/src/core/StreamingToolExecutor.ts +0 -609
  843. package/src/core/ToolLoopExecutor.ts +0 -749
  844. package/src/core/ToolManager.ts +0 -1379
  845. package/src/core/createAgent.ts +0 -40
  846. package/src/core/flow-namespace.ts +0 -227
  847. package/src/core/toolGates.ts +0 -72
  848. package/src/types/persistence.ts +0 -303
  849. package/src/types/prompt-cache.ts +0 -17
  850. package/src/types/signals.ts +0 -338
  851. package/src/types/template.ts +0 -98
  852. package/src/utils/condition.ts +0 -296
  853. package/src/utils/event.ts +0 -16
  854. package/src/utils/id.ts +0 -91
  855. package/src/utils/serialize.ts +0 -86
  856. package/src/utils/session.ts +0 -501
@@ -1,568 +0,0 @@
1
- "use strict";
2
- /**
3
- * ToolLoopExecutor owns dynamic tool execution during response generation:
4
- *
5
- * - `runLoop()` — the run-tools-then-ask-LLM-again follow-up loop used by the
6
- * non-streaming path (and as the streaming fallback): executes the initial
7
- * tool calls sequentially, asks the provider whether more tools are needed,
8
- * reconstructs tool-result history items, and forces a final text response
9
- * when tools ran but no message was produced.
10
- * - `runStreamingBatch()` — the streaming path's initial batch execution via
11
- * ToolManager.executeWithConcurrency (StreamingToolExecutor concurrency
12
- * rules), yielding tool-progress chunks; falls back to `runLoop()` when
13
- * concurrent execution fails.
14
- *
15
- * ToolManager remains the registry/resolver and single-tool executor.
16
- */
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ToolLoopExecutor = void 0;
19
- const ResponseGenerationError_js_1 = require("./ResponseGenerationError.js");
20
- const flow_namespace_js_1 = require("./flow-namespace.js");
21
- const index_js_1 = require("../utils/index.js");
22
- const executionFailure = (toolName, error) => JSON.stringify({
23
- success: false,
24
- error: `${toolName}: ${error instanceof Error ? error.message : String(error)}`,
25
- });
26
- const toolNotFoundFailure = (toolName) => JSON.stringify({ success: false, error: `Tool "${toolName}" is not registered in any scope.` });
27
- class ToolLoopExecutor {
28
- constructor(deps) {
29
- this.deps = deps;
30
- }
31
- /**
32
- * Unified tool execution logic with loop handling.
33
- * Consolidates the complex tool execution logic from both streaming and
34
- * non-streaming responses.
35
- */
36
- async runLoop(params) {
37
- try {
38
- const { context, history, selectedFlow, responsePrompt, availableTools, responseSchema, signal } = params;
39
- // The follow-up loop (which reassigned toolCalls) now lives in
40
- // runFollowUpLoop; here toolCalls is only read.
41
- const { toolCalls } = params;
42
- let { session } = params;
43
- // Directives emitted by tools this turn — consumed by the caller
44
- const collectedDirectives = [];
45
- // Convert HistoryItem[] to Event[] for internal processing
46
- const historyEvents = (0, index_js_1.historyToEvents)(history);
47
- // Execution records keyed by call — shared with the follow-up loop
48
- const records = [];
49
- // Execute initial dynamic tool calls
50
- if (toolCalls && toolCalls.length > 0) {
51
- index_js_1.logger.debug(`[ToolLoopExecutor] Executing ${toolCalls.length} dynamic tool calls:`, toolCalls.map(tc => tc.toolName));
52
- for (const [callIndex, toolCall] of toolCalls.entries()) {
53
- const record = {
54
- requestId: `init-${callIndex}-${toolCall.toolName}`,
55
- toolName: toolCall.toolName,
56
- arguments: toolCall.arguments,
57
- round: 0,
58
- };
59
- records.push(record);
60
- const tool = this.findAvailableTool(toolCall.toolName, selectedFlow);
61
- if (!tool) {
62
- index_js_1.logger.warn(`[ToolExecutionError] Tool not found: "${toolCall.toolName}" is not registered in any scope. Register the tool or check the tool name.`);
63
- record.result = toolNotFoundFailure(toolCall.toolName);
64
- continue;
65
- }
66
- try {
67
- // Use ToolManager for unified tool execution
68
- const toolResult = await this.deps.toolManager.executeTool({
69
- tool,
70
- context,
71
- updateContext: this.deps.updateContext,
72
- updateData: this.deps.updateCollectedData,
73
- history: historyEvents, // Use Event[] for tool execution
74
- data: session.data,
75
- toolArguments: toolCall.arguments,
76
- });
77
- // Store the actual tool result data for history
78
- record.result = (0, index_js_1.serializeToolResult)(toolResult);
79
- // Collect tool-emitted directives (ctx.dispatch / {directive})
80
- if (toolResult.directives?.length) {
81
- collectedDirectives.push(...toolResult.directives);
82
- }
83
- // Check if tool execution was successful
84
- if (!toolResult.success) {
85
- index_js_1.logger.error(`[ToolLoopExecutor] Tool execution failed: ${toolCall.toolName} - ${toolResult.error}`);
86
- // Continue with other tools rather than failing completely
87
- continue;
88
- }
89
- // Update context with tool results
90
- if (toolResult.contextUpdate) {
91
- try {
92
- await this.deps.updateContext(toolResult.contextUpdate);
93
- }
94
- catch (error) {
95
- index_js_1.logger.error(`[ToolLoopExecutor] Failed to update context from tool ${toolCall.toolName}:`, error);
96
- // Continue execution but log the error
97
- }
98
- }
99
- // Update collected data with tool results
100
- if (toolResult.dataUpdate) {
101
- try {
102
- session = await this.deps.updateSessionData(session, toolResult.dataUpdate);
103
- index_js_1.logger.debug(`[ToolLoopExecutor] Tool updated collected data:`, toolResult.dataUpdate);
104
- }
105
- catch (error) {
106
- index_js_1.logger.error(`[ToolLoopExecutor] Failed to update data from tool ${toolCall.toolName}:`, error);
107
- // Continue execution but log the error
108
- }
109
- }
110
- index_js_1.logger.debug(`[ToolLoopExecutor] Executed dynamic tool: ${toolCall.toolName} (success: ${toolResult.success})`);
111
- }
112
- catch (error) {
113
- index_js_1.logger.error(`[ToolLoopExecutor] Tool execution error for ${toolCall.toolName}:`, error);
114
- // A thrown handler must be visible to the model as a FAILED
115
- // tool call — reporting success makes it confirm actions
116
- // that never happened.
117
- record.result = executionFailure(toolCall.toolName, error);
118
- continue;
119
- }
120
- }
121
- }
122
- // A tool spoke verbatim this turn: its reply IS the final message —
123
- // skip the follow-up LLM call (documented dispatch semantics).
124
- const preLoopDirectives = flow_namespace_js_1.flow.mergeAll(collectedDirectives);
125
- if (preLoopDirectives?.reply) {
126
- index_js_1.logger.debug("[ToolLoopExecutor] Tool directive reply short-circuits follow-up LLM call");
127
- return {
128
- session,
129
- finalToolCalls: toolCalls,
130
- finalMessage: preLoopDirectives.reply,
131
- structured: { message: preLoopDirectives.reply },
132
- directives: preLoopDirectives,
133
- };
134
- }
135
- // Hand off to the multi-round follow-up loop shared with the
136
- // streaming path. The initial batch above already executed
137
- // sequentially and populated the result maps.
138
- return await this.runFollowUpLoop({
139
- toolCalls,
140
- session,
141
- records,
142
- collectedDirectives,
143
- context,
144
- history,
145
- selectedFlow,
146
- responsePrompt,
147
- availableTools,
148
- responseSchema,
149
- signal,
150
- });
151
- }
152
- catch (error) {
153
- throw ResponseGenerationError_js_1.ResponseGenerationError.fromError(error, 'tool_execution', params, {
154
- toolCallsCount: params.toolCalls?.length || 0,
155
- availableToolsCount: params.availableTools.length
156
- });
157
- }
158
- }
159
- /**
160
- * The multi-round follow-up loop shared by the non-streaming (`runLoop`) and
161
- * streaming (`runStreamingBatch`) tool paths: re-prompt the model with the
162
- * tool results (tools available on the first round so it can chain further
163
- * calls), execute any further tool calls, repeat up to `maxToolLoops`, then
164
- * force a result-aware closing message if the model never produced one.
165
- * Callers run the *initial* batch — sequentially for `runLoop`, concurrently
166
- * (with progress) for `runStreamingBatch` — and pass the populated result
167
- * maps; from here both paths behave identically.
168
- */
169
- async runFollowUpLoop(params) {
170
- const { context, history, selectedFlow, responsePrompt, availableTools, responseSchema, signal, records, collectedDirectives = [] } = params;
171
- let { toolCalls, session } = params;
172
- try {
173
- // TOOL LOOP: Allow AI to make follow-up tool calls after initial tool execution
174
- // `??` so an explicit `maxToolLoops: 0` is honored instead of being
175
- // clobbered to the default by a falsy-zero check.
176
- const MAX_TOOL_LOOPS = this.deps.maxToolLoops ?? 5;
177
- let toolLoopCount = 0;
178
- let hasToolCalls = toolCalls && toolCalls.length > 0;
179
- let finalMessage;
180
- let followUpStructured;
181
- while (hasToolCalls && toolLoopCount < MAX_TOOL_LOOPS) {
182
- toolLoopCount++;
183
- index_js_1.logger.debug(`[ToolLoopExecutor] Starting tool loop ${toolLoopCount}/${MAX_TOOL_LOOPS} with ${toolCalls?.length || 0} tool calls`);
184
- // Create tool result history items for the PREVIOUS round's
185
- // calls. Failures are reported as failures — never as success.
186
- const previousRound = toolLoopCount - 1;
187
- const roundRecords = records.filter((r) => r.round === previousRound);
188
- const toolResultHistoryItems = [];
189
- for (const record of roundRecords) {
190
- toolResultHistoryItems.push((0, index_js_1.assistantMessage)(null, [
191
- { id: record.requestId, name: record.toolName, arguments: record.arguments },
192
- ]), (0, index_js_1.toolMessage)(record.toolName, record.requestId, record.result ?? toolNotFoundFailure(record.toolName)));
193
- }
194
- // Create updated history with tool results
195
- const updatedHistory = [...history, ...toolResultHistoryItems];
196
- // Make follow-up AI call to see if more tools are needed.
197
- // Tools are offered EVERY iteration — the loop is already bounded
198
- // by MAX_TOOL_LOOPS, so withholding them after round only made
199
- // maxToolLoops values above 2 unreachable.
200
- const agentOptions = this.deps.getAgentOptions();
201
- index_js_1.logger.debug(`[ToolLoopExecutor] Making follow-up AI call (loop ${toolLoopCount}):`, {
202
- providingTools: true,
203
- toolsCount: availableTools.length,
204
- });
205
- const followUpResult = await agentOptions.provider.generateMessage({
206
- prompt: responsePrompt,
207
- history: updatedHistory, // Use HistoryItem[] for AI provider
208
- context,
209
- tools: availableTools,
210
- parameters: responseSchema ? {
211
- jsonSchema: responseSchema,
212
- schemaName: "tool_followup",
213
- } : undefined,
214
- signal,
215
- });
216
- // Check if follow-up call has more tool calls
217
- const followUpToolCalls = followUpResult.structured?.toolCalls;
218
- hasToolCalls = followUpToolCalls && followUpToolCalls.length > 0;
219
- index_js_1.logger.debug(`[ToolLoopExecutor] Follow-up AI response (loop ${toolLoopCount}):`, {
220
- hasMessage: !!followUpResult.message,
221
- messageLength: followUpResult.message?.length || 0,
222
- hasToolCalls,
223
- toolCallsCount: followUpToolCalls?.length || 0,
224
- toolNames: followUpToolCalls?.map(tc => tc.toolName) || [],
225
- });
226
- if (hasToolCalls) {
227
- index_js_1.logger.debug(`[ToolLoopExecutor] Follow-up call produced ${followUpToolCalls.length} additional tool calls`);
228
- // Execute the follow-up tool calls
229
- for (const [callIndex, toolCall] of followUpToolCalls.entries()) {
230
- const record = {
231
- requestId: `fup-${toolLoopCount}-${callIndex}-${toolCall.toolName}`,
232
- toolName: toolCall.toolName,
233
- arguments: toolCall.arguments,
234
- round: toolLoopCount,
235
- };
236
- records.push(record);
237
- const tool = this.findAvailableTool(toolCall.toolName, selectedFlow);
238
- if (!tool) {
239
- index_js_1.logger.warn(`[ToolExecutionError] Tool not found in follow-up: "${toolCall.toolName}" is not registered in any scope. Register the tool or check the tool name.`);
240
- record.result = toolNotFoundFailure(toolCall.toolName);
241
- continue;
242
- }
243
- try {
244
- // Use ToolManager for unified tool execution
245
- const toolResult = await this.deps.toolManager.executeTool({
246
- tool,
247
- context,
248
- updateContext: this.deps.updateContext,
249
- updateData: this.deps.updateCollectedData,
250
- history: (0, index_js_1.historyToEvents)(updatedHistory), // Convert to Event[] for tool execution
251
- data: session.data,
252
- toolArguments: toolCall.arguments,
253
- });
254
- // Check if tool execution was successful
255
- if (!toolResult.success) {
256
- index_js_1.logger.error(`[ToolLoopExecutor] Follow-up tool execution failed: ${toolCall.toolName} - ${toolResult.error}`);
257
- continue;
258
- }
259
- // Update context with follow-up tool results
260
- if (toolResult.contextUpdate) {
261
- try {
262
- await this.deps.updateContext(toolResult.contextUpdate);
263
- }
264
- catch (error) {
265
- index_js_1.logger.error(`[ToolLoopExecutor] Failed to update context from follow-up tool ${toolCall.toolName}:`, error);
266
- }
267
- }
268
- if (toolResult.dataUpdate) {
269
- try {
270
- session = await this.deps.updateSessionData(session, toolResult.dataUpdate);
271
- index_js_1.logger.debug(`[ToolLoopExecutor] Follow-up tool updated collected data:`, toolResult.dataUpdate);
272
- }
273
- catch (error) {
274
- index_js_1.logger.error(`[ToolLoopExecutor] Failed to update data from follow-up tool ${toolCall.toolName}:`, error);
275
- }
276
- }
277
- // Store the follow-up tool result for potential next loop iteration
278
- record.result = (0, index_js_1.serializeToolResult)(toolResult);
279
- // Collect tool-emitted directives (ctx.dispatch / {directive})
280
- if (toolResult.directives?.length) {
281
- collectedDirectives.push(...toolResult.directives);
282
- }
283
- index_js_1.logger.debug(`[ToolLoopExecutor] Executed follow-up tool: ${toolCall.toolName} (success: ${toolResult.success})`);
284
- }
285
- catch (error) {
286
- index_js_1.logger.error(`[ToolLoopExecutor] Follow-up tool execution error for ${toolCall.toolName}:`, error);
287
- // Visible failure beats a fabricated success.
288
- record.result = executionFailure(toolCall.toolName, error);
289
- continue;
290
- }
291
- }
292
- // A tool emitted a verbatim reply this round: it IS the final
293
- // message — stop looping and skip any further LLM call.
294
- const roundDirectives = flow_namespace_js_1.flow.mergeAll(collectedDirectives);
295
- if (roundDirectives?.reply) {
296
- index_js_1.logger.debug("[ToolLoopExecutor] Tool directive reply short-circuits remaining tool loop");
297
- finalMessage = roundDirectives.reply;
298
- followUpStructured = { message: roundDirectives.reply };
299
- hasToolCalls = false;
300
- toolCalls = undefined;
301
- break;
302
- }
303
- // Update toolCalls for next iteration or final response
304
- toolCalls = followUpToolCalls;
305
- }
306
- else {
307
- index_js_1.logger.debug(`[ToolLoopExecutor] Tool loop completed after ${toolLoopCount} iterations`);
308
- // Update final message and toolCalls from follow-up result if no more tools
309
- finalMessage = followUpResult.structured?.message || followUpResult.message;
310
- followUpStructured = followUpResult.structured;
311
- toolCalls = followUpToolCalls || [];
312
- break;
313
- }
314
- }
315
- if (toolLoopCount >= MAX_TOOL_LOOPS) {
316
- index_js_1.logger.warn(`[ResponseGenerationError] Tool loop limit reached: ${toolLoopCount} iterations hit the cap (${MAX_TOOL_LOOPS}). Stopping tool execution. Increase the agent's maxToolLoops option or reduce recursive tool calls.`);
317
- }
318
- // If tools were executed but no final text message was produced,
319
- // make one more LLM call to generate a proper text response from tool
320
- // results. This prevents the original tool-invocation message (e.g.
321
- // "Let me check...") from being returned as the final user-facing
322
- // response. Shared with the streaming path via forceFinalTextFromTools.
323
- if (!finalMessage && toolLoopCount > 0) {
324
- index_js_1.logger.debug(`[ToolLoopExecutor] No final message after tool loop, making additional LLM call for text response`);
325
- const forced = await this.forceFinalTextFromTools({
326
- history,
327
- records,
328
- responsePrompt,
329
- responseSchema,
330
- context,
331
- signal,
332
- });
333
- if (forced.finalMessage) {
334
- finalMessage = forced.finalMessage;
335
- }
336
- if (forced.structured) {
337
- followUpStructured = forced.structured;
338
- }
339
- }
340
- index_js_1.logger.debug(`[ToolLoopExecutor] Tool loop completed:`, {
341
- totalIterations: toolLoopCount,
342
- hasFinalMessage: !!finalMessage,
343
- finalMessageLength: finalMessage?.length || 0,
344
- finalToolCallsCount: toolCalls?.length || 0,
345
- });
346
- return {
347
- session,
348
- finalToolCalls: toolCalls,
349
- finalMessage,
350
- structured: followUpStructured,
351
- directives: flow_namespace_js_1.flow.mergeAll(collectedDirectives),
352
- };
353
- }
354
- catch (error) {
355
- throw ResponseGenerationError_js_1.ResponseGenerationError.fromError(error, 'tool_execution', params, {
356
- toolCallsCount: params.toolCalls?.length || 0,
357
- availableToolsCount: params.availableTools.length
358
- });
359
- }
360
- }
361
- /**
362
- * After tools have executed but the model produced no closing text, make one
363
- * more LLM call (no tools) that turns the tool results into a user-facing
364
- * message. Shared by the non-streaming tool loop and the streaming batch so
365
- * both paths behave identically. Returns an empty object if the call fails
366
- * or yields nothing, leaving the caller to fall back to its prior message.
367
- */
368
- async forceFinalTextFromTools(params) {
369
- const { history, records, responsePrompt, responseSchema, context, signal } = params;
370
- // Reconstruct assistant tool_call + tool result pairs so the follow-up
371
- // call can see what the tools returned — every executed call, keyed by
372
- // its own request id.
373
- const finalToolResultHistoryItems = [];
374
- for (const record of records) {
375
- if (!record.result)
376
- continue;
377
- finalToolResultHistoryItems.push((0, index_js_1.assistantMessage)(null, [
378
- { id: record.requestId, name: record.toolName, arguments: record.arguments },
379
- ]), (0, index_js_1.toolMessage)(record.toolName, record.requestId, record.result));
380
- }
381
- const finalHistory = [...history, ...finalToolResultHistoryItems];
382
- const agentOptions = this.deps.getAgentOptions();
383
- try {
384
- const textResult = await agentOptions.provider.generateMessage({
385
- prompt: responsePrompt + "\n\nProvide a text response to the user based on the tool results. Do not call any tools.",
386
- history: finalHistory,
387
- context,
388
- tools: [], // No tools - force text response
389
- parameters: responseSchema ? {
390
- jsonSchema: responseSchema,
391
- schemaName: "tool_final_text",
392
- } : undefined,
393
- signal,
394
- });
395
- const finalMessage = textResult.structured?.message || textResult.message;
396
- index_js_1.logger.debug(`[ToolLoopExecutor] Generated final text response from tool results:`, {
397
- hasMessage: !!finalMessage,
398
- messageLength: finalMessage?.length || 0,
399
- });
400
- return { finalMessage, structured: textResult.structured };
401
- }
402
- catch (error) {
403
- index_js_1.logger.error(`[ToolLoopExecutor] Failed to generate final text response from tool results:`, error);
404
- // Leave the caller to fall back to its prior message.
405
- return {};
406
- }
407
- }
408
- /**
409
- * Execute the streaming path's initial batch of tool calls concurrently
410
- * via ToolManager.executeWithConcurrency, yielding tool-progress chunks.
411
- * When tools ran but the model produced no closing text, forces a final
412
- * text response from the tool results (mirroring `runLoop()`). Falls back
413
- * to `runLoop()` when concurrent execution fails.
414
- *
415
- * Returns the updated session, final tool calls, and any forced closing
416
- * message/structured response.
417
- */
418
- async *runStreamingBatch(params) {
419
- const { context, history, selectedFlow, step, accumulated, responsePrompt, availableTools, responseSchema, signal } = params;
420
- let { session } = params;
421
- let toolCalls = params.toolCalls;
422
- // Directives emitted by tools this turn — surfaced to the caller
423
- const collectedDirectives = [];
424
- // Use concurrent execution for the initial batch of tool calls
425
- const toolCallRequests = params.toolCalls.map((tc, i) => ({
426
- id: `${tc.toolName}-${i}-${Date.now()}`,
427
- toolName: tc.toolName,
428
- arguments: tc.arguments,
429
- }));
430
- // Map request id -> request so completed results can be attributed back
431
- // to their tool name/arguments for the forced final-text call.
432
- // Execution records keyed by call id — seeded at queue time so results
433
- // (and failures) attach to the right call even for same-name calls.
434
- const records = toolCallRequests.map((req) => ({
435
- requestId: req.id,
436
- toolName: req.toolName,
437
- arguments: req.arguments,
438
- round: 0,
439
- }));
440
- const recordById = new Map(records.map((r) => [r.requestId, r]));
441
- const historyEvents = (0, index_js_1.historyToEvents)(history);
442
- let finalMessage;
443
- let structured;
444
- try {
445
- for await (const update of this.deps.toolManager.executeWithConcurrency({
446
- toolCalls: toolCallRequests,
447
- context,
448
- data: session.data,
449
- history: historyEvents,
450
- signal,
451
- flow: selectedFlow,
452
- step,
453
- })) {
454
- // Apply context updates
455
- if (update.contextUpdate) {
456
- try {
457
- await this.deps.updateContext(update.contextUpdate);
458
- }
459
- catch (error) {
460
- index_js_1.logger.error(`[ToolLoopExecutor] Failed to update context from concurrent tool:`, error);
461
- }
462
- }
463
- // Apply data updates
464
- if (update.dataUpdate) {
465
- try {
466
- session = await this.deps.updateSessionData(session, update.dataUpdate);
467
- }
468
- catch (error) {
469
- index_js_1.logger.error(`[ToolLoopExecutor] Failed to update data from concurrent tool:`, error);
470
- }
471
- }
472
- // Capture tool results for the forced final-text call
473
- if (update.result) {
474
- const record = recordById.get(update.toolCallId);
475
- if (record) {
476
- record.result = (0, index_js_1.serializeToolResult)(update.result);
477
- }
478
- // Collect tool-emitted directives (ctx.dispatch / {directive})
479
- if (update.result.directives?.length) {
480
- collectedDirectives.push(...update.result.directives);
481
- }
482
- }
483
- // Yield progress updates immediately
484
- if (update.progress) {
485
- yield {
486
- delta: '',
487
- accumulated,
488
- done: false,
489
- session,
490
- toolCalls: undefined,
491
- isFlowComplete: false,
492
- metadata: { toolProgress: update.progress, toolCallId: update.toolCallId },
493
- };
494
- }
495
- }
496
- index_js_1.logger.debug(`[ToolLoopExecutor] Concurrent tool execution completed for ${toolCallRequests.length} tools`);
497
- // Multi-round follow-up shared with the non-streaming path: re-prompt
498
- // with the tool results so the model can chain further tool calls,
499
- // then produce result-aware closing text (forced if it never does).
500
- // Previously a single forced-text call — streaming now loops to parity
501
- // with runLoop, so a streamed turn can chain tools across rounds.
502
- const followUp = await this.runFollowUpLoop({
503
- toolCalls,
504
- session,
505
- records,
506
- collectedDirectives,
507
- context,
508
- history,
509
- selectedFlow,
510
- responsePrompt,
511
- availableTools,
512
- responseSchema,
513
- signal,
514
- });
515
- session = followUp.session;
516
- toolCalls = followUp.finalToolCalls;
517
- finalMessage = followUp.finalMessage;
518
- structured = followUp.structured;
519
- }
520
- catch (error) {
521
- index_js_1.logger.error(`[ToolLoopExecutor] Concurrent batch failed:`, error);
522
- const executedRecords = records.filter((r) => r.result !== undefined);
523
- if (executedRecords.length > 0) {
524
- // Some tools already executed — re-running them would duplicate
525
- // real-world side effects (sends, writes, charges). Close the
526
- // turn from the results we have instead.
527
- index_js_1.logger.warn(`[ToolLoopExecutor] ${executedRecords.length} tool(s) already executed; closing the turn from their results rather than re-executing.`);
528
- const forced = await this.forceFinalTextFromTools({
529
- history,
530
- records,
531
- responsePrompt,
532
- responseSchema,
533
- context,
534
- signal,
535
- });
536
- if (forced.finalMessage) {
537
- finalMessage = forced.finalMessage;
538
- }
539
- structured = structured ?? forced.structured;
540
- }
541
- else {
542
- // Nothing executed — safe to fall back to the unified loop.
543
- const toolResult = await this.runLoop({
544
- toolCalls, context, session, history, selectedFlow,
545
- responsePrompt, availableTools, responseSchema, signal,
546
- });
547
- session = toolResult.session;
548
- toolCalls = toolResult.finalToolCalls;
549
- finalMessage = toolResult.finalMessage;
550
- structured = toolResult.structured;
551
- if (toolResult.directives) {
552
- collectedDirectives.length = 0;
553
- collectedDirectives.push(toolResult.directives);
554
- }
555
- }
556
- }
557
- return { session, toolCalls, finalMessage, structured, directives: flow_namespace_js_1.flow.mergeAll(collectedDirectives) };
558
- }
559
- /**
560
- * Find an available tool by name for the given flow.
561
- * Delegates to ToolManager for unified tool resolution.
562
- */
563
- findAvailableTool(toolName, flow) {
564
- return this.deps.toolManager.find(toolName, undefined, undefined, flow);
565
- }
566
- }
567
- exports.ToolLoopExecutor = ToolLoopExecutor;
568
- //# sourceMappingURL=ToolLoopExecutor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolLoopExecutor.js","sourceRoot":"","sources":["../../../src/core/ToolLoopExecutor.ts"],"names":[],"mappings":"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"}