@falai/agent 2.6.1 → 3.0.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 (611) hide show
  1. package/README.md +2 -2
  2. package/dist/adapters/MemoryAdapter.d.ts +1 -1
  3. package/dist/adapters/MemoryAdapter.d.ts.map +1 -1
  4. package/dist/adapters/MemoryAdapter.js +32 -36
  5. package/dist/adapters/MemoryAdapter.js.map +1 -1
  6. package/dist/adapters/MongoAdapter.d.ts +1 -1
  7. package/dist/adapters/MongoAdapter.d.ts.map +1 -1
  8. package/dist/adapters/MongoAdapter.js +2 -2
  9. package/dist/adapters/MongoAdapter.js.map +1 -1
  10. package/dist/adapters/OpenSearchAdapter.d.ts +1 -1
  11. package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -1
  12. package/dist/adapters/OpenSearchAdapter.js +3 -3
  13. package/dist/adapters/OpenSearchAdapter.js.map +1 -1
  14. package/dist/adapters/PostgreSQLAdapter.d.ts +1 -1
  15. package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  16. package/dist/adapters/PostgreSQLAdapter.js +18 -13
  17. package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
  18. package/dist/adapters/PrismaAdapter.d.ts +1 -1
  19. package/dist/adapters/PrismaAdapter.d.ts.map +1 -1
  20. package/dist/adapters/PrismaAdapter.js +3 -3
  21. package/dist/adapters/PrismaAdapter.js.map +1 -1
  22. package/dist/adapters/RedisAdapter.d.ts +2 -1
  23. package/dist/adapters/RedisAdapter.d.ts.map +1 -1
  24. package/dist/adapters/RedisAdapter.js +77 -27
  25. package/dist/adapters/RedisAdapter.js.map +1 -1
  26. package/dist/adapters/SQLiteAdapter.d.ts +1 -1
  27. package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
  28. package/dist/adapters/SQLiteAdapter.js +9 -31
  29. package/dist/adapters/SQLiteAdapter.js.map +1 -1
  30. package/dist/adapters/index.d.ts +13 -13
  31. package/dist/adapters/index.d.ts.map +1 -1
  32. package/dist/adapters/index.js +7 -7
  33. package/dist/adapters/index.js.map +1 -1
  34. package/dist/adapters/sessionRow.d.ts +22 -0
  35. package/dist/adapters/sessionRow.d.ts.map +1 -0
  36. package/dist/adapters/sessionRow.js +48 -0
  37. package/dist/adapters/sessionRow.js.map +1 -0
  38. package/dist/cjs/adapters/MemoryAdapter.d.ts +1 -1
  39. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +1 -1
  40. package/dist/cjs/adapters/MemoryAdapter.js +39 -43
  41. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
  42. package/dist/cjs/adapters/MongoAdapter.d.ts +1 -1
  43. package/dist/cjs/adapters/MongoAdapter.d.ts.map +1 -1
  44. package/dist/cjs/adapters/MongoAdapter.js +4 -4
  45. package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
  46. package/dist/cjs/adapters/OpenSearchAdapter.d.ts +1 -1
  47. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -1
  48. package/dist/cjs/adapters/OpenSearchAdapter.js +6 -6
  49. package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
  50. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +1 -1
  51. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  52. package/dist/cjs/adapters/PostgreSQLAdapter.js +20 -15
  53. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
  54. package/dist/cjs/adapters/PrismaAdapter.d.ts +1 -1
  55. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +1 -1
  56. package/dist/cjs/adapters/PrismaAdapter.js +7 -7
  57. package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
  58. package/dist/cjs/adapters/RedisAdapter.d.ts +2 -1
  59. package/dist/cjs/adapters/RedisAdapter.d.ts.map +1 -1
  60. package/dist/cjs/adapters/RedisAdapter.js +81 -31
  61. package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
  62. package/dist/cjs/adapters/SQLiteAdapter.d.ts +1 -1
  63. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
  64. package/dist/cjs/adapters/SQLiteAdapter.js +11 -33
  65. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
  66. package/dist/cjs/adapters/index.d.ts +13 -13
  67. package/dist/cjs/adapters/index.d.ts.map +1 -1
  68. package/dist/cjs/adapters/index.js +14 -14
  69. package/dist/cjs/adapters/index.js.map +1 -1
  70. package/dist/cjs/adapters/sessionRow.d.ts +22 -0
  71. package/dist/cjs/adapters/sessionRow.d.ts.map +1 -0
  72. package/dist/cjs/adapters/sessionRow.js +52 -0
  73. package/dist/cjs/adapters/sessionRow.js.map +1 -0
  74. package/dist/cjs/core/Agent.d.ts +19 -11
  75. package/dist/cjs/core/Agent.d.ts.map +1 -1
  76. package/dist/cjs/core/Agent.js +102 -64
  77. package/dist/cjs/core/Agent.js.map +1 -1
  78. package/dist/cjs/core/AutoChainExecutor.d.ts +12 -22
  79. package/dist/cjs/core/AutoChainExecutor.d.ts.map +1 -1
  80. package/dist/cjs/core/AutoChainExecutor.js +46 -49
  81. package/dist/cjs/core/AutoChainExecutor.js.map +1 -1
  82. package/dist/cjs/core/BranchEvaluator.d.ts +4 -4
  83. package/dist/cjs/core/BranchEvaluator.d.ts.map +1 -1
  84. package/dist/cjs/core/BranchEvaluator.js +6 -6
  85. package/dist/cjs/core/BranchEvaluator.js.map +1 -1
  86. package/dist/cjs/core/CompactionEngine.d.ts +16 -3
  87. package/dist/cjs/core/CompactionEngine.d.ts.map +1 -1
  88. package/dist/cjs/core/CompactionEngine.js +30 -6
  89. package/dist/cjs/core/CompactionEngine.js.map +1 -1
  90. package/dist/cjs/core/DirectiveChainTracker.d.ts +1 -1
  91. package/dist/cjs/core/DirectiveChainTracker.d.ts.map +1 -1
  92. package/dist/cjs/core/DirectiveChainTracker.js +5 -5
  93. package/dist/cjs/core/DirectiveChainTracker.js.map +1 -1
  94. package/dist/cjs/core/Events.d.ts +1 -1
  95. package/dist/cjs/core/Events.d.ts.map +1 -1
  96. package/dist/cjs/core/Events.js +15 -15
  97. package/dist/cjs/core/Events.js.map +1 -1
  98. package/dist/cjs/core/Flow.d.ts +4 -4
  99. package/dist/cjs/core/Flow.d.ts.map +1 -1
  100. package/dist/cjs/core/Flow.js +15 -15
  101. package/dist/cjs/core/Flow.js.map +1 -1
  102. package/dist/cjs/core/FlowRouter.d.ts +4 -4
  103. package/dist/cjs/core/FlowRouter.d.ts.map +1 -1
  104. package/dist/cjs/core/FlowRouter.js +92 -70
  105. package/dist/cjs/core/FlowRouter.js.map +1 -1
  106. package/dist/cjs/core/PersistenceManager.d.ts +1 -1
  107. package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
  108. package/dist/cjs/core/PersistenceManager.js +10 -10
  109. package/dist/cjs/core/PersistenceManager.js.map +1 -1
  110. package/dist/cjs/core/PromptComposer.d.ts +4 -4
  111. package/dist/cjs/core/PromptComposer.d.ts.map +1 -1
  112. package/dist/cjs/core/PromptComposer.js +13 -13
  113. package/dist/cjs/core/PromptComposer.js.map +1 -1
  114. package/dist/cjs/core/PromptSectionCache.d.ts +2 -2
  115. package/dist/cjs/core/PromptSectionCache.d.ts.map +1 -1
  116. package/dist/cjs/core/ResponseEngine.d.ts +4 -4
  117. package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
  118. package/dist/cjs/core/ResponseEngine.js +7 -7
  119. package/dist/cjs/core/ResponseEngine.js.map +1 -1
  120. package/dist/cjs/core/ResponseGenerationError.d.ts.map +1 -1
  121. package/dist/cjs/core/ResponseGenerationError.js +3 -5
  122. package/dist/cjs/core/ResponseGenerationError.js.map +1 -1
  123. package/dist/cjs/core/ResponseModal.d.ts +39 -10
  124. package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
  125. package/dist/cjs/core/ResponseModal.js +195 -72
  126. package/dist/cjs/core/ResponseModal.js.map +1 -1
  127. package/dist/cjs/core/ResponsePipeline.d.ts +50 -12
  128. package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -1
  129. package/dist/cjs/core/ResponsePipeline.js +301 -158
  130. package/dist/cjs/core/ResponsePipeline.js.map +1 -1
  131. package/dist/cjs/core/SessionFinalizer.d.ts +4 -4
  132. package/dist/cjs/core/SessionFinalizer.d.ts.map +1 -1
  133. package/dist/cjs/core/SessionFinalizer.js +36 -9
  134. package/dist/cjs/core/SessionFinalizer.js.map +1 -1
  135. package/dist/cjs/core/SessionManager.d.ts +15 -6
  136. package/dist/cjs/core/SessionManager.d.ts.map +1 -1
  137. package/dist/cjs/core/SessionManager.js +49 -22
  138. package/dist/cjs/core/SessionManager.js.map +1 -1
  139. package/dist/cjs/core/SignalCoordinator.d.ts +5 -5
  140. package/dist/cjs/core/SignalCoordinator.d.ts.map +1 -1
  141. package/dist/cjs/core/SignalCoordinator.js +12 -12
  142. package/dist/cjs/core/SignalCoordinator.js.map +1 -1
  143. package/dist/cjs/core/SignalEvaluator.d.ts +4 -4
  144. package/dist/cjs/core/SignalEvaluator.d.ts.map +1 -1
  145. package/dist/cjs/core/SignalEvaluator.js +6 -6
  146. package/dist/cjs/core/SignalEvaluator.js.map +1 -1
  147. package/dist/cjs/core/SignalProcessor.d.ts +6 -6
  148. package/dist/cjs/core/SignalProcessor.d.ts.map +1 -1
  149. package/dist/cjs/core/SignalProcessor.js +17 -89
  150. package/dist/cjs/core/SignalProcessor.js.map +1 -1
  151. package/dist/cjs/core/Step.d.ts +5 -5
  152. package/dist/cjs/core/Step.d.ts.map +1 -1
  153. package/dist/cjs/core/Step.js +65 -17
  154. package/dist/cjs/core/Step.js.map +1 -1
  155. package/dist/cjs/core/StepLifecycle.d.ts +18 -8
  156. package/dist/cjs/core/StepLifecycle.d.ts.map +1 -1
  157. package/dist/cjs/core/StepLifecycle.js +103 -20
  158. package/dist/cjs/core/StepLifecycle.js.map +1 -1
  159. package/dist/cjs/core/StreamingToolExecutor.d.ts +1 -1
  160. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -1
  161. package/dist/cjs/core/StreamingToolExecutor.js +30 -6
  162. package/dist/cjs/core/StreamingToolExecutor.js.map +1 -1
  163. package/dist/cjs/core/ToolLoopExecutor.d.ts +8 -4
  164. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +1 -1
  165. package/dist/cjs/core/ToolLoopExecutor.js +189 -97
  166. package/dist/cjs/core/ToolLoopExecutor.js.map +1 -1
  167. package/dist/cjs/core/ToolManager.d.ts +6 -6
  168. package/dist/cjs/core/ToolManager.d.ts.map +1 -1
  169. package/dist/cjs/core/ToolManager.js +102 -79
  170. package/dist/cjs/core/ToolManager.js.map +1 -1
  171. package/dist/cjs/core/createAgent.d.ts +2 -2
  172. package/dist/cjs/core/createAgent.d.ts.map +1 -1
  173. package/dist/cjs/core/createAgent.js +2 -2
  174. package/dist/cjs/core/createAgent.js.map +1 -1
  175. package/dist/cjs/core/flow-namespace.d.ts +16 -1
  176. package/dist/cjs/core/flow-namespace.d.ts.map +1 -1
  177. package/dist/cjs/core/flow-namespace.js +26 -4
  178. package/dist/cjs/core/flow-namespace.js.map +1 -1
  179. package/dist/cjs/core/toolGates.d.ts +1 -1
  180. package/dist/cjs/core/toolGates.d.ts.map +1 -1
  181. package/dist/cjs/core/toolGates.js +3 -3
  182. package/dist/cjs/core/toolGates.js.map +1 -1
  183. package/dist/cjs/index.d.ts +50 -45
  184. package/dist/cjs/index.d.ts.map +1 -1
  185. package/dist/cjs/index.js +96 -88
  186. package/dist/cjs/index.js.map +1 -1
  187. package/dist/cjs/providers/AnthropicProvider.d.ts +25 -35
  188. package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -1
  189. package/dist/cjs/providers/AnthropicProvider.js +30 -426
  190. package/dist/cjs/providers/AnthropicProvider.js.map +1 -1
  191. package/dist/cjs/providers/DeepSeekProvider.d.ts +13 -34
  192. package/dist/cjs/providers/DeepSeekProvider.d.ts.map +1 -1
  193. package/dist/cjs/providers/DeepSeekProvider.js +17 -51
  194. package/dist/cjs/providers/DeepSeekProvider.js.map +1 -1
  195. package/dist/cjs/providers/GeminiProvider.d.ts +22 -75
  196. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  197. package/dist/cjs/providers/GeminiProvider.js +32 -558
  198. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  199. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts +9 -10
  200. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -1
  201. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js +14 -20
  202. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js.map +1 -1
  203. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +26 -135
  204. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  205. package/dist/cjs/providers/OpenAICompatibleProvider.js +40 -496
  206. package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -1
  207. package/dist/cjs/providers/OpenAIProvider.d.ts +14 -20
  208. package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
  209. package/dist/cjs/providers/OpenAIProvider.js +21 -28
  210. package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
  211. package/dist/cjs/providers/OpenRouterProvider.d.ts +20 -24
  212. package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -1
  213. package/dist/cjs/providers/OpenRouterProvider.js +22 -38
  214. package/dist/cjs/providers/OpenRouterProvider.js.map +1 -1
  215. package/dist/cjs/providers/ProviderAdapter.d.ts +94 -0
  216. package/dist/cjs/providers/ProviderAdapter.d.ts.map +1 -0
  217. package/dist/cjs/providers/ProviderAdapter.js +257 -0
  218. package/dist/cjs/providers/ProviderAdapter.js.map +1 -0
  219. package/dist/cjs/providers/index.d.ts +21 -18
  220. package/dist/cjs/providers/index.d.ts.map +1 -1
  221. package/dist/cjs/providers/index.js +23 -21
  222. package/dist/cjs/providers/index.js.map +1 -1
  223. package/dist/cjs/types/agent.d.ts +37 -11
  224. package/dist/cjs/types/agent.d.ts.map +1 -1
  225. package/dist/cjs/types/ai.d.ts +11 -21
  226. package/dist/cjs/types/ai.d.ts.map +1 -1
  227. package/dist/cjs/types/compaction.d.ts +2 -2
  228. package/dist/cjs/types/compaction.d.ts.map +1 -1
  229. package/dist/cjs/types/errors.d.ts +16 -20
  230. package/dist/cjs/types/errors.d.ts.map +1 -1
  231. package/dist/cjs/types/errors.js +17 -18
  232. package/dist/cjs/types/errors.js.map +1 -1
  233. package/dist/cjs/types/flow.d.ts +56 -39
  234. package/dist/cjs/types/flow.d.ts.map +1 -1
  235. package/dist/cjs/types/history.d.ts +1 -1
  236. package/dist/cjs/types/history.d.ts.map +1 -1
  237. package/dist/cjs/types/index.d.ts +17 -17
  238. package/dist/cjs/types/index.d.ts.map +1 -1
  239. package/dist/cjs/types/index.js +14 -14
  240. package/dist/cjs/types/index.js.map +1 -1
  241. package/dist/cjs/types/persistence.d.ts +2 -2
  242. package/dist/cjs/types/persistence.d.ts.map +1 -1
  243. package/dist/cjs/types/session.d.ts +4 -4
  244. package/dist/cjs/types/session.d.ts.map +1 -1
  245. package/dist/cjs/types/signals.d.ts +3 -3
  246. package/dist/cjs/types/signals.d.ts.map +1 -1
  247. package/dist/cjs/types/template.d.ts +2 -2
  248. package/dist/cjs/types/template.d.ts.map +1 -1
  249. package/dist/cjs/types/tool.d.ts +4 -2
  250. package/dist/cjs/types/tool.d.ts.map +1 -1
  251. package/dist/cjs/types/tool.js.map +1 -1
  252. package/dist/cjs/utils/condition.d.ts +1 -1
  253. package/dist/cjs/utils/condition.d.ts.map +1 -1
  254. package/dist/cjs/utils/condition.js +6 -6
  255. package/dist/cjs/utils/condition.js.map +1 -1
  256. package/dist/cjs/utils/event.d.ts +1 -1
  257. package/dist/cjs/utils/event.d.ts.map +1 -1
  258. package/dist/cjs/utils/event.js +2 -2
  259. package/dist/cjs/utils/event.js.map +1 -1
  260. package/dist/cjs/utils/history.d.ts +2 -2
  261. package/dist/cjs/utils/history.d.ts.map +1 -1
  262. package/dist/cjs/utils/history.js +15 -15
  263. package/dist/cjs/utils/history.js.map +1 -1
  264. package/dist/cjs/utils/index.d.ts +11 -13
  265. package/dist/cjs/utils/index.d.ts.map +1 -1
  266. package/dist/cjs/utils/index.js +57 -58
  267. package/dist/cjs/utils/index.js.map +1 -1
  268. package/dist/cjs/utils/serialize.d.ts +17 -0
  269. package/dist/cjs/utils/serialize.d.ts.map +1 -1
  270. package/dist/cjs/utils/serialize.js +33 -0
  271. package/dist/cjs/utils/serialize.js.map +1 -1
  272. package/dist/cjs/utils/session.d.ts +23 -3
  273. package/dist/cjs/utils/session.d.ts.map +1 -1
  274. package/dist/cjs/utils/session.js +40 -8
  275. package/dist/cjs/utils/session.js.map +1 -1
  276. package/dist/cjs/utils/template.d.ts +3 -3
  277. package/dist/cjs/utils/template.d.ts.map +1 -1
  278. package/dist/cjs/utils/template.js +5 -5
  279. package/dist/cjs/utils/template.js.map +1 -1
  280. package/dist/constants/index.d.ts +1 -0
  281. package/dist/constants/index.js +1 -1
  282. package/dist/core/Agent.d.ts +19 -11
  283. package/dist/core/Agent.d.ts.map +1 -1
  284. package/dist/core/Agent.js +53 -15
  285. package/dist/core/Agent.js.map +1 -1
  286. package/dist/core/AutoChainExecutor.d.ts +12 -22
  287. package/dist/core/AutoChainExecutor.d.ts.map +1 -1
  288. package/dist/core/AutoChainExecutor.js +27 -30
  289. package/dist/core/AutoChainExecutor.js.map +1 -1
  290. package/dist/core/BranchEvaluator.d.ts +4 -4
  291. package/dist/core/BranchEvaluator.d.ts.map +1 -1
  292. package/dist/core/BranchEvaluator.js +2 -2
  293. package/dist/core/BranchEvaluator.js.map +1 -1
  294. package/dist/core/CompactionEngine.d.ts +16 -3
  295. package/dist/core/CompactionEngine.d.ts.map +1 -1
  296. package/dist/core/CompactionEngine.js +30 -6
  297. package/dist/core/CompactionEngine.js.map +1 -1
  298. package/dist/core/DirectiveChainTracker.d.ts +1 -1
  299. package/dist/core/DirectiveChainTracker.d.ts.map +1 -1
  300. package/dist/core/DirectiveChainTracker.js +2 -2
  301. package/dist/core/DirectiveChainTracker.js.map +1 -1
  302. package/dist/core/Events.d.ts +1 -1
  303. package/dist/core/Events.d.ts.map +1 -1
  304. package/dist/core/Events.js +1 -1
  305. package/dist/core/Events.js.map +1 -1
  306. package/dist/core/Flow.d.ts +4 -4
  307. package/dist/core/Flow.d.ts.map +1 -1
  308. package/dist/core/Flow.js +3 -3
  309. package/dist/core/Flow.js.map +1 -1
  310. package/dist/core/FlowRouter.d.ts +4 -4
  311. package/dist/core/FlowRouter.d.ts.map +1 -1
  312. package/dist/core/FlowRouter.js +36 -14
  313. package/dist/core/FlowRouter.js.map +1 -1
  314. package/dist/core/PersistenceManager.d.ts +1 -1
  315. package/dist/core/PersistenceManager.d.ts.map +1 -1
  316. package/dist/core/PersistenceManager.js +3 -3
  317. package/dist/core/PersistenceManager.js.map +1 -1
  318. package/dist/core/PromptComposer.d.ts +4 -4
  319. package/dist/core/PromptComposer.d.ts.map +1 -1
  320. package/dist/core/PromptComposer.js +3 -3
  321. package/dist/core/PromptComposer.js.map +1 -1
  322. package/dist/core/PromptSectionCache.d.ts +2 -2
  323. package/dist/core/PromptSectionCache.d.ts.map +1 -1
  324. package/dist/core/ResponseEngine.d.ts +4 -4
  325. package/dist/core/ResponseEngine.d.ts.map +1 -1
  326. package/dist/core/ResponseEngine.js +2 -2
  327. package/dist/core/ResponseEngine.js.map +1 -1
  328. package/dist/core/ResponseGenerationError.d.ts.map +1 -1
  329. package/dist/core/ResponseGenerationError.js +3 -5
  330. package/dist/core/ResponseGenerationError.js.map +1 -1
  331. package/dist/core/ResponseModal.d.ts +39 -10
  332. package/dist/core/ResponseModal.d.ts.map +1 -1
  333. package/dist/core/ResponseModal.js +152 -29
  334. package/dist/core/ResponseModal.js.map +1 -1
  335. package/dist/core/ResponsePipeline.d.ts +50 -12
  336. package/dist/core/ResponsePipeline.d.ts.map +1 -1
  337. package/dist/core/ResponsePipeline.js +232 -89
  338. package/dist/core/ResponsePipeline.js.map +1 -1
  339. package/dist/core/SessionFinalizer.d.ts +4 -4
  340. package/dist/core/SessionFinalizer.d.ts.map +1 -1
  341. package/dist/core/SessionFinalizer.js +32 -5
  342. package/dist/core/SessionFinalizer.js.map +1 -1
  343. package/dist/core/SessionManager.d.ts +15 -6
  344. package/dist/core/SessionManager.d.ts.map +1 -1
  345. package/dist/core/SessionManager.js +46 -19
  346. package/dist/core/SessionManager.js.map +1 -1
  347. package/dist/core/SignalCoordinator.d.ts +5 -5
  348. package/dist/core/SignalCoordinator.d.ts.map +1 -1
  349. package/dist/core/SignalCoordinator.js +2 -2
  350. package/dist/core/SignalCoordinator.js.map +1 -1
  351. package/dist/core/SignalEvaluator.d.ts +4 -4
  352. package/dist/core/SignalEvaluator.d.ts.map +1 -1
  353. package/dist/core/SignalEvaluator.js +2 -2
  354. package/dist/core/SignalEvaluator.js.map +1 -1
  355. package/dist/core/SignalProcessor.d.ts +6 -6
  356. package/dist/core/SignalProcessor.d.ts.map +1 -1
  357. package/dist/core/SignalProcessor.js +7 -79
  358. package/dist/core/SignalProcessor.js.map +1 -1
  359. package/dist/core/Step.d.ts +5 -5
  360. package/dist/core/Step.d.ts.map +1 -1
  361. package/dist/core/Step.js +53 -5
  362. package/dist/core/Step.js.map +1 -1
  363. package/dist/core/StepLifecycle.d.ts +18 -8
  364. package/dist/core/StepLifecycle.d.ts.map +1 -1
  365. package/dist/core/StepLifecycle.js +98 -15
  366. package/dist/core/StepLifecycle.js.map +1 -1
  367. package/dist/core/StreamingToolExecutor.d.ts +1 -1
  368. package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
  369. package/dist/core/StreamingToolExecutor.js +29 -5
  370. package/dist/core/StreamingToolExecutor.js.map +1 -1
  371. package/dist/core/ToolLoopExecutor.d.ts +8 -4
  372. package/dist/core/ToolLoopExecutor.d.ts.map +1 -1
  373. package/dist/core/ToolLoopExecutor.js +157 -65
  374. package/dist/core/ToolLoopExecutor.js.map +1 -1
  375. package/dist/core/ToolManager.d.ts +6 -6
  376. package/dist/core/ToolManager.d.ts.map +1 -1
  377. package/dist/core/ToolManager.js +44 -21
  378. package/dist/core/ToolManager.js.map +1 -1
  379. package/dist/core/createAgent.d.ts +2 -2
  380. package/dist/core/createAgent.d.ts.map +1 -1
  381. package/dist/core/createAgent.js +1 -1
  382. package/dist/core/createAgent.js.map +1 -1
  383. package/dist/core/flow-namespace.d.ts +16 -1
  384. package/dist/core/flow-namespace.d.ts.map +1 -1
  385. package/dist/core/flow-namespace.js +23 -1
  386. package/dist/core/flow-namespace.js.map +1 -1
  387. package/dist/core/toolGates.d.ts +1 -1
  388. package/dist/core/toolGates.d.ts.map +1 -1
  389. package/dist/core/toolGates.js +1 -1
  390. package/dist/core/toolGates.js.map +1 -1
  391. package/dist/index.d.ts +50 -45
  392. package/dist/index.d.ts.map +1 -1
  393. package/dist/index.js +34 -30
  394. package/dist/index.js.map +1 -1
  395. package/dist/providers/AnthropicProvider.d.ts +25 -35
  396. package/dist/providers/AnthropicProvider.d.ts.map +1 -1
  397. package/dist/providers/AnthropicProvider.js +30 -423
  398. package/dist/providers/AnthropicProvider.js.map +1 -1
  399. package/dist/providers/DeepSeekProvider.d.ts +13 -34
  400. package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
  401. package/dist/providers/DeepSeekProvider.js +16 -47
  402. package/dist/providers/DeepSeekProvider.js.map +1 -1
  403. package/dist/providers/GeminiProvider.d.ts +22 -75
  404. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  405. package/dist/providers/GeminiProvider.js +32 -558
  406. package/dist/providers/GeminiProvider.js.map +1 -1
  407. package/dist/providers/GenericOpenAICompatibleProvider.d.ts +9 -10
  408. package/dist/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -1
  409. package/dist/providers/GenericOpenAICompatibleProvider.js +13 -16
  410. package/dist/providers/GenericOpenAICompatibleProvider.js.map +1 -1
  411. package/dist/providers/OpenAICompatibleProvider.d.ts +26 -135
  412. package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  413. package/dist/providers/OpenAICompatibleProvider.js +39 -495
  414. package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
  415. package/dist/providers/OpenAIProvider.d.ts +14 -20
  416. package/dist/providers/OpenAIProvider.d.ts.map +1 -1
  417. package/dist/providers/OpenAIProvider.js +20 -24
  418. package/dist/providers/OpenAIProvider.js.map +1 -1
  419. package/dist/providers/OpenRouterProvider.d.ts +20 -24
  420. package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
  421. package/dist/providers/OpenRouterProvider.js +21 -34
  422. package/dist/providers/OpenRouterProvider.js.map +1 -1
  423. package/dist/providers/ProviderAdapter.d.ts +94 -0
  424. package/dist/providers/ProviderAdapter.d.ts.map +1 -0
  425. package/dist/providers/ProviderAdapter.js +251 -0
  426. package/dist/providers/ProviderAdapter.js.map +1 -0
  427. package/dist/providers/index.d.ts +21 -18
  428. package/dist/providers/index.d.ts.map +1 -1
  429. package/dist/providers/index.js +13 -10
  430. package/dist/providers/index.js.map +1 -1
  431. package/dist/types/agent.d.ts +37 -11
  432. package/dist/types/agent.d.ts.map +1 -1
  433. package/dist/types/ai.d.ts +11 -21
  434. package/dist/types/ai.d.ts.map +1 -1
  435. package/dist/types/compaction.d.ts +2 -2
  436. package/dist/types/compaction.d.ts.map +1 -1
  437. package/dist/types/errors.d.ts +16 -20
  438. package/dist/types/errors.d.ts.map +1 -1
  439. package/dist/types/errors.js +15 -16
  440. package/dist/types/errors.js.map +1 -1
  441. package/dist/types/flow.d.ts +56 -39
  442. package/dist/types/flow.d.ts.map +1 -1
  443. package/dist/types/history.d.ts +1 -1
  444. package/dist/types/history.d.ts.map +1 -1
  445. package/dist/types/index.d.ts +17 -17
  446. package/dist/types/index.d.ts.map +1 -1
  447. package/dist/types/index.js +4 -4
  448. package/dist/types/index.js.map +1 -1
  449. package/dist/types/persistence.d.ts +2 -2
  450. package/dist/types/persistence.d.ts.map +1 -1
  451. package/dist/types/session.d.ts +4 -4
  452. package/dist/types/session.d.ts.map +1 -1
  453. package/dist/types/signals.d.ts +3 -3
  454. package/dist/types/signals.d.ts.map +1 -1
  455. package/dist/types/template.d.ts +2 -2
  456. package/dist/types/template.d.ts.map +1 -1
  457. package/dist/types/tool.d.ts +4 -2
  458. package/dist/types/tool.d.ts.map +1 -1
  459. package/dist/types/tool.js.map +1 -1
  460. package/dist/utils/condition.d.ts +1 -1
  461. package/dist/utils/condition.d.ts.map +1 -1
  462. package/dist/utils/condition.js +2 -2
  463. package/dist/utils/condition.js.map +1 -1
  464. package/dist/utils/event.d.ts +1 -1
  465. package/dist/utils/event.d.ts.map +1 -1
  466. package/dist/utils/event.js +1 -1
  467. package/dist/utils/event.js.map +1 -1
  468. package/dist/utils/history.d.ts +2 -2
  469. package/dist/utils/history.d.ts.map +1 -1
  470. package/dist/utils/history.js +1 -1
  471. package/dist/utils/history.js.map +1 -1
  472. package/dist/utils/index.d.ts +11 -13
  473. package/dist/utils/index.d.ts.map +1 -1
  474. package/dist/utils/index.js +11 -12
  475. package/dist/utils/index.js.map +1 -1
  476. package/dist/utils/serialize.d.ts +17 -0
  477. package/dist/utils/serialize.d.ts.map +1 -1
  478. package/dist/utils/serialize.js +31 -0
  479. package/dist/utils/serialize.js.map +1 -1
  480. package/dist/utils/session.d.ts +23 -3
  481. package/dist/utils/session.d.ts.map +1 -1
  482. package/dist/utils/session.js +35 -6
  483. package/dist/utils/session.js.map +1 -1
  484. package/dist/utils/template.d.ts +3 -3
  485. package/dist/utils/template.d.ts.map +1 -1
  486. package/dist/utils/template.js +1 -1
  487. package/dist/utils/template.js.map +1 -1
  488. package/docs/concepts/architecture.md +3 -3
  489. package/docs/concepts/directives.md +1 -1
  490. package/docs/guides/error-handling.md +46 -45
  491. package/docs/guides/flow-control.md +8 -1
  492. package/docs/guides/instructions.md +15 -6
  493. package/docs/guides/persistence.md +12 -5
  494. package/docs/guides/streaming.md +10 -0
  495. package/docs/migration/README.md +4 -0
  496. package/docs/migration/v2-3-to-v2-4.md +4 -0
  497. package/docs/migration/v2-6-to-v2-7.md +246 -0
  498. package/docs/reference/adapters.md +15 -1
  499. package/docs/reference/branches.md +2 -0
  500. package/docs/reference/create-agent.md +28 -0
  501. package/docs/reference/directive.md +1 -1
  502. package/docs/reference/errors.md +30 -32
  503. package/docs/reference/providers.md +63 -60
  504. package/docs/reference/step.md +28 -21
  505. package/docs/reference/tool.md +14 -5
  506. package/docs/start/02-first-agent.md +8 -4
  507. package/docs/start/03-collect-data.md +19 -10
  508. package/examples/01-quickstart.ts +2 -2
  509. package/examples/02-data-extraction.ts +1 -1
  510. package/examples/03-tools.ts +1 -1
  511. package/examples/04-instructions.ts +2 -2
  512. package/examples/05-branching.ts +3 -3
  513. package/examples/06-flow-control.ts +3 -3
  514. package/examples/07-streaming.ts +1 -1
  515. package/examples/08-persistence.ts +2 -2
  516. package/examples/09-signals.ts +1 -1
  517. package/examples/tsconfig.json +6 -3
  518. package/package.json +9 -7
  519. package/src/adapters/MemoryAdapter.ts +33 -37
  520. package/src/adapters/MongoAdapter.ts +3 -3
  521. package/src/adapters/OpenSearchAdapter.ts +4 -4
  522. package/src/adapters/PostgreSQLAdapter.ts +26 -21
  523. package/src/adapters/PrismaAdapter.ts +4 -4
  524. package/src/adapters/RedisAdapter.ts +84 -37
  525. package/src/adapters/SQLiteAdapter.ts +13 -34
  526. package/src/adapters/index.ts +13 -13
  527. package/src/adapters/sessionRow.ts +57 -0
  528. package/src/core/Agent.ts +64 -18
  529. package/src/core/AutoChainExecutor.ts +44 -57
  530. package/src/core/BranchEvaluator.ts +5 -5
  531. package/src/core/CompactionEngine.ts +42 -8
  532. package/src/core/DirectiveChainTracker.ts +3 -3
  533. package/src/core/Events.ts +2 -2
  534. package/src/core/Flow.ts +9 -9
  535. package/src/core/FlowRouter.ts +46 -20
  536. package/src/core/PersistenceManager.ts +4 -4
  537. package/src/core/PromptComposer.ts +8 -8
  538. package/src/core/PromptSectionCache.ts +2 -2
  539. package/src/core/ResponseEngine.ts +6 -6
  540. package/src/core/ResponseGenerationError.ts +3 -6
  541. package/src/core/ResponseModal.ts +205 -39
  542. package/src/core/ResponsePipeline.ts +301 -107
  543. package/src/core/SessionFinalizer.ts +40 -10
  544. package/src/core/SessionManager.ts +61 -27
  545. package/src/core/SignalCoordinator.ts +7 -7
  546. package/src/core/SignalEvaluator.ts +6 -6
  547. package/src/core/SignalProcessor.ts +13 -93
  548. package/src/core/Step.ts +87 -10
  549. package/src/core/StepLifecycle.ts +129 -26
  550. package/src/core/StreamingToolExecutor.ts +33 -8
  551. package/src/core/ToolLoopExecutor.ts +206 -80
  552. package/src/core/ToolManager.ts +53 -26
  553. package/src/core/createAgent.ts +2 -2
  554. package/src/core/flow-namespace.ts +31 -2
  555. package/src/core/toolGates.ts +2 -2
  556. package/src/index.ts +59 -45
  557. package/src/providers/AnthropicProvider.ts +44 -595
  558. package/src/providers/DeepSeekProvider.ts +27 -92
  559. package/src/providers/GeminiProvider.ts +41 -752
  560. package/src/providers/GenericOpenAICompatibleProvider.ts +19 -27
  561. package/src/providers/OpenAICompatibleProvider.ts +58 -764
  562. package/src/providers/OpenAIProvider.ts +31 -55
  563. package/src/providers/OpenRouterProvider.ts +40 -70
  564. package/src/providers/ProviderAdapter.ts +368 -0
  565. package/src/providers/index.ts +21 -23
  566. package/src/types/agent.ts +36 -11
  567. package/src/types/ai.ts +11 -21
  568. package/src/types/compaction.ts +2 -2
  569. package/src/types/errors.ts +17 -35
  570. package/src/types/flow.ts +44 -46
  571. package/src/types/history.ts +1 -1
  572. package/src/types/index.ts +18 -17
  573. package/src/types/persistence.ts +2 -2
  574. package/src/types/session.ts +4 -4
  575. package/src/types/signals.ts +3 -3
  576. package/src/types/template.ts +2 -2
  577. package/src/types/tool.ts +4 -2
  578. package/src/utils/condition.ts +3 -3
  579. package/src/utils/event.ts +1 -1
  580. package/src/utils/history.ts +3 -3
  581. package/src/utils/index.ts +14 -15
  582. package/src/utils/serialize.ts +38 -0
  583. package/src/utils/session.ts +46 -9
  584. package/src/utils/template.ts +3 -3
  585. package/dist/cjs/core/DirectiveBus.d.ts +0 -88
  586. package/dist/cjs/core/DirectiveBus.d.ts.map +0 -1
  587. package/dist/cjs/core/DirectiveBus.js +0 -196
  588. package/dist/cjs/core/DirectiveBus.js.map +0 -1
  589. package/dist/cjs/providers/errorClassification.d.ts +0 -61
  590. package/dist/cjs/providers/errorClassification.d.ts.map +0 -1
  591. package/dist/cjs/providers/errorClassification.js +0 -123
  592. package/dist/cjs/providers/errorClassification.js.map +0 -1
  593. package/dist/cjs/utils/retry.d.ts +0 -67
  594. package/dist/cjs/utils/retry.d.ts.map +0 -1
  595. package/dist/cjs/utils/retry.js +0 -201
  596. package/dist/cjs/utils/retry.js.map +0 -1
  597. package/dist/core/DirectiveBus.d.ts +0 -88
  598. package/dist/core/DirectiveBus.d.ts.map +0 -1
  599. package/dist/core/DirectiveBus.js +0 -192
  600. package/dist/core/DirectiveBus.js.map +0 -1
  601. package/dist/providers/errorClassification.d.ts +0 -61
  602. package/dist/providers/errorClassification.d.ts.map +0 -1
  603. package/dist/providers/errorClassification.js +0 -116
  604. package/dist/providers/errorClassification.js.map +0 -1
  605. package/dist/utils/retry.d.ts +0 -67
  606. package/dist/utils/retry.d.ts.map +0 -1
  607. package/dist/utils/retry.js +0 -193
  608. package/dist/utils/retry.js.map +0 -1
  609. package/src/core/DirectiveBus.ts +0 -248
  610. package/src/providers/errorClassification.ts +0 -172
  611. package/src/utils/retry.ts +0 -274
@@ -1,509 +1,53 @@
1
1
  "use strict";
2
2
  /**
3
- * Shared base class for OpenAI-compatible chat-completions providers
4
- * (OpenAI, DeepSeek, OpenRouter).
3
+ * Shared base for OpenAI-compatible chat-completions providers (OpenAI,
4
+ * DeepSeek, OpenRouter, and anything else speaking the dialect).
5
5
  *
6
- * Handles message/history building, tool-call parsing, streaming chunk
7
- * handling, backup-model fallback, retry wiring, schema passthrough and
8
- * normalized error wrapping. Subclasses supply the configured client,
9
- * naming, capabilities and any genuinely provider-specific behavior via
10
- * the protected hooks.
6
+ * Everything that used to live here — message building, tool-call assembly,
7
+ * streaming, retry, backup models, error wrapping is now in
8
+ * `@providerkit/core` and `ProviderAdapter`. What is left is the one decision
9
+ * this layer still owns: which wire a structured request goes out on.
11
10
  */
12
11
  Object.defineProperty(exports, "__esModule", { value: true });
13
12
  exports.OpenAICompatibleProvider = void 0;
14
- const utils_1 = require("../utils");
15
- const errorClassification_1 = require("./errorClassification");
16
- /**
17
- * Base implementation of AiProvider for OpenAI-compatible APIs with
18
- * backup models and retry logic.
19
- */
20
- class OpenAICompatibleProvider {
13
+ const core_1 = require("@providerkit/core");
14
+ const ProviderAdapter_js_1 = require("./ProviderAdapter.js");
15
+ class OpenAICompatibleProvider extends ProviderAdapter_js_1.ProviderAdapter {
21
16
  constructor(init) {
22
- /**
23
- * Provider-specific error classification signals.
24
- * model_not_found/model_overloaded historically triggered backup models.
25
- */
26
- this.classificationOptions = {
27
- overloadedCodes: ["model_not_found", "model_overloaded"],
28
- };
29
- this.client = init.client;
30
- this.primaryModel = init.model;
31
- this.backupModels = init.backupModels ?? [];
32
- this.config = init.config;
33
- this.retryConfig = (0, utils_1.resolveRetryConfig)(init.retryConfig);
34
- this.structuredOutput = init.structuredOutput ?? "responses_parse";
35
- }
36
- // ---------------------------------------------------------------------
37
- // Public API
38
- // ---------------------------------------------------------------------
39
- async generateMessage(input) {
40
- return this.generateWithBackup(input);
41
- }
42
- async *generateMessageStream(input) {
43
- yield* this.generateStreamWithBackup(input);
44
- }
45
- // ---------------------------------------------------------------------
46
- // Provider-specific hooks
47
- // ---------------------------------------------------------------------
48
- /**
49
- * Generate a structured (JSON schema) response. Default uses the
50
- * responses.parse API (OpenAI, OpenRouter). Subclasses whose API lacks
51
- * responses.parse (e.g. DeepSeek) override this to use chat completions
52
- * with a structured response_format instead.
53
- */
54
- async executeStructuredGenerate(model, input, jsonSchema) {
55
- // Non-native modes go through chat completions, where
56
- // `structuredResponseFormat` selects the response_format.
57
- if (this.structuredOutput !== "responses_parse") {
58
- return this.executeChatCompletion(model, input);
59
- }
60
- const response = await this.client.responses.parse({
61
- model,
62
- instructions: input.prompt,
63
- input: "",
64
- reasoning: {
65
- effort: input.parameters?.reasoning?.effort || "low",
66
- },
67
- text: {
68
- format: {
69
- type: "json_schema",
70
- name: input.parameters?.schemaName || "structured_output",
71
- // Adapt common schema format to the provider's format
72
- schema: this.adaptSchema(jsonSchema),
73
- },
74
- },
75
- }, { signal: input.signal });
76
- if (!response.output_parsed) {
77
- throw new Error(`No parsed output returned from ${this.displayName}`);
78
- }
79
- const structured = response.output_parsed;
80
- const message = structured.message;
81
- return {
82
- message,
83
- metadata: {
84
- model: response.model,
85
- tokensUsed: response.usage?.total_tokens,
86
- promptTokens: response.usage?.input_tokens,
87
- completionTokens: response.usage?.output_tokens,
88
- },
89
- structured,
90
- };
91
- }
92
- /**
93
- * response_format applied to chat-completions requests when a JSON schema is
94
- * present, selected by {@link StructuredOutputMode}: `"json_schema"` for native
95
- * enforcement, else a generic JSON object parsed at the end. (`"responses_parse"`
96
- * never reaches chat completions for non-streaming, but streaming has no parse
97
- * API, so it falls back to `json_object` here.)
98
- */
99
- structuredResponseFormat(jsonSchema, schemaName) {
100
- if (this.structuredOutput === "json_schema") {
101
- return {
102
- type: "json_schema",
103
- json_schema: {
104
- name: schemaName || "structured_output",
105
- schema: this.adaptSchema(jsonSchema),
106
- },
107
- };
108
- }
109
- return { type: "json_object" };
110
- }
111
- /**
112
- * Hook for provider-specific streaming request parameters
113
- * (e.g. DeepSeek's stream_options.include_usage).
114
- */
115
- configureStreamParams(_params) {
116
- // Default: no extra parameters
117
- }
118
- /**
119
- * Hook for provider-specific stream delta handling
120
- * (e.g. DeepSeek's reasoning_content).
121
- */
122
- onStreamDelta(_delta) {
123
- // Default: no extra handling
124
- }
125
- // ---------------------------------------------------------------------
126
- // Shared building blocks
127
- // ---------------------------------------------------------------------
128
- /**
129
- * Adapt common schema format to the provider's format.
130
- * OpenAI-compatible APIs use standard JSON Schema, so this is a
131
- * passthrough.
132
- */
133
- adaptSchema(schema) {
134
- // Our StructuredSchema is already JSON Schema compatible
135
- return schema;
136
- }
137
- /**
138
- * Build OpenAI-formatted messages from HistoryItem[] array.
139
- * Maps directly to ChatCompletionMessageParam format.
140
- */
141
- buildChatMessages(history) {
142
- const messages = [];
143
- for (const item of history) {
144
- switch (item.role) {
145
- case "system":
146
- messages.push({ role: "system", content: item.content });
147
- break;
148
- case "user":
149
- messages.push({ role: "user", content: item.content });
150
- break;
151
- case "assistant":
152
- if (item.tool_calls && item.tool_calls.length > 0) {
153
- messages.push({
154
- role: "assistant",
155
- content: item.content || null,
156
- tool_calls: item.tool_calls.map((tc) => ({
157
- id: tc.id,
158
- type: "function",
159
- function: {
160
- name: tc.name,
161
- arguments: JSON.stringify(tc.arguments),
162
- },
163
- })),
164
- });
165
- }
166
- else {
167
- messages.push({ role: "assistant", content: item.content || "" });
168
- }
169
- break;
170
- case "tool":
171
- messages.push({
172
- role: "tool",
173
- tool_call_id: item.tool_call_id,
174
- content: typeof item.content === "string"
175
- ? item.content
176
- : JSON.stringify(item.content),
177
- });
178
- break;
179
- }
180
- }
181
- return messages;
182
- }
183
- /**
184
- * Map framework tool definitions to OpenAI function tools.
185
- */
186
- buildToolParams(tools) {
187
- return tools.map((tool) => ({
188
- type: "function",
189
- function: {
190
- name: tool.name || tool.id,
191
- description: tool.description,
192
- parameters: tool.parameters, // JSON schema
193
- },
194
- }));
195
- }
196
- /**
197
- * Parse tool calls from a (complete or delta) tool_calls array,
198
- * tolerating malformed JSON arguments.
199
- */
200
- parseToolCallArguments(rawArguments, streaming) {
201
- if (!rawArguments) {
202
- return {};
203
- }
204
- try {
205
- return JSON.parse(rawArguments);
206
- }
207
- catch (error) {
208
- utils_1.logger.warn(`[${this.logLabel}] Failed to parse tool call arguments${streaming ? " in stream" : ""}: ${(0, errorClassification_1.getErrorMessage)(error)}`);
209
- return {};
210
- }
211
- }
212
- /**
213
- * Determines if an error should trigger backup model usage.
214
- * Derived from the normalized error classification.
215
- */
216
- shouldUseBackupModel(error) {
217
- return (0, errorClassification_1.isBackupEligible)((0, errorClassification_1.classifyProviderError)(error, this.classificationOptions));
218
- }
219
- /**
220
- * Wrap a terminal failure in a normalized ProviderError.
221
- */
222
- wrapTerminalError(error) {
223
- return (0, errorClassification_1.toProviderError)(error, this.name, this.classificationOptions);
224
- }
225
- // ---------------------------------------------------------------------
226
- // Generation with backup models
227
- // ---------------------------------------------------------------------
228
- async generateWithBackup(input) {
229
- // Try primary model first
230
- try {
231
- return await this.generateWithModel(this.primaryModel, input);
232
- }
233
- catch (primaryError) {
234
- const primaryErrMsg = (0, errorClassification_1.getErrorMessage)(primaryError);
235
- utils_1.logger.warn(`[${this.logLabel}] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`);
236
- if (!this.shouldUseBackupModel(primaryError)) {
237
- throw this.wrapTerminalError(primaryError);
238
- }
239
- utils_1.logger.debug(`[${this.logLabel}] Trying backup models`);
240
- let lastBackupError = primaryError;
241
- for (let i = 0; i < this.backupModels.length; i++) {
242
- const backupModel = this.backupModels[i];
243
- utils_1.logger.debug(`[${this.logLabel}] Trying backup model ${i + 1}/${this.backupModels.length}: ${backupModel}`);
244
- try {
245
- const result = await this.generateWithModel(backupModel, input);
246
- utils_1.logger.debug(`[${this.logLabel}] Backup model ${backupModel} succeeded`);
247
- return result;
248
- }
249
- catch (backupError) {
250
- const backupErrMsg = (0, errorClassification_1.getErrorMessage)(backupError);
251
- utils_1.logger.warn(`[${this.logLabel}] Backup model ${backupModel} failed: ${backupErrMsg}`);
252
- lastBackupError = backupError;
253
- if (!this.shouldUseBackupModel(backupError) &&
254
- i < this.backupModels.length - 1) {
255
- utils_1.logger.debug(`[${this.logLabel}] Backup model error doesn't qualify for further attempts`);
256
- break;
257
- }
258
- }
259
- }
260
- const lastBackupErrMsg = (0, errorClassification_1.getErrorMessage)(lastBackupError);
261
- utils_1.logger.error(`[${this.logLabel}] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`);
262
- throw this.wrapTerminalError(lastBackupError);
263
- }
264
- }
265
- async *generateStreamWithBackup(input) {
266
- // Try primary model first
267
- try {
268
- yield* (0, utils_1.withStreamRetry)((signal) => this.generateStreamWithModel(this.primaryModel, input, signal), { maxRetries: this.retryConfig.retries, firstChunkTimeoutMs: this.retryConfig.timeout, operationName: `${this.logLabel} ${this.primaryModel} stream` });
269
- }
270
- catch (primaryError) {
271
- const primaryErrMsg = (0, errorClassification_1.getErrorMessage)(primaryError);
272
- utils_1.logger.warn(`[${this.logLabel}] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`);
273
- if (!this.shouldUseBackupModel(primaryError)) {
274
- throw this.wrapTerminalError(primaryError);
275
- }
276
- utils_1.logger.debug(`[${this.logLabel}] Trying backup models for streaming`);
277
- let lastBackupError = primaryError;
278
- for (let i = 0; i < this.backupModels.length; i++) {
279
- const backupModel = this.backupModels[i];
280
- utils_1.logger.debug(`[${this.logLabel}] Trying backup model ${i + 1}/${this.backupModels.length}: ${backupModel}`);
281
- try {
282
- yield* (0, utils_1.withStreamRetry)((signal) => this.generateStreamWithModel(backupModel, input, signal), { maxRetries: this.retryConfig.retries, firstChunkTimeoutMs: this.retryConfig.timeout, operationName: `${this.logLabel} ${backupModel} stream` });
283
- utils_1.logger.debug(`[${this.logLabel}] Backup model ${backupModel} succeeded`);
284
- return;
285
- }
286
- catch (backupError) {
287
- const backupErrMsg = (0, errorClassification_1.getErrorMessage)(backupError);
288
- utils_1.logger.warn(`[${this.logLabel}] Backup model ${backupModel} failed: ${backupErrMsg}`);
289
- lastBackupError = backupError;
290
- if (!this.shouldUseBackupModel(backupError) &&
291
- i < this.backupModels.length - 1) {
292
- utils_1.logger.debug(`[${this.logLabel}] Backup model error doesn't qualify for further attempts`);
293
- break;
294
- }
295
- }
296
- }
297
- const lastBackupErrMsg = (0, errorClassification_1.getErrorMessage)(lastBackupError);
298
- utils_1.logger.error(`[${this.logLabel}] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`);
299
- throw this.wrapTerminalError(lastBackupError);
300
- }
301
- }
302
- // ---------------------------------------------------------------------
303
- // Non-streaming generation
304
- // ---------------------------------------------------------------------
305
- async generateWithModel(model, input) {
306
- const operation = async (signal) => {
307
- // Thread the per-attempt timeout signal through input.signal so whichever
308
- // path runs — responses.parse (structured) or chat.completions — cancels
309
- // its upstream call when the deadline fires.
310
- const reqInput = { ...input, signal: (0, utils_1.combineAbortSignals)(input.signal, signal) };
311
- // Use structured output path if JSON schema is provided
312
- if (reqInput.parameters?.jsonSchema) {
313
- return this.executeStructuredGenerate(model, reqInput, reqInput.parameters.jsonSchema);
314
- }
315
- return this.executeChatCompletion(model, reqInput);
316
- };
317
- return (0, utils_1.withTimeoutAndRetry)(operation, this.retryConfig.timeout, this.retryConfig.retries, `${this.displayName} ${model}`);
318
- }
319
- /**
320
- * Non-streaming chat-completions request: builds messages/tools,
321
- * extracts text and tool calls, and merges structured output.
322
- */
323
- async executeChatCompletion(model, input) {
324
- const historyMessages = this.buildChatMessages(input.history);
325
- historyMessages.push({ role: "user", content: input.prompt });
326
- const params = {
327
- model,
328
- messages: historyMessages,
329
- ...this.config,
330
- };
331
- // Override with input parameters if provided
332
- if (input.parameters?.maxOutputTokens !== undefined) {
333
- params.max_tokens = input.parameters.maxOutputTokens;
334
- }
335
- // Add tools if provided
336
- if (input.tools && input.tools.length > 0) {
337
- params.tools = this.buildToolParams(input.tools);
338
- params.tool_choice = "auto";
339
- }
340
- // Use structured output format if JSON schema is provided
341
- if (input.parameters?.jsonSchema) {
342
- params.response_format = this.structuredResponseFormat(input.parameters.jsonSchema, input.parameters.schemaName);
343
- }
344
- const response = await this.client.chat.completions.create(params, {
345
- signal: input.signal,
17
+ const mode = init.structuredOutput ?? "responses_parse";
18
+ super({
19
+ provider: buildProvider(init, mode),
20
+ model: init.model,
21
+ ...(init.config ? { defaults: init.config } : {}),
22
+ ...(init.backupModels ? { backupModels: init.backupModels } : {}),
23
+ ...(init.retryConfig ? { retryConfig: init.retryConfig } : {}),
346
24
  });
347
- const message = response.choices[0]?.message?.content || "";
348
- let toolCalls = [];
349
- if (response.choices?.[0]?.message?.tool_calls) {
350
- toolCalls = response.choices[0].message.tool_calls
351
- .filter((toolCall) => toolCall.type === "function")
352
- .map((toolCall) => ({
353
- toolName: toolCall.function.name,
354
- arguments: this.parseToolCallArguments(toolCall.function.arguments, false),
355
- }));
356
- }
357
- // Only throw error if we have no text AND no function calls
358
- if (!message && toolCalls.length === 0) {
359
- throw new Error(`No response from ${this.displayName}`);
360
- }
361
- // Parse structured output if schema was provided
362
- let structured;
363
- if (input.parameters?.jsonSchema && message) {
364
- try {
365
- structured = JSON.parse(message);
366
- }
367
- catch (error) {
368
- utils_1.logger.warn(`[${this.logLabel}] Failed to parse JSON response:`, error);
369
- }
370
- }
371
- // If tools were used, include them in structured response
372
- if (toolCalls.length > 0) {
373
- structured = {
374
- ...(structured || {}),
375
- message: structured?.message || message,
376
- toolCalls,
377
- };
378
- }
379
- // A parsed-but-blank message with no tool calls is as empty as no text;
380
- // the shared guard throws so withTimeoutAndRetry retries instead of
381
- // returning {"message":""}.
382
- (0, utils_1.assertUsableCompletion)(structured, message, toolCalls.length, this.displayName);
383
- return {
384
- message,
385
- metadata: {
386
- model: response.model,
387
- finishReason: response.choices[0]?.finish_reason,
388
- tokensUsed: response.usage?.total_tokens,
389
- promptTokens: response.usage?.prompt_tokens,
390
- completionTokens: response.usage?.completion_tokens,
391
- },
392
- structured,
393
- };
25
+ this.config = init.config;
394
26
  }
395
- // ---------------------------------------------------------------------
396
- // Streaming generation
397
- // ---------------------------------------------------------------------
398
- async *generateStreamWithModel(model, input, attemptSignal) {
399
- // Build messages from history and append prompt as final user message
400
- const historyMessages = this.buildChatMessages(input.history);
401
- historyMessages.push({ role: "user", content: input.prompt });
402
- const params = {
403
- ...this.config,
404
- model,
405
- messages: historyMessages,
406
- stream: true,
407
- };
408
- this.configureStreamParams(params);
409
- // Override with input parameters if provided
410
- if (input.parameters?.maxOutputTokens !== undefined) {
411
- params.max_tokens = input.parameters.maxOutputTokens;
412
- }
413
- // Add tools if provided
414
- if (input.tools && input.tools.length > 0) {
415
- params.tools = this.buildToolParams(input.tools);
416
- params.tool_choice = "auto";
417
- }
418
- // Streaming path does not support responses.parse; if schema present,
419
- // request structured output and parse at the end.
420
- if (input.parameters?.jsonSchema) {
421
- params.response_format = this.structuredResponseFormat(input.parameters.jsonSchema, input.parameters.schemaName);
422
- }
423
- const stream = await this.client.chat.completions.create(params, {
424
- signal: (0, utils_1.combineAbortSignals)(input.signal, attemptSignal),
27
+ }
28
+ exports.OpenAICompatibleProvider = OpenAICompatibleProvider;
29
+ function buildProvider(init, mode) {
30
+ if (mode === "responses_parse") {
31
+ return (0, core_1.createResponsesProvider)({
32
+ apiKey: init.apiKey,
33
+ model: init.model,
34
+ id: init.id,
35
+ ...(init.baseUrl ? { baseUrl: `${init.baseUrl}` } : {}),
36
+ ...(init.headers ? { headers: init.headers } : {}),
37
+ ...(init.config?.maxTokens ? { maxTokens: init.config.maxTokens } : {}),
38
+ ...(init.fetchImpl ? { fetchImpl: init.fetchImpl } : {}),
425
39
  });
426
- let accumulated = "";
427
- let currentModel = model;
428
- let finishReason;
429
- let promptTokens;
430
- let completionTokens;
431
- let totalTokens;
432
- const toolCalls = [];
433
- for await (const chunk of stream) {
434
- currentModel = chunk.model;
435
- // Some providers include usage in (possibly choice-less) chunks
436
- if (chunk.usage) {
437
- promptTokens = chunk.usage.prompt_tokens;
438
- completionTokens = chunk.usage.completion_tokens;
439
- totalTokens = chunk.usage.total_tokens;
440
- }
441
- const choice = chunk.choices?.[0];
442
- if (!choice)
443
- continue;
444
- // Extract tool calls from delta
445
- if (choice.delta?.tool_calls) {
446
- for (const toolCall of choice.delta.tool_calls) {
447
- if (toolCall.function) {
448
- toolCalls.push({
449
- toolName: toolCall.function.name || "",
450
- arguments: this.parseToolCallArguments(toolCall.function.arguments, true),
451
- });
452
- }
453
- }
454
- }
455
- // Provider-specific delta handling (e.g. DeepSeek reasoning_content)
456
- this.onStreamDelta(choice.delta);
457
- const delta = choice.delta?.content || "";
458
- if (delta) {
459
- accumulated += delta;
460
- yield {
461
- delta,
462
- accumulated,
463
- done: false,
464
- };
465
- }
466
- if (choice.finish_reason) {
467
- finishReason = choice.finish_reason;
468
- }
469
- }
470
- // Parse JSON response if schema was provided
471
- let structured;
472
- if (input.parameters?.jsonSchema && accumulated) {
473
- try {
474
- structured = JSON.parse(accumulated);
475
- }
476
- catch (error) {
477
- utils_1.logger.warn(`[${this.logLabel}] Failed to parse JSON response in stream:`, error);
478
- }
479
- }
480
- // Include tool calls in structured response (even without JSON schema)
481
- if (toolCalls.length > 0) {
482
- structured = {
483
- ...(structured || {}),
484
- message: structured?.message ||
485
- accumulated,
486
- toolCalls,
487
- };
488
- }
489
- // Empty-completion guard — same definition as the non-streaming path, so the
490
- // stream retries / falls back to backup instead of emitting an empty message.
491
- (0, utils_1.assertUsableCompletion)(structured, accumulated, toolCalls.length, this.displayName);
492
- // Yield final chunk
493
- yield {
494
- delta: "",
495
- accumulated,
496
- done: true,
497
- metadata: {
498
- model: currentModel,
499
- finishReason,
500
- tokensUsed: totalTokens,
501
- promptTokens,
502
- completionTokens,
503
- },
504
- structured,
505
- };
506
40
  }
41
+ return (0, core_1.createOpenAIProvider)({
42
+ apiKey: init.apiKey,
43
+ model: init.model,
44
+ id: init.id,
45
+ jsonMode: mode === "json_schema" ? "schema" : "object",
46
+ ...(init.baseUrl ? { baseUrl: init.baseUrl } : {}),
47
+ ...(init.headers ? { headers: init.headers } : {}),
48
+ ...(init.config?.maxTokens ? { maxTokens: init.config.maxTokens } : {}),
49
+ ...(init.providerOrder ? { providerOrder: init.providerOrder } : {}),
50
+ ...(init.fetchImpl ? { fetchImpl: init.fetchImpl } : {}),
51
+ });
507
52
  }
508
- exports.OpenAICompatibleProvider = OpenAICompatibleProvider;
509
53
  //# sourceMappingURL=OpenAICompatibleProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAICompatibleProvider.js","sourceRoot":"","sources":["../../../src/providers/OpenAICompatibleProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAICompatibleProvider.js","sourceRoot":"","sources":["../../../src/providers/OpenAICompatibleProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,4CAAiG;AAEjG,6DAAqG;AA4BrG,MAAsB,wBAAyB,SAAQ,oCAAe;IAGpE,YAAsB,IAAkC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,IAAI,iBAAiB,CAAC;QACxD,KAAK,CAAC;YACJ,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;CACF;AAdD,4DAcC;AAED,SAAS,aAAa,CAAC,IAAkC,EAAE,IAA0B;IACnF,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/B,OAAO,IAAA,8BAAuB,EAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAA,2BAAoB,EAAC;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,QAAQ,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QACtD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC,CAAC;AACL,CAAC"}
@@ -1,38 +1,32 @@
1
1
  /**
2
- * OpenAI provider implementation with retry and backup models
3
- */
4
- import type { ProviderCapabilities } from "../types/ai";
5
- import { OpenAICompatibleProvider, type OpenAICompatibleRequestConfig } from "./OpenAICompatibleProvider";
6
- /**
7
- * Configuration options for OpenAI provider
8
- * Uses types from openai package
2
+ * OpenAI provider. Structured output goes out on the Responses API, which
3
+ * enforces the schema natively.
9
4
  */
5
+ import type { ProviderCapabilities } from "../types/ai.js";
6
+ import { OpenAICompatibleProvider } from "./OpenAICompatibleProvider.js";
7
+ import type { RequestConfig } from "./ProviderAdapter.js";
10
8
  export interface OpenAIProviderOptions {
11
9
  /** OpenAI API key */
12
10
  apiKey: string;
13
- /** Organization ID (optional) */
14
- organization?: string;
15
- /** Model to use (required) - e.g., "gpt-5.5", "gpt-5.4" */
11
+ /** Model to use (required) — e.g. "gpt-5.6", "gpt-5.4-mini" */
16
12
  model: string;
17
- /** Backup models to try if primary fails (default: []) */
13
+ /** Backup models to try if the primary fails (default: []) */
18
14
  backupModels?: string[];
19
- /** Default parameters - uses ChatCompletionCreateParamsNonStreaming from openai package */
20
- config?: OpenAICompatibleRequestConfig;
21
- /** Retry configuration */
15
+ /** Organization id, sent as the `OpenAI-Organization` header */
16
+ organization?: string;
17
+ /** Request defaults sent with every call */
18
+ config?: RequestConfig;
19
+ /** Idle-stream deadline and retry budget */
22
20
  retryConfig?: {
23
21
  timeout?: number;
24
22
  retries?: number;
25
23
  };
24
+ /** Replacement `fetch`, for tests that script the wire. */
25
+ fetchImpl?: typeof fetch;
26
26
  }
27
- /**
28
- * OpenAI provider implementation with backup models and retry logic.
29
- * Structured output uses the responses.parse API (native JSON schema).
30
- */
31
27
  export declare class OpenAIProvider extends OpenAICompatibleProvider {
32
28
  readonly name = "openai";
33
29
  readonly capabilities: ProviderCapabilities;
34
- protected readonly logLabel = "OPENAI";
35
- protected readonly displayName = "OpenAI";
36
30
  constructor(options: OpenAIProviderOptions);
37
31
  }
38
32
  //# sourceMappingURL=OpenAIProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/OpenAIProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,EACnC,MAAM,4BAA4B,CAAC;AAEpC;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,6BAA6B,CAAC;IACvC,0BAA0B;IAC1B,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,wBAAwB;IAC1D,SAAgB,IAAI,YAAY;IAChC,SAAgB,YAAY,EAAE,oBAAoB,CAMhD;IAEF,SAAS,CAAC,QAAQ,CAAC,QAAQ,YAAY;IACvC,SAAS,CAAC,QAAQ,CAAC,WAAW,YAAY;gBAE9B,OAAO,EAAE,qBAAqB;CA6B3C"}
1
+ {"version":3,"file":"OpenAIProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/OpenAIProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,qBAAqB;IACpC,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,4CAA4C;IAC5C,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,qBAAa,cAAe,SAAQ,wBAAwB;IAC1D,SAAgB,IAAI,YAAY;IAChC,SAAgB,YAAY,EAAE,oBAAoB,CAQhD;gBAEU,OAAO,EAAE,qBAAqB;CAkB3C"}