@falai/agent 3.4.5 → 4.0.0-alpha.10

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 (865) hide show
  1. package/README.md +41 -34
  2. package/dist/cjs/core/Agent.d.ts +29 -378
  3. package/dist/cjs/core/Agent.d.ts.map +1 -1
  4. package/dist/cjs/core/Agent.js +113 -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 +573 -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 +149 -0
  20. package/dist/cjs/core/Prompt.js.map +1 -0
  21. package/dist/cjs/core/Runner.d.ts +171 -0
  22. package/dist/cjs/core/Runner.d.ts.map +1 -0
  23. package/dist/cjs/core/Runner.js +1158 -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 +373 -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 +357 -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 +163 -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/phrases.d.ts +25 -0
  158. package/dist/cjs/utils/phrases.d.ts.map +1 -0
  159. package/dist/cjs/utils/phrases.js +38 -0
  160. package/dist/cjs/utils/phrases.js.map +1 -0
  161. package/dist/cjs/utils/schema.d.ts +50 -0
  162. package/dist/cjs/utils/schema.d.ts.map +1 -0
  163. package/dist/cjs/utils/schema.js +138 -0
  164. package/dist/cjs/utils/schema.js.map +1 -0
  165. package/dist/cjs/utils/streamingMessage.d.ts +3 -2
  166. package/dist/cjs/utils/streamingMessage.d.ts.map +1 -1
  167. package/dist/cjs/utils/streamingMessage.js +38 -4
  168. package/dist/cjs/utils/streamingMessage.js.map +1 -1
  169. package/dist/cjs/utils/template.d.ts +22 -150
  170. package/dist/cjs/utils/template.d.ts.map +1 -1
  171. package/dist/cjs/utils/template.js +64 -359
  172. package/dist/cjs/utils/template.js.map +1 -1
  173. package/dist/cjs/utils/usage.d.ts +19 -0
  174. package/dist/cjs/utils/usage.d.ts.map +1 -0
  175. package/dist/cjs/utils/usage.js +35 -0
  176. package/dist/cjs/utils/usage.js.map +1 -0
  177. package/dist/core/Agent.d.ts +29 -378
  178. package/dist/core/Agent.d.ts.map +1 -1
  179. package/dist/core/Agent.js +116 -1181
  180. package/dist/core/Agent.js.map +1 -1
  181. package/dist/core/CompactionEngine.d.ts.map +1 -1
  182. package/dist/core/CompactionEngine.js +5 -3
  183. package/dist/core/CompactionEngine.js.map +1 -1
  184. package/dist/core/FlowSpec.d.ts +136 -0
  185. package/dist/core/FlowSpec.d.ts.map +1 -0
  186. package/dist/core/FlowSpec.js +567 -0
  187. package/dist/core/FlowSpec.js.map +1 -0
  188. package/dist/core/Migrate.d.ts +38 -0
  189. package/dist/core/Migrate.d.ts.map +1 -0
  190. package/dist/core/Migrate.js +264 -0
  191. package/dist/core/Migrate.js.map +1 -0
  192. package/dist/core/Prompt.d.ts +54 -0
  193. package/dist/core/Prompt.d.ts.map +1 -0
  194. package/dist/core/Prompt.js +139 -0
  195. package/dist/core/Prompt.js.map +1 -0
  196. package/dist/core/Runner.d.ts +171 -0
  197. package/dist/core/Runner.d.ts.map +1 -0
  198. package/dist/core/Runner.js +1154 -0
  199. package/dist/core/Runner.js.map +1 -0
  200. package/dist/core/Speak.d.ts +37 -0
  201. package/dist/core/Speak.d.ts.map +1 -0
  202. package/dist/core/Speak.js +369 -0
  203. package/dist/core/Speak.js.map +1 -0
  204. package/dist/core/Understand.d.ts +28 -0
  205. package/dist/core/Understand.d.ts.map +1 -0
  206. package/dist/core/Understand.js +353 -0
  207. package/dist/core/Understand.js.map +1 -0
  208. package/dist/core/contracts.d.ts +122 -0
  209. package/dist/core/contracts.d.ts.map +1 -0
  210. package/dist/core/contracts.js +10 -0
  211. package/dist/core/contracts.js.map +1 -0
  212. package/dist/core/falai.d.ts +57 -0
  213. package/dist/core/falai.d.ts.map +1 -0
  214. package/dist/core/falai.js +40 -0
  215. package/dist/core/falai.js.map +1 -0
  216. package/dist/core/predicate.d.ts +9 -0
  217. package/dist/core/predicate.d.ts.map +1 -0
  218. package/dist/core/predicate.js +54 -0
  219. package/dist/core/predicate.js.map +1 -0
  220. package/dist/index.d.ts +26 -31
  221. package/dist/index.d.ts.map +1 -1
  222. package/dist/index.js +19 -24
  223. package/dist/index.js.map +1 -1
  224. package/dist/persistence/MemoryStore.d.ts +15 -0
  225. package/dist/persistence/MemoryStore.d.ts.map +1 -0
  226. package/dist/persistence/MemoryStore.js +35 -0
  227. package/dist/persistence/MemoryStore.js.map +1 -0
  228. package/dist/persistence/MongoStore.d.ts +42 -0
  229. package/dist/persistence/MongoStore.d.ts.map +1 -0
  230. package/dist/persistence/MongoStore.js +56 -0
  231. package/dist/persistence/MongoStore.js.map +1 -0
  232. package/dist/persistence/OpenSearchStore.d.ts +86 -0
  233. package/dist/persistence/OpenSearchStore.d.ts.map +1 -0
  234. package/dist/persistence/OpenSearchStore.js +116 -0
  235. package/dist/persistence/OpenSearchStore.js.map +1 -0
  236. package/dist/persistence/PostgresStore.d.ts +41 -0
  237. package/dist/persistence/PostgresStore.d.ts.map +1 -0
  238. package/dist/persistence/PostgresStore.js +54 -0
  239. package/dist/persistence/PostgresStore.js.map +1 -0
  240. package/dist/persistence/PrismaStore.d.ts +65 -0
  241. package/dist/persistence/PrismaStore.d.ts.map +1 -0
  242. package/dist/persistence/PrismaStore.js +91 -0
  243. package/dist/persistence/PrismaStore.js.map +1 -0
  244. package/dist/persistence/RedisStore.d.ts +34 -0
  245. package/dist/persistence/RedisStore.d.ts.map +1 -0
  246. package/dist/persistence/RedisStore.js +57 -0
  247. package/dist/persistence/RedisStore.js.map +1 -0
  248. package/dist/persistence/SQLiteStore.d.ts +45 -0
  249. package/dist/persistence/SQLiteStore.d.ts.map +1 -0
  250. package/dist/persistence/SQLiteStore.js +70 -0
  251. package/dist/persistence/SQLiteStore.js.map +1 -0
  252. package/dist/persistence/sessionRow.d.ts +14 -0
  253. package/dist/persistence/sessionRow.d.ts.map +1 -0
  254. package/dist/persistence/sessionRow.js +45 -0
  255. package/dist/persistence/sessionRow.js.map +1 -0
  256. package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
  257. package/dist/providers/DeepSeekProvider.js +8 -3
  258. package/dist/providers/DeepSeekProvider.js.map +1 -1
  259. package/dist/providers/GeminiProvider.d.ts +4 -3
  260. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  261. package/dist/providers/GeminiProvider.js +4 -3
  262. package/dist/providers/GeminiProvider.js.map +1 -1
  263. package/dist/providers/OpenAICompatibleProvider.d.ts +4 -0
  264. package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  265. package/dist/providers/OpenAICompatibleProvider.js +2 -0
  266. package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
  267. package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
  268. package/dist/providers/OpenRouterProvider.js +2 -4
  269. package/dist/providers/OpenRouterProvider.js.map +1 -1
  270. package/dist/providers/ProviderAdapter.d.ts +11 -6
  271. package/dist/providers/ProviderAdapter.d.ts.map +1 -1
  272. package/dist/providers/ProviderAdapter.js +34 -11
  273. package/dist/providers/ProviderAdapter.js.map +1 -1
  274. package/dist/providers/ZaiProvider.d.ts +6 -4
  275. package/dist/providers/ZaiProvider.d.ts.map +1 -1
  276. package/dist/providers/ZaiProvider.js +6 -4
  277. package/dist/providers/ZaiProvider.js.map +1 -1
  278. package/dist/types/agent.d.ts +163 -383
  279. package/dist/types/agent.d.ts.map +1 -1
  280. package/dist/types/agent.js +1 -1
  281. package/dist/types/ai.d.ts +32 -1
  282. package/dist/types/ai.d.ts.map +1 -1
  283. package/dist/types/compaction.d.ts +3 -1
  284. package/dist/types/compaction.d.ts.map +1 -1
  285. package/dist/types/errors.d.ts +9 -12
  286. package/dist/types/errors.d.ts.map +1 -1
  287. package/dist/types/errors.js +12 -15
  288. package/dist/types/errors.js.map +1 -1
  289. package/dist/types/flow.d.ts +265 -513
  290. package/dist/types/flow.d.ts.map +1 -1
  291. package/dist/types/flow.js +7 -1
  292. package/dist/types/flow.js.map +1 -1
  293. package/dist/types/history.d.ts +7 -18
  294. package/dist/types/history.d.ts.map +1 -1
  295. package/dist/types/history.js.map +1 -1
  296. package/dist/types/index.d.ts +9 -15
  297. package/dist/types/index.d.ts.map +1 -1
  298. package/dist/types/index.js +2 -7
  299. package/dist/types/index.js.map +1 -1
  300. package/dist/types/session.d.ts +94 -64
  301. package/dist/types/session.d.ts.map +1 -1
  302. package/dist/types/session.js +5 -1
  303. package/dist/types/session.js.map +1 -1
  304. package/dist/types/tool.d.ts +37 -207
  305. package/dist/types/tool.d.ts.map +1 -1
  306. package/dist/types/tool.js +6 -13
  307. package/dist/types/tool.js.map +1 -1
  308. package/dist/utils/clock.d.ts +28 -0
  309. package/dist/utils/clock.d.ts.map +1 -0
  310. package/dist/utils/clock.js +59 -0
  311. package/dist/utils/clock.js.map +1 -0
  312. package/dist/utils/duration.d.ts +11 -0
  313. package/dist/utils/duration.d.ts.map +1 -0
  314. package/dist/utils/duration.js +26 -0
  315. package/dist/utils/duration.js.map +1 -0
  316. package/dist/utils/history.d.ts +4 -1
  317. package/dist/utils/history.d.ts.map +1 -1
  318. package/dist/utils/history.js +2 -2
  319. package/dist/utils/history.js.map +1 -1
  320. package/dist/utils/index.d.ts +4 -10
  321. package/dist/utils/index.d.ts.map +1 -1
  322. package/dist/utils/index.js +4 -21
  323. package/dist/utils/index.js.map +1 -1
  324. package/dist/utils/json.d.ts +2 -0
  325. package/dist/utils/json.d.ts.map +1 -1
  326. package/dist/utils/json.js +4 -0
  327. package/dist/utils/json.js.map +1 -1
  328. package/dist/utils/outcomes.d.ts +48 -0
  329. package/dist/utils/outcomes.d.ts.map +1 -0
  330. package/dist/utils/outcomes.js +48 -0
  331. package/dist/utils/outcomes.js.map +1 -0
  332. package/dist/utils/phrases.d.ts +25 -0
  333. package/dist/utils/phrases.d.ts.map +1 -0
  334. package/dist/utils/phrases.js +35 -0
  335. package/dist/utils/phrases.js.map +1 -0
  336. package/dist/utils/schema.d.ts +50 -0
  337. package/dist/utils/schema.d.ts.map +1 -0
  338. package/dist/utils/schema.js +129 -0
  339. package/dist/utils/schema.js.map +1 -0
  340. package/dist/utils/streamingMessage.d.ts +3 -2
  341. package/dist/utils/streamingMessage.d.ts.map +1 -1
  342. package/dist/utils/streamingMessage.js +38 -4
  343. package/dist/utils/streamingMessage.js.map +1 -1
  344. package/dist/utils/template.d.ts +22 -150
  345. package/dist/utils/template.d.ts.map +1 -1
  346. package/dist/utils/template.js +61 -351
  347. package/dist/utils/template.js.map +1 -1
  348. package/dist/utils/usage.d.ts +19 -0
  349. package/dist/utils/usage.d.ts.map +1 -0
  350. package/dist/utils/usage.js +31 -0
  351. package/dist/utils/usage.js.map +1 -0
  352. package/docs/README.md +37 -19
  353. package/docs/concepts/architecture.md +117 -239
  354. package/docs/concepts/collection.md +170 -0
  355. package/docs/concepts/pipeline.md +132 -378
  356. package/docs/concepts/runs-and-waits.md +192 -0
  357. package/docs/guides/actions-and-events.md +276 -0
  358. package/docs/guides/branching.md +119 -208
  359. package/docs/guides/compaction.md +63 -158
  360. package/docs/guides/conditions.md +164 -128
  361. package/docs/guides/error-handling.md +170 -164
  362. package/docs/guides/flow-control.md +210 -349
  363. package/docs/guides/flows-from-json.md +224 -0
  364. package/docs/guides/instructions.md +125 -161
  365. package/docs/guides/persistence.md +182 -206
  366. package/docs/guides/streaming.md +50 -114
  367. package/docs/guides/testing.md +284 -0
  368. package/docs/guides/triggers.md +401 -0
  369. package/docs/migration/README.md +8 -15
  370. package/docs/migration/v1-to-v2.md +1 -1
  371. package/docs/migration/v2-3-to-v2-4.md +2 -2
  372. package/docs/migration/v2-6-to-v2-7.md +4 -4
  373. package/docs/migration/v3-to-v4.md +457 -0
  374. package/docs/reference/actions-events-conditions.md +396 -0
  375. package/docs/reference/agent.md +248 -0
  376. package/docs/reference/branches.md +75 -203
  377. package/docs/reference/errors.md +188 -144
  378. package/docs/reference/fields.md +125 -0
  379. package/docs/reference/flow-spec.md +248 -0
  380. package/docs/reference/flow.md +104 -192
  381. package/docs/reference/instruction.md +83 -137
  382. package/docs/reference/outcomes.md +273 -0
  383. package/docs/reference/providers.md +525 -302
  384. package/docs/reference/session.md +210 -0
  385. package/docs/reference/step.md +194 -312
  386. package/docs/reference/stores.md +496 -0
  387. package/docs/reference/tool.md +162 -231
  388. package/docs/reference/trigger.md +200 -0
  389. package/docs/rfc/v4-one-flow.md +477 -0
  390. package/docs/start/01-install.md +59 -44
  391. package/docs/start/02-first-agent.md +97 -147
  392. package/docs/start/03-collect-data.md +78 -183
  393. package/docs/start/04-add-tools.md +159 -227
  394. package/docs/start/05-go-to-production.md +181 -163
  395. package/examples/01-quickstart.ts +26 -16
  396. package/examples/02-fields.ts +75 -0
  397. package/examples/03-tools.ts +79 -119
  398. package/examples/04-instructions.ts +60 -87
  399. package/examples/05-branches.ts +78 -0
  400. package/examples/06-triggers-and-waits.ts +149 -0
  401. package/examples/07-streaming.ts +34 -60
  402. package/examples/08-store-and-migration.ts +97 -0
  403. package/examples/09-flows-from-json.ts +107 -0
  404. package/package.json +11 -6
  405. package/src/core/Agent.ts +126 -1512
  406. package/src/core/CompactionEngine.ts +7 -4
  407. package/src/core/FlowSpec.ts +778 -0
  408. package/src/core/Migrate.ts +256 -0
  409. package/src/core/Prompt.ts +162 -0
  410. package/src/core/Runner.ts +1214 -0
  411. package/src/core/Speak.ts +460 -0
  412. package/src/core/Understand.ts +423 -0
  413. package/src/core/contracts.ts +111 -0
  414. package/src/core/falai.ts +86 -0
  415. package/src/core/predicate.ts +56 -0
  416. package/src/index.ts +120 -147
  417. package/src/persistence/MemoryStore.ts +37 -0
  418. package/src/persistence/MongoStore.ts +89 -0
  419. package/src/persistence/OpenSearchStore.ts +153 -0
  420. package/src/persistence/PostgresStore.ts +89 -0
  421. package/src/persistence/PrismaStore.ts +127 -0
  422. package/src/persistence/RedisStore.ts +90 -0
  423. package/src/persistence/SQLiteStore.ts +103 -0
  424. package/src/persistence/sessionRow.ts +45 -0
  425. package/src/providers/DeepSeekProvider.ts +8 -3
  426. package/src/providers/GeminiProvider.ts +4 -3
  427. package/src/providers/OpenAICompatibleProvider.ts +6 -0
  428. package/src/providers/OpenRouterProvider.ts +2 -4
  429. package/src/providers/ProviderAdapter.ts +46 -13
  430. package/src/providers/ZaiProvider.ts +6 -4
  431. package/src/types/agent.ts +135 -397
  432. package/src/types/ai.ts +33 -1
  433. package/src/types/compaction.ts +3 -1
  434. package/src/types/errors.ts +13 -16
  435. package/src/types/flow.ts +249 -550
  436. package/src/types/history.ts +7 -20
  437. package/src/types/index.ts +88 -139
  438. package/src/types/session.ts +135 -70
  439. package/src/types/tool.ts +42 -267
  440. package/src/utils/clock.ts +70 -0
  441. package/src/utils/duration.ts +33 -0
  442. package/src/utils/history.ts +3 -2
  443. package/src/utils/index.ts +8 -66
  444. package/src/utils/json.ts +5 -0
  445. package/src/utils/outcomes.ts +56 -0
  446. package/src/utils/phrases.ts +40 -0
  447. package/src/utils/schema.ts +145 -0
  448. package/src/utils/streamingMessage.ts +34 -4
  449. package/src/utils/template.ts +63 -418
  450. package/src/utils/usage.ts +37 -0
  451. package/dist/adapters/MemoryAdapter.d.ts +0 -47
  452. package/dist/adapters/MemoryAdapter.d.ts.map +0 -1
  453. package/dist/adapters/MemoryAdapter.js +0 -204
  454. package/dist/adapters/MemoryAdapter.js.map +0 -1
  455. package/dist/adapters/MongoAdapter.d.ts +0 -97
  456. package/dist/adapters/MongoAdapter.d.ts.map +0 -1
  457. package/dist/adapters/MongoAdapter.js +0 -196
  458. package/dist/adapters/MongoAdapter.js.map +0 -1
  459. package/dist/adapters/OpenSearchAdapter.d.ts +0 -169
  460. package/dist/adapters/OpenSearchAdapter.d.ts.map +0 -1
  461. package/dist/adapters/OpenSearchAdapter.js +0 -471
  462. package/dist/adapters/OpenSearchAdapter.js.map +0 -1
  463. package/dist/adapters/PostgreSQLAdapter.d.ts +0 -85
  464. package/dist/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  465. package/dist/adapters/PostgreSQLAdapter.js +0 -308
  466. package/dist/adapters/PostgreSQLAdapter.js.map +0 -1
  467. package/dist/adapters/PrismaAdapter.d.ts +0 -115
  468. package/dist/adapters/PrismaAdapter.d.ts.map +0 -1
  469. package/dist/adapters/PrismaAdapter.js +0 -406
  470. package/dist/adapters/PrismaAdapter.js.map +0 -1
  471. package/dist/adapters/RedisAdapter.d.ts +0 -72
  472. package/dist/adapters/RedisAdapter.d.ts.map +0 -1
  473. package/dist/adapters/RedisAdapter.js +0 -286
  474. package/dist/adapters/RedisAdapter.js.map +0 -1
  475. package/dist/adapters/SQLiteAdapter.d.ts +0 -86
  476. package/dist/adapters/SQLiteAdapter.d.ts.map +0 -1
  477. package/dist/adapters/SQLiteAdapter.js +0 -337
  478. package/dist/adapters/SQLiteAdapter.js.map +0 -1
  479. package/dist/adapters/index.d.ts +0 -17
  480. package/dist/adapters/index.d.ts.map +0 -1
  481. package/dist/adapters/index.js +0 -11
  482. package/dist/adapters/index.js.map +0 -1
  483. package/dist/adapters/sessionRow.d.ts +0 -22
  484. package/dist/adapters/sessionRow.d.ts.map +0 -1
  485. package/dist/adapters/sessionRow.js +0 -48
  486. package/dist/adapters/sessionRow.js.map +0 -1
  487. package/dist/cjs/adapters/MemoryAdapter.d.ts +0 -47
  488. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +0 -1
  489. package/dist/cjs/adapters/MemoryAdapter.js +0 -208
  490. package/dist/cjs/adapters/MemoryAdapter.js.map +0 -1
  491. package/dist/cjs/adapters/MongoAdapter.d.ts +0 -97
  492. package/dist/cjs/adapters/MongoAdapter.d.ts.map +0 -1
  493. package/dist/cjs/adapters/MongoAdapter.js +0 -200
  494. package/dist/cjs/adapters/MongoAdapter.js.map +0 -1
  495. package/dist/cjs/adapters/OpenSearchAdapter.d.ts +0 -169
  496. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +0 -1
  497. package/dist/cjs/adapters/OpenSearchAdapter.js +0 -475
  498. package/dist/cjs/adapters/OpenSearchAdapter.js.map +0 -1
  499. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +0 -85
  500. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  501. package/dist/cjs/adapters/PostgreSQLAdapter.js +0 -312
  502. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +0 -1
  503. package/dist/cjs/adapters/PrismaAdapter.d.ts +0 -115
  504. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +0 -1
  505. package/dist/cjs/adapters/PrismaAdapter.js +0 -410
  506. package/dist/cjs/adapters/PrismaAdapter.js.map +0 -1
  507. package/dist/cjs/adapters/RedisAdapter.d.ts +0 -72
  508. package/dist/cjs/adapters/RedisAdapter.d.ts.map +0 -1
  509. package/dist/cjs/adapters/RedisAdapter.js +0 -290
  510. package/dist/cjs/adapters/RedisAdapter.js.map +0 -1
  511. package/dist/cjs/adapters/SQLiteAdapter.d.ts +0 -86
  512. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +0 -1
  513. package/dist/cjs/adapters/SQLiteAdapter.js +0 -341
  514. package/dist/cjs/adapters/SQLiteAdapter.js.map +0 -1
  515. package/dist/cjs/adapters/index.d.ts +0 -17
  516. package/dist/cjs/adapters/index.d.ts.map +0 -1
  517. package/dist/cjs/adapters/index.js +0 -21
  518. package/dist/cjs/adapters/index.js.map +0 -1
  519. package/dist/cjs/adapters/sessionRow.d.ts +0 -22
  520. package/dist/cjs/adapters/sessionRow.d.ts.map +0 -1
  521. package/dist/cjs/adapters/sessionRow.js +0 -52
  522. package/dist/cjs/adapters/sessionRow.js.map +0 -1
  523. package/dist/cjs/constants/index.d.ts +0 -1
  524. package/dist/cjs/constants/index.d.ts.map +0 -1
  525. package/dist/cjs/constants/index.js +0 -4
  526. package/dist/cjs/constants/index.js.map +0 -1
  527. package/dist/cjs/core/AutoChainExecutor.d.ts +0 -97
  528. package/dist/cjs/core/AutoChainExecutor.d.ts.map +0 -1
  529. package/dist/cjs/core/AutoChainExecutor.js +0 -288
  530. package/dist/cjs/core/AutoChainExecutor.js.map +0 -1
  531. package/dist/cjs/core/BranchEvaluator.d.ts +0 -55
  532. package/dist/cjs/core/BranchEvaluator.d.ts.map +0 -1
  533. package/dist/cjs/core/BranchEvaluator.js +0 -125
  534. package/dist/cjs/core/BranchEvaluator.js.map +0 -1
  535. package/dist/cjs/core/DirectiveChainTracker.d.ts +0 -49
  536. package/dist/cjs/core/DirectiveChainTracker.d.ts.map +0 -1
  537. package/dist/cjs/core/DirectiveChainTracker.js +0 -121
  538. package/dist/cjs/core/DirectiveChainTracker.js.map +0 -1
  539. package/dist/cjs/core/Events.d.ts +0 -26
  540. package/dist/cjs/core/Events.d.ts.map +0 -1
  541. package/dist/cjs/core/Events.js +0 -144
  542. package/dist/cjs/core/Events.js.map +0 -1
  543. package/dist/cjs/core/Flow.d.ts +0 -183
  544. package/dist/cjs/core/Flow.d.ts.map +0 -1
  545. package/dist/cjs/core/Flow.js +0 -551
  546. package/dist/cjs/core/Flow.js.map +0 -1
  547. package/dist/cjs/core/FlowRouter.d.ts +0 -183
  548. package/dist/cjs/core/FlowRouter.d.ts.map +0 -1
  549. package/dist/cjs/core/FlowRouter.js +0 -1047
  550. package/dist/cjs/core/FlowRouter.js.map +0 -1
  551. package/dist/cjs/core/PersistenceManager.d.ts +0 -114
  552. package/dist/cjs/core/PersistenceManager.d.ts.map +0 -1
  553. package/dist/cjs/core/PersistenceManager.js +0 -336
  554. package/dist/cjs/core/PersistenceManager.js.map +0 -1
  555. package/dist/cjs/core/PromptComposer.d.ts +0 -47
  556. package/dist/cjs/core/PromptComposer.d.ts.map +0 -1
  557. package/dist/cjs/core/PromptComposer.js +0 -397
  558. package/dist/cjs/core/PromptComposer.js.map +0 -1
  559. package/dist/cjs/core/PromptSectionCache.d.ts +0 -48
  560. package/dist/cjs/core/PromptSectionCache.d.ts.map +0 -1
  561. package/dist/cjs/core/PromptSectionCache.js +0 -108
  562. package/dist/cjs/core/PromptSectionCache.js.map +0 -1
  563. package/dist/cjs/core/ResponseEngine.d.ts +0 -43
  564. package/dist/cjs/core/ResponseEngine.d.ts.map +0 -1
  565. package/dist/cjs/core/ResponseEngine.js +0 -235
  566. package/dist/cjs/core/ResponseEngine.js.map +0 -1
  567. package/dist/cjs/core/ResponseGenerationError.d.ts +0 -30
  568. package/dist/cjs/core/ResponseGenerationError.d.ts.map +0 -1
  569. package/dist/cjs/core/ResponseGenerationError.js +0 -35
  570. package/dist/cjs/core/ResponseGenerationError.js.map +0 -1
  571. package/dist/cjs/core/ResponseModal.d.ts +0 -305
  572. package/dist/cjs/core/ResponseModal.d.ts.map +0 -1
  573. package/dist/cjs/core/ResponseModal.js +0 -1414
  574. package/dist/cjs/core/ResponseModal.js.map +0 -1
  575. package/dist/cjs/core/ResponsePipeline.d.ts +0 -220
  576. package/dist/cjs/core/ResponsePipeline.d.ts.map +0 -1
  577. package/dist/cjs/core/ResponsePipeline.js +0 -1040
  578. package/dist/cjs/core/ResponsePipeline.js.map +0 -1
  579. package/dist/cjs/core/SessionFinalizer.d.ts +0 -34
  580. package/dist/cjs/core/SessionFinalizer.d.ts.map +0 -1
  581. package/dist/cjs/core/SessionFinalizer.js +0 -88
  582. package/dist/cjs/core/SessionFinalizer.js.map +0 -1
  583. package/dist/cjs/core/SessionManager.d.ts +0 -112
  584. package/dist/cjs/core/SessionManager.d.ts.map +0 -1
  585. package/dist/cjs/core/SessionManager.js +0 -308
  586. package/dist/cjs/core/SessionManager.js.map +0 -1
  587. package/dist/cjs/core/SignalCoordinator.d.ts +0 -103
  588. package/dist/cjs/core/SignalCoordinator.d.ts.map +0 -1
  589. package/dist/cjs/core/SignalCoordinator.js +0 -207
  590. package/dist/cjs/core/SignalCoordinator.js.map +0 -1
  591. package/dist/cjs/core/SignalEvaluator.d.ts +0 -86
  592. package/dist/cjs/core/SignalEvaluator.d.ts.map +0 -1
  593. package/dist/cjs/core/SignalEvaluator.js +0 -319
  594. package/dist/cjs/core/SignalEvaluator.js.map +0 -1
  595. package/dist/cjs/core/SignalProcessor.d.ts +0 -152
  596. package/dist/cjs/core/SignalProcessor.d.ts.map +0 -1
  597. package/dist/cjs/core/SignalProcessor.js +0 -505
  598. package/dist/cjs/core/SignalProcessor.js.map +0 -1
  599. package/dist/cjs/core/Step.d.ts +0 -184
  600. package/dist/cjs/core/Step.d.ts.map +0 -1
  601. package/dist/cjs/core/Step.js +0 -599
  602. package/dist/cjs/core/Step.js.map +0 -1
  603. package/dist/cjs/core/StepLifecycle.d.ts +0 -43
  604. package/dist/cjs/core/StepLifecycle.d.ts.map +0 -1
  605. package/dist/cjs/core/StepLifecycle.js +0 -180
  606. package/dist/cjs/core/StepLifecycle.js.map +0 -1
  607. package/dist/cjs/core/StreamingToolExecutor.d.ts +0 -142
  608. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +0 -1
  609. package/dist/cjs/core/StreamingToolExecutor.js +0 -490
  610. package/dist/cjs/core/StreamingToolExecutor.js.map +0 -1
  611. package/dist/cjs/core/ToolLoopExecutor.d.ts +0 -133
  612. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +0 -1
  613. package/dist/cjs/core/ToolLoopExecutor.js +0 -568
  614. package/dist/cjs/core/ToolLoopExecutor.js.map +0 -1
  615. package/dist/cjs/core/ToolManager.d.ts +0 -250
  616. package/dist/cjs/core/ToolManager.d.ts.map +0 -1
  617. package/dist/cjs/core/ToolManager.js +0 -1104
  618. package/dist/cjs/core/ToolManager.js.map +0 -1
  619. package/dist/cjs/core/createAgent.d.ts +0 -35
  620. package/dist/cjs/core/createAgent.d.ts.map +0 -1
  621. package/dist/cjs/core/createAgent.js +0 -39
  622. package/dist/cjs/core/createAgent.js.map +0 -1
  623. package/dist/cjs/core/flow-namespace.d.ts +0 -64
  624. package/dist/cjs/core/flow-namespace.d.ts.map +0 -1
  625. package/dist/cjs/core/flow-namespace.js +0 -182
  626. package/dist/cjs/core/flow-namespace.js.map +0 -1
  627. package/dist/cjs/core/toolGates.d.ts +0 -24
  628. package/dist/cjs/core/toolGates.d.ts.map +0 -1
  629. package/dist/cjs/core/toolGates.js +0 -52
  630. package/dist/cjs/core/toolGates.js.map +0 -1
  631. package/dist/cjs/types/persistence.d.ts +0 -254
  632. package/dist/cjs/types/persistence.d.ts.map +0 -1
  633. package/dist/cjs/types/persistence.js +0 -7
  634. package/dist/cjs/types/persistence.js.map +0 -1
  635. package/dist/cjs/types/prompt-cache.d.ts +0 -15
  636. package/dist/cjs/types/prompt-cache.d.ts.map +0 -1
  637. package/dist/cjs/types/prompt-cache.js +0 -6
  638. package/dist/cjs/types/prompt-cache.js.map +0 -1
  639. package/dist/cjs/types/signals.d.ts +0 -263
  640. package/dist/cjs/types/signals.d.ts.map +0 -1
  641. package/dist/cjs/types/signals.js +0 -11
  642. package/dist/cjs/types/signals.js.map +0 -1
  643. package/dist/cjs/types/template.d.ts +0 -84
  644. package/dist/cjs/types/template.d.ts.map +0 -1
  645. package/dist/cjs/types/template.js +0 -3
  646. package/dist/cjs/types/template.js.map +0 -1
  647. package/dist/cjs/utils/condition.d.ts +0 -63
  648. package/dist/cjs/utils/condition.d.ts.map +0 -1
  649. package/dist/cjs/utils/condition.js +0 -239
  650. package/dist/cjs/utils/condition.js.map +0 -1
  651. package/dist/cjs/utils/event.d.ts +0 -6
  652. package/dist/cjs/utils/event.d.ts.map +0 -1
  653. package/dist/cjs/utils/event.js +0 -20
  654. package/dist/cjs/utils/event.js.map +0 -1
  655. package/dist/cjs/utils/id.d.ts +0 -33
  656. package/dist/cjs/utils/id.d.ts.map +0 -1
  657. package/dist/cjs/utils/id.js +0 -84
  658. package/dist/cjs/utils/id.js.map +0 -1
  659. package/dist/cjs/utils/serialize.d.ts +0 -36
  660. package/dist/cjs/utils/serialize.d.ts.map +0 -1
  661. package/dist/cjs/utils/serialize.js +0 -77
  662. package/dist/cjs/utils/serialize.js.map +0 -1
  663. package/dist/cjs/utils/session.d.ts +0 -124
  664. package/dist/cjs/utils/session.d.ts.map +0 -1
  665. package/dist/cjs/utils/session.js +0 -396
  666. package/dist/cjs/utils/session.js.map +0 -1
  667. package/dist/constants/index.d.ts +0 -2
  668. package/dist/constants/index.d.ts.map +0 -1
  669. package/dist/constants/index.js +0 -4
  670. package/dist/constants/index.js.map +0 -1
  671. package/dist/core/AutoChainExecutor.d.ts +0 -97
  672. package/dist/core/AutoChainExecutor.d.ts.map +0 -1
  673. package/dist/core/AutoChainExecutor.js +0 -284
  674. package/dist/core/AutoChainExecutor.js.map +0 -1
  675. package/dist/core/BranchEvaluator.d.ts +0 -55
  676. package/dist/core/BranchEvaluator.d.ts.map +0 -1
  677. package/dist/core/BranchEvaluator.js +0 -121
  678. package/dist/core/BranchEvaluator.js.map +0 -1
  679. package/dist/core/DirectiveChainTracker.d.ts +0 -49
  680. package/dist/core/DirectiveChainTracker.d.ts.map +0 -1
  681. package/dist/core/DirectiveChainTracker.js +0 -117
  682. package/dist/core/DirectiveChainTracker.js.map +0 -1
  683. package/dist/core/Events.d.ts +0 -26
  684. package/dist/core/Events.d.ts.map +0 -1
  685. package/dist/core/Events.js +0 -137
  686. package/dist/core/Events.js.map +0 -1
  687. package/dist/core/Flow.d.ts +0 -183
  688. package/dist/core/Flow.d.ts.map +0 -1
  689. package/dist/core/Flow.js +0 -547
  690. package/dist/core/Flow.js.map +0 -1
  691. package/dist/core/FlowRouter.d.ts +0 -183
  692. package/dist/core/FlowRouter.d.ts.map +0 -1
  693. package/dist/core/FlowRouter.js +0 -1043
  694. package/dist/core/FlowRouter.js.map +0 -1
  695. package/dist/core/PersistenceManager.d.ts +0 -114
  696. package/dist/core/PersistenceManager.d.ts.map +0 -1
  697. package/dist/core/PersistenceManager.js +0 -332
  698. package/dist/core/PersistenceManager.js.map +0 -1
  699. package/dist/core/PromptComposer.d.ts +0 -47
  700. package/dist/core/PromptComposer.d.ts.map +0 -1
  701. package/dist/core/PromptComposer.js +0 -393
  702. package/dist/core/PromptComposer.js.map +0 -1
  703. package/dist/core/PromptSectionCache.d.ts +0 -48
  704. package/dist/core/PromptSectionCache.d.ts.map +0 -1
  705. package/dist/core/PromptSectionCache.js +0 -104
  706. package/dist/core/PromptSectionCache.js.map +0 -1
  707. package/dist/core/ResponseEngine.d.ts +0 -43
  708. package/dist/core/ResponseEngine.d.ts.map +0 -1
  709. package/dist/core/ResponseEngine.js +0 -231
  710. package/dist/core/ResponseEngine.js.map +0 -1
  711. package/dist/core/ResponseGenerationError.d.ts +0 -30
  712. package/dist/core/ResponseGenerationError.d.ts.map +0 -1
  713. package/dist/core/ResponseGenerationError.js +0 -31
  714. package/dist/core/ResponseGenerationError.js.map +0 -1
  715. package/dist/core/ResponseModal.d.ts +0 -305
  716. package/dist/core/ResponseModal.d.ts.map +0 -1
  717. package/dist/core/ResponseModal.js +0 -1410
  718. package/dist/core/ResponseModal.js.map +0 -1
  719. package/dist/core/ResponsePipeline.d.ts +0 -220
  720. package/dist/core/ResponsePipeline.d.ts.map +0 -1
  721. package/dist/core/ResponsePipeline.js +0 -1035
  722. package/dist/core/ResponsePipeline.js.map +0 -1
  723. package/dist/core/SessionFinalizer.d.ts +0 -34
  724. package/dist/core/SessionFinalizer.d.ts.map +0 -1
  725. package/dist/core/SessionFinalizer.js +0 -84
  726. package/dist/core/SessionFinalizer.js.map +0 -1
  727. package/dist/core/SessionManager.d.ts +0 -112
  728. package/dist/core/SessionManager.d.ts.map +0 -1
  729. package/dist/core/SessionManager.js +0 -301
  730. package/dist/core/SessionManager.js.map +0 -1
  731. package/dist/core/SignalCoordinator.d.ts +0 -103
  732. package/dist/core/SignalCoordinator.d.ts.map +0 -1
  733. package/dist/core/SignalCoordinator.js +0 -203
  734. package/dist/core/SignalCoordinator.js.map +0 -1
  735. package/dist/core/SignalEvaluator.d.ts +0 -86
  736. package/dist/core/SignalEvaluator.d.ts.map +0 -1
  737. package/dist/core/SignalEvaluator.js +0 -312
  738. package/dist/core/SignalEvaluator.js.map +0 -1
  739. package/dist/core/SignalProcessor.d.ts +0 -152
  740. package/dist/core/SignalProcessor.d.ts.map +0 -1
  741. package/dist/core/SignalProcessor.js +0 -498
  742. package/dist/core/SignalProcessor.js.map +0 -1
  743. package/dist/core/Step.d.ts +0 -184
  744. package/dist/core/Step.d.ts.map +0 -1
  745. package/dist/core/Step.js +0 -594
  746. package/dist/core/Step.js.map +0 -1
  747. package/dist/core/StepLifecycle.d.ts +0 -43
  748. package/dist/core/StepLifecycle.d.ts.map +0 -1
  749. package/dist/core/StepLifecycle.js +0 -176
  750. package/dist/core/StepLifecycle.js.map +0 -1
  751. package/dist/core/StreamingToolExecutor.d.ts +0 -142
  752. package/dist/core/StreamingToolExecutor.d.ts.map +0 -1
  753. package/dist/core/StreamingToolExecutor.js +0 -483
  754. package/dist/core/StreamingToolExecutor.js.map +0 -1
  755. package/dist/core/ToolLoopExecutor.d.ts +0 -133
  756. package/dist/core/ToolLoopExecutor.d.ts.map +0 -1
  757. package/dist/core/ToolLoopExecutor.js +0 -564
  758. package/dist/core/ToolLoopExecutor.js.map +0 -1
  759. package/dist/core/ToolManager.d.ts +0 -250
  760. package/dist/core/ToolManager.d.ts.map +0 -1
  761. package/dist/core/ToolManager.js +0 -1098
  762. package/dist/core/ToolManager.js.map +0 -1
  763. package/dist/core/createAgent.d.ts +0 -35
  764. package/dist/core/createAgent.d.ts.map +0 -1
  765. package/dist/core/createAgent.js +0 -36
  766. package/dist/core/createAgent.js.map +0 -1
  767. package/dist/core/flow-namespace.d.ts +0 -64
  768. package/dist/core/flow-namespace.d.ts.map +0 -1
  769. package/dist/core/flow-namespace.js +0 -179
  770. package/dist/core/flow-namespace.js.map +0 -1
  771. package/dist/core/toolGates.d.ts +0 -24
  772. package/dist/core/toolGates.d.ts.map +0 -1
  773. package/dist/core/toolGates.js +0 -49
  774. package/dist/core/toolGates.js.map +0 -1
  775. package/dist/types/persistence.d.ts +0 -254
  776. package/dist/types/persistence.d.ts.map +0 -1
  777. package/dist/types/persistence.js +0 -6
  778. package/dist/types/persistence.js.map +0 -1
  779. package/dist/types/prompt-cache.d.ts +0 -15
  780. package/dist/types/prompt-cache.d.ts.map +0 -1
  781. package/dist/types/prompt-cache.js +0 -5
  782. package/dist/types/prompt-cache.js.map +0 -1
  783. package/dist/types/signals.d.ts +0 -263
  784. package/dist/types/signals.d.ts.map +0 -1
  785. package/dist/types/signals.js +0 -10
  786. package/dist/types/signals.js.map +0 -1
  787. package/dist/types/template.d.ts +0 -84
  788. package/dist/types/template.d.ts.map +0 -1
  789. package/dist/types/template.js +0 -2
  790. package/dist/types/template.js.map +0 -1
  791. package/dist/utils/condition.d.ts +0 -63
  792. package/dist/utils/condition.d.ts.map +0 -1
  793. package/dist/utils/condition.js +0 -230
  794. package/dist/utils/condition.js.map +0 -1
  795. package/dist/utils/event.d.ts +0 -6
  796. package/dist/utils/event.d.ts.map +0 -1
  797. package/dist/utils/event.js +0 -17
  798. package/dist/utils/event.js.map +0 -1
  799. package/dist/utils/id.d.ts +0 -33
  800. package/dist/utils/id.d.ts.map +0 -1
  801. package/dist/utils/id.js +0 -77
  802. package/dist/utils/id.js.map +0 -1
  803. package/dist/utils/serialize.d.ts +0 -36
  804. package/dist/utils/serialize.d.ts.map +0 -1
  805. package/dist/utils/serialize.js +0 -72
  806. package/dist/utils/serialize.js.map +0 -1
  807. package/dist/utils/session.d.ts +0 -124
  808. package/dist/utils/session.d.ts.map +0 -1
  809. package/dist/utils/session.js +0 -379
  810. package/dist/utils/session.js.map +0 -1
  811. package/docs/concepts/directives.md +0 -369
  812. package/docs/reference/adapters.md +0 -543
  813. package/docs/reference/create-agent.md +0 -216
  814. package/docs/reference/directive.md +0 -242
  815. package/docs/reference/signals.md +0 -368
  816. package/examples/02-data-extraction.ts +0 -90
  817. package/examples/05-branching.ts +0 -140
  818. package/examples/06-flow-control.ts +0 -103
  819. package/examples/08-persistence.ts +0 -98
  820. package/examples/09-signals.ts +0 -144
  821. package/src/adapters/MemoryAdapter.ts +0 -281
  822. package/src/adapters/MongoAdapter.ts +0 -341
  823. package/src/adapters/OpenSearchAdapter.ts +0 -693
  824. package/src/adapters/PostgreSQLAdapter.ts +0 -487
  825. package/src/adapters/PrismaAdapter.ts +0 -617
  826. package/src/adapters/RedisAdapter.ts +0 -439
  827. package/src/adapters/SQLiteAdapter.ts +0 -496
  828. package/src/adapters/index.ts +0 -43
  829. package/src/adapters/sessionRow.ts +0 -57
  830. package/src/constants/index.ts +0 -2
  831. package/src/core/AutoChainExecutor.ts +0 -397
  832. package/src/core/BranchEvaluator.ts +0 -161
  833. package/src/core/DirectiveChainTracker.ts +0 -144
  834. package/src/core/Events.ts +0 -164
  835. package/src/core/Flow.ts +0 -665
  836. package/src/core/FlowRouter.ts +0 -1540
  837. package/src/core/PersistenceManager.ts +0 -446
  838. package/src/core/PromptComposer.ts +0 -448
  839. package/src/core/PromptSectionCache.ts +0 -125
  840. package/src/core/ResponseEngine.ts +0 -338
  841. package/src/core/ResponseGenerationError.ts +0 -53
  842. package/src/core/ResponseModal.ts +0 -1902
  843. package/src/core/ResponsePipeline.ts +0 -1404
  844. package/src/core/SessionFinalizer.ts +0 -108
  845. package/src/core/SessionManager.ts +0 -372
  846. package/src/core/SignalCoordinator.ts +0 -263
  847. package/src/core/SignalEvaluator.ts +0 -404
  848. package/src/core/SignalProcessor.ts +0 -663
  849. package/src/core/Step.ts +0 -782
  850. package/src/core/StepLifecycle.ts +0 -242
  851. package/src/core/StreamingToolExecutor.ts +0 -609
  852. package/src/core/ToolLoopExecutor.ts +0 -749
  853. package/src/core/ToolManager.ts +0 -1379
  854. package/src/core/createAgent.ts +0 -40
  855. package/src/core/flow-namespace.ts +0 -227
  856. package/src/core/toolGates.ts +0 -72
  857. package/src/types/persistence.ts +0 -303
  858. package/src/types/prompt-cache.ts +0 -17
  859. package/src/types/signals.ts +0 -338
  860. package/src/types/template.ts +0 -98
  861. package/src/utils/condition.ts +0 -296
  862. package/src/utils/event.ts +0 -16
  863. package/src/utils/id.ts +0 -91
  864. package/src/utils/serialize.ts +0 -86
  865. package/src/utils/session.ts +0 -501
@@ -1,490 +0,0 @@
1
- "use strict";
2
- /**
3
- * StreamingToolExecutor - Executes tools as they arrive from the LLM stream
4
- * with concurrency control, abort handling, and ordered result yielding.
5
- *
6
- * Concurrency invariant: at any point during execution, either all executing
7
- * tools have `isConcurrencySafe === true`, or exactly one tool is executing
8
- * with `isConcurrencySafe === false`.
9
- *
10
- * Results are yielded in the original request order (the order addTool was called).
11
- * Progress messages bypass result ordering and are yielded immediately.
12
- */
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.StreamingToolExecutor = void 0;
18
- const loglevel_1 = __importDefault(require("loglevel"));
19
- const toolGates_js_1 = require("./toolGates.js");
20
- const index_js_1 = require("../utils/index.js");
21
- function createDeferred() {
22
- let resolve;
23
- let reject;
24
- const promise = new Promise((res, rej) => {
25
- resolve = res;
26
- reject = rej;
27
- });
28
- return { promise, resolve, reject };
29
- }
30
- /**
31
- * StreamingToolExecutor manages queuing, concurrent execution, abort propagation,
32
- * and ordered result yielding for tool calls arriving from an LLM stream.
33
- */
34
- class StreamingToolExecutor {
35
- /**
36
- * @param toolContext - Context provided to each tool handler during execution
37
- * @param options - Optional configuration for max parallelism and abort signal
38
- */
39
- constructor(toolContext, options) {
40
- /** Ordered list of tracked tools (insertion order = request order) */
41
- this.tools = [];
42
- /** Whether the executor has been discarded (no new tools will be processed) */
43
- this.discarded = false;
44
- /** Accumulated context updates from completed tools */
45
- this.contextUpdates = {};
46
- /**
47
- * Sibling abort controller for the current concurrent batch.
48
- * When one tool in a batch fails, this aborts all siblings.
49
- */
50
- this.siblingAbortController = null;
51
- /**
52
- * Set of tool IDs in the current concurrent batch.
53
- * Reset when a new batch starts.
54
- */
55
- this.currentBatchIds = new Set();
56
- /**
57
- * Deferred used to wake up getRemainingResults when state changes
58
- * (tool completes, progress arrives, or executor finishes).
59
- */
60
- this.waiter = null;
61
- this.toolContext = toolContext;
62
- this.maxParallel = options?.maxParallel ?? 10;
63
- this.parentSignal = options?.signal;
64
- // Listen to parent abort signal
65
- if (this.parentSignal) {
66
- this.parentSignal.addEventListener("abort", () => this.handleParentAbort(), { once: true });
67
- }
68
- }
69
- /**
70
- * Queue a tool for execution. The tool's `isConcurrencySafe` is evaluated
71
- * once at queue time and cached on the TrackedTool.
72
- *
73
- * If the executor has been discarded, the tool is ignored.
74
- */
75
- addTool(toolCall, tool) {
76
- if (this.discarded) {
77
- loglevel_1.default.warn(`[StreamingToolExecutor] Executor discarded, ignoring tool: ${toolCall.toolName}`);
78
- return;
79
- }
80
- // Evaluate concurrency safety once at queue time (Req 2.3)
81
- const isConcurrencySafe = tool.isConcurrencySafe
82
- ? tool.isConcurrencySafe(toolCall.arguments)
83
- : false; // Default: not concurrency-safe (Req 2.2, 10.2)
84
- const tracked = {
85
- id: toolCall.id,
86
- toolCall,
87
- tool,
88
- status: "queued",
89
- isConcurrencySafe,
90
- results: [],
91
- pendingProgress: [],
92
- };
93
- this.tools.push(tracked);
94
- loglevel_1.default.debug(`[StreamingToolExecutor] Queued tool ${toolCall.toolName} (id=${toolCall.id}, concurrencySafe=${isConcurrencySafe})`);
95
- // Kick the queue
96
- this.processQueue();
97
- }
98
- /**
99
- * Process the tool queue, starting eligible tools while maintaining
100
- * the concurrency invariant.
101
- *
102
- * Invariant: all executing tools are concurrency-safe OR exactly one
103
- * non-safe tool is executing. Additionally, the number of concurrently
104
- * executing tools never exceeds `maxParallel`.
105
- */
106
- processQueue() {
107
- if (this.discarded)
108
- return;
109
- if (this.parentSignal?.aborted)
110
- return;
111
- for (const tool of this.tools) {
112
- if (tool.status !== "queued")
113
- continue;
114
- const executing = this.tools.filter((t) => t.status === "executing");
115
- // Enforce max parallel limit (Req 14.1, 14.2)
116
- if (executing.length >= this.maxParallel) {
117
- break;
118
- }
119
- const canExecute = executing.length === 0 ||
120
- (tool.isConcurrencySafe && executing.every((t) => t.isConcurrencySafe));
121
- if (canExecute) {
122
- // Start a new concurrent batch if needed
123
- if (executing.length === 0 || !this.currentBatchIds.has(executing[0]?.id)) {
124
- this.startNewBatch();
125
- }
126
- tool.status = "executing";
127
- this.currentBatchIds.add(tool.id);
128
- loglevel_1.default.debug(`[StreamingToolExecutor] Starting tool ${tool.toolCall.toolName} (id=${tool.id})`);
129
- tool.promise = this.executeTool(tool).finally(() => {
130
- // Re-evaluate queue after each tool completes
131
- this.processQueue();
132
- // Wake up any waiting async generator
133
- this.notifyWaiter();
134
- });
135
- }
136
- else if (!tool.isConcurrencySafe) {
137
- // Non-concurrent tool must wait — stop scanning to maintain order (Req 1.3, 1.4)
138
- break;
139
- }
140
- // If tool is concurrency-safe but can't run (non-safe tool executing),
141
- // skip it and continue scanning — but actually per the design,
142
- // we should also break here since we need to maintain request order
143
- // for result yielding. A concurrent-safe tool behind a non-safe tool
144
- // should wait too.
145
- }
146
- }
147
- /**
148
- * Start a new sibling abort controller for a concurrent batch.
149
- */
150
- startNewBatch() {
151
- this.siblingAbortController = new AbortController();
152
- this.currentBatchIds = new Set();
153
- }
154
- /**
155
- * Execute a single tool, handling result capture, progress, truncation,
156
- * and error/abort propagation.
157
- */
158
- async executeTool(tracked) {
159
- const { tool, toolCall } = tracked;
160
- const batchAbortController = this.siblingAbortController;
161
- try {
162
- // Pre-execution gates (validateInput → checkPermissions), shared with
163
- // ToolManager.executeTool. These MUST run on the streaming path too:
164
- // when a gate denies, the handler is NOT invoked. Run before any abort
165
- // wiring so a denial returns cleanly with nothing to unwind.
166
- const gateDenial = await (0, toolGates_js_1.evaluateToolGates)(tool, toolCall.arguments, this.toolContext);
167
- if (gateDenial) {
168
- tracked.results.push(gateDenial);
169
- tracked.status = "completed";
170
- return;
171
- }
172
- // Create a combined abort signal from parent + sibling
173
- const toolAbortController = new AbortController();
174
- const abortTool = () => {
175
- const behavior = tool.interruptBehavior
176
- ? tool.interruptBehavior()
177
- : "block"; // Default: block (Req 3.4, 10.5)
178
- if (behavior === "cancel") {
179
- toolAbortController.abort();
180
- }
181
- // 'block' tools are allowed to complete
182
- };
183
- // Listen to sibling abort
184
- if (batchAbortController) {
185
- batchAbortController.signal.addEventListener("abort", abortTool, { once: true });
186
- }
187
- // Listen to parent abort for this specific tool
188
- const parentAbortHandler = () => abortTool();
189
- if (this.parentSignal) {
190
- this.parentSignal.addEventListener("abort", parentAbortHandler, { once: true });
191
- }
192
- // Per-call context so ctx.dispatch() emissions attribute to THIS
193
- // tool even while siblings run concurrently on the shared context.
194
- const dispatchedDirectives = [];
195
- const callContext = {
196
- ...this.toolContext,
197
- dispatch: (directive) => {
198
- dispatchedDirectives.push(directive);
199
- },
200
- };
201
- // Execute the tool handler
202
- const result = await tool.handler(callContext, toolCall.arguments);
203
- // Clean up abort listeners
204
- if (batchAbortController) {
205
- batchAbortController.signal.removeEventListener("abort", abortTool);
206
- }
207
- if (this.parentSignal) {
208
- this.parentSignal.removeEventListener("abort", parentAbortHandler);
209
- }
210
- // Check if we were aborted during execution
211
- if (toolAbortController.signal.aborted) {
212
- tracked.results.push({
213
- success: false,
214
- error: "Tool execution was cancelled",
215
- metadata: { toolId: tool.id, cancelled: true },
216
- });
217
- tracked.status = "completed";
218
- return;
219
- }
220
- // Normalize the result
221
- const executionResult = this.normalizeResult(result, tool);
222
- // Merge ctx.dispatch() emissions with result-carried directives —
223
- // the same collection the sequential ToolManager.executeTool does.
224
- if (dispatchedDirectives.length > 0) {
225
- executionResult.directives = [
226
- ...(executionResult.directives ?? []),
227
- ...dispatchedDirectives,
228
- ];
229
- }
230
- // Apply per-tool maxResultSizeChars truncation (Req 9.4)
231
- const truncatedResult = this.applyResultTruncation(executionResult, tool);
232
- tracked.results.push(truncatedResult);
233
- // Accumulate context updates
234
- if (truncatedResult.contextUpdate) {
235
- this.contextUpdates = {
236
- ...this.contextUpdates,
237
- ...truncatedResult.contextUpdate,
238
- };
239
- }
240
- tracked.status = "completed";
241
- // If the tool failed, abort siblings in the batch (Req 3.1)
242
- if (!truncatedResult.success) {
243
- this.abortSiblings(tracked.id, batchAbortController);
244
- }
245
- }
246
- catch (error) {
247
- const errorMessage = error instanceof Error ? error.message : String(error);
248
- loglevel_1.default.error(`[StreamingToolExecutor] Tool ${toolCall.toolName} (id=${toolCall.id}) failed: ${errorMessage}`);
249
- tracked.results.push({
250
- success: false,
251
- error: errorMessage,
252
- metadata: { toolId: tool.id },
253
- });
254
- tracked.status = "completed";
255
- // Abort siblings on failure (Req 3.1)
256
- this.abortSiblings(tracked.id, batchAbortController);
257
- }
258
- }
259
- /**
260
- * Normalize a tool handler return value into a ToolExecutionResult.
261
- */
262
- normalizeResult(result, tool) {
263
- // Only SEMANTIC markers identify a ToolResult — bare `{data}` / `{error}`
264
- // shapes are indistinguishable from ordinary business payloads and are
265
- // wrapped as raw results instead (shared guard with ToolManager).
266
- if ((0, index_js_1.isToolResultLike)(result)) {
267
- const r = result;
268
- // A handler may return `{ directive }` (singular shorthand) or
269
- // `{ directives }` — normalized via the shared extractor so the
270
- // concurrent path honors them identically to sequential execution.
271
- const directives = (0, index_js_1.extractResultDirectives)(result);
272
- return {
273
- success: r.success !== false,
274
- data: r.data,
275
- error: r.error,
276
- contextUpdate: r.contextUpdate,
277
- dataUpdate: r.dataUpdate,
278
- ...(directives.length > 0 ? { directives } : {}),
279
- metadata: {
280
- toolId: tool.id,
281
- ...r.meta,
282
- },
283
- };
284
- }
285
- return {
286
- success: true,
287
- data: result,
288
- metadata: { toolId: tool.id },
289
- };
290
- }
291
- /**
292
- * Apply per-tool maxResultSizeChars truncation to a result.
293
- * If the stringified result data exceeds the limit, truncate with a notice.
294
- */
295
- applyResultTruncation(result, tool) {
296
- const maxChars = tool.maxResultSizeChars;
297
- if (maxChars == null || maxChars <= 0 || result.data == null) {
298
- return result;
299
- }
300
- const serialized = typeof result.data === "string"
301
- ? result.data
302
- : JSON.stringify(result.data);
303
- if (serialized.length <= maxChars) {
304
- return result;
305
- }
306
- const truncated = serialized.slice(0, maxChars);
307
- const notice = `\n\n[Truncated: ${serialized.length} chars total, showing first ${maxChars}]`;
308
- return {
309
- ...result,
310
- data: truncated + notice,
311
- metadata: {
312
- ...result.metadata,
313
- truncated: true,
314
- originalLength: serialized.length,
315
- },
316
- };
317
- }
318
- /**
319
- * Abort sibling tools in the current concurrent batch when one tool fails.
320
- * Tools with interruptBehavior 'cancel' are immediately aborted;
321
- * tools with 'block' are allowed to complete.
322
- */
323
- abortSiblings(failedToolId, batchAbortController) {
324
- if (!batchAbortController)
325
- return;
326
- loglevel_1.default.warn(`[StreamingToolExecutor] Tool ${failedToolId} failed, aborting sibling tools in batch`);
327
- // Fire the sibling abort signal — individual tool handlers
328
- // check their interruptBehavior to decide whether to cancel or block
329
- batchAbortController.abort();
330
- }
331
- /**
332
- * Handle parent AbortSignal firing.
333
- * Cancel 'cancel' tools immediately, let 'block' tools finish,
334
- * and stop processing new queued tools.
335
- */
336
- handleParentAbort() {
337
- loglevel_1.default.warn("[StreamingToolExecutor] Parent abort signal received");
338
- // Stop processing new tools
339
- this.discarded = true;
340
- // Abort the current batch — individual tools respect their interruptBehavior
341
- if (this.siblingAbortController) {
342
- this.siblingAbortController.abort();
343
- }
344
- // Mark remaining queued tools as completed with cancellation error
345
- for (const tool of this.tools) {
346
- if (tool.status === "queued") {
347
- tool.results.push({
348
- success: false,
349
- error: "Execution cancelled by parent abort signal",
350
- metadata: { toolId: tool.tool.id, cancelled: true },
351
- });
352
- tool.status = "completed";
353
- }
354
- }
355
- // Wake up any waiting async generator
356
- this.notifyWaiter();
357
- }
358
- /**
359
- * Yield completed results in original request order.
360
- * Progress messages are yielded immediately regardless of order.
361
- *
362
- * This is a synchronous generator — it yields what's available now
363
- * without waiting for pending tools.
364
- */
365
- *getCompletedResults() {
366
- for (const tool of this.tools) {
367
- // Always yield pending progress immediately (Req 4.1)
368
- while (tool.pendingProgress.length > 0) {
369
- yield {
370
- toolCallId: tool.id,
371
- progress: tool.pendingProgress.shift(),
372
- };
373
- }
374
- if (tool.status === "yielded")
375
- continue;
376
- if (tool.status === "completed") {
377
- tool.status = "yielded";
378
- for (const result of tool.results) {
379
- yield {
380
- toolCallId: tool.id,
381
- result,
382
- contextUpdate: result.contextUpdate,
383
- dataUpdate: result.dataUpdate,
384
- };
385
- }
386
- }
387
- else {
388
- // Tool is still queued or executing — stop yielding results
389
- // to maintain request order, but continue yielding progress
390
- // for subsequent tools
391
- break;
392
- }
393
- }
394
- }
395
- /**
396
- * Async generator that yields all results (completed and pending) in
397
- * original request order. Waits for pending tools to complete.
398
- *
399
- * Progress messages are yielded immediately as they arrive.
400
- */
401
- async *getRemainingResults() {
402
- let yieldIndex = 0;
403
- while (yieldIndex < this.tools.length || this.hasUnfinishedTools()) {
404
- // Yield progress from all tools (bypass ordering)
405
- for (const tool of this.tools) {
406
- while (tool.pendingProgress.length > 0) {
407
- yield {
408
- toolCallId: tool.id,
409
- progress: tool.pendingProgress.shift(),
410
- };
411
- }
412
- }
413
- // Yield completed results in order
414
- while (yieldIndex < this.tools.length) {
415
- const tool = this.tools[yieldIndex];
416
- if (tool.status === "yielded") {
417
- yieldIndex++;
418
- continue;
419
- }
420
- if (tool.status === "completed") {
421
- tool.status = "yielded";
422
- for (const result of tool.results) {
423
- yield {
424
- toolCallId: tool.id,
425
- result,
426
- contextUpdate: result.contextUpdate,
427
- dataUpdate: result.dataUpdate,
428
- };
429
- }
430
- yieldIndex++;
431
- }
432
- else {
433
- // Tool is still queued or executing — wait for it
434
- break;
435
- }
436
- }
437
- // If there are still unfinished tools, wait for a state change
438
- if (yieldIndex < this.tools.length && this.hasUnfinishedTools()) {
439
- await this.waitForStateChange();
440
- }
441
- else {
442
- break;
443
- }
444
- }
445
- }
446
- /**
447
- * Stop processing new queued tools. Already-executing tools continue
448
- * to completion based on their interruptBehavior.
449
- */
450
- discard() {
451
- loglevel_1.default.info("[StreamingToolExecutor] Executor discarded, stopping queue processing");
452
- this.discarded = true;
453
- this.notifyWaiter();
454
- }
455
- /**
456
- * Return the accumulated context updates from all completed tools.
457
- */
458
- getUpdatedContext() {
459
- return {
460
- ...this.toolContext.context,
461
- ...this.contextUpdates,
462
- };
463
- }
464
- /**
465
- * Check if there are any tools that haven't completed yet.
466
- */
467
- hasUnfinishedTools() {
468
- return this.tools.some((t) => t.status === "queued" || t.status === "executing");
469
- }
470
- /**
471
- * Wait for a state change (tool completion, progress, or discard).
472
- * Uses a deferred promise pattern.
473
- */
474
- waitForStateChange() {
475
- this.waiter = createDeferred();
476
- return this.waiter.promise;
477
- }
478
- /**
479
- * Notify the waiting async generator that state has changed.
480
- */
481
- notifyWaiter() {
482
- if (this.waiter) {
483
- const w = this.waiter;
484
- this.waiter = null;
485
- w.resolve();
486
- }
487
- }
488
- }
489
- exports.StreamingToolExecutor = StreamingToolExecutor;
490
- //# sourceMappingURL=StreamingToolExecutor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StreamingToolExecutor.js","sourceRoot":"","sources":["../../../src/core/StreamingToolExecutor.ts"],"names":[],"mappings":"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"}
@@ -1,133 +0,0 @@
1
- /**
2
- * ToolLoopExecutor owns dynamic tool execution during response generation:
3
- *
4
- * - `runLoop()` — the run-tools-then-ask-LLM-again follow-up loop used by the
5
- * non-streaming path (and as the streaming fallback): executes the initial
6
- * tool calls sequentially, asks the provider whether more tools are needed,
7
- * reconstructs tool-result history items, and forces a final text response
8
- * when tools ran but no message was produced.
9
- * - `runStreamingBatch()` — the streaming path's initial batch execution via
10
- * ToolManager.executeWithConcurrency (StreamingToolExecutor concurrency
11
- * rules), yielding tool-progress chunks; falls back to `runLoop()` when
12
- * concurrent execution fails.
13
- *
14
- * ToolManager remains the registry/resolver and single-tool executor.
15
- */
16
- import type { AgentOptions, AgentResponseStreamChunk, AgentStructuredResponse, Directive, HistoryItem, SessionState } from "../types/index.js";
17
- import type { Flow } from "./Flow.js";
18
- import type { Step } from "./Step.js";
19
- import type { ToolManager } from "./ToolManager.js";
20
- export declare class ToolLoopExecutor<TContext = unknown, TData = unknown> {
21
- private readonly deps;
22
- constructor(deps: {
23
- toolManager: ToolManager<TContext, TData>;
24
- getAgentOptions: () => AgentOptions<TContext, TData>;
25
- updateContext: (updates: Partial<TContext>) => Promise<void>;
26
- updateCollectedData: (updates: Partial<TData>) => Promise<void>;
27
- updateSessionData: (session: SessionState<TData>, dataUpdate: Partial<TData>) => Promise<SessionState<TData>>;
28
- /** Maximum number of tool loops (defaults to 5). */
29
- maxToolLoops?: number;
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
- runLoop(params: {
37
- toolCalls?: Array<{
38
- toolName: string;
39
- arguments: Record<string, unknown>;
40
- }>;
41
- context: TContext;
42
- session: SessionState<TData>;
43
- history: HistoryItem[];
44
- selectedFlow?: Flow<TContext, TData>;
45
- responsePrompt: string;
46
- availableTools: Array<{
47
- id: string;
48
- name: string;
49
- description?: string;
50
- parameters?: unknown;
51
- }>;
52
- responseSchema?: Record<string, unknown>;
53
- signal?: AbortSignal;
54
- }): Promise<{
55
- session: SessionState<TData>;
56
- finalToolCalls?: Array<{
57
- toolName: string;
58
- arguments: Record<string, unknown>;
59
- }>;
60
- finalMessage?: string;
61
- structured?: AgentStructuredResponse;
62
- /** Directives emitted by tools this turn (ctx.dispatch / `{directive}` returns), merged. */
63
- directives?: Directive<TContext, TData>;
64
- }>;
65
- /**
66
- * The multi-round follow-up loop shared by the non-streaming (`runLoop`) and
67
- * streaming (`runStreamingBatch`) tool paths: re-prompt the model with the
68
- * tool results (tools available on the first round so it can chain further
69
- * calls), execute any further tool calls, repeat up to `maxToolLoops`, then
70
- * force a result-aware closing message if the model never produced one.
71
- * Callers run the *initial* batch — sequentially for `runLoop`, concurrently
72
- * (with progress) for `runStreamingBatch` — and pass the populated result
73
- * maps; from here both paths behave identically.
74
- */
75
- private runFollowUpLoop;
76
- /**
77
- * After tools have executed but the model produced no closing text, make one
78
- * more LLM call (no tools) that turns the tool results into a user-facing
79
- * message. Shared by the non-streaming tool loop and the streaming batch so
80
- * both paths behave identically. Returns an empty object if the call fails
81
- * or yields nothing, leaving the caller to fall back to its prior message.
82
- */
83
- private forceFinalTextFromTools;
84
- /**
85
- * Execute the streaming path's initial batch of tool calls concurrently
86
- * via ToolManager.executeWithConcurrency, yielding tool-progress chunks.
87
- * When tools ran but the model produced no closing text, forces a final
88
- * text response from the tool results (mirroring `runLoop()`). Falls back
89
- * to `runLoop()` when concurrent execution fails.
90
- *
91
- * Returns the updated session, final tool calls, and any forced closing
92
- * message/structured response.
93
- */
94
- runStreamingBatch(params: {
95
- toolCalls: Array<{
96
- toolName: string;
97
- arguments: Record<string, unknown>;
98
- }>;
99
- context: TContext;
100
- session: SessionState<TData>;
101
- history: HistoryItem[];
102
- selectedFlow: Flow<TContext, TData>;
103
- step: Step<TContext, TData>;
104
- /** Accumulated text of the LLM's final chunk, echoed on progress chunks. */
105
- accumulated: string;
106
- responsePrompt: string;
107
- availableTools: Array<{
108
- id: string;
109
- name: string;
110
- description?: string;
111
- parameters?: unknown;
112
- }>;
113
- responseSchema?: Record<string, unknown>;
114
- signal?: AbortSignal;
115
- }): AsyncGenerator<AgentResponseStreamChunk<TData>, {
116
- session: SessionState<TData>;
117
- toolCalls: Array<{
118
- toolName: string;
119
- arguments: Record<string, unknown>;
120
- }> | undefined;
121
- /** Closing message forced from the tool results, if one was generated. */
122
- finalMessage?: string;
123
- structured?: AgentStructuredResponse;
124
- /** Directives emitted by tools this turn (ctx.dispatch / `{directive}` returns), merged. */
125
- directives?: Directive<TContext, TData>;
126
- }>;
127
- /**
128
- * Find an available tool by name for the given flow.
129
- * Delegates to ToolManager for unified tool resolution.
130
- */
131
- private findAvailableTool;
132
- }
133
- //# sourceMappingURL=ToolLoopExecutor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolLoopExecutor.d.ts","sourceRoot":"","sources":["../../../src/core/ToolLoopExecutor.ts"],"names":[],"mappings":"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"}