@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,573 +1,47 @@
1
1
  "use strict";
2
2
  /**
3
- * Google Gemini AI provider implementation with retry and backup models
3
+ * Google Gemini.
4
+ *
5
+ * Thought signatures, the `functionResponse`-by-name pairing, implicit cache
6
+ * hits and the thinking levels are all in `@providerkit/core`, written against
7
+ * the REST API rather than the SDK.
8
+ *
9
+ * v3 sends a response schema alongside tools when a caller asks for both. v2
10
+ * dropped the schema in that case, from a 2024-era constraint that no longer
11
+ * holds — a sibling codebase runs the combination in production today.
4
12
  */
5
13
  Object.defineProperty(exports, "__esModule", { value: true });
6
14
  exports.GeminiProvider = void 0;
7
- const genai_1 = require("@google/genai");
8
- const retry_1 = require("../utils/retry");
9
- const completion_1 = require("../utils/completion");
10
- const json_1 = require("../utils/json");
11
- const logger_1 = require("../utils/logger");
12
- const errorClassification_1 = require("./errorClassification");
13
- /**
14
- * Gemini-specific error classification signals ("overloaded" code plus
15
- * the "not available"/"INTERNAL" message patterns Gemini emits).
16
- */
17
- const CLASSIFICATION_OPTIONS = {
18
- overloadedCodes: ["overloaded"],
19
- overloadedMessages: ["not available", "INTERNAL"],
20
- };
21
- /**
22
- * Determines if an error should trigger backup model usage.
23
- * Derived from the normalized error classification.
24
- */
25
- const shouldUseBackupModel = (error) => (0, errorClassification_1.isBackupEligible)((0, errorClassification_1.classifyProviderError)(error, CLASSIFICATION_OPTIONS));
26
- /**
27
- * Gemini provider implementation with backup models and retry logic
28
- */
29
- class GeminiProvider {
15
+ const core_1 = require("@providerkit/core");
16
+ const ProviderAdapter_js_1 = require("./ProviderAdapter.js");
17
+ class GeminiProvider extends ProviderAdapter_js_1.ProviderAdapter {
30
18
  constructor(options) {
19
+ if (!options.apiKey)
20
+ throw new Error("Gemini API key is required");
21
+ if (!options.model) {
22
+ throw new Error("Model is required. Example: 'gemini-3.1-pro-preview'");
23
+ }
24
+ super({
25
+ provider: (0, core_1.createGeminiProvider)({
26
+ apiKey: options.apiKey,
27
+ model: options.model,
28
+ id: "gemini",
29
+ ...(options.baseUrl ? { baseUrl: options.baseUrl } : {}),
30
+ ...(options.config?.maxTokens ? { maxTokens: options.config.maxTokens } : {}),
31
+ ...(options.fetchImpl ? { fetchImpl: options.fetchImpl } : {}),
32
+ }),
33
+ model: options.model,
34
+ ...(options.config ? { defaults: options.config } : {}),
35
+ ...(options.backupModels ? { backupModels: options.backupModels } : {}),
36
+ ...(options.retryConfig ? { retryConfig: options.retryConfig } : {}),
37
+ });
31
38
  this.name = "gemini";
32
39
  this.capabilities = {
33
40
  supportsTools: true,
34
41
  supportsNativeJsonSchema: true,
35
42
  supportsStreaming: true,
36
43
  supportsStreamingToolCalls: true,
37
- supportsPromptCaching: false,
38
- };
39
- const { apiKey, model, backupModels = [], config, retryConfig } = options;
40
- if (!apiKey) {
41
- throw new Error("Gemini API key is required");
42
- }
43
- if (!model) {
44
- throw new Error("Model is required. Example: 'gemini-3.1-pro-preview'");
45
- }
46
- this.genAI = new genai_1.GoogleGenAI({ apiKey });
47
- this.primaryModel = model;
48
- this.backupModels = backupModels;
49
- this.config = config;
50
- this.retryConfig = (0, retry_1.resolveRetryConfig)(retryConfig);
51
- }
52
- /**
53
- * Build Gemini-formatted contents from HistoryItem[] array.
54
- * Gemini uses "user"/"model" roles (not "assistant").
55
- * System messages are extracted separately for systemInstruction.
56
- * Tool results map to functionResponse parts, tool calls to functionCall parts.
57
- */
58
- buildGeminiContents(history) {
59
- const contents = [];
60
- const systemInstructions = [];
61
- for (const item of history) {
62
- switch (item.role) {
63
- case "system":
64
- systemInstructions.push(item.content);
65
- break;
66
- case "user":
67
- contents.push({ role: "user", parts: [{ text: item.content }] });
68
- break;
69
- case "assistant":
70
- if (item.tool_calls && item.tool_calls.length > 0) {
71
- const parts = [];
72
- if (item.content) {
73
- parts.push({ text: item.content });
74
- }
75
- for (const tc of item.tool_calls) {
76
- parts.push({
77
- functionCall: { name: tc.name, args: tc.arguments },
78
- });
79
- }
80
- contents.push({ role: "model", parts });
81
- }
82
- else {
83
- contents.push({ role: "model", parts: [{ text: item.content || "" }] });
84
- }
85
- break;
86
- case "tool":
87
- contents.push({
88
- role: "user",
89
- parts: [
90
- {
91
- functionResponse: {
92
- name: item.name,
93
- response: typeof item.content === "object" ? item.content : { result: item.content },
94
- },
95
- },
96
- ],
97
- });
98
- break;
99
- }
100
- }
101
- return { contents, systemInstructions };
102
- }
103
- /**
104
- * Convert tool parameter schemas (JSON Schema) to Gemini's Schema format.
105
- * Gemini's FunctionDeclaration.parameters expects its own Schema type,
106
- * not raw JSON Schema. This method handles the conversion, including
107
- * edge cases like empty objects that Gemini rejects.
108
- *
109
- * @private
110
- */
111
- convertToolParameters(parameters) {
112
- if (!parameters || typeof parameters !== "object") {
113
- return undefined;
114
- }
115
- try {
116
- return this.adaptSchemaForGemini(parameters);
117
- }
118
- catch (error) {
119
- logger_1.logger.warn(`[GeminiProvider] Failed to convert tool parameters, passing as-is:`, error);
120
- return parameters;
121
- }
122
- }
123
- /**
124
- * Safely extract text from a Gemini response or chunk.
125
- * Bypasses the SDK's `.text` getter entirely to avoid warnings about
126
- * non-text parts (e.g., "thoughtSignature") in the response.
127
- * Manually concatenates only text parts from candidates.
128
- *
129
- * @private
130
- */
131
- safeExtractText(responseOrChunk) {
132
- // Always extract text parts manually to avoid SDK warnings about
133
- // non-text parts like "thoughtSignature" in the response.
134
- const parts = responseOrChunk.candidates?.[0]?.content?.parts;
135
- if (parts) {
136
- // Exclude reasoning parts (thought: true) — with includeThoughts enabled
137
- // they carry text but must never leak into the user-facing message.
138
- return parts
139
- .filter((p) => p.text != null && !p.thought)
140
- .map((p) => p.text)
141
- .join("");
142
- }
143
- // Fallback: try the .text getter if no candidates structure exists
144
- try {
145
- return responseOrChunk.text || "";
146
- }
147
- catch {
148
- return "";
149
- }
150
- }
151
- /**
152
- * Build Gemini function declarations from framework tool definitions.
153
- * Converts JSON Schema parameters to Gemini's Schema format.
154
- *
155
- * @private
156
- */
157
- buildFunctionDeclarations(tools) {
158
- return tools.map((tool) => ({
159
- name: tool.name || tool.id,
160
- description: tool.description || "",
161
- parameters: this.convertToolParameters(tool.parameters),
162
- }));
163
- }
164
- /**
165
- * Adapt common schema format to Gemini's specific requirements.
166
- * Gemini has strict validation:
167
- * - OBJECT types MUST have non-empty properties
168
- * - Empty objects cause 400 Bad Request errors
169
- * - Uses Gemini's Schema type with Type enums
170
- *
171
- * @private
172
- */
173
- adaptSchemaForGemini(schema) {
174
- const geminiSchema = {};
175
- // Convert type
176
- if (schema.type) {
177
- if (Array.isArray(schema.type)) {
178
- // For now, take the first type (Gemini doesn't support union types the same way)
179
- geminiSchema.type = this.mapToGeminiType(schema.type[0]);
180
- }
181
- else {
182
- geminiSchema.type = this.mapToGeminiType(schema.type);
183
- }
184
- }
185
- // Handle description
186
- if (schema.description) {
187
- geminiSchema.description = schema.description;
188
- }
189
- // Handle nullable
190
- if (schema.nullable !== undefined) {
191
- geminiSchema.nullable = schema.nullable;
192
- }
193
- // Handle enum
194
- if (schema.enum) {
195
- geminiSchema.enum = schema.enum;
196
- }
197
- // Handle object properties - Gemini requires non-empty properties for OBJECT type
198
- if (geminiSchema.type === genai_1.Type.OBJECT ||
199
- schema.type === "object" ||
200
- (Array.isArray(schema.type) && schema.type.includes("object"))) {
201
- if (!schema.properties || Object.keys(schema.properties).length === 0) {
202
- logger_1.logger.warn("[GeminiProvider] Gemini requires OBJECT types to have non-empty properties. Converting empty object to STRING.");
203
- geminiSchema.type = genai_1.Type.STRING;
204
- return geminiSchema;
205
- }
206
- // Recursively convert nested properties
207
- geminiSchema.properties = {};
208
- for (const [key, value] of Object.entries(schema.properties)) {
209
- geminiSchema.properties[key] = this.adaptSchemaForGemini(value);
210
- }
211
- // Handle required fields
212
- if (schema.required && schema.required.length > 0) {
213
- geminiSchema.required = schema.required;
214
- }
215
- }
216
- // Handle array items
217
- if (geminiSchema.type === genai_1.Type.ARRAY ||
218
- schema.type === "array" ||
219
- (Array.isArray(schema.type) && schema.type.includes("array"))) {
220
- if (schema.items) {
221
- geminiSchema.items = this.adaptSchemaForGemini(schema.items);
222
- }
223
- }
224
- return geminiSchema;
225
- }
226
- /**
227
- * Map common JSON Schema type strings to Gemini's Type enum
228
- * @private
229
- */
230
- mapToGeminiType(type) {
231
- switch (type.toLowerCase()) {
232
- case "string":
233
- return genai_1.Type.STRING;
234
- case "number":
235
- return genai_1.Type.NUMBER;
236
- case "integer":
237
- return genai_1.Type.INTEGER;
238
- case "boolean":
239
- return genai_1.Type.BOOLEAN;
240
- case "array":
241
- return genai_1.Type.ARRAY;
242
- case "object":
243
- return genai_1.Type.OBJECT;
244
- default:
245
- logger_1.logger.warn(`[GeminiProvider] Unknown type "${type}", defaulting to STRING`);
246
- return genai_1.Type.STRING;
247
- }
248
- }
249
- async generateMessage(input) {
250
- return this.generateWithBackup(input);
251
- }
252
- async *generateMessageStream(input) {
253
- yield* this.generateStreamWithBackup(input);
254
- }
255
- async generateWithBackup(input) {
256
- // Try primary model first
257
- try {
258
- return await this.generateWithModel(this.primaryModel, input);
259
- }
260
- catch (primaryError) {
261
- const primaryErrMsg = (0, errorClassification_1.getErrorMessage)(primaryError);
262
- logger_1.logger.warn(`[GEMINI] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`);
263
- if (!shouldUseBackupModel(primaryError)) {
264
- throw (0, errorClassification_1.toProviderError)(primaryError, this.name, CLASSIFICATION_OPTIONS);
265
- }
266
- logger_1.logger.debug(`[GEMINI] Trying backup models`);
267
- let lastBackupError = primaryError;
268
- for (let i = 0; i < this.backupModels.length; i++) {
269
- const backupModel = this.backupModels[i];
270
- logger_1.logger.debug(`[GEMINI] Trying backup model ${i + 1}/${this.backupModels.length}: ${backupModel}`);
271
- try {
272
- const result = await this.generateWithModel(backupModel, input);
273
- logger_1.logger.debug(`[GEMINI] Backup model ${backupModel} succeeded`);
274
- return result;
275
- }
276
- catch (backupError) {
277
- const backupErrMsg = (0, errorClassification_1.getErrorMessage)(backupError);
278
- logger_1.logger.warn(`[GEMINI] Backup model ${backupModel} failed: ${backupErrMsg}`);
279
- lastBackupError = backupError;
280
- if (!shouldUseBackupModel(backupError) &&
281
- i < this.backupModels.length - 1) {
282
- logger_1.logger.debug(`[GEMINI] Backup model error doesn't qualify for further attempts`);
283
- break;
284
- }
285
- }
286
- }
287
- const lastBackupErrMsg = (0, errorClassification_1.getErrorMessage)(lastBackupError);
288
- logger_1.logger.error(`[GEMINI] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`);
289
- throw (0, errorClassification_1.toProviderError)(lastBackupError, this.name, CLASSIFICATION_OPTIONS);
290
- }
291
- }
292
- async generateWithModel(model, input) {
293
- const operation = async (signal) => {
294
- // Schema-required: configure response schema
295
- const configOverride = { ...this.config };
296
- // Handle tools and JSON schema - Gemini doesn't support both simultaneously
297
- const hasTools = input.tools && input.tools.length > 0;
298
- const hasJsonSchema = input.parameters?.jsonSchema;
299
- if (hasTools && hasJsonSchema) {
300
- logger_1.logger.debug(`[GeminiProvider] Both tools and JSON schema provided. Prioritizing function calling - JSON schema will be ignored.`);
301
- }
302
- if (hasTools) {
303
- const toolNames = input.tools?.map((tool) => tool.name || tool.id) || [];
304
- logger_1.logger.debug(`[GeminiProvider] Configuring ${toolNames.length} tools for model ${model}:`, toolNames);
305
- const functionDeclarations = this.buildFunctionDeclarations(input.tools);
306
- configOverride.tools = [{ functionDeclarations }];
307
- }
308
- else if (hasJsonSchema) {
309
- // Only set JSON schema if no tools are present
310
- configOverride.responseMimeType = "application/json";
311
- // Adapt common schema format to Gemini's specific requirements
312
- configOverride.responseSchema = input.parameters ? this.adaptSchemaForGemini(input.parameters.jsonSchema) : {};
313
- }
314
- let response;
315
- try {
316
- // Build contents from history
317
- const { contents: historyContents, systemInstructions } = this.buildGeminiContents(input.history);
318
- // Append the current prompt as the final user content
319
- historyContents.push({ role: "user", parts: [{ text: input.prompt }] });
320
- // Set system instruction from history if present
321
- if (systemInstructions.length > 0) {
322
- const existingSystem = configOverride.systemInstruction;
323
- if (typeof existingSystem === "string") {
324
- configOverride.systemInstruction = `${existingSystem}\n\n${systemInstructions.join("\n\n")}`;
325
- }
326
- else {
327
- configOverride.systemInstruction = systemInstructions.join("\n\n");
328
- }
329
- }
330
- const reqSignal = (0, retry_1.combineAbortSignals)(input.signal, signal);
331
- response = await this.genAI.models.generateContent({
332
- model,
333
- contents: historyContents,
334
- config: {
335
- ...configOverride,
336
- ...(reqSignal ? { abortSignal: reqSignal } : {}),
337
- },
338
- });
339
- }
340
- catch (error) {
341
- logger_1.logger.error(`[GeminiProvider] API call failed:`, error);
342
- throw error;
343
- }
344
- // Extract tool calls from response first
345
- const toolCalls = [];
346
- // Check for function calls in the response content
347
- if (response.candidates && response.candidates[0]?.content?.parts) {
348
- for (const part of response.candidates[0].content.parts) {
349
- if (part.functionCall) {
350
- toolCalls.push({
351
- toolName: part.functionCall.name || "",
352
- arguments: part.functionCall.args || {},
353
- });
354
- }
355
- }
356
- }
357
- // Safely extract text — avoids SDK warning about non-text parts
358
- const message = this.safeExtractText(response);
359
- // Debug logging for response structure
360
- if (!message && toolCalls.length === 0) {
361
- logger_1.logger.debug(`[GeminiProvider] Debug - Response structure:`, {
362
- candidatesCount: response.candidates?.length || 0,
363
- firstCandidateParts: response.candidates?.[0]?.content?.parts?.length || 0,
364
- });
365
- }
366
- // Only throw error if we have no text AND no function calls
367
- if (!message && toolCalls.length === 0) {
368
- logger_1.logger.error(`[GeminiProvider] Empty response - no text or function calls`);
369
- logger_1.logger.error(`[GeminiProvider] Response candidates:`, response.candidates);
370
- throw new Error("No response from Gemini");
371
- }
372
- // Log when we have function calls but no text (this is normal)
373
- if (toolCalls.length > 0 && !message) {
374
- logger_1.logger.debug(`[GeminiProvider] Function calls detected without text message:`, toolCalls.map(tc => tc.toolName));
375
- }
376
- // Parse JSON response if schema was provided
377
- let structured;
378
- if (input.parameters?.jsonSchema) {
379
- const parsed = (0, json_1.tryParseJSONResponse)(message);
380
- if (parsed) {
381
- structured = parsed;
382
- }
383
- else {
384
- logger_1.logger.warn("[GeminiProvider] Failed to parse JSON response, treating as plain text");
385
- }
386
- }
387
- // If tools were used, include them in structured response
388
- if (toolCalls.length > 0) {
389
- structured = {
390
- message: structured?.message || message,
391
- toolCalls,
392
- ...structured,
393
- };
394
- }
395
- // A parsed-but-blank message with no tool calls is as empty as no text;
396
- // the shared guard throws so withTimeoutAndRetry retries instead of
397
- // returning {"message":""}.
398
- (0, completion_1.assertUsableCompletion)(structured, message, toolCalls.length, "Gemini");
399
- return {
400
- message,
401
- metadata: {
402
- model,
403
- tokensUsed: response.usageMetadata?.totalTokenCount,
404
- promptTokens: response.usageMetadata?.promptTokenCount,
405
- completionTokens: response.usageMetadata?.candidatesTokenCount,
406
- },
407
- structured,
408
- };
409
- };
410
- return (0, retry_1.withTimeoutAndRetry)(operation, this.retryConfig.timeout, this.retryConfig.retries, `Gemini ${model}`);
411
- }
412
- async *generateStreamWithBackup(input) {
413
- // Try primary model first
414
- try {
415
- yield* (0, retry_1.withStreamRetry)((signal) => this.generateStreamWithModel(this.primaryModel, input, signal), { maxRetries: this.retryConfig.retries, firstChunkTimeoutMs: this.retryConfig.timeout, operationName: `Gemini ${this.primaryModel} stream` });
416
- }
417
- catch (primaryError) {
418
- const primaryErrMsg = (0, errorClassification_1.getErrorMessage)(primaryError);
419
- logger_1.logger.warn(`[GEMINI] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`);
420
- if (!shouldUseBackupModel(primaryError)) {
421
- throw (0, errorClassification_1.toProviderError)(primaryError, this.name, CLASSIFICATION_OPTIONS);
422
- }
423
- logger_1.logger.debug(`[GEMINI] Trying backup models for streaming`);
424
- let lastBackupError = primaryError;
425
- for (let i = 0; i < this.backupModels.length; i++) {
426
- const backupModel = this.backupModels[i];
427
- logger_1.logger.debug(`[GEMINI] Trying backup model ${i + 1}/${this.backupModels.length}: ${backupModel}`);
428
- try {
429
- yield* (0, retry_1.withStreamRetry)((signal) => this.generateStreamWithModel(backupModel, input, signal), { maxRetries: this.retryConfig.retries, firstChunkTimeoutMs: this.retryConfig.timeout, operationName: `Gemini ${backupModel} stream` });
430
- logger_1.logger.debug(`[GEMINI] Backup model ${backupModel} succeeded`);
431
- return;
432
- }
433
- catch (backupError) {
434
- const backupErrMsg = (0, errorClassification_1.getErrorMessage)(backupError);
435
- logger_1.logger.warn(`[GEMINI] Backup model ${backupModel} failed: ${backupErrMsg}`);
436
- lastBackupError = backupError;
437
- if (!shouldUseBackupModel(backupError) &&
438
- i < this.backupModels.length - 1) {
439
- logger_1.logger.debug(`[GEMINI] Backup model error doesn't qualify for further attempts`);
440
- break;
441
- }
442
- }
443
- }
444
- const lastBackupErrMsg = (0, errorClassification_1.getErrorMessage)(lastBackupError);
445
- logger_1.logger.error(`[GEMINI] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`);
446
- throw (0, errorClassification_1.toProviderError)(lastBackupError, this.name, CLASSIFICATION_OPTIONS);
447
- }
448
- }
449
- async *generateStreamWithModel(model, input, attemptSignal) {
450
- // Caller cancellation + the retry helper's per-attempt deadline, as one.
451
- const reqSignal = (0, retry_1.combineAbortSignals)(input.signal, attemptSignal);
452
- // Streaming: request JSON if schema provided
453
- const configOverride = { ...this.config };
454
- // Handle tools and JSON schema - Gemini doesn't support both simultaneously
455
- const hasTools = input.tools && input.tools.length > 0;
456
- const hasJsonSchema = input.parameters?.jsonSchema;
457
- if (hasTools && hasJsonSchema) {
458
- logger_1.logger.debug(`[GeminiProvider] Both tools and JSON schema provided. Prioritizing function calling - JSON schema will be ignored.`);
459
- }
460
- if (hasTools) {
461
- const toolNames = input.tools?.map((tool) => tool.name || tool.id) || [];
462
- logger_1.logger.debug(`[GeminiProvider] Configuring ${toolNames.length} tools for streaming:`, toolNames);
463
- const functionDeclarations = this.buildFunctionDeclarations(input.tools);
464
- configOverride.tools = [{ functionDeclarations }];
465
- }
466
- else if (hasJsonSchema) {
467
- // Only set JSON schema if no tools are present
468
- configOverride.responseMimeType = "application/json";
469
- // Adapt common schema format to Gemini's specific requirements
470
- configOverride.responseSchema = input.parameters ? this.adaptSchemaForGemini(input.parameters.jsonSchema) : {};
471
- }
472
- let stream;
473
- try {
474
- // Build contents from history
475
- const { contents: historyContents, systemInstructions } = this.buildGeminiContents(input.history);
476
- // Append the current prompt as the final user content
477
- historyContents.push({ role: "user", parts: [{ text: input.prompt }] });
478
- // Set system instruction from history if present
479
- if (systemInstructions.length > 0) {
480
- const existingSystem = configOverride.systemInstruction;
481
- if (typeof existingSystem === "string") {
482
- configOverride.systemInstruction = `${existingSystem}\n\n${systemInstructions.join("\n\n")}`;
483
- }
484
- else {
485
- configOverride.systemInstruction = systemInstructions.join("\n\n");
486
- }
487
- }
488
- stream = await this.genAI.models.generateContentStream({
489
- model,
490
- contents: historyContents,
491
- config: {
492
- ...configOverride,
493
- ...(reqSignal ? { abortSignal: reqSignal } : {}),
494
- },
495
- });
496
- }
497
- catch (error) {
498
- logger_1.logger.error(`[GeminiProvider] Streaming API call failed:`, error);
499
- throw error;
500
- }
501
- let accumulated = "";
502
- let promptTokenCount = 0;
503
- let candidatesTokenCount = 0;
504
- let totalTokenCount = 0;
505
- const toolCalls = [];
506
- for await (const chunk of stream) {
507
- if (reqSignal?.aborted)
508
- break;
509
- // Safely extract text — chunk.text can throw when chunk has only function calls
510
- const delta = this.safeExtractText(chunk);
511
- // Extract tool calls from chunk
512
- if (chunk.candidates && chunk.candidates[0]?.content?.parts) {
513
- for (const part of chunk.candidates[0].content.parts) {
514
- if (part.functionCall) {
515
- toolCalls.push({
516
- toolName: part.functionCall.name || "",
517
- arguments: part.functionCall.args || {},
518
- });
519
- }
520
- }
521
- }
522
- if (delta) {
523
- accumulated += delta;
524
- yield {
525
- delta,
526
- accumulated,
527
- done: false,
528
- };
529
- }
530
- // Update token counts if available
531
- if (chunk.usageMetadata) {
532
- promptTokenCount = chunk.usageMetadata.promptTokenCount || 0;
533
- candidatesTokenCount = chunk.usageMetadata.candidatesTokenCount || 0;
534
- totalTokenCount = chunk.usageMetadata.totalTokenCount || 0;
535
- }
536
- }
537
- // Parse JSON response if schema was provided
538
- let structured;
539
- if (input.parameters?.jsonSchema && accumulated) {
540
- const parsed = (0, json_1.tryParseJSONResponse)(accumulated);
541
- if (parsed) {
542
- structured = parsed;
543
- }
544
- else {
545
- logger_1.logger.warn("[GeminiProvider] Failed to parse JSON response in stream, treating as plain text");
546
- }
547
- }
548
- // Include tool calls in structured response (even without JSON schema)
549
- if (toolCalls.length > 0) {
550
- structured = {
551
- message: structured?.message || accumulated,
552
- ...structured,
553
- toolCalls,
554
- };
555
- }
556
- // Empty-completion guard — same definition as the non-streaming path, so the
557
- // stream retries / falls back to backup instead of emitting an empty message.
558
- (0, completion_1.assertUsableCompletion)(structured, accumulated, toolCalls.length, "Gemini");
559
- // Yield final chunk
560
- yield {
561
- delta: "",
562
- accumulated,
563
- done: true,
564
- metadata: {
565
- model,
566
- tokensUsed: totalTokenCount,
567
- promptTokens: promptTokenCount,
568
- completionTokens: candidatesTokenCount,
569
- },
570
- structured: structured,
44
+ supportsPromptCaching: true,
571
45
  };
572
46
  }
573
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiProvider.js","sourceRoot":"","sources":["../../../src/providers/GeminiProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeminiProvider.js","sourceRoot":"","sources":["../../../src/providers/GeminiProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,4CAAyD;AAGzD,6DAA2E;AAoB3E,MAAa,cAAe,SAAQ,oCAAe;IAUjD,YAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,KAAK,CAAC;YACJ,QAAQ,EAAE,IAAA,2BAAoB,EAAC;gBAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,EAAE,EAAE,QAAQ;gBACZ,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,QAAQ,CAAC;QAChB,iBAAY,GAAyB;YACnD,aAAa,EAAE,IAAI;YACnB,wBAAwB,EAAE,IAAI;YAC9B,iBAAiB,EAAE,IAAI;YACvB,0BAA0B,EAAE,IAAI;YAChC,qBAAqB,EAAE,IAAI;SAC5B,CAAC;IAsBF,CAAC;CACF;AA/BD,wCA+BC"}