@falai/agent 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/MemoryAdapter.js +29 -33
  3. package/dist/adapters/MemoryAdapter.js.map +1 -1
  4. package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  5. package/dist/adapters/PostgreSQLAdapter.js +16 -11
  6. package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
  7. package/dist/adapters/RedisAdapter.d.ts +1 -0
  8. package/dist/adapters/RedisAdapter.d.ts.map +1 -1
  9. package/dist/adapters/RedisAdapter.js +75 -25
  10. package/dist/adapters/RedisAdapter.js.map +1 -1
  11. package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
  12. package/dist/adapters/SQLiteAdapter.js +7 -29
  13. package/dist/adapters/SQLiteAdapter.js.map +1 -1
  14. package/dist/adapters/sessionRow.d.ts +22 -0
  15. package/dist/adapters/sessionRow.d.ts.map +1 -0
  16. package/dist/adapters/sessionRow.js +48 -0
  17. package/dist/adapters/sessionRow.js.map +1 -0
  18. package/dist/cjs/adapters/MemoryAdapter.js +29 -33
  19. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
  20. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  21. package/dist/cjs/adapters/PostgreSQLAdapter.js +16 -11
  22. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
  23. package/dist/cjs/adapters/RedisAdapter.d.ts +1 -0
  24. package/dist/cjs/adapters/RedisAdapter.d.ts.map +1 -1
  25. package/dist/cjs/adapters/RedisAdapter.js +75 -25
  26. package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
  27. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
  28. package/dist/cjs/adapters/SQLiteAdapter.js +7 -29
  29. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
  30. package/dist/cjs/adapters/sessionRow.d.ts +22 -0
  31. package/dist/cjs/adapters/sessionRow.d.ts.map +1 -0
  32. package/dist/cjs/adapters/sessionRow.js +52 -0
  33. package/dist/cjs/adapters/sessionRow.js.map +1 -0
  34. package/dist/cjs/core/Agent.d.ts +8 -0
  35. package/dist/cjs/core/Agent.d.ts.map +1 -1
  36. package/dist/cjs/core/Agent.js +43 -3
  37. package/dist/cjs/core/Agent.js.map +1 -1
  38. package/dist/cjs/core/AutoChainExecutor.d.ts +8 -18
  39. package/dist/cjs/core/AutoChainExecutor.d.ts.map +1 -1
  40. package/dist/cjs/core/AutoChainExecutor.js +23 -26
  41. package/dist/cjs/core/AutoChainExecutor.js.map +1 -1
  42. package/dist/cjs/core/CompactionEngine.d.ts +14 -1
  43. package/dist/cjs/core/CompactionEngine.d.ts.map +1 -1
  44. package/dist/cjs/core/CompactionEngine.js +30 -6
  45. package/dist/cjs/core/CompactionEngine.js.map +1 -1
  46. package/dist/cjs/core/FlowRouter.d.ts.map +1 -1
  47. package/dist/cjs/core/FlowRouter.js +32 -10
  48. package/dist/cjs/core/FlowRouter.js.map +1 -1
  49. package/dist/cjs/core/ResponseGenerationError.d.ts.map +1 -1
  50. package/dist/cjs/core/ResponseGenerationError.js +3 -5
  51. package/dist/cjs/core/ResponseGenerationError.js.map +1 -1
  52. package/dist/cjs/core/ResponseModal.d.ts +29 -0
  53. package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
  54. package/dist/cjs/core/ResponseModal.js +141 -18
  55. package/dist/cjs/core/ResponseModal.js.map +1 -1
  56. package/dist/cjs/core/ResponsePipeline.d.ts +36 -6
  57. package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -1
  58. package/dist/cjs/core/ResponsePipeline.js +208 -73
  59. package/dist/cjs/core/ResponsePipeline.js.map +1 -1
  60. package/dist/cjs/core/SessionFinalizer.d.ts.map +1 -1
  61. package/dist/cjs/core/SessionFinalizer.js +30 -3
  62. package/dist/cjs/core/SessionFinalizer.js.map +1 -1
  63. package/dist/cjs/core/SessionManager.d.ts +10 -1
  64. package/dist/cjs/core/SessionManager.d.ts.map +1 -1
  65. package/dist/cjs/core/SessionManager.js +43 -16
  66. package/dist/cjs/core/SessionManager.js.map +1 -1
  67. package/dist/cjs/core/SignalProcessor.d.ts.map +1 -1
  68. package/dist/cjs/core/SignalProcessor.js +5 -77
  69. package/dist/cjs/core/SignalProcessor.js.map +1 -1
  70. package/dist/cjs/core/Step.d.ts.map +1 -1
  71. package/dist/cjs/core/Step.js +50 -2
  72. package/dist/cjs/core/Step.js.map +1 -1
  73. package/dist/cjs/core/StepLifecycle.d.ts +16 -6
  74. package/dist/cjs/core/StepLifecycle.d.ts.map +1 -1
  75. package/dist/cjs/core/StepLifecycle.js +97 -14
  76. package/dist/cjs/core/StepLifecycle.js.map +1 -1
  77. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -1
  78. package/dist/cjs/core/StreamingToolExecutor.js +28 -4
  79. package/dist/cjs/core/StreamingToolExecutor.js.map +1 -1
  80. package/dist/cjs/core/ToolLoopExecutor.d.ts +5 -1
  81. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +1 -1
  82. package/dist/cjs/core/ToolLoopExecutor.js +156 -64
  83. package/dist/cjs/core/ToolLoopExecutor.js.map +1 -1
  84. package/dist/cjs/core/ToolManager.d.ts +1 -1
  85. package/dist/cjs/core/ToolManager.d.ts.map +1 -1
  86. package/dist/cjs/core/ToolManager.js +40 -17
  87. package/dist/cjs/core/ToolManager.js.map +1 -1
  88. package/dist/cjs/core/flow-namespace.d.ts +15 -0
  89. package/dist/cjs/core/flow-namespace.d.ts.map +1 -1
  90. package/dist/cjs/core/flow-namespace.js +22 -0
  91. package/dist/cjs/core/flow-namespace.js.map +1 -1
  92. package/dist/cjs/index.d.ts +4 -1
  93. package/dist/cjs/index.d.ts.map +1 -1
  94. package/dist/cjs/index.js +5 -2
  95. package/dist/cjs/index.js.map +1 -1
  96. package/dist/cjs/providers/AnthropicProvider.d.ts +10 -3
  97. package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -1
  98. package/dist/cjs/providers/AnthropicProvider.js +54 -73
  99. package/dist/cjs/providers/AnthropicProvider.js.map +1 -1
  100. package/dist/cjs/providers/GeminiProvider.d.ts +9 -3
  101. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  102. package/dist/cjs/providers/GeminiProvider.js +24 -68
  103. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  104. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +9 -0
  105. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  106. package/dist/cjs/providers/OpenAICompatibleProvider.js +101 -74
  107. package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -1
  108. package/dist/cjs/providers/OpenAIProvider.d.ts +1 -1
  109. package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
  110. package/dist/cjs/providers/OpenAIProvider.js +1 -1
  111. package/dist/cjs/providers/errorClassification.d.ts +7 -0
  112. package/dist/cjs/providers/errorClassification.d.ts.map +1 -1
  113. package/dist/cjs/providers/errorClassification.js +27 -0
  114. package/dist/cjs/providers/errorClassification.js.map +1 -1
  115. package/dist/cjs/types/agent.d.ts +35 -0
  116. package/dist/cjs/types/agent.d.ts.map +1 -1
  117. package/dist/cjs/types/flow.d.ts +49 -32
  118. package/dist/cjs/types/flow.d.ts.map +1 -1
  119. package/dist/cjs/types/index.d.ts +1 -1
  120. package/dist/cjs/types/index.d.ts.map +1 -1
  121. package/dist/cjs/types/index.js.map +1 -1
  122. package/dist/cjs/types/tool.d.ts +2 -0
  123. package/dist/cjs/types/tool.d.ts.map +1 -1
  124. package/dist/cjs/types/tool.js.map +1 -1
  125. package/dist/cjs/utils/index.d.ts +4 -4
  126. package/dist/cjs/utils/index.d.ts.map +1 -1
  127. package/dist/cjs/utils/index.js +10 -1
  128. package/dist/cjs/utils/index.js.map +1 -1
  129. package/dist/cjs/utils/retry.d.ts +99 -1
  130. package/dist/cjs/utils/retry.d.ts.map +1 -1
  131. package/dist/cjs/utils/retry.js +140 -3
  132. package/dist/cjs/utils/retry.js.map +1 -1
  133. package/dist/cjs/utils/serialize.d.ts +17 -0
  134. package/dist/cjs/utils/serialize.d.ts.map +1 -1
  135. package/dist/cjs/utils/serialize.js +33 -0
  136. package/dist/cjs/utils/serialize.js.map +1 -1
  137. package/dist/cjs/utils/session.d.ts +21 -1
  138. package/dist/cjs/utils/session.d.ts.map +1 -1
  139. package/dist/cjs/utils/session.js +36 -4
  140. package/dist/cjs/utils/session.js.map +1 -1
  141. package/dist/core/Agent.d.ts +8 -0
  142. package/dist/core/Agent.d.ts.map +1 -1
  143. package/dist/core/Agent.js +43 -3
  144. package/dist/core/Agent.js.map +1 -1
  145. package/dist/core/AutoChainExecutor.d.ts +8 -18
  146. package/dist/core/AutoChainExecutor.d.ts.map +1 -1
  147. package/dist/core/AutoChainExecutor.js +23 -26
  148. package/dist/core/AutoChainExecutor.js.map +1 -1
  149. package/dist/core/CompactionEngine.d.ts +14 -1
  150. package/dist/core/CompactionEngine.d.ts.map +1 -1
  151. package/dist/core/CompactionEngine.js +30 -6
  152. package/dist/core/CompactionEngine.js.map +1 -1
  153. package/dist/core/FlowRouter.d.ts.map +1 -1
  154. package/dist/core/FlowRouter.js +32 -10
  155. package/dist/core/FlowRouter.js.map +1 -1
  156. package/dist/core/ResponseGenerationError.d.ts.map +1 -1
  157. package/dist/core/ResponseGenerationError.js +3 -5
  158. package/dist/core/ResponseGenerationError.js.map +1 -1
  159. package/dist/core/ResponseModal.d.ts +29 -0
  160. package/dist/core/ResponseModal.d.ts.map +1 -1
  161. package/dist/core/ResponseModal.js +142 -19
  162. package/dist/core/ResponseModal.js.map +1 -1
  163. package/dist/core/ResponsePipeline.d.ts +36 -6
  164. package/dist/core/ResponsePipeline.d.ts.map +1 -1
  165. package/dist/core/ResponsePipeline.js +208 -73
  166. package/dist/core/ResponsePipeline.js.map +1 -1
  167. package/dist/core/SessionFinalizer.d.ts.map +1 -1
  168. package/dist/core/SessionFinalizer.js +31 -4
  169. package/dist/core/SessionFinalizer.js.map +1 -1
  170. package/dist/core/SessionManager.d.ts +10 -1
  171. package/dist/core/SessionManager.d.ts.map +1 -1
  172. package/dist/core/SessionManager.js +44 -17
  173. package/dist/core/SessionManager.js.map +1 -1
  174. package/dist/core/SignalProcessor.d.ts.map +1 -1
  175. package/dist/core/SignalProcessor.js +5 -77
  176. package/dist/core/SignalProcessor.js.map +1 -1
  177. package/dist/core/Step.d.ts.map +1 -1
  178. package/dist/core/Step.js +50 -2
  179. package/dist/core/Step.js.map +1 -1
  180. package/dist/core/StepLifecycle.d.ts +16 -6
  181. package/dist/core/StepLifecycle.d.ts.map +1 -1
  182. package/dist/core/StepLifecycle.js +97 -14
  183. package/dist/core/StepLifecycle.js.map +1 -1
  184. package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
  185. package/dist/core/StreamingToolExecutor.js +28 -4
  186. package/dist/core/StreamingToolExecutor.js.map +1 -1
  187. package/dist/core/ToolLoopExecutor.d.ts +5 -1
  188. package/dist/core/ToolLoopExecutor.d.ts.map +1 -1
  189. package/dist/core/ToolLoopExecutor.js +156 -64
  190. package/dist/core/ToolLoopExecutor.js.map +1 -1
  191. package/dist/core/ToolManager.d.ts +1 -1
  192. package/dist/core/ToolManager.d.ts.map +1 -1
  193. package/dist/core/ToolManager.js +41 -18
  194. package/dist/core/ToolManager.js.map +1 -1
  195. package/dist/core/flow-namespace.d.ts +15 -0
  196. package/dist/core/flow-namespace.d.ts.map +1 -1
  197. package/dist/core/flow-namespace.js +22 -0
  198. package/dist/core/flow-namespace.js.map +1 -1
  199. package/dist/index.d.ts +4 -1
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +2 -1
  202. package/dist/index.js.map +1 -1
  203. package/dist/providers/AnthropicProvider.d.ts +10 -3
  204. package/dist/providers/AnthropicProvider.d.ts.map +1 -1
  205. package/dist/providers/AnthropicProvider.js +56 -75
  206. package/dist/providers/AnthropicProvider.js.map +1 -1
  207. package/dist/providers/GeminiProvider.d.ts +9 -3
  208. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  209. package/dist/providers/GeminiProvider.js +26 -70
  210. package/dist/providers/GeminiProvider.js.map +1 -1
  211. package/dist/providers/OpenAICompatibleProvider.d.ts +9 -0
  212. package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  213. package/dist/providers/OpenAICompatibleProvider.js +103 -76
  214. package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
  215. package/dist/providers/OpenAIProvider.d.ts +1 -1
  216. package/dist/providers/OpenAIProvider.d.ts.map +1 -1
  217. package/dist/providers/OpenAIProvider.js +1 -1
  218. package/dist/providers/errorClassification.d.ts +7 -0
  219. package/dist/providers/errorClassification.d.ts.map +1 -1
  220. package/dist/providers/errorClassification.js +26 -0
  221. package/dist/providers/errorClassification.js.map +1 -1
  222. package/dist/types/agent.d.ts +35 -0
  223. package/dist/types/agent.d.ts.map +1 -1
  224. package/dist/types/flow.d.ts +49 -32
  225. package/dist/types/flow.d.ts.map +1 -1
  226. package/dist/types/index.d.ts +1 -1
  227. package/dist/types/index.d.ts.map +1 -1
  228. package/dist/types/index.js.map +1 -1
  229. package/dist/types/tool.d.ts +2 -0
  230. package/dist/types/tool.d.ts.map +1 -1
  231. package/dist/types/tool.js.map +1 -1
  232. package/dist/utils/index.d.ts +4 -4
  233. package/dist/utils/index.d.ts.map +1 -1
  234. package/dist/utils/index.js +3 -3
  235. package/dist/utils/index.js.map +1 -1
  236. package/dist/utils/retry.d.ts +99 -1
  237. package/dist/utils/retry.d.ts.map +1 -1
  238. package/dist/utils/retry.js +137 -3
  239. package/dist/utils/retry.js.map +1 -1
  240. package/dist/utils/serialize.d.ts +17 -0
  241. package/dist/utils/serialize.d.ts.map +1 -1
  242. package/dist/utils/serialize.js +31 -0
  243. package/dist/utils/serialize.js.map +1 -1
  244. package/dist/utils/session.d.ts +21 -1
  245. package/dist/utils/session.d.ts.map +1 -1
  246. package/dist/utils/session.js +33 -4
  247. package/dist/utils/session.js.map +1 -1
  248. package/docs/concepts/architecture.md +3 -3
  249. package/docs/concepts/directives.md +1 -1
  250. package/docs/guides/error-handling.md +46 -45
  251. package/docs/guides/flow-control.md +8 -1
  252. package/docs/guides/instructions.md +15 -6
  253. package/docs/guides/persistence.md +12 -5
  254. package/docs/guides/streaming.md +10 -0
  255. package/docs/migration/README.md +4 -0
  256. package/docs/migration/v2-3-to-v2-4.md +4 -0
  257. package/docs/migration/v2-6-to-v2-7.md +246 -0
  258. package/docs/reference/adapters.md +15 -1
  259. package/docs/reference/create-agent.md +30 -0
  260. package/docs/reference/directive.md +1 -1
  261. package/docs/reference/errors.md +29 -31
  262. package/docs/reference/providers.md +23 -19
  263. package/docs/reference/step.md +28 -21
  264. package/docs/reference/tool.md +14 -5
  265. package/docs/start/02-first-agent.md +8 -4
  266. package/docs/start/03-collect-data.md +19 -10
  267. package/examples/01-quickstart.ts +1 -1
  268. package/examples/02-data-extraction.ts +1 -1
  269. package/examples/03-tools.ts +1 -1
  270. package/examples/04-instructions.ts +1 -1
  271. package/examples/05-branching.ts +1 -1
  272. package/examples/06-flow-control.ts +3 -3
  273. package/examples/07-streaming.ts +1 -1
  274. package/examples/08-persistence.ts +1 -1
  275. package/examples/09-signals.ts +1 -1
  276. package/package.json +2 -2
  277. package/src/adapters/MemoryAdapter.ts +29 -33
  278. package/src/adapters/PostgreSQLAdapter.ts +23 -18
  279. package/src/adapters/RedisAdapter.ts +81 -34
  280. package/src/adapters/SQLiteAdapter.ts +10 -31
  281. package/src/adapters/sessionRow.ts +57 -0
  282. package/src/core/Agent.ts +51 -3
  283. package/src/core/AutoChainExecutor.ts +37 -50
  284. package/src/core/CompactionEngine.ts +40 -6
  285. package/src/core/FlowRouter.ts +38 -12
  286. package/src/core/ResponseGenerationError.ts +3 -6
  287. package/src/core/ResponseModal.ts +185 -19
  288. package/src/core/ResponsePipeline.ts +259 -85
  289. package/src/core/SessionFinalizer.ts +35 -5
  290. package/src/core/SessionManager.ts +55 -21
  291. package/src/core/SignalProcessor.ts +5 -85
  292. package/src/core/Step.ts +79 -2
  293. package/src/core/StepLifecycle.ts +125 -22
  294. package/src/core/StreamingToolExecutor.ts +31 -6
  295. package/src/core/ToolLoopExecutor.ts +201 -75
  296. package/src/core/ToolManager.ts +45 -18
  297. package/src/core/flow-namespace.ts +29 -0
  298. package/src/index.ts +4 -1
  299. package/src/providers/AnthropicProvider.ts +83 -131
  300. package/src/providers/GeminiProvider.ts +42 -116
  301. package/src/providers/OpenAICompatibleProvider.ts +132 -133
  302. package/src/providers/OpenAIProvider.ts +2 -2
  303. package/src/providers/errorClassification.ts +34 -0
  304. package/src/types/agent.ts +34 -0
  305. package/src/types/flow.ts +37 -39
  306. package/src/types/index.ts +1 -0
  307. package/src/types/tool.ts +2 -0
  308. package/src/utils/index.ts +22 -3
  309. package/src/utils/retry.ts +251 -2
  310. package/src/utils/serialize.ts +38 -0
  311. package/src/utils/session.ts +41 -4
  312. package/dist/cjs/core/DirectiveBus.d.ts +0 -88
  313. package/dist/cjs/core/DirectiveBus.d.ts.map +0 -1
  314. package/dist/cjs/core/DirectiveBus.js +0 -196
  315. package/dist/cjs/core/DirectiveBus.js.map +0 -1
  316. package/dist/core/DirectiveBus.d.ts +0 -88
  317. package/dist/core/DirectiveBus.d.ts.map +0 -1
  318. package/dist/core/DirectiveBus.js +0 -192
  319. package/dist/core/DirectiveBus.js.map +0 -1
  320. package/src/core/DirectiveBus.ts +0 -248
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,gBAAgB;AAChB,2BAMc;AALZ,oGAAA,cAAc,OAAA;AACd,oGAAA,cAAc,OAAA;AACd,oGAAA,cAAc,OAAA;AACd,0GAAA,oBAAoB,OAAA;AACpB,sGAAA,gBAAgB,OAAA;AAGlB,qBAAqB;AACrB,qCAWmB;AAVjB,wGAAA,aAAa,OAAA;AACb,0GAAA,eAAe,OAAA;AACf,+GAAA,oBAAoB,OAAA;AACpB,oGAAA,SAAS,OAAA;AACT,oGAAA,SAAS,OAAA;AACT,8GAAA,mBAAmB,OAAA;AACnB,qHAAA,0BAA0B,OAAA;AAC1B,yGAAA,cAAc,OAAA;AACd,4GAAA,iBAAiB,OAAA;AACjB,4GAAA,iBAAiB,OAAA;AAGnB,qBAAqB;AACrB,uCAKoB;AAJlB,kGAAA,MAAM,OAAA;AACN,sGAAA,UAAU,OAAA;AACV,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AAGvB,oBAAoB;AACpB,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,kBAAkB;AAClB,iCAAoD;AAA3C,kHAAA,yBAAyB,OAAA;AAElC,oBAAoB;AACpB,qCASmB;AARjB,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,sGAAA,WAAW,OAAA;AACX,2GAAA,gBAAgB,OAAA;AAChB,sGAAA,WAAW,OAAA;AACX,wGAAA,aAAa,OAAA;AAGf,UAAU;AACV,mCAA+C;AAAtC,qGAAA,WAAW,OAAA;AAAE,gGAAA,MAAM,OAAA;AAI5B,iCAA+G;AAAtG,8FAAA,KAAK,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAAE,wGAAA,eAAe,OAAA;AAAE,2GAAA,kBAAkB,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAE7F,qBAAqB;AACrB,2CAA4E;AAAnE,kHAAA,oBAAoB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AAErD,sBAAsB;AACtB,yCAKqB;AAJnB,+GAAA,kBAAkB,OAAA;AAClB,qHAAA,wBAAwB,OAAA;AACxB,oHAAA,uBAAuB,OAAA;AACvB,sHAAA,yBAAyB,OAAA;AAG3B,iBAAiB;AACjB,+BAAiE;AAAxD,yGAAA,iBAAiB,OAAA;AAAE,4GAAA,oBAAoB,OAAA;AAEhD,0BAA0B;AAC1B,yCAAkD;AAAzC,gHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;AAEH,gBAAgB;AAChB,2BAMc;AALZ,oGAAA,cAAc,OAAA;AACd,oGAAA,cAAc,OAAA;AACd,oGAAA,cAAc,OAAA;AACd,0GAAA,oBAAoB,OAAA;AACpB,sGAAA,gBAAgB,OAAA;AAGlB,qBAAqB;AACrB,qCAcmB;AAbjB,wGAAA,aAAa,OAAA;AACb,0GAAA,eAAe,OAAA;AACf,mHAAA,wBAAwB,OAAA;AACxB,uHAAA,4BAA4B,OAAA;AAC5B,+GAAA,oBAAoB,OAAA;AACpB,yGAAA,cAAc,OAAA;AACd,oGAAA,SAAS,OAAA;AACT,oGAAA,SAAS,OAAA;AACT,8GAAA,mBAAmB,OAAA;AACnB,qHAAA,0BAA0B,OAAA;AAC1B,yGAAA,cAAc,OAAA;AACd,4GAAA,iBAAiB,OAAA;AACjB,4GAAA,iBAAiB,OAAA;AAGnB,qBAAqB;AACrB,uCAKoB;AAJlB,kGAAA,MAAM,OAAA;AACN,sGAAA,UAAU,OAAA;AACV,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AAGvB,oBAAoB;AACpB,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,kBAAkB;AAClB,iCAAoD;AAA3C,kHAAA,yBAAyB,OAAA;AAElC,oBAAoB;AACpB,qCASmB;AARjB,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,sGAAA,WAAW,OAAA;AACX,2GAAA,gBAAgB,OAAA;AAChB,sGAAA,WAAW,OAAA;AACX,wGAAA,aAAa,OAAA;AAGf,UAAU;AACV,mCAA+C;AAAtC,qGAAA,WAAW,OAAA;AAAE,gGAAA,MAAM,OAAA;AAW5B,iCASiB;AARf,8FAAA,KAAK,OAAA;AACL,4GAAA,mBAAmB,OAAA;AACnB,wGAAA,eAAe,OAAA;AACf,2GAAA,kBAAkB,OAAA;AAClB,4GAAA,mBAAmB,OAAA;AACnB,2GAAA,kBAAkB,OAAA;AAClB,iHAAA,wBAAwB,OAAA;AACxB,8GAAA,qBAAqB,OAAA;AAGvB,qBAAqB;AACrB,2CAA4E;AAAnE,kHAAA,oBAAoB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AAErD,sBAAsB;AACtB,yCAKqB;AAJnB,+GAAA,kBAAkB,OAAA;AAClB,qHAAA,wBAAwB,OAAA;AACxB,oHAAA,uBAAuB,OAAA;AACvB,sHAAA,yBAAyB,OAAA;AAG3B,iBAAiB;AACjB,+BAAiE;AAAxD,yGAAA,iBAAiB,OAAA;AAAE,4GAAA,oBAAoB,OAAA;AAEhD,0BAA0B;AAC1B,yCAA6F;AAApF,gHAAA,mBAAmB,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,oHAAA,uBAAuB,OAAA"}
@@ -4,6 +4,13 @@ export interface RetryOptions<T> {
4
4
  delay: (attempt: number) => number;
5
5
  onRetry?: (attempt: number, error: unknown) => void;
6
6
  onFailure?: (error: unknown) => boolean;
7
+ /**
8
+ * Predicate deciding whether an error may be retried at all. When it returns
9
+ * `false` the error is rethrown immediately — no backoff, no further attempts.
10
+ * Providers pass a classifier here so deterministic failures (401, 400,
11
+ * caller aborts) fail fast instead of burning the full retry budget.
12
+ */
13
+ isRetriable?: (error: unknown) => boolean;
7
14
  }
8
15
  /** Provider timeout (ms) + retry count, after defaults are applied. */
9
16
  export interface RetryConfig {
@@ -35,7 +42,7 @@ export declare function retry<T>(options: RetryOptions<T>): Promise<T>;
35
42
  * garbage-collected, which is fine for the usual per-request signal.
36
43
  */
37
44
  export declare function combineAbortSignals(...signals: Array<AbortSignal | undefined>): AbortSignal | undefined;
38
- export declare const withTimeoutAndRetry: <T>(operation: (signal: AbortSignal) => Promise<T>, timeoutMs?: number, maxRetries?: number, operationName?: string) => Promise<T>;
45
+ export declare const withTimeoutAndRetry: <T>(operation: (signal: AbortSignal) => Promise<T>, timeoutMs?: number, maxRetries?: number, operationName?: string, isRetriable?: (error: unknown) => boolean) => Promise<T>;
39
46
  export interface StreamRetryOptions {
40
47
  /** Maximum number of retries after the first attempt. Defaults to 3. */
41
48
  maxRetries?: number;
@@ -43,6 +50,12 @@ export interface StreamRetryOptions {
43
50
  delay?: (attempt: number) => number;
44
51
  /** Label used in retry logs. */
45
52
  operationName?: string;
53
+ /**
54
+ * Predicate deciding whether a pre-first-chunk failure may be retried.
55
+ * When it returns `false` the error propagates immediately. Post-first-chunk
56
+ * failures are never retried regardless (the stream is already committed).
57
+ */
58
+ isRetriable?: (error: unknown) => boolean;
46
59
  /**
47
60
  * Max ms to wait for the *first* chunk (time-to-first-token) before treating
48
61
  * the attempt as failed. Guards a provider that opens a stream and then
@@ -64,4 +77,89 @@ export interface StreamRetryOptions {
64
77
  * before the caller falls through to backup models.
65
78
  */
66
79
  export declare function withStreamRetry<T>(factory: (signal: AbortSignal) => AsyncGenerator<T>, options?: StreamRetryOptions): AsyncGenerator<T>;
80
+ /**
81
+ * Inputs shared by {@link withBackupFallback} and {@link streamWithBackupFallback}.
82
+ *
83
+ * The walkers own only control flow: which model runs next and when the walk
84
+ * gives up. Logging and terminal-error wrapping stay with the caller (via the
85
+ * callbacks and a try/catch around the call), so each provider keeps its exact
86
+ * log prefixes, classification options and error normalization.
87
+ */
88
+ export interface BackupFallbackBase {
89
+ /**
90
+ * Models to try in order: `[primaryModel, ...backupModels]`. The first
91
+ * successful attempt wins; every failure advances (or stops) the walk.
92
+ */
93
+ models: string[];
94
+ /**
95
+ * Predicate deciding whether a failure may fall through to the remaining
96
+ * models. Returning `false` stops the walk and rethrows the error — a
97
+ * deterministic failure (auth, invalid request) would hit identically on
98
+ * every backup. Must be a pure classifier: it may be evaluated more than
99
+ * once per error (the failure callback recomputes it to annotate logs).
100
+ */
101
+ shouldTryBackup: (error: unknown) => boolean;
102
+ /**
103
+ * Called once per failed model, before the backup decision is applied.
104
+ * `attemptNo` is the 1-based position in `models` (`1` = primary) and
105
+ * `total` is `models.length`, so callers can distinguish the primary
106
+ * failure and tell whether any model remains after this one
107
+ * (`attemptNo < total`).
108
+ */
109
+ onModelFailed?: (model: string, error: unknown, attemptNo: number, total: number) => void;
110
+ /**
111
+ * Called before each *backup* attempt (position > 0). `backupNo` and
112
+ * `backupTotal` count backups only (`1..models.length - 1`), matching the
113
+ * historical "Trying backup model 1/2: …" log shape.
114
+ */
115
+ onBackupStart?: (model: string, backupNo: number, backupTotal: number) => void;
116
+ /** Called when a backup succeeds, just before its result is returned/yielded. */
117
+ onBackupSucceeded?: (model: string) => void;
118
+ }
119
+ export interface BackupFallbackOptions<T> extends BackupFallbackBase {
120
+ /** Run one model. A rejection marks the model failed; the resolved value wins. */
121
+ attempt: (model: string) => Promise<T>;
122
+ }
123
+ export interface StreamBackupFallbackOptions<T> extends BackupFallbackBase {
124
+ /** Produce one model's chunk stream; consumed lazily via `yield*`. */
125
+ attempt: (model: string) => AsyncGenerator<T>;
126
+ }
127
+ /**
128
+ * Try `models[0]` (the primary); on failure, if `shouldTryBackup` allows,
129
+ * walk the remaining backup models in order. Resolves with the first
130
+ * successful result; otherwise rethrows the last error seen. Errors are
131
+ * rethrown untouched — wrap them at the call site.
132
+ *
133
+ * Streaming twin: {@link streamWithBackupFallback}.
134
+ */
135
+ export declare function withBackupFallback<T>(opts: BackupFallbackOptions<T>): Promise<T>;
136
+ /**
137
+ * Streaming twin of {@link withBackupFallback}: same walk, consuming each
138
+ * model's chunk stream lazily via `yield*` so chunks flow through unchanged.
139
+ * A stream that errors before completion counts as that model's failure and
140
+ * the walk proceeds exactly as in the non-streaming case.
141
+ */
142
+ export declare function streamWithBackupFallback<T>(opts: StreamBackupFallbackOptions<T>): AsyncGenerator<T>;
143
+ /**
144
+ * Standard logging observer for the backup-fallback walkers. Holds the
145
+ * per-walk state (primary error message, whether backups were tried) that the
146
+ * terminal "All models failed" log needs, so each provider call site is just
147
+ * `attempt` + `shouldTryBackup` + its own terminal error wrap.
148
+ *
149
+ * ```ts
150
+ * const observer = backupFallbackLogging("[OPENAI]", shouldUseBackupModel);
151
+ * try {
152
+ * return await withBackupFallback({ models, attempt, shouldTryBackup, ...observer.callbacks });
153
+ * } catch (error) {
154
+ * observer.logExhausted(error);
155
+ * throw wrap(error);
156
+ * }
157
+ * ```
158
+ */
159
+ export declare function backupFallbackLogging(label: string, shouldTryBackup: (error: unknown) => boolean, options?: {
160
+ streaming?: boolean;
161
+ }): {
162
+ callbacks: Pick<BackupFallbackBase, "onModelFailed" | "onBackupStart" | "onBackupSucceeded">;
163
+ logExhausted: (lastError: unknown) => void;
164
+ };
67
165
  //# sourceMappingURL=retry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/utils/retry.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACzC;AAED,uEAAuE;AACvE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,WAAW,CAKd;AAED,wBAAsB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA8BnE;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,OAAO,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,GACzC,WAAW,GAAG,SAAS,CAgBzB;AAED,eAAO,MAAM,mBAAmB,GAAU,CAAC,EACzC,WAAW,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9C,YAAW,MAAc,EACzB,aAAY,MAAU,EACtB,gBAAe,MAAuB,KACrC,OAAO,CAAC,CAAC,CAiDX,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAuBD;;;;;;;;;;;GAWG;AACH,wBAAuB,eAAe,CAAC,CAAC,EACtC,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,cAAc,CAAC,CAAC,CAAC,EACnD,OAAO,GAAE,kBAAuB,GAC/B,cAAc,CAAC,CAAC,CAAC,CAwDnB"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/utils/retry.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,14 @@ exports.resolveRetryConfig = resolveRetryConfig;
5
5
  exports.retry = retry;
6
6
  exports.combineAbortSignals = combineAbortSignals;
7
7
  exports.withStreamRetry = withStreamRetry;
8
+ exports.withBackupFallback = withBackupFallback;
9
+ exports.streamWithBackupFallback = streamWithBackupFallback;
10
+ exports.backupFallbackLogging = backupFallbackLogging;
8
11
  /**
9
12
  * Retry utility with exponential backoff
10
13
  */
11
14
  const logger_1 = require("./logger");
15
+ const errorClassification_1 = require("../providers/errorClassification");
12
16
  const DEFAULT_RETRY_CONFIG = {
13
17
  timeout: 60000,
14
18
  retries: 3,
@@ -27,7 +31,7 @@ function resolveRetryConfig(input) {
27
31
  };
28
32
  }
29
33
  async function retry(options) {
30
- const { operation, maxRetries, delay, onRetry, onFailure } = options;
34
+ const { operation, maxRetries, delay, onRetry, onFailure, isRetriable } = options;
31
35
  let lastError;
32
36
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
33
37
  try {
@@ -35,6 +39,11 @@ async function retry(options) {
35
39
  }
36
40
  catch (error) {
37
41
  lastError = error;
42
+ // Unretriable errors (auth, invalid request, caller aborts) fail fast —
43
+ // retrying a deterministic failure only adds latency to the same outcome.
44
+ if (isRetriable && !isRetriable(error)) {
45
+ throw error;
46
+ }
38
47
  if (attempt === maxRetries) {
39
48
  const shouldRethrow = onFailure ? onFailure(lastError) : true;
40
49
  if (shouldRethrow) {
@@ -84,7 +93,7 @@ function combineAbortSignals(...signals) {
84
93
  }
85
94
  return controller.signal;
86
95
  }
87
- const withTimeoutAndRetry = async (operation, timeoutMs = 60000, maxRetries = 3, operationName = "AI operation") => {
96
+ const withTimeoutAndRetry = async (operation, timeoutMs = 60000, maxRetries = 3, operationName = "AI operation", isRetriable) => {
88
97
  const createTimeoutOperation = () => async () => {
89
98
  const controller = new AbortController();
90
99
  const timeoutId = setTimeout(() => {
@@ -114,6 +123,7 @@ const withTimeoutAndRetry = async (operation, timeoutMs = 60000, maxRetries = 3,
114
123
  operation: createTimeoutOperation(),
115
124
  maxRetries,
116
125
  delay: defaultBackoff,
126
+ isRetriable,
117
127
  onRetry: (attempt, error) => {
118
128
  const message = error instanceof Error ? error.message : String(error);
119
129
  logger_1.logger.error(`[${operationName}] Failed attempt ${attempt + 1}:`, message);
@@ -149,7 +159,7 @@ function raceFirstChunk(next, timeoutMs, operationName) {
149
159
  * before the caller falls through to backup models.
150
160
  */
151
161
  async function* withStreamRetry(factory, options = {}) {
152
- const { maxRetries = 3, delay = defaultBackoff, operationName = "AI stream", firstChunkTimeoutMs, } = options;
162
+ const { maxRetries = 3, delay = defaultBackoff, operationName = "AI stream", firstChunkTimeoutMs, isRetriable, } = options;
153
163
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
154
164
  // One controller per attempt: aborting it on abandon cancels the upstream
155
165
  // SDK call so a retry can't stack a second concurrent stream.
@@ -173,6 +183,11 @@ async function* withStreamRetry(factory, options = {}) {
173
183
  }
174
184
  }
175
185
  catch (error) {
186
+ // Unretriable errors (auth, invalid request, caller aborts) propagate
187
+ // immediately — no backoff for a deterministic failure.
188
+ if (isRetriable && !isRetriable(error)) {
189
+ throw error;
190
+ }
176
191
  // Can't retry once deltas are out, and don't retry past the budget.
177
192
  if (yielded || attempt === maxRetries) {
178
193
  throw error;
@@ -198,4 +213,126 @@ async function* withStreamRetry(factory, options = {}) {
198
213
  }
199
214
  }
200
215
  }
216
+ /**
217
+ * Try `models[0]` (the primary); on failure, if `shouldTryBackup` allows,
218
+ * walk the remaining backup models in order. Resolves with the first
219
+ * successful result; otherwise rethrows the last error seen. Errors are
220
+ * rethrown untouched — wrap them at the call site.
221
+ *
222
+ * Streaming twin: {@link streamWithBackupFallback}.
223
+ */
224
+ async function withBackupFallback(opts) {
225
+ const { models, attempt, shouldTryBackup, onModelFailed, onBackupStart, onBackupSucceeded, } = opts;
226
+ if (models.length === 0) {
227
+ throw new Error("withBackupFallback: `models` must include a primary model");
228
+ }
229
+ let lastError;
230
+ for (let i = 0; i < models.length; i++) {
231
+ const model = models[i];
232
+ if (i > 0)
233
+ onBackupStart?.(model, i, models.length - 1);
234
+ try {
235
+ const result = await attempt(model);
236
+ if (i > 0)
237
+ onBackupSucceeded?.(model);
238
+ return result;
239
+ }
240
+ catch (error) {
241
+ lastError = error;
242
+ onModelFailed?.(model, error, i + 1, models.length);
243
+ // A failure that doesn't qualify for backup ends the walk — the
244
+ // remaining models would hit the same deterministic error. Falling
245
+ // through to the throw covers both this early exit and exhaustion.
246
+ if (!shouldTryBackup(error))
247
+ break;
248
+ }
249
+ }
250
+ throw lastError;
251
+ }
252
+ /**
253
+ * Streaming twin of {@link withBackupFallback}: same walk, consuming each
254
+ * model's chunk stream lazily via `yield*` so chunks flow through unchanged.
255
+ * A stream that errors before completion counts as that model's failure and
256
+ * the walk proceeds exactly as in the non-streaming case.
257
+ */
258
+ async function* streamWithBackupFallback(opts) {
259
+ const { models, attempt, shouldTryBackup, onModelFailed, onBackupStart, onBackupSucceeded, } = opts;
260
+ if (models.length === 0) {
261
+ throw new Error("streamWithBackupFallback: `models` must include a primary model");
262
+ }
263
+ let lastError;
264
+ for (let i = 0; i < models.length; i++) {
265
+ const model = models[i];
266
+ if (i > 0)
267
+ onBackupStart?.(model, i, models.length - 1);
268
+ try {
269
+ yield* attempt(model);
270
+ if (i > 0)
271
+ onBackupSucceeded?.(model);
272
+ return;
273
+ }
274
+ catch (error) {
275
+ lastError = error;
276
+ onModelFailed?.(model, error, i + 1, models.length);
277
+ if (!shouldTryBackup(error))
278
+ break;
279
+ }
280
+ }
281
+ throw lastError;
282
+ }
283
+ /**
284
+ * Standard logging observer for the backup-fallback walkers. Holds the
285
+ * per-walk state (primary error message, whether backups were tried) that the
286
+ * terminal "All models failed" log needs, so each provider call site is just
287
+ * `attempt` + `shouldTryBackup` + its own terminal error wrap.
288
+ *
289
+ * ```ts
290
+ * const observer = backupFallbackLogging("[OPENAI]", shouldUseBackupModel);
291
+ * try {
292
+ * return await withBackupFallback({ models, attempt, shouldTryBackup, ...observer.callbacks });
293
+ * } catch (error) {
294
+ * observer.logExhausted(error);
295
+ * throw wrap(error);
296
+ * }
297
+ * ```
298
+ */
299
+ function backupFallbackLogging(label, shouldTryBackup, options) {
300
+ let primaryErrMsg = "";
301
+ // Records that the primary failed but qualified for backups — the only path
302
+ // that reaches the "All models failed" terminal log; an ineligible primary
303
+ // rethrows directly.
304
+ let tryingBackups = false;
305
+ const streamSuffix = options?.streaming ? " for streaming" : "";
306
+ return {
307
+ callbacks: {
308
+ onModelFailed: (model, error, attemptNo, total) => {
309
+ const errMsg = (0, errorClassification_1.getErrorMessage)(error);
310
+ if (attemptNo === 1) {
311
+ primaryErrMsg = errMsg;
312
+ logger_1.logger.warn(`${label} Primary model ${model} failed: ${errMsg}`);
313
+ if (shouldTryBackup(error)) {
314
+ tryingBackups = true;
315
+ logger_1.logger.debug(`${label} Trying backup models${streamSuffix}`);
316
+ }
317
+ return;
318
+ }
319
+ logger_1.logger.warn(`${label} Backup model ${model} failed: ${errMsg}`);
320
+ if (!shouldTryBackup(error) && attemptNo < total) {
321
+ logger_1.logger.debug(`${label} Backup model error doesn't qualify for further attempts`);
322
+ }
323
+ },
324
+ onBackupStart: (model, backupNo, backupTotal) => {
325
+ logger_1.logger.debug(`${label} Trying backup model ${backupNo}/${backupTotal}: ${model}`);
326
+ },
327
+ onBackupSucceeded: (model) => {
328
+ logger_1.logger.debug(`${label} Backup model ${model} succeeded`);
329
+ },
330
+ },
331
+ logExhausted: (lastError) => {
332
+ if (tryingBackups) {
333
+ logger_1.logger.error(`${label} All models failed. Primary: ${primaryErrMsg}, Last backup: ${(0, errorClassification_1.getErrorMessage)(lastError)}`);
334
+ }
335
+ },
336
+ };
337
+ }
201
338
  //# sourceMappingURL=retry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/utils/retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/utils/retry.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,23 @@
1
1
  /**
2
2
  * Serialization utilities for tool results and other data
3
3
  */
4
+ import type { Directive } from "../types/flow";
5
+ import type { ToolResult } from "../types/tool";
6
+ /**
7
+ * Decide whether a tool handler's return value is a ToolResult-shaped object.
8
+ * Only SEMANTIC markers identify one — bare `{data}` / `{error}` shapes are
9
+ * indistinguishable from ordinary business payloads (e.g. upstream API
10
+ * envelopes) and must be wrapped as raw results instead. Shared by the
11
+ * sequential (ToolManager) and concurrent (StreamingToolExecutor) paths so the
12
+ * definition of "is a ToolResult" can't drift between them.
13
+ */
14
+ export declare function isToolResultLike(result: unknown): result is ToolResult;
15
+ /**
16
+ * Collect a ToolResult's directives — `{directive}` (singular shorthand) and
17
+ * `{directives}` both count. Singular merges FIRST so plural entries win reply
18
+ * ties (last-wins merge), identical on both executor paths.
19
+ */
20
+ export declare function extractResultDirectives<TContext = unknown, TData = unknown>(result: ToolResult<unknown, TContext, TData>): Directive<TContext, TData>[];
4
21
  /**
5
22
  * Serialize a tool execution result into a string suitable for conversation history.
6
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/utils/serialize.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CA6BT"}
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/utils/serialize.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,UAAU,CAWtE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EACzE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAC3C,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAK9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CA6BT"}
@@ -3,7 +3,40 @@
3
3
  * Serialization utilities for tool results and other data
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isToolResultLike = isToolResultLike;
7
+ exports.extractResultDirectives = extractResultDirectives;
6
8
  exports.serializeToolResult = serializeToolResult;
9
+ /**
10
+ * Decide whether a tool handler's return value is a ToolResult-shaped object.
11
+ * Only SEMANTIC markers identify one — bare `{data}` / `{error}` shapes are
12
+ * indistinguishable from ordinary business payloads (e.g. upstream API
13
+ * envelopes) and must be wrapped as raw results instead. Shared by the
14
+ * sequential (ToolManager) and concurrent (StreamingToolExecutor) paths so the
15
+ * definition of "is a ToolResult" can't drift between them.
16
+ */
17
+ function isToolResultLike(result) {
18
+ return (result !== null &&
19
+ typeof result === "object" &&
20
+ (("success" in result &&
21
+ typeof result.success === "boolean") ||
22
+ "directive" in result ||
23
+ "directives" in result ||
24
+ "dataUpdate" in result ||
25
+ "contextUpdate" in result));
26
+ }
27
+ /**
28
+ * Collect a ToolResult's directives — `{directive}` (singular shorthand) and
29
+ * `{directives}` both count. Singular merges FIRST so plural entries win reply
30
+ * ties (last-wins merge), identical on both executor paths.
31
+ */
32
+ function extractResultDirectives(result) {
33
+ const directives = [];
34
+ if (result.directive)
35
+ directives.push(result.directive);
36
+ if (Array.isArray(result.directives))
37
+ directives.push(...result.directives);
38
+ return directives;
39
+ }
7
40
  /**
8
41
  * Serialize a tool execution result into a string suitable for conversation history.
9
42
  *
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/utils/serialize.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAYH,kDAiCC;AA3CD;;;;;;;;;GASG;AACH,SAAgB,mBAAmB,CAAC,MAInC;IACC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,0BAA0B,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;IACrE,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,8DAA8D;IAC9D,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAA+B,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,mCAAmC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9D,CAAC;QACD,OAAO,6DAA6D,CAAC;IACvE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/utils/serialize.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAaH,4CAWC;AAOD,0DAOC;AAYD,kDAiCC;AA9ED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAC,MAAe;IAC9C,OAAO,CACL,MAAM,KAAK,IAAI;QACf,OAAO,MAAM,KAAK,QAAQ;QAC1B,CAAC,CAAC,SAAS,IAAI,MAAM;YACnB,OAAQ,MAAkC,CAAC,OAAO,KAAK,SAAS,CAAC;YACjE,WAAW,IAAI,MAAM;YACrB,YAAY,IAAI,MAAM;YACtB,YAAY,IAAI,MAAM;YACtB,eAAe,IAAI,MAAM,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CACrC,MAA4C;IAE5C,MAAM,UAAU,GAAiC,EAAE,CAAC;IACpD,IAAI,MAAM,CAAC,SAAS;QAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5E,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,mBAAmB,CAAC,MAInC;IACC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,0BAA0B,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;IACrE,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,8DAA8D;IAC9D,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAA+B,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,mCAAmC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9D,CAAC;QACD,OAAO,6DAA6D,CAAC;IACvE,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { SessionState } from "../types/session";
2
+ import type { History } from "../types/history";
2
3
  import type { CollectedStateData } from "../types/persistence";
3
4
  /**
4
5
  * Helper to create a new session
@@ -13,8 +14,27 @@ import type { CollectedStateData } from "../types/persistence";
13
14
  export declare function createSession<TData = Record<string, unknown>>(sessionId?: string, metadata?: SessionState<TData>["metadata"]): SessionState<TData>;
14
15
  export declare function createSession<TData = Record<string, unknown>>(state: Partial<SessionState<TData>>): SessionState<TData>;
15
16
  /**
16
- * Helper to create a new session ID
17
+ * Default conversation-history bound applied when the agent configures neither
18
+ * `maxHistoryMessages` nor compaction: generous enough to never bite a real
19
+ * thread, finite so a long-running chat()/stream() session can't grow until
20
+ * the provider context limit bricks it.
17
21
  */
22
+ export declare const DEFAULT_MAX_HISTORY_MESSAGES = 400;
23
+ /**
24
+ * Bound a conversation history to its most recent `max` entries. The left
25
+ * edge never opens on an orphaned role:'tool' message (whose assistant
26
+ * tool_calls parent was cut) — providers reject such histories. Returns the
27
+ * SAME array reference when no truncation is needed.
28
+ */
29
+ export declare function boundConversationHistory(history: History, max: number): History;
30
+ /**
31
+ * Restore a session from a persisted blob (the named inverse of
32
+ * `createPersistedState`). Restores data + flowHistory verbatim — including a
33
+ * completed-flow blob, whose collected state MUST survive the round trip.
34
+ * Prefer this over the ambiguous `createSession(state)` overload.
35
+ */
36
+ export declare function restoreSession<TData = Record<string, unknown>>(state: Partial<SessionState<TData>>): SessionState<TData>;
37
+ /** Helper to create a new session ID */
18
38
  export declare function createSessionId(): string;
19
39
  /**
20
40
  * Clones a session to prevent mutation
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/utils/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/utils/session.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_MAX_HISTORY_MESSAGES = void 0;
3
4
  exports.createSession = createSession;
5
+ exports.boundConversationHistory = boundConversationHistory;
6
+ exports.restoreSession = restoreSession;
4
7
  exports.createSessionId = createSessionId;
5
8
  exports.cloneSession = cloneSession;
6
9
  exports.enterFlow = enterFlow;
@@ -51,8 +54,37 @@ function createSession(sessionIdOrState, metadata) {
51
54
  };
52
55
  }
53
56
  /**
54
- * Helper to create a new session ID
57
+ * Default conversation-history bound applied when the agent configures neither
58
+ * `maxHistoryMessages` nor compaction: generous enough to never bite a real
59
+ * thread, finite so a long-running chat()/stream() session can't grow until
60
+ * the provider context limit bricks it.
55
61
  */
62
+ exports.DEFAULT_MAX_HISTORY_MESSAGES = 400;
63
+ /**
64
+ * Bound a conversation history to its most recent `max` entries. The left
65
+ * edge never opens on an orphaned role:'tool' message (whose assistant
66
+ * tool_calls parent was cut) — providers reject such histories. Returns the
67
+ * SAME array reference when no truncation is needed.
68
+ */
69
+ function boundConversationHistory(history, max) {
70
+ if (!history || history.length <= max || max <= 0)
71
+ return history;
72
+ let start = history.length - max;
73
+ while (start < history.length && history[start].role === "tool") {
74
+ start++;
75
+ }
76
+ return history.slice(start);
77
+ }
78
+ /**
79
+ * Restore a session from a persisted blob (the named inverse of
80
+ * `createPersistedState`). Restores data + flowHistory verbatim — including a
81
+ * completed-flow blob, whose collected state MUST survive the round trip.
82
+ * Prefer this over the ambiguous `createSession(state)` overload.
83
+ */
84
+ function restoreSession(state) {
85
+ return createSession(state);
86
+ }
87
+ /** Helper to create a new session ID */
56
88
  function createSessionId() {
57
89
  return `session_${Date.now()}_${Math.random().toString(36).slice(2)}`;
58
90
  }
@@ -285,9 +317,9 @@ function sessionDataToStep(sessionId, data) {
285
317
  * `appendPrompt`, `injectTools`, and `halt` are transient (one-turn lifetime)
286
318
  * and must not be serialized. This is a belt-and-suspenders safety net —
287
319
  * `Agent.dispatch` already strips before setting `pendingDirective`, and the
288
- * DirectiveBus's post-LLM drain strips from post-LLM emitters. This function
289
- * ensures the persistence layer never writes these fields regardless of the
290
- * upstream path.
320
+ * signal pipeline strips pre-LLM-only fields from post-phase directives. This
321
+ * function ensures the persistence layer never writes these fields regardless
322
+ * of the upstream path.
291
323
  */
292
324
  function stripPreDirectiveFields(directive) {
293
325
  const raw = directive;
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/utils/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/utils/session.ts"],"names":[],"mappings":"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"}
@@ -315,12 +315,20 @@ export declare class Agent<TContext = unknown, TData = unknown> implements Respo
315
315
  *
316
316
  * String form desugars to `{ goTo: target }`.
317
317
  *
318
+ * Durability: with a persistence adapter and autoSave configured (the
319
+ * defaults), the queued directive is persisted immediately — safe for
320
+ * out-of-process callers like webhooks or cron. Without an adapter it is
321
+ * memory-only, as is `persistence.autoSave: false` (then persisting before
322
+ * the next turn is the caller's job).
323
+ *
318
324
  * @param target - Flow ID/title string (desugars to `{ goTo: target }`) or a full Directive
319
325
  * @param session - Session to update (uses current session if not provided)
320
326
  * @returns Updated session with `pendingDirective` set
321
327
  *
322
328
  * @throws FlowConfigurationError if the string target doesn't match any flow
323
329
  * @throws FlowConfigurationError if the directive fails validation
330
+ * @throws SessionConflictError when persistence is enabled and another writer
331
+ * moved the stored session since this copy was loaded
324
332
  *
325
333
  * @example
326
334
  * // String shorthand — desugars to { goTo: 'Feedback' }