@falai/agent 2.7.0 → 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 (559) hide show
  1. package/README.md +1 -1
  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 +3 -3
  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 +3 -3
  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 +1 -1
  23. package/dist/adapters/RedisAdapter.d.ts.map +1 -1
  24. package/dist/adapters/RedisAdapter.js +3 -3
  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 +3 -3
  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 +1 -1
  35. package/dist/adapters/sessionRow.d.ts.map +1 -1
  36. package/dist/cjs/adapters/MemoryAdapter.d.ts +1 -1
  37. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +1 -1
  38. package/dist/cjs/adapters/MemoryAdapter.js +14 -14
  39. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
  40. package/dist/cjs/adapters/MongoAdapter.d.ts +1 -1
  41. package/dist/cjs/adapters/MongoAdapter.d.ts.map +1 -1
  42. package/dist/cjs/adapters/MongoAdapter.js +4 -4
  43. package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
  44. package/dist/cjs/adapters/OpenSearchAdapter.d.ts +1 -1
  45. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -1
  46. package/dist/cjs/adapters/OpenSearchAdapter.js +6 -6
  47. package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
  48. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +1 -1
  49. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  50. package/dist/cjs/adapters/PostgreSQLAdapter.js +12 -12
  51. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
  52. package/dist/cjs/adapters/PrismaAdapter.d.ts +1 -1
  53. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +1 -1
  54. package/dist/cjs/adapters/PrismaAdapter.js +7 -7
  55. package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
  56. package/dist/cjs/adapters/RedisAdapter.d.ts +1 -1
  57. package/dist/cjs/adapters/RedisAdapter.d.ts.map +1 -1
  58. package/dist/cjs/adapters/RedisAdapter.js +13 -13
  59. package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
  60. package/dist/cjs/adapters/SQLiteAdapter.d.ts +1 -1
  61. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
  62. package/dist/cjs/adapters/SQLiteAdapter.js +8 -8
  63. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
  64. package/dist/cjs/adapters/index.d.ts +13 -13
  65. package/dist/cjs/adapters/index.d.ts.map +1 -1
  66. package/dist/cjs/adapters/index.js +14 -14
  67. package/dist/cjs/adapters/index.js.map +1 -1
  68. package/dist/cjs/adapters/sessionRow.d.ts +1 -1
  69. package/dist/cjs/adapters/sessionRow.d.ts.map +1 -1
  70. package/dist/cjs/core/Agent.d.ts +11 -11
  71. package/dist/cjs/core/Agent.d.ts.map +1 -1
  72. package/dist/cjs/core/Agent.js +65 -65
  73. package/dist/cjs/core/Agent.js.map +1 -1
  74. package/dist/cjs/core/AutoChainExecutor.d.ts +5 -5
  75. package/dist/cjs/core/AutoChainExecutor.d.ts.map +1 -1
  76. package/dist/cjs/core/AutoChainExecutor.js +26 -26
  77. package/dist/cjs/core/AutoChainExecutor.js.map +1 -1
  78. package/dist/cjs/core/BranchEvaluator.d.ts +4 -4
  79. package/dist/cjs/core/BranchEvaluator.d.ts.map +1 -1
  80. package/dist/cjs/core/BranchEvaluator.js +6 -6
  81. package/dist/cjs/core/BranchEvaluator.js.map +1 -1
  82. package/dist/cjs/core/CompactionEngine.d.ts +2 -2
  83. package/dist/cjs/core/CompactionEngine.d.ts.map +1 -1
  84. package/dist/cjs/core/DirectiveChainTracker.d.ts +1 -1
  85. package/dist/cjs/core/DirectiveChainTracker.d.ts.map +1 -1
  86. package/dist/cjs/core/DirectiveChainTracker.js +5 -5
  87. package/dist/cjs/core/DirectiveChainTracker.js.map +1 -1
  88. package/dist/cjs/core/Events.d.ts +1 -1
  89. package/dist/cjs/core/Events.d.ts.map +1 -1
  90. package/dist/cjs/core/Events.js +15 -15
  91. package/dist/cjs/core/Events.js.map +1 -1
  92. package/dist/cjs/core/Flow.d.ts +4 -4
  93. package/dist/cjs/core/Flow.d.ts.map +1 -1
  94. package/dist/cjs/core/Flow.js +15 -15
  95. package/dist/cjs/core/Flow.js.map +1 -1
  96. package/dist/cjs/core/FlowRouter.d.ts +4 -4
  97. package/dist/cjs/core/FlowRouter.d.ts.map +1 -1
  98. package/dist/cjs/core/FlowRouter.js +64 -64
  99. package/dist/cjs/core/FlowRouter.js.map +1 -1
  100. package/dist/cjs/core/PersistenceManager.d.ts +1 -1
  101. package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
  102. package/dist/cjs/core/PersistenceManager.js +10 -10
  103. package/dist/cjs/core/PersistenceManager.js.map +1 -1
  104. package/dist/cjs/core/PromptComposer.d.ts +4 -4
  105. package/dist/cjs/core/PromptComposer.d.ts.map +1 -1
  106. package/dist/cjs/core/PromptComposer.js +13 -13
  107. package/dist/cjs/core/PromptComposer.js.map +1 -1
  108. package/dist/cjs/core/PromptSectionCache.d.ts +2 -2
  109. package/dist/cjs/core/PromptSectionCache.d.ts.map +1 -1
  110. package/dist/cjs/core/ResponseEngine.d.ts +4 -4
  111. package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
  112. package/dist/cjs/core/ResponseEngine.js +7 -7
  113. package/dist/cjs/core/ResponseEngine.js.map +1 -1
  114. package/dist/cjs/core/ResponseModal.d.ts +10 -10
  115. package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
  116. package/dist/cjs/core/ResponseModal.js +69 -69
  117. package/dist/cjs/core/ResponseModal.js.map +1 -1
  118. package/dist/cjs/core/ResponsePipeline.d.ts +15 -7
  119. package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -1
  120. package/dist/cjs/core/ResponsePipeline.js +99 -91
  121. package/dist/cjs/core/ResponsePipeline.js.map +1 -1
  122. package/dist/cjs/core/SessionFinalizer.d.ts +4 -4
  123. package/dist/cjs/core/SessionFinalizer.d.ts.map +1 -1
  124. package/dist/cjs/core/SessionFinalizer.js +12 -12
  125. package/dist/cjs/core/SessionFinalizer.js.map +1 -1
  126. package/dist/cjs/core/SessionManager.d.ts +5 -5
  127. package/dist/cjs/core/SessionManager.d.ts.map +1 -1
  128. package/dist/cjs/core/SessionManager.js +8 -8
  129. package/dist/cjs/core/SessionManager.js.map +1 -1
  130. package/dist/cjs/core/SignalCoordinator.d.ts +5 -5
  131. package/dist/cjs/core/SignalCoordinator.d.ts.map +1 -1
  132. package/dist/cjs/core/SignalCoordinator.js +12 -12
  133. package/dist/cjs/core/SignalCoordinator.js.map +1 -1
  134. package/dist/cjs/core/SignalEvaluator.d.ts +4 -4
  135. package/dist/cjs/core/SignalEvaluator.d.ts.map +1 -1
  136. package/dist/cjs/core/SignalEvaluator.js +6 -6
  137. package/dist/cjs/core/SignalEvaluator.js.map +1 -1
  138. package/dist/cjs/core/SignalProcessor.d.ts +6 -6
  139. package/dist/cjs/core/SignalProcessor.d.ts.map +1 -1
  140. package/dist/cjs/core/SignalProcessor.js +14 -14
  141. package/dist/cjs/core/SignalProcessor.js.map +1 -1
  142. package/dist/cjs/core/Step.d.ts +5 -5
  143. package/dist/cjs/core/Step.d.ts.map +1 -1
  144. package/dist/cjs/core/Step.js +17 -17
  145. package/dist/cjs/core/Step.js.map +1 -1
  146. package/dist/cjs/core/StepLifecycle.d.ts +3 -3
  147. package/dist/cjs/core/StepLifecycle.d.ts.map +1 -1
  148. package/dist/cjs/core/StepLifecycle.js +10 -10
  149. package/dist/cjs/core/StepLifecycle.js.map +1 -1
  150. package/dist/cjs/core/StreamingToolExecutor.d.ts +1 -1
  151. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -1
  152. package/dist/cjs/core/StreamingToolExecutor.js +5 -5
  153. package/dist/cjs/core/StreamingToolExecutor.js.map +1 -1
  154. package/dist/cjs/core/ToolLoopExecutor.d.ts +4 -4
  155. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +1 -1
  156. package/dist/cjs/core/ToolLoopExecutor.js +51 -51
  157. package/dist/cjs/core/ToolLoopExecutor.js.map +1 -1
  158. package/dist/cjs/core/ToolManager.d.ts +5 -5
  159. package/dist/cjs/core/ToolManager.d.ts.map +1 -1
  160. package/dist/cjs/core/ToolManager.js +66 -66
  161. package/dist/cjs/core/ToolManager.js.map +1 -1
  162. package/dist/cjs/core/createAgent.d.ts +2 -2
  163. package/dist/cjs/core/createAgent.d.ts.map +1 -1
  164. package/dist/cjs/core/createAgent.js +2 -2
  165. package/dist/cjs/core/createAgent.js.map +1 -1
  166. package/dist/cjs/core/flow-namespace.d.ts +2 -2
  167. package/dist/cjs/core/flow-namespace.d.ts.map +1 -1
  168. package/dist/cjs/core/flow-namespace.js +4 -4
  169. package/dist/cjs/core/flow-namespace.js.map +1 -1
  170. package/dist/cjs/core/toolGates.d.ts +1 -1
  171. package/dist/cjs/core/toolGates.d.ts.map +1 -1
  172. package/dist/cjs/core/toolGates.js +3 -3
  173. package/dist/cjs/core/toolGates.js.map +1 -1
  174. package/dist/cjs/index.d.ts +50 -48
  175. package/dist/cjs/index.d.ts.map +1 -1
  176. package/dist/cjs/index.js +96 -91
  177. package/dist/cjs/index.js.map +1 -1
  178. package/dist/cjs/providers/AnthropicProvider.d.ts +25 -42
  179. package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -1
  180. package/dist/cjs/providers/AnthropicProvider.js +31 -408
  181. package/dist/cjs/providers/AnthropicProvider.js.map +1 -1
  182. package/dist/cjs/providers/DeepSeekProvider.d.ts +13 -34
  183. package/dist/cjs/providers/DeepSeekProvider.d.ts.map +1 -1
  184. package/dist/cjs/providers/DeepSeekProvider.js +17 -51
  185. package/dist/cjs/providers/DeepSeekProvider.js.map +1 -1
  186. package/dist/cjs/providers/GeminiProvider.d.ts +24 -83
  187. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  188. package/dist/cjs/providers/GeminiProvider.js +32 -514
  189. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  190. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts +9 -10
  191. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -1
  192. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js +14 -20
  193. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js.map +1 -1
  194. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +26 -144
  195. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  196. package/dist/cjs/providers/OpenAICompatibleProvider.js +40 -523
  197. package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -1
  198. package/dist/cjs/providers/OpenAIProvider.d.ts +14 -20
  199. package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
  200. package/dist/cjs/providers/OpenAIProvider.js +20 -27
  201. package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
  202. package/dist/cjs/providers/OpenRouterProvider.d.ts +20 -24
  203. package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -1
  204. package/dist/cjs/providers/OpenRouterProvider.js +22 -38
  205. package/dist/cjs/providers/OpenRouterProvider.js.map +1 -1
  206. package/dist/cjs/providers/ProviderAdapter.d.ts +94 -0
  207. package/dist/cjs/providers/ProviderAdapter.d.ts.map +1 -0
  208. package/dist/cjs/providers/ProviderAdapter.js +257 -0
  209. package/dist/cjs/providers/ProviderAdapter.js.map +1 -0
  210. package/dist/cjs/providers/index.d.ts +21 -18
  211. package/dist/cjs/providers/index.d.ts.map +1 -1
  212. package/dist/cjs/providers/index.js +23 -21
  213. package/dist/cjs/providers/index.js.map +1 -1
  214. package/dist/cjs/types/agent.d.ts +11 -11
  215. package/dist/cjs/types/agent.d.ts.map +1 -1
  216. package/dist/cjs/types/ai.d.ts +11 -21
  217. package/dist/cjs/types/ai.d.ts.map +1 -1
  218. package/dist/cjs/types/compaction.d.ts +2 -2
  219. package/dist/cjs/types/compaction.d.ts.map +1 -1
  220. package/dist/cjs/types/errors.d.ts +16 -20
  221. package/dist/cjs/types/errors.d.ts.map +1 -1
  222. package/dist/cjs/types/errors.js +17 -18
  223. package/dist/cjs/types/errors.js.map +1 -1
  224. package/dist/cjs/types/flow.d.ts +7 -7
  225. package/dist/cjs/types/flow.d.ts.map +1 -1
  226. package/dist/cjs/types/history.d.ts +1 -1
  227. package/dist/cjs/types/history.d.ts.map +1 -1
  228. package/dist/cjs/types/index.d.ts +17 -17
  229. package/dist/cjs/types/index.d.ts.map +1 -1
  230. package/dist/cjs/types/index.js +14 -14
  231. package/dist/cjs/types/index.js.map +1 -1
  232. package/dist/cjs/types/persistence.d.ts +2 -2
  233. package/dist/cjs/types/persistence.d.ts.map +1 -1
  234. package/dist/cjs/types/session.d.ts +4 -4
  235. package/dist/cjs/types/session.d.ts.map +1 -1
  236. package/dist/cjs/types/signals.d.ts +3 -3
  237. package/dist/cjs/types/signals.d.ts.map +1 -1
  238. package/dist/cjs/types/template.d.ts +2 -2
  239. package/dist/cjs/types/template.d.ts.map +1 -1
  240. package/dist/cjs/types/tool.d.ts +2 -2
  241. package/dist/cjs/types/tool.d.ts.map +1 -1
  242. package/dist/cjs/utils/condition.d.ts +1 -1
  243. package/dist/cjs/utils/condition.d.ts.map +1 -1
  244. package/dist/cjs/utils/condition.js +6 -6
  245. package/dist/cjs/utils/condition.js.map +1 -1
  246. package/dist/cjs/utils/event.d.ts +1 -1
  247. package/dist/cjs/utils/event.d.ts.map +1 -1
  248. package/dist/cjs/utils/event.js +2 -2
  249. package/dist/cjs/utils/event.js.map +1 -1
  250. package/dist/cjs/utils/history.d.ts +2 -2
  251. package/dist/cjs/utils/history.d.ts.map +1 -1
  252. package/dist/cjs/utils/history.js +15 -15
  253. package/dist/cjs/utils/history.js.map +1 -1
  254. package/dist/cjs/utils/index.d.ts +11 -13
  255. package/dist/cjs/utils/index.d.ts.map +1 -1
  256. package/dist/cjs/utils/index.js +57 -67
  257. package/dist/cjs/utils/index.js.map +1 -1
  258. package/dist/cjs/utils/serialize.d.ts +2 -2
  259. package/dist/cjs/utils/serialize.d.ts.map +1 -1
  260. package/dist/cjs/utils/session.d.ts +3 -3
  261. package/dist/cjs/utils/session.d.ts.map +1 -1
  262. package/dist/cjs/utils/session.js +4 -4
  263. package/dist/cjs/utils/session.js.map +1 -1
  264. package/dist/cjs/utils/template.d.ts +3 -3
  265. package/dist/cjs/utils/template.d.ts.map +1 -1
  266. package/dist/cjs/utils/template.js +5 -5
  267. package/dist/cjs/utils/template.js.map +1 -1
  268. package/dist/constants/index.d.ts +1 -0
  269. package/dist/constants/index.js +1 -1
  270. package/dist/core/Agent.d.ts +11 -11
  271. package/dist/core/Agent.d.ts.map +1 -1
  272. package/dist/core/Agent.js +13 -13
  273. package/dist/core/Agent.js.map +1 -1
  274. package/dist/core/AutoChainExecutor.d.ts +5 -5
  275. package/dist/core/AutoChainExecutor.d.ts.map +1 -1
  276. package/dist/core/AutoChainExecutor.js +5 -5
  277. package/dist/core/AutoChainExecutor.js.map +1 -1
  278. package/dist/core/BranchEvaluator.d.ts +4 -4
  279. package/dist/core/BranchEvaluator.d.ts.map +1 -1
  280. package/dist/core/BranchEvaluator.js +2 -2
  281. package/dist/core/BranchEvaluator.js.map +1 -1
  282. package/dist/core/CompactionEngine.d.ts +2 -2
  283. package/dist/core/CompactionEngine.d.ts.map +1 -1
  284. package/dist/core/DirectiveChainTracker.d.ts +1 -1
  285. package/dist/core/DirectiveChainTracker.d.ts.map +1 -1
  286. package/dist/core/DirectiveChainTracker.js +2 -2
  287. package/dist/core/DirectiveChainTracker.js.map +1 -1
  288. package/dist/core/Events.d.ts +1 -1
  289. package/dist/core/Events.d.ts.map +1 -1
  290. package/dist/core/Events.js +1 -1
  291. package/dist/core/Events.js.map +1 -1
  292. package/dist/core/Flow.d.ts +4 -4
  293. package/dist/core/Flow.d.ts.map +1 -1
  294. package/dist/core/Flow.js +3 -3
  295. package/dist/core/Flow.js.map +1 -1
  296. package/dist/core/FlowRouter.d.ts +4 -4
  297. package/dist/core/FlowRouter.d.ts.map +1 -1
  298. package/dist/core/FlowRouter.js +4 -4
  299. package/dist/core/FlowRouter.js.map +1 -1
  300. package/dist/core/PersistenceManager.d.ts +1 -1
  301. package/dist/core/PersistenceManager.d.ts.map +1 -1
  302. package/dist/core/PersistenceManager.js +3 -3
  303. package/dist/core/PersistenceManager.js.map +1 -1
  304. package/dist/core/PromptComposer.d.ts +4 -4
  305. package/dist/core/PromptComposer.d.ts.map +1 -1
  306. package/dist/core/PromptComposer.js +3 -3
  307. package/dist/core/PromptComposer.js.map +1 -1
  308. package/dist/core/PromptSectionCache.d.ts +2 -2
  309. package/dist/core/PromptSectionCache.d.ts.map +1 -1
  310. package/dist/core/ResponseEngine.d.ts +4 -4
  311. package/dist/core/ResponseEngine.d.ts.map +1 -1
  312. package/dist/core/ResponseEngine.js +2 -2
  313. package/dist/core/ResponseEngine.js.map +1 -1
  314. package/dist/core/ResponseModal.d.ts +10 -10
  315. package/dist/core/ResponseModal.d.ts.map +1 -1
  316. package/dist/core/ResponseModal.js +14 -14
  317. package/dist/core/ResponseModal.js.map +1 -1
  318. package/dist/core/ResponsePipeline.d.ts +15 -7
  319. package/dist/core/ResponsePipeline.d.ts.map +1 -1
  320. package/dist/core/ResponsePipeline.js +25 -17
  321. package/dist/core/ResponsePipeline.js.map +1 -1
  322. package/dist/core/SessionFinalizer.d.ts +4 -4
  323. package/dist/core/SessionFinalizer.d.ts.map +1 -1
  324. package/dist/core/SessionFinalizer.js +3 -3
  325. package/dist/core/SessionFinalizer.js.map +1 -1
  326. package/dist/core/SessionManager.d.ts +5 -5
  327. package/dist/core/SessionManager.d.ts.map +1 -1
  328. package/dist/core/SessionManager.js +3 -3
  329. package/dist/core/SessionManager.js.map +1 -1
  330. package/dist/core/SignalCoordinator.d.ts +5 -5
  331. package/dist/core/SignalCoordinator.d.ts.map +1 -1
  332. package/dist/core/SignalCoordinator.js +2 -2
  333. package/dist/core/SignalCoordinator.js.map +1 -1
  334. package/dist/core/SignalEvaluator.d.ts +4 -4
  335. package/dist/core/SignalEvaluator.d.ts.map +1 -1
  336. package/dist/core/SignalEvaluator.js +2 -2
  337. package/dist/core/SignalEvaluator.js.map +1 -1
  338. package/dist/core/SignalProcessor.d.ts +6 -6
  339. package/dist/core/SignalProcessor.d.ts.map +1 -1
  340. package/dist/core/SignalProcessor.js +3 -3
  341. package/dist/core/SignalProcessor.js.map +1 -1
  342. package/dist/core/Step.d.ts +5 -5
  343. package/dist/core/Step.d.ts.map +1 -1
  344. package/dist/core/Step.js +4 -4
  345. package/dist/core/Step.js.map +1 -1
  346. package/dist/core/StepLifecycle.d.ts +3 -3
  347. package/dist/core/StepLifecycle.d.ts.map +1 -1
  348. package/dist/core/StepLifecycle.js +2 -2
  349. package/dist/core/StepLifecycle.js.map +1 -1
  350. package/dist/core/StreamingToolExecutor.d.ts +1 -1
  351. package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
  352. package/dist/core/StreamingToolExecutor.js +2 -2
  353. package/dist/core/StreamingToolExecutor.js.map +1 -1
  354. package/dist/core/ToolLoopExecutor.d.ts +4 -4
  355. package/dist/core/ToolLoopExecutor.d.ts.map +1 -1
  356. package/dist/core/ToolLoopExecutor.js +3 -3
  357. package/dist/core/ToolLoopExecutor.js.map +1 -1
  358. package/dist/core/ToolManager.d.ts +5 -5
  359. package/dist/core/ToolManager.d.ts.map +1 -1
  360. package/dist/core/ToolManager.js +4 -4
  361. package/dist/core/ToolManager.js.map +1 -1
  362. package/dist/core/createAgent.d.ts +2 -2
  363. package/dist/core/createAgent.d.ts.map +1 -1
  364. package/dist/core/createAgent.js +1 -1
  365. package/dist/core/createAgent.js.map +1 -1
  366. package/dist/core/flow-namespace.d.ts +2 -2
  367. package/dist/core/flow-namespace.d.ts.map +1 -1
  368. package/dist/core/flow-namespace.js +1 -1
  369. package/dist/core/flow-namespace.js.map +1 -1
  370. package/dist/core/toolGates.d.ts +1 -1
  371. package/dist/core/toolGates.d.ts.map +1 -1
  372. package/dist/core/toolGates.js +1 -1
  373. package/dist/core/toolGates.js.map +1 -1
  374. package/dist/index.d.ts +50 -48
  375. package/dist/index.d.ts.map +1 -1
  376. package/dist/index.js +34 -31
  377. package/dist/index.js.map +1 -1
  378. package/dist/providers/AnthropicProvider.d.ts +25 -42
  379. package/dist/providers/AnthropicProvider.d.ts.map +1 -1
  380. package/dist/providers/AnthropicProvider.js +31 -405
  381. package/dist/providers/AnthropicProvider.js.map +1 -1
  382. package/dist/providers/DeepSeekProvider.d.ts +13 -34
  383. package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
  384. package/dist/providers/DeepSeekProvider.js +16 -47
  385. package/dist/providers/DeepSeekProvider.js.map +1 -1
  386. package/dist/providers/GeminiProvider.d.ts +24 -83
  387. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  388. package/dist/providers/GeminiProvider.js +32 -514
  389. package/dist/providers/GeminiProvider.js.map +1 -1
  390. package/dist/providers/GenericOpenAICompatibleProvider.d.ts +9 -10
  391. package/dist/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -1
  392. package/dist/providers/GenericOpenAICompatibleProvider.js +13 -16
  393. package/dist/providers/GenericOpenAICompatibleProvider.js.map +1 -1
  394. package/dist/providers/OpenAICompatibleProvider.d.ts +26 -144
  395. package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  396. package/dist/providers/OpenAICompatibleProvider.js +39 -522
  397. package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
  398. package/dist/providers/OpenAIProvider.d.ts +14 -20
  399. package/dist/providers/OpenAIProvider.d.ts.map +1 -1
  400. package/dist/providers/OpenAIProvider.js +19 -23
  401. package/dist/providers/OpenAIProvider.js.map +1 -1
  402. package/dist/providers/OpenRouterProvider.d.ts +20 -24
  403. package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
  404. package/dist/providers/OpenRouterProvider.js +21 -34
  405. package/dist/providers/OpenRouterProvider.js.map +1 -1
  406. package/dist/providers/ProviderAdapter.d.ts +94 -0
  407. package/dist/providers/ProviderAdapter.d.ts.map +1 -0
  408. package/dist/providers/ProviderAdapter.js +251 -0
  409. package/dist/providers/ProviderAdapter.js.map +1 -0
  410. package/dist/providers/index.d.ts +21 -18
  411. package/dist/providers/index.d.ts.map +1 -1
  412. package/dist/providers/index.js +13 -10
  413. package/dist/providers/index.js.map +1 -1
  414. package/dist/types/agent.d.ts +11 -11
  415. package/dist/types/agent.d.ts.map +1 -1
  416. package/dist/types/ai.d.ts +11 -21
  417. package/dist/types/ai.d.ts.map +1 -1
  418. package/dist/types/compaction.d.ts +2 -2
  419. package/dist/types/compaction.d.ts.map +1 -1
  420. package/dist/types/errors.d.ts +16 -20
  421. package/dist/types/errors.d.ts.map +1 -1
  422. package/dist/types/errors.js +15 -16
  423. package/dist/types/errors.js.map +1 -1
  424. package/dist/types/flow.d.ts +7 -7
  425. package/dist/types/flow.d.ts.map +1 -1
  426. package/dist/types/history.d.ts +1 -1
  427. package/dist/types/history.d.ts.map +1 -1
  428. package/dist/types/index.d.ts +17 -17
  429. package/dist/types/index.d.ts.map +1 -1
  430. package/dist/types/index.js +4 -4
  431. package/dist/types/index.js.map +1 -1
  432. package/dist/types/persistence.d.ts +2 -2
  433. package/dist/types/persistence.d.ts.map +1 -1
  434. package/dist/types/session.d.ts +4 -4
  435. package/dist/types/session.d.ts.map +1 -1
  436. package/dist/types/signals.d.ts +3 -3
  437. package/dist/types/signals.d.ts.map +1 -1
  438. package/dist/types/template.d.ts +2 -2
  439. package/dist/types/template.d.ts.map +1 -1
  440. package/dist/types/tool.d.ts +2 -2
  441. package/dist/types/tool.d.ts.map +1 -1
  442. package/dist/utils/condition.d.ts +1 -1
  443. package/dist/utils/condition.d.ts.map +1 -1
  444. package/dist/utils/condition.js +2 -2
  445. package/dist/utils/condition.js.map +1 -1
  446. package/dist/utils/event.d.ts +1 -1
  447. package/dist/utils/event.d.ts.map +1 -1
  448. package/dist/utils/event.js +1 -1
  449. package/dist/utils/event.js.map +1 -1
  450. package/dist/utils/history.d.ts +2 -2
  451. package/dist/utils/history.d.ts.map +1 -1
  452. package/dist/utils/history.js +1 -1
  453. package/dist/utils/history.js.map +1 -1
  454. package/dist/utils/index.d.ts +11 -13
  455. package/dist/utils/index.d.ts.map +1 -1
  456. package/dist/utils/index.js +11 -12
  457. package/dist/utils/index.js.map +1 -1
  458. package/dist/utils/serialize.d.ts +2 -2
  459. package/dist/utils/serialize.d.ts.map +1 -1
  460. package/dist/utils/session.d.ts +3 -3
  461. package/dist/utils/session.d.ts.map +1 -1
  462. package/dist/utils/session.js +2 -2
  463. package/dist/utils/session.js.map +1 -1
  464. package/dist/utils/template.d.ts +3 -3
  465. package/dist/utils/template.d.ts.map +1 -1
  466. package/dist/utils/template.js +1 -1
  467. package/dist/utils/template.js.map +1 -1
  468. package/docs/reference/branches.md +2 -0
  469. package/docs/reference/errors.md +5 -5
  470. package/docs/reference/providers.md +42 -43
  471. package/examples/01-quickstart.ts +1 -1
  472. package/examples/04-instructions.ts +1 -1
  473. package/examples/05-branching.ts +2 -2
  474. package/examples/08-persistence.ts +1 -1
  475. package/examples/tsconfig.json +6 -3
  476. package/package.json +8 -6
  477. package/src/adapters/MemoryAdapter.ts +4 -4
  478. package/src/adapters/MongoAdapter.ts +3 -3
  479. package/src/adapters/OpenSearchAdapter.ts +4 -4
  480. package/src/adapters/PostgreSQLAdapter.ts +4 -4
  481. package/src/adapters/PrismaAdapter.ts +4 -4
  482. package/src/adapters/RedisAdapter.ts +4 -4
  483. package/src/adapters/SQLiteAdapter.ts +4 -4
  484. package/src/adapters/index.ts +13 -13
  485. package/src/adapters/sessionRow.ts +1 -1
  486. package/src/core/Agent.ts +18 -18
  487. package/src/core/AutoChainExecutor.ts +9 -9
  488. package/src/core/BranchEvaluator.ts +5 -5
  489. package/src/core/CompactionEngine.ts +2 -2
  490. package/src/core/DirectiveChainTracker.ts +3 -3
  491. package/src/core/Events.ts +2 -2
  492. package/src/core/Flow.ts +9 -9
  493. package/src/core/FlowRouter.ts +8 -8
  494. package/src/core/PersistenceManager.ts +4 -4
  495. package/src/core/PromptComposer.ts +8 -8
  496. package/src/core/PromptSectionCache.ts +2 -2
  497. package/src/core/ResponseEngine.ts +6 -6
  498. package/src/core/ResponseModal.ts +24 -24
  499. package/src/core/ResponsePipeline.ts +43 -23
  500. package/src/core/SessionFinalizer.ts +7 -7
  501. package/src/core/SessionManager.ts +7 -7
  502. package/src/core/SignalCoordinator.ts +7 -7
  503. package/src/core/SignalEvaluator.ts +6 -6
  504. package/src/core/SignalProcessor.ts +9 -9
  505. package/src/core/Step.ts +9 -9
  506. package/src/core/StepLifecycle.ts +6 -6
  507. package/src/core/StreamingToolExecutor.ts +4 -4
  508. package/src/core/ToolLoopExecutor.ts +7 -7
  509. package/src/core/ToolManager.ts +9 -9
  510. package/src/core/createAgent.ts +2 -2
  511. package/src/core/flow-namespace.ts +3 -3
  512. package/src/core/toolGates.ts +2 -2
  513. package/src/index.ts +59 -48
  514. package/src/providers/AnthropicProvider.ts +45 -548
  515. package/src/providers/DeepSeekProvider.ts +27 -92
  516. package/src/providers/GeminiProvider.ts +43 -680
  517. package/src/providers/GenericOpenAICompatibleProvider.ts +19 -27
  518. package/src/providers/OpenAICompatibleProvider.ts +58 -763
  519. package/src/providers/OpenAIProvider.ts +31 -55
  520. package/src/providers/OpenRouterProvider.ts +40 -70
  521. package/src/providers/ProviderAdapter.ts +368 -0
  522. package/src/providers/index.ts +21 -23
  523. package/src/types/agent.ts +11 -11
  524. package/src/types/ai.ts +11 -21
  525. package/src/types/compaction.ts +2 -2
  526. package/src/types/errors.ts +17 -35
  527. package/src/types/flow.ts +7 -7
  528. package/src/types/history.ts +1 -1
  529. package/src/types/index.ts +17 -17
  530. package/src/types/persistence.ts +2 -2
  531. package/src/types/session.ts +4 -4
  532. package/src/types/signals.ts +3 -3
  533. package/src/types/template.ts +2 -2
  534. package/src/types/tool.ts +2 -2
  535. package/src/utils/condition.ts +3 -3
  536. package/src/utils/event.ts +1 -1
  537. package/src/utils/history.ts +3 -3
  538. package/src/utils/index.ts +11 -31
  539. package/src/utils/serialize.ts +2 -2
  540. package/src/utils/session.ts +6 -6
  541. package/src/utils/template.ts +3 -3
  542. package/dist/cjs/providers/errorClassification.d.ts +0 -68
  543. package/dist/cjs/providers/errorClassification.d.ts.map +0 -1
  544. package/dist/cjs/providers/errorClassification.js +0 -150
  545. package/dist/cjs/providers/errorClassification.js.map +0 -1
  546. package/dist/cjs/utils/retry.d.ts +0 -165
  547. package/dist/cjs/utils/retry.d.ts.map +0 -1
  548. package/dist/cjs/utils/retry.js +0 -338
  549. package/dist/cjs/utils/retry.js.map +0 -1
  550. package/dist/providers/errorClassification.d.ts +0 -68
  551. package/dist/providers/errorClassification.d.ts.map +0 -1
  552. package/dist/providers/errorClassification.js +0 -142
  553. package/dist/providers/errorClassification.js.map +0 -1
  554. package/dist/utils/retry.d.ts +0 -165
  555. package/dist/utils/retry.d.ts.map +0 -1
  556. package/dist/utils/retry.js +0 -327
  557. package/dist/utils/retry.js.map +0 -1
  558. package/src/providers/errorClassification.ts +0 -206
  559. package/src/utils/retry.ts +0 -523
@@ -1,422 +1,45 @@
1
1
  "use strict";
2
2
  /**
3
- * Anthropic (Claude) provider implementation with retry and backup models
3
+ * Anthropic (Claude).
4
+ *
5
+ * Anthropic has no native schema mode, so a structured request carries the
6
+ * schema as an extra system block — placed after the cached one, where a
7
+ * per-call schema cannot invalidate the system prompt's cache. That, the
8
+ * thinking budget, its 529, and its cache-token accounting all live in
9
+ * `@providerkit/core`; this file is the constructor.
4
10
  */
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.AnthropicProvider = void 0;
10
- const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
11
- const utils_1 = require("../utils");
12
- const errorClassification_1 = require("./errorClassification");
13
- /**
14
- * Anthropic-specific error classification signals (HTTP 529 plus
15
- * overloaded_error/api_error types and the "overloaded" code).
16
- */
17
- const CLASSIFICATION_OPTIONS = {
18
- overloadedStatuses: [529],
19
- overloadedTypes: ["overloaded_error", "api_error"],
20
- overloadedCodes: ["overloaded"],
21
- };
22
- /**
23
- * Determines if an error should trigger backup model usage.
24
- * Derived from the normalized error classification.
25
- */
26
- const shouldUseBackupModel = (error) => (0, errorClassification_1.isBackupEligible)((0, errorClassification_1.classifyProviderError)(error, CLASSIFICATION_OPTIONS));
27
- /**
28
- * Anthropic provider implementation with backup models and retry logic
29
- */
30
- class AnthropicProvider {
13
+ const core_1 = require("@providerkit/core");
14
+ const ProviderAdapter_js_1 = require("./ProviderAdapter.js");
15
+ class AnthropicProvider extends ProviderAdapter_js_1.ProviderAdapter {
31
16
  constructor(options) {
17
+ if (!options.apiKey)
18
+ throw new Error("Anthropic API key is required");
19
+ if (!options.model) {
20
+ throw new Error("Model is required. Example: 'claude-sonnet-5' or 'claude-opus-5'");
21
+ }
22
+ super({
23
+ provider: (0, core_1.createAnthropicProvider)({
24
+ apiKey: options.apiKey,
25
+ model: options.model,
26
+ id: "anthropic",
27
+ ...(options.baseUrl ? { baseUrl: options.baseUrl } : {}),
28
+ ...(options.config?.maxTokens ? { maxTokens: options.config.maxTokens } : {}),
29
+ ...(options.fetchImpl ? { fetchImpl: options.fetchImpl } : {}),
30
+ }),
31
+ model: options.model,
32
+ ...(options.config ? { defaults: options.config } : {}),
33
+ ...(options.backupModels ? { backupModels: options.backupModels } : {}),
34
+ ...(options.retryConfig ? { retryConfig: options.retryConfig } : {}),
35
+ });
32
36
  this.name = "anthropic";
33
37
  this.capabilities = {
34
38
  supportsTools: true,
35
- supportsNativeJsonSchema: false, // JSON output is enforced via a prompt instruction, not a native schema mode
39
+ supportsNativeJsonSchema: false,
36
40
  supportsStreaming: true,
37
41
  supportsStreamingToolCalls: true,
38
- // No cache_control is attached to any request yet — reporting true would
39
- // make consumers believe repeated system prompts are cached when they are
40
- // not. Flip this when caching is actually implemented.
41
- supportsPromptCaching: false,
42
- };
43
- const { apiKey, model, backupModels = [], config, retryConfig, client } = options;
44
- if (!client && !apiKey) {
45
- throw new Error("Anthropic API key is required");
46
- }
47
- if (!model) {
48
- throw new Error("Model is required. Example: 'claude-sonnet-5'");
49
- }
50
- this.client = client ?? new sdk_1.default({
51
- apiKey,
52
- });
53
- this.primaryModel = model;
54
- this.backupModels = backupModels;
55
- this.config = config;
56
- this.retryConfig = (0, utils_1.resolveRetryConfig)(retryConfig);
57
- }
58
- /**
59
- * Build Anthropic-formatted messages from HistoryItem[] array.
60
- * System messages are extracted separately (Anthropic uses a `system` param).
61
- * Tool results are mapped to Anthropic's tool_result content blocks.
62
- * Assistant tool_calls are mapped to tool_use content blocks.
63
- */
64
- buildAnthropicMessages(history) {
65
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
66
- const messages = [];
67
- const systemMessages = [];
68
- for (const item of history) {
69
- switch (item.role) {
70
- case "system":
71
- systemMessages.push(item.content);
72
- break;
73
- case "user":
74
- messages.push({ role: "user", content: item.content });
75
- break;
76
- case "assistant":
77
- if (item.tool_calls && item.tool_calls.length > 0) {
78
- const content = [];
79
- if (item.content) {
80
- content.push({ type: "text", text: item.content });
81
- }
82
- for (const tc of item.tool_calls) {
83
- content.push({
84
- type: "tool_use",
85
- id: tc.id,
86
- name: tc.name,
87
- input: tc.arguments,
88
- });
89
- }
90
- messages.push({ role: "assistant", content });
91
- }
92
- else {
93
- messages.push({ role: "assistant", content: item.content || "" });
94
- }
95
- break;
96
- case "tool":
97
- // Anthropic tool results are sent as user messages with tool_result content blocks
98
- messages.push({
99
- role: "user",
100
- content: [
101
- {
102
- type: "tool_result",
103
- tool_use_id: item.tool_call_id,
104
- content: typeof item.content === "string" ? item.content : JSON.stringify(item.content),
105
- },
106
- ],
107
- });
108
- break;
109
- }
110
- }
111
- return { messages, systemMessages };
112
- }
113
- async generateMessage(input) {
114
- return this.generateWithBackup(input);
115
- }
116
- async *generateMessageStream(input) {
117
- yield* this.generateStreamWithBackup(input);
118
- }
119
- async generateWithBackup(input) {
120
- const observer = (0, utils_1.backupFallbackLogging)("[ANTHROPIC]", shouldUseBackupModel);
121
- try {
122
- return await (0, utils_1.withBackupFallback)({
123
- models: [this.primaryModel, ...this.backupModels],
124
- attempt: (model) => this.generateWithModel(model, input),
125
- shouldTryBackup: shouldUseBackupModel,
126
- ...observer.callbacks,
127
- });
128
- }
129
- catch (error) {
130
- observer.logExhausted(error);
131
- throw (0, errorClassification_1.toProviderError)(error, this.name, CLASSIFICATION_OPTIONS);
132
- }
133
- }
134
- async generateWithModel(model, input) {
135
- const operation = async (signal) => {
136
- // Anthropic requires max_tokens to be specified
137
- const maxTokens = input.parameters?.maxOutputTokens || 4096;
138
- // Build messages from history
139
- const { messages: historyMessages, systemMessages } = this.buildAnthropicMessages(input.history);
140
- // Append the current prompt as the final user message
141
- historyMessages.push({
142
- role: "user",
143
- content: input.prompt,
144
- });
145
- const params = {
146
- model,
147
- max_tokens: maxTokens,
148
- messages: historyMessages,
149
- ...this.config,
150
- };
151
- // Set system messages from history if present
152
- if (systemMessages.length > 0) {
153
- if (typeof this.config?.system === "string") {
154
- params.system = `${this.config.system}\n\n${systemMessages.join("\n\n")}`;
155
- }
156
- else if (Array.isArray(this.config?.system)) {
157
- params.system = [
158
- ...this.config.system,
159
- ...systemMessages.map(s => ({ type: "text", text: s })),
160
- ];
161
- }
162
- else {
163
- params.system = systemMessages.join("\n\n");
164
- }
165
- }
166
- // Add tools if provided
167
- if (input.tools && input.tools.length > 0) {
168
- params.tools = input.tools.map((tool) => ({
169
- name: tool.name || tool.id,
170
- description: tool.description || "",
171
- input_schema: tool.parameters, // JSON schema
172
- }));
173
- }
174
- // Handle schema: Anthropic doesn't have a native schema mode, so embed constraints
175
- if (input.parameters?.jsonSchema) {
176
- const systemPrompt = "You must respond with valid JSON only and it MUST match the provided schema.";
177
- // Merge with existing system if present
178
- if (typeof this.config?.system === "string") {
179
- params.system = `${this.config.system}\n\n${systemPrompt}`;
180
- }
181
- else if (Array.isArray(this.config?.system)) {
182
- params.system = [
183
- ...this.config.system,
184
- {
185
- type: "text",
186
- text: systemPrompt,
187
- },
188
- ];
189
- }
190
- else {
191
- params.system = systemPrompt;
192
- }
193
- }
194
- const response = await this.client.messages.create(params, {
195
- signal: (0, utils_1.combineAbortSignals)(input.signal, signal),
196
- });
197
- // Extract text and tool calls from response
198
- const textContent = response.content.find((block) => block.type === "text");
199
- const message = textContent?.type === "text" ? textContent.text : "";
200
- // Extract tool calls from response
201
- const toolCalls = [];
202
- // Check for tool_use content blocks
203
- for (const block of response.content) {
204
- if (block.type === "tool_use") {
205
- toolCalls.push({
206
- toolName: block.name,
207
- arguments: block.input,
208
- });
209
- }
210
- }
211
- // Only throw error if we have no text AND no function calls
212
- if (!message && toolCalls.length === 0) {
213
- throw new Error("No response from Anthropic");
214
- }
215
- // Parse JSON response if schema was provided
216
- let structured;
217
- if (input.parameters?.jsonSchema) {
218
- try {
219
- structured = JSON.parse(message);
220
- }
221
- catch (error) {
222
- utils_1.logger.warn("[ANTHROPIC] Failed to parse JSON response:", error);
223
- // Fall back to treating the message as plain text
224
- }
225
- }
226
- // If tools were used, include them in structured response
227
- if (toolCalls.length > 0) {
228
- structured = {
229
- ...(structured || {}),
230
- message: structured?.message || message,
231
- toolCalls,
232
- };
233
- }
234
- // A parsed-but-blank message with no tool calls is as empty as no text;
235
- // the shared guard throws so withTimeoutAndRetry retries instead of
236
- // returning {"message":""}.
237
- (0, utils_1.assertUsableCompletion)(structured, message, toolCalls.length, "Anthropic");
238
- return {
239
- message,
240
- metadata: {
241
- model: response.model,
242
- stopReason: response.stop_reason,
243
- tokensUsed: response.usage.input_tokens + response.usage.output_tokens,
244
- promptTokens: response.usage.input_tokens,
245
- completionTokens: response.usage.output_tokens,
246
- },
247
- structured,
248
- };
249
- };
250
- return (0, utils_1.withTimeoutAndRetry)(operation, this.retryConfig.timeout, this.retryConfig.retries, `Anthropic ${model}`, (error) => (0, errorClassification_1.isRetriableProviderError)(error, CLASSIFICATION_OPTIONS));
251
- }
252
- async *generateStreamWithBackup(input) {
253
- const observer = (0, utils_1.backupFallbackLogging)("[ANTHROPIC]", shouldUseBackupModel, { streaming: true });
254
- try {
255
- yield* (0, utils_1.streamWithBackupFallback)({
256
- models: [this.primaryModel, ...this.backupModels],
257
- attempt: (model) => (0, utils_1.withStreamRetry)((signal) => this.generateStreamWithModel(model, input, signal), { maxRetries: this.retryConfig.retries, firstChunkTimeoutMs: this.retryConfig.timeout, operationName: `Anthropic ${model} stream`, isRetriable: (error) => (0, errorClassification_1.isRetriableProviderError)(error, CLASSIFICATION_OPTIONS) }),
258
- shouldTryBackup: shouldUseBackupModel,
259
- ...observer.callbacks,
260
- });
261
- }
262
- catch (error) {
263
- observer.logExhausted(error);
264
- throw (0, errorClassification_1.toProviderError)(error, this.name, CLASSIFICATION_OPTIONS);
265
- }
266
- }
267
- async *generateStreamWithModel(model, input, attemptSignal) {
268
- // Anthropic requires max_tokens to be specified
269
- const maxTokens = input.parameters?.maxOutputTokens || 4096;
270
- // Build messages from history
271
- const { messages: historyMessages, systemMessages } = this.buildAnthropicMessages(input.history);
272
- // Append the current prompt as the final user message
273
- historyMessages.push({
274
- role: "user",
275
- content: input.prompt,
276
- });
277
- const params = {
278
- model,
279
- max_tokens: maxTokens,
280
- messages: historyMessages,
281
- stream: true,
282
- ...this.config,
283
- };
284
- // Set system messages from history if present
285
- if (systemMessages.length > 0) {
286
- if (typeof this.config?.system === "string") {
287
- params.system = `${this.config.system}\n\n${systemMessages.join("\n\n")}`;
288
- }
289
- else if (Array.isArray(this.config?.system)) {
290
- params.system = [
291
- ...this.config.system,
292
- ...systemMessages.map(s => ({ type: "text", text: s })),
293
- ];
294
- }
295
- else {
296
- params.system = systemMessages.join("\n\n");
297
- }
298
- }
299
- // Add tools if provided
300
- if (input.tools && input.tools.length > 0) {
301
- params.tools = input.tools.map((tool) => ({
302
- name: tool.name || tool.id,
303
- description: tool.description || "",
304
- input_schema: tool.parameters, // JSON schema
305
- }));
306
- }
307
- // Handle schema in streaming: embed constraint
308
- if (input.parameters?.jsonSchema) {
309
- const systemPrompt = "You must respond with valid JSON only and it MUST match the provided schema.";
310
- if (typeof this.config?.system === "string") {
311
- params.system = `${this.config.system}\n\n${systemPrompt}`;
312
- }
313
- else if (Array.isArray(this.config?.system)) {
314
- params.system = [
315
- ...this.config.system,
316
- {
317
- type: "text",
318
- text: systemPrompt,
319
- },
320
- ];
321
- }
322
- else {
323
- params.system = systemPrompt;
324
- }
325
- }
326
- const stream = this.client.messages.stream(params, {
327
- signal: (0, utils_1.combineAbortSignals)(input.signal, attemptSignal),
328
- });
329
- let accumulated = "";
330
- let currentModel = model;
331
- let stopReason;
332
- let inputTokens = 0;
333
- let outputTokens = 0;
334
- // Tool_use blocks arrive empty: content_block_start carries `input: {}`,
335
- // the real arguments stream in later as input_json_delta partial_json
336
- // fragments. Accumulate per block index and parse once at stream end.
337
- const pendingToolBlocks = new Map();
338
- for await (const chunk of stream) {
339
- if (chunk.type === "message_start") {
340
- currentModel = chunk.message.model;
341
- inputTokens = chunk.message.usage.input_tokens;
342
- }
343
- else if (chunk.type === "content_block_start") {
344
- if (chunk.content_block.type === "tool_use") {
345
- pendingToolBlocks.set(chunk.index, {
346
- toolName: chunk.content_block.name,
347
- argumentsBuffer: "",
348
- });
349
- }
350
- }
351
- else if (chunk.type === "content_block_delta") {
352
- if (chunk.delta.type === "text_delta") {
353
- const delta = chunk.delta.text;
354
- accumulated += delta;
355
- yield {
356
- delta,
357
- accumulated,
358
- done: false,
359
- };
360
- }
361
- else if (chunk.delta.type === "input_json_delta") {
362
- const block = pendingToolBlocks.get(chunk.index);
363
- if (block) {
364
- block.argumentsBuffer += chunk.delta.partial_json;
365
- }
366
- }
367
- }
368
- else if (chunk.type === "message_delta") {
369
- stopReason = chunk.delta.stop_reason || undefined;
370
- outputTokens = chunk.usage.output_tokens;
371
- }
372
- }
373
- const toolCalls = [];
374
- for (const [, block] of [...pendingToolBlocks.entries()].sort(([a], [b]) => a - b)) {
375
- let args = {};
376
- if (block.argumentsBuffer) {
377
- try {
378
- args = JSON.parse(block.argumentsBuffer);
379
- }
380
- catch (error) {
381
- utils_1.logger.warn("[ANTHROPIC] Failed to parse streamed tool call arguments:", error);
382
- }
383
- }
384
- toolCalls.push({ toolName: block.toolName, arguments: args });
385
- }
386
- // Parse JSON response if schema was provided
387
- let structured;
388
- if (input.parameters?.jsonSchema && accumulated) {
389
- try {
390
- structured = JSON.parse(accumulated);
391
- }
392
- catch (error) {
393
- utils_1.logger.warn("[ANTHROPIC] Failed to parse JSON response in stream:", error);
394
- }
395
- }
396
- // If tools were used, include them in structured response
397
- if (toolCalls.length > 0) {
398
- structured = {
399
- ...(structured || {}),
400
- message: structured?.message || accumulated,
401
- toolCalls,
402
- };
403
- }
404
- // Empty-completion guard — same definition as the non-streaming path, so the
405
- // stream retries / falls back to backup instead of emitting an empty message.
406
- (0, utils_1.assertUsableCompletion)(structured, accumulated, toolCalls.length, "Anthropic");
407
- // Yield final chunk
408
- yield {
409
- delta: "",
410
- accumulated,
411
- done: true,
412
- metadata: {
413
- model: currentModel,
414
- stopReason,
415
- tokensUsed: inputTokens + outputTokens,
416
- promptTokens: inputTokens,
417
- completionTokens: outputTokens,
418
- },
419
- structured: structured,
42
+ supportsPromptCaching: true,
420
43
  };
421
44
  }
422
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AnthropicProvider.js","sourceRoot":"","sources":["../../../src/providers/AnthropicProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnthropicProvider.js","sourceRoot":"","sources":["../../../src/providers/AnthropicProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,4CAA4D;AAG5D,6DAA2E;AAyB3E,MAAa,iBAAkB,SAAQ,oCAAe;IAUpD,YAAY,OAAiC;QAC3C,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACtF,CAAC;QAED,KAAK,CAAC;YACJ,QAAQ,EAAE,IAAA,8BAAuB,EAAC;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,EAAE,EAAE,WAAW;gBACf,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D,CAAC;YACF,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC,CAAC;QA5BW,SAAI,GAAG,WAAW,CAAC;QACnB,iBAAY,GAAyB;YACnD,aAAa,EAAE,IAAI;YACnB,wBAAwB,EAAE,KAAK;YAC/B,iBAAiB,EAAE,IAAI;YACvB,0BAA0B,EAAE,IAAI;YAChC,qBAAqB,EAAE,IAAI;SAC5B,CAAC;IAsBF,CAAC;CACF;AA/BD,8CA+BC"}
@@ -1,54 +1,33 @@
1
1
  /**
2
- * DeepSeek provider implementation (OpenAI-compatible API)
3
- * Supports deepseek-chat, deepseek-reasoner with optional thinking/reasoning mode.
4
- * DeepSeek streams reasoning content via `delta.reasoning_content` when thinking is enabled.
5
- */
6
- import type { ChatCompletionChunk, ChatCompletionCreateParamsStreaming } from "openai/resources/chat/completions";
7
- import type { ProviderCapabilities } from "../types/ai";
8
- import { OpenAICompatibleProvider, type OpenAICompatibleRequestConfig } from "./OpenAICompatibleProvider";
9
- /**
10
- * Configuration options for DeepSeek provider
11
- * Uses types from openai package (DeepSeek is OpenAI-compatible)
2
+ * DeepSeek (OpenAI-compatible). Its reasoning arrives on `reasoning_content`
3
+ * and its cache hits under `prompt_cache_hit_tokens`; both are read one layer
4
+ * down, where they are the dialect's business rather than this file's.
12
5
  */
6
+ import type { ProviderCapabilities } from "../types/ai.js";
7
+ import { OpenAICompatibleProvider } from "./OpenAICompatibleProvider.js";
8
+ import type { RequestConfig } from "./ProviderAdapter.js";
13
9
  export interface DeepSeekProviderOptions {
14
10
  /** DeepSeek API key */
15
11
  apiKey: string;
16
- /** Model to use (required) - e.g., "deepseek-chat", "deepseek-reasoner" */
12
+ /** Model to use (required) e.g. "deepseek-chat", "deepseek-reasoner" */
17
13
  model: string;
18
- /** Backup models to try if primary fails (default: []) */
14
+ /** Backup models to try if the primary fails (default: []) */
19
15
  backupModels?: string[];
20
16
  /** Custom base URL (default: "https://api.deepseek.com") */
21
17
  baseURL?: string;
22
- /** Default parameters - uses ChatCompletionCreateParamsNonStreaming from openai package */
23
- config?: OpenAICompatibleRequestConfig;
24
- /** Retry configuration */
18
+ /** Request defaults sent with every call */
19
+ config?: RequestConfig;
20
+ /** Idle-stream deadline and retry budget */
25
21
  retryConfig?: {
26
22
  timeout?: number;
27
23
  retries?: number;
28
24
  };
25
+ /** Replacement `fetch`, for tests that script the wire. */
26
+ fetchImpl?: typeof fetch;
29
27
  }
30
- /**
31
- * DeepSeek provider implementation using the OpenAI-compatible API.
32
- * Supports deepseek-chat and deepseek-reasoner with optional thinking mode.
33
- *
34
- * DeepSeek streams reasoning content via `delta.reasoning_content` when
35
- * thinking mode is enabled. Tool calls follow the standard OpenAI format.
36
- * Structured output uses chat completions with a json_schema response
37
- * format (DeepSeek does not expose the responses.parse API).
38
- */
39
28
  export declare class DeepSeekProvider extends OpenAICompatibleProvider {
40
29
  readonly name = "deepseek";
41
30
  readonly capabilities: ProviderCapabilities;
42
- protected readonly logLabel = "DEEPSEEK";
43
- protected readonly displayName = "DeepSeek";
44
31
  constructor(options: DeepSeekProviderOptions);
45
- /**
46
- * DeepSeek reports usage in streaming chunks when explicitly requested.
47
- */
48
- protected configureStreamParams(params: ChatCompletionCreateParamsStreaming): void;
49
- /**
50
- * DeepSeek streams reasoning via `reasoning_content` on the delta.
51
- */
52
- protected onStreamDelta(delta: ChatCompletionChunk.Choice.Delta): void;
53
32
  }
54
33
  //# sourceMappingURL=DeepSeekProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeepSeekProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/DeepSeekProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,mBAAmB,EACnB,mCAAmC,EACpC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,EACnC,MAAM,4BAA4B,CAAC;AAEpC;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,SAAQ,wBAAwB;IAC5D,SAAgB,IAAI,cAAc;IAClC,SAAgB,YAAY,EAAE,oBAAoB,CAMhD;IAEF,SAAS,CAAC,QAAQ,CAAC,QAAQ,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,WAAW,cAAc;gBAEhC,OAAO,EAAE,uBAAuB;IAmC5C;;OAEG;cACgB,qBAAqB,CACtC,MAAM,EAAE,mCAAmC,GAC1C,IAAI;IAIP;;OAEG;cACgB,aAAa,CAC9B,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,KAAK,GACtC,IAAI;CASR"}
1
+ {"version":3,"file":"DeepSeekProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/DeepSeekProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;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,uBAAuB;IACtC,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,gBAAiB,SAAQ,wBAAwB;IAC5D,SAAgB,IAAI,cAAc;IAClC,SAAgB,YAAY,EAAE,oBAAoB,CAMhD;gBAEU,OAAO,EAAE,uBAAuB;CAmB7C"}
@@ -1,47 +1,30 @@
1
1
  "use strict";
2
2
  /**
3
- * DeepSeek provider implementation (OpenAI-compatible API)
4
- * Supports deepseek-chat, deepseek-reasoner with optional thinking/reasoning mode.
5
- * DeepSeek streams reasoning content via `delta.reasoning_content` when thinking is enabled.
3
+ * DeepSeek (OpenAI-compatible). Its reasoning arrives on `reasoning_content`
4
+ * and its cache hits under `prompt_cache_hit_tokens`; both are read one layer
5
+ * down, where they are the dialect's business rather than this file's.
6
6
  */
7
- var __importDefault = (this && this.__importDefault) || function (mod) {
8
- return (mod && mod.__esModule) ? mod : { "default": mod };
9
- };
10
7
  Object.defineProperty(exports, "__esModule", { value: true });
11
8
  exports.DeepSeekProvider = void 0;
12
- const openai_1 = __importDefault(require("openai"));
13
- const utils_1 = require("../utils");
14
- const OpenAICompatibleProvider_1 = require("./OpenAICompatibleProvider");
15
- /**
16
- * DeepSeek provider implementation using the OpenAI-compatible API.
17
- * Supports deepseek-chat and deepseek-reasoner with optional thinking mode.
18
- *
19
- * DeepSeek streams reasoning content via `delta.reasoning_content` when
20
- * thinking mode is enabled. Tool calls follow the standard OpenAI format.
21
- * Structured output uses chat completions with a json_schema response
22
- * format (DeepSeek does not expose the responses.parse API).
23
- */
24
- class DeepSeekProvider extends OpenAICompatibleProvider_1.OpenAICompatibleProvider {
9
+ const OpenAICompatibleProvider_js_1 = require("./OpenAICompatibleProvider.js");
10
+ class DeepSeekProvider extends OpenAICompatibleProvider_js_1.OpenAICompatibleProvider {
25
11
  constructor(options) {
26
- const { apiKey, model, backupModels, baseURL = "https://api.deepseek.com", config, retryConfig, } = options;
27
- if (!apiKey) {
12
+ if (!options.apiKey)
28
13
  throw new Error("DeepSeek API key is required");
29
- }
30
- if (!model) {
14
+ if (!options.model) {
31
15
  throw new Error("Model is required. Example: 'deepseek-chat' or 'deepseek-reasoner'");
32
16
  }
33
17
  super({
34
- client: new openai_1.default({
35
- apiKey,
36
- baseURL,
37
- }),
38
- model,
39
- backupModels,
40
- config,
41
- retryConfig,
42
- // DeepSeek has no responses.parse API; structured output goes through
43
- // chat completions with a native json_schema response_format.
18
+ id: "deepseek",
19
+ apiKey: options.apiKey,
20
+ baseUrl: options.baseURL ?? "https://api.deepseek.com",
21
+ model: options.model,
22
+ // No Responses API here; chat completions enforces the schema natively.
44
23
  structuredOutput: "json_schema",
24
+ ...(options.backupModels ? { backupModels: options.backupModels } : {}),
25
+ ...(options.config ? { config: options.config } : {}),
26
+ ...(options.retryConfig ? { retryConfig: options.retryConfig } : {}),
27
+ ...(options.fetchImpl ? { fetchImpl: options.fetchImpl } : {}),
45
28
  });
46
29
  this.name = "deepseek";
47
30
  this.capabilities = {
@@ -49,25 +32,8 @@ class DeepSeekProvider extends OpenAICompatibleProvider_1.OpenAICompatibleProvid
49
32
  supportsNativeJsonSchema: true,
50
33
  supportsStreaming: true,
51
34
  supportsStreamingToolCalls: true,
52
- supportsPromptCaching: false,
35
+ supportsPromptCaching: true,
53
36
  };
54
- this.logLabel = "DEEPSEEK";
55
- this.displayName = "DeepSeek";
56
- }
57
- /**
58
- * DeepSeek reports usage in streaming chunks when explicitly requested.
59
- */
60
- configureStreamParams(params) {
61
- params.stream_options = { include_usage: true };
62
- }
63
- /**
64
- * DeepSeek streams reasoning via `reasoning_content` on the delta.
65
- */
66
- onStreamDelta(delta) {
67
- const reasoning = delta.reasoning_content ?? undefined;
68
- if (reasoning) {
69
- utils_1.logger.debug(`[${this.logLabel}] Reasoning: ${reasoning}`);
70
- }
71
37
  }
72
38
  }
73
39
  exports.DeepSeekProvider = DeepSeekProvider;