@cubos/ai-suite 1.0.2381126381-5.dev

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 (306) hide show
  1. package/README.md +68 -0
  2. package/dist/batch.d.ts +54 -0
  3. package/dist/batch.d.ts.map +1 -0
  4. package/dist/batch.js +85 -0
  5. package/dist/batch.js.map +1 -0
  6. package/dist/file.d.ts +72 -0
  7. package/dist/file.d.ts.map +1 -0
  8. package/dist/file.js +92 -0
  9. package/dist/file.js.map +1 -0
  10. package/dist/index.d.ts +78 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +189 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/providers/_base.d.ts +47 -0
  15. package/dist/providers/_base.d.ts.map +1 -0
  16. package/dist/providers/_base.js +75 -0
  17. package/dist/providers/_base.js.map +1 -0
  18. package/dist/providers/anthropic/anthropicProvider.d.ts +39 -0
  19. package/dist/providers/anthropic/anthropicProvider.d.ts.map +1 -0
  20. package/dist/providers/anthropic/anthropicProvider.js +293 -0
  21. package/dist/providers/anthropic/anthropicProvider.js.map +1 -0
  22. package/dist/providers/anthropic/batch/batchAnthropic.d.ts +15 -0
  23. package/dist/providers/anthropic/batch/batchAnthropic.d.ts.map +1 -0
  24. package/dist/providers/anthropic/batch/batchAnthropic.js +212 -0
  25. package/dist/providers/anthropic/batch/batchAnthropic.js.map +1 -0
  26. package/dist/providers/anthropic/batch/index.d.ts +2 -0
  27. package/dist/providers/anthropic/batch/index.d.ts.map +1 -0
  28. package/dist/providers/anthropic/batch/index.js +2 -0
  29. package/dist/providers/anthropic/batch/index.js.map +1 -0
  30. package/dist/providers/anthropic/file/fileAnthropic.d.ts +11 -0
  31. package/dist/providers/anthropic/file/fileAnthropic.d.ts.map +1 -0
  32. package/dist/providers/anthropic/file/fileAnthropic.js +76 -0
  33. package/dist/providers/anthropic/file/fileAnthropic.js.map +1 -0
  34. package/dist/providers/anthropic/file/index.d.ts +2 -0
  35. package/dist/providers/anthropic/file/index.d.ts.map +1 -0
  36. package/dist/providers/anthropic/file/index.js +2 -0
  37. package/dist/providers/anthropic/file/index.js.map +1 -0
  38. package/dist/providers/anthropic/index.d.ts +4 -0
  39. package/dist/providers/anthropic/index.d.ts.map +1 -0
  40. package/dist/providers/anthropic/index.js +4 -0
  41. package/dist/providers/anthropic/index.js.map +1 -0
  42. package/dist/providers/anthropic/types/anthropicContentBlock.d.ts +22 -0
  43. package/dist/providers/anthropic/types/anthropicContentBlock.d.ts.map +1 -0
  44. package/dist/providers/anthropic/types/anthropicContentBlock.js +2 -0
  45. package/dist/providers/anthropic/types/anthropicContentBlock.js.map +1 -0
  46. package/dist/providers/anthropic/types/anthropicModels.d.ts +4 -0
  47. package/dist/providers/anthropic/types/anthropicModels.d.ts.map +1 -0
  48. package/dist/providers/anthropic/types/anthropicModels.js +2 -0
  49. package/dist/providers/anthropic/types/anthropicModels.js.map +1 -0
  50. package/dist/providers/anthropic/types/index.d.ts +3 -0
  51. package/dist/providers/anthropic/types/index.d.ts.map +1 -0
  52. package/dist/providers/anthropic/types/index.js +3 -0
  53. package/dist/providers/anthropic/types/index.js.map +1 -0
  54. package/dist/providers/anthropic/utils/convertToAnthropicFunctions.d.ts +4 -0
  55. package/dist/providers/anthropic/utils/convertToAnthropicFunctions.d.ts.map +1 -0
  56. package/dist/providers/anthropic/utils/convertToAnthropicFunctions.js +17 -0
  57. package/dist/providers/anthropic/utils/convertToAnthropicFunctions.js.map +1 -0
  58. package/dist/providers/anthropic/utils/index.d.ts +2 -0
  59. package/dist/providers/anthropic/utils/index.d.ts.map +1 -0
  60. package/dist/providers/anthropic/utils/index.js +2 -0
  61. package/dist/providers/anthropic/utils/index.js.map +1 -0
  62. package/dist/providers/batchProviderBase.d.ts +13 -0
  63. package/dist/providers/batchProviderBase.d.ts.map +1 -0
  64. package/dist/providers/batchProviderBase.js +7 -0
  65. package/dist/providers/batchProviderBase.js.map +1 -0
  66. package/dist/providers/customLLM/customLLMProvider.d.ts +4 -0
  67. package/dist/providers/customLLM/customLLMProvider.d.ts.map +1 -0
  68. package/dist/providers/customLLM/customLLMProvider.js +4 -0
  69. package/dist/providers/customLLM/customLLMProvider.js.map +1 -0
  70. package/dist/providers/customLLM/index.d.ts +2 -0
  71. package/dist/providers/customLLM/index.d.ts.map +1 -0
  72. package/dist/providers/customLLM/index.js +2 -0
  73. package/dist/providers/customLLM/index.js.map +1 -0
  74. package/dist/providers/deepSeek/deepSeekProvider.d.ts +4 -0
  75. package/dist/providers/deepSeek/deepSeekProvider.d.ts.map +1 -0
  76. package/dist/providers/deepSeek/deepSeekProvider.js +4 -0
  77. package/dist/providers/deepSeek/deepSeekProvider.js.map +1 -0
  78. package/dist/providers/deepSeek/index.d.ts +3 -0
  79. package/dist/providers/deepSeek/index.d.ts.map +1 -0
  80. package/dist/providers/deepSeek/index.js +3 -0
  81. package/dist/providers/deepSeek/index.js.map +1 -0
  82. package/dist/providers/deepSeek/types/deepSeekModels.d.ts +3 -0
  83. package/dist/providers/deepSeek/types/deepSeekModels.d.ts.map +1 -0
  84. package/dist/providers/deepSeek/types/deepSeekModels.js +2 -0
  85. package/dist/providers/deepSeek/types/deepSeekModels.js.map +1 -0
  86. package/dist/providers/deepSeek/types/index.d.ts +2 -0
  87. package/dist/providers/deepSeek/types/index.d.ts.map +1 -0
  88. package/dist/providers/deepSeek/types/index.js +2 -0
  89. package/dist/providers/deepSeek/types/index.js.map +1 -0
  90. package/dist/providers/fileProviderBase.d.ts +13 -0
  91. package/dist/providers/fileProviderBase.d.ts.map +1 -0
  92. package/dist/providers/fileProviderBase.js +33 -0
  93. package/dist/providers/fileProviderBase.js.map +1 -0
  94. package/dist/providers/gemini/batch/batchGemini.d.ts +14 -0
  95. package/dist/providers/gemini/batch/batchGemini.d.ts.map +1 -0
  96. package/dist/providers/gemini/batch/batchGemini.js +322 -0
  97. package/dist/providers/gemini/batch/batchGemini.js.map +1 -0
  98. package/dist/providers/gemini/batch/index.d.ts +2 -0
  99. package/dist/providers/gemini/batch/index.d.ts.map +1 -0
  100. package/dist/providers/gemini/batch/index.js +2 -0
  101. package/dist/providers/gemini/batch/index.js.map +1 -0
  102. package/dist/providers/gemini/constants/index.d.ts +4 -0
  103. package/dist/providers/gemini/constants/index.d.ts.map +1 -0
  104. package/dist/providers/gemini/constants/index.js +4 -0
  105. package/dist/providers/gemini/constants/index.js.map +1 -0
  106. package/dist/providers/gemini/constants/notUseThinkingConfig.d.ts +2 -0
  107. package/dist/providers/gemini/constants/notUseThinkingConfig.d.ts.map +1 -0
  108. package/dist/providers/gemini/constants/notUseThinkingConfig.js +8 -0
  109. package/dist/providers/gemini/constants/notUseThinkingConfig.js.map +1 -0
  110. package/dist/providers/gemini/constants/onlyWorksWithThinking.d.ts +2 -0
  111. package/dist/providers/gemini/constants/onlyWorksWithThinking.d.ts.map +1 -0
  112. package/dist/providers/gemini/constants/onlyWorksWithThinking.js +2 -0
  113. package/dist/providers/gemini/constants/onlyWorksWithThinking.js.map +1 -0
  114. package/dist/providers/gemini/constants/useThinkingLevel.d.ts +2 -0
  115. package/dist/providers/gemini/constants/useThinkingLevel.d.ts.map +1 -0
  116. package/dist/providers/gemini/constants/useThinkingLevel.js +2 -0
  117. package/dist/providers/gemini/constants/useThinkingLevel.js.map +1 -0
  118. package/dist/providers/gemini/file/fileGemini.d.ts +11 -0
  119. package/dist/providers/gemini/file/fileGemini.d.ts.map +1 -0
  120. package/dist/providers/gemini/file/fileGemini.js +96 -0
  121. package/dist/providers/gemini/file/fileGemini.js.map +1 -0
  122. package/dist/providers/gemini/file/index.d.ts +2 -0
  123. package/dist/providers/gemini/file/index.d.ts.map +1 -0
  124. package/dist/providers/gemini/file/index.js +2 -0
  125. package/dist/providers/gemini/file/index.js.map +1 -0
  126. package/dist/providers/gemini/geminiProvider.d.ts +32 -0
  127. package/dist/providers/gemini/geminiProvider.d.ts.map +1 -0
  128. package/dist/providers/gemini/geminiProvider.js +311 -0
  129. package/dist/providers/gemini/geminiProvider.js.map +1 -0
  130. package/dist/providers/gemini/index.d.ts +6 -0
  131. package/dist/providers/gemini/index.d.ts.map +1 -0
  132. package/dist/providers/gemini/index.js +6 -0
  133. package/dist/providers/gemini/index.js.map +1 -0
  134. package/dist/providers/gemini/types/geminiModels.d.ts +3 -0
  135. package/dist/providers/gemini/types/geminiModels.d.ts.map +1 -0
  136. package/dist/providers/gemini/types/geminiModels.js +2 -0
  137. package/dist/providers/gemini/types/geminiModels.js.map +1 -0
  138. package/dist/providers/gemini/types/index.d.ts +3 -0
  139. package/dist/providers/gemini/types/index.d.ts.map +1 -0
  140. package/dist/providers/gemini/types/index.js +3 -0
  141. package/dist/providers/gemini/types/index.js.map +1 -0
  142. package/dist/providers/gemini/types/taskType.d.ts +2 -0
  143. package/dist/providers/gemini/types/taskType.d.ts.map +1 -0
  144. package/dist/providers/gemini/types/taskType.js +2 -0
  145. package/dist/providers/gemini/types/taskType.js.map +1 -0
  146. package/dist/providers/gemini/utils/convertToGeminiFunctions.d.ts +4 -0
  147. package/dist/providers/gemini/utils/convertToGeminiFunctions.d.ts.map +1 -0
  148. package/dist/providers/gemini/utils/convertToGeminiFunctions.js +46 -0
  149. package/dist/providers/gemini/utils/convertToGeminiFunctions.js.map +1 -0
  150. package/dist/providers/gemini/utils/index.d.ts +2 -0
  151. package/dist/providers/gemini/utils/index.d.ts.map +1 -0
  152. package/dist/providers/gemini/utils/index.js +2 -0
  153. package/dist/providers/gemini/utils/index.js.map +1 -0
  154. package/dist/providers/grok/grokProvider.d.ts +4 -0
  155. package/dist/providers/grok/grokProvider.d.ts.map +1 -0
  156. package/dist/providers/grok/grokProvider.js +4 -0
  157. package/dist/providers/grok/grokProvider.js.map +1 -0
  158. package/dist/providers/grok/index.d.ts +3 -0
  159. package/dist/providers/grok/index.d.ts.map +1 -0
  160. package/dist/providers/grok/index.js +3 -0
  161. package/dist/providers/grok/index.js.map +1 -0
  162. package/dist/providers/grok/types/grokModels.d.ts +2 -0
  163. package/dist/providers/grok/types/grokModels.d.ts.map +1 -0
  164. package/dist/providers/grok/types/grokModels.js +2 -0
  165. package/dist/providers/grok/types/grokModels.js.map +1 -0
  166. package/dist/providers/grok/types/index.d.ts +2 -0
  167. package/dist/providers/grok/types/index.d.ts.map +1 -0
  168. package/dist/providers/grok/types/index.js +2 -0
  169. package/dist/providers/grok/types/index.js.map +1 -0
  170. package/dist/providers/openai/batch/batchOpenai.d.ts +12 -0
  171. package/dist/providers/openai/batch/batchOpenai.d.ts.map +1 -0
  172. package/dist/providers/openai/batch/batchOpenai.js +284 -0
  173. package/dist/providers/openai/batch/batchOpenai.js.map +1 -0
  174. package/dist/providers/openai/batch/index.d.ts +2 -0
  175. package/dist/providers/openai/batch/index.d.ts.map +1 -0
  176. package/dist/providers/openai/batch/index.js +2 -0
  177. package/dist/providers/openai/batch/index.js.map +1 -0
  178. package/dist/providers/openai/file/fileOpenai.d.ts +11 -0
  179. package/dist/providers/openai/file/fileOpenai.d.ts.map +1 -0
  180. package/dist/providers/openai/file/fileOpenai.js +81 -0
  181. package/dist/providers/openai/file/fileOpenai.js.map +1 -0
  182. package/dist/providers/openai/file/index.d.ts +2 -0
  183. package/dist/providers/openai/file/index.d.ts.map +1 -0
  184. package/dist/providers/openai/file/index.js +2 -0
  185. package/dist/providers/openai/file/index.js.map +1 -0
  186. package/dist/providers/openai/index.d.ts +5 -0
  187. package/dist/providers/openai/index.d.ts.map +1 -0
  188. package/dist/providers/openai/index.js +5 -0
  189. package/dist/providers/openai/index.js.map +1 -0
  190. package/dist/providers/openai/openaiProvider.d.ts +34 -0
  191. package/dist/providers/openai/openaiProvider.d.ts.map +1 -0
  192. package/dist/providers/openai/openaiProvider.js +260 -0
  193. package/dist/providers/openai/openaiProvider.js.map +1 -0
  194. package/dist/providers/openai/types/index.d.ts +4 -0
  195. package/dist/providers/openai/types/index.d.ts.map +1 -0
  196. package/dist/providers/openai/types/index.js +4 -0
  197. package/dist/providers/openai/types/index.js.map +1 -0
  198. package/dist/providers/openai/types/openAIBatchChatCompletionCreateParams.d.ts +8 -0
  199. package/dist/providers/openai/types/openAIBatchChatCompletionCreateParams.d.ts.map +1 -0
  200. package/dist/providers/openai/types/openAIBatchChatCompletionCreateParams.js +2 -0
  201. package/dist/providers/openai/types/openAIBatchChatCompletionCreateParams.js.map +1 -0
  202. package/dist/providers/openai/types/openAIBatchEmbeddingCreateParams.d.ts +8 -0
  203. package/dist/providers/openai/types/openAIBatchEmbeddingCreateParams.d.ts.map +1 -0
  204. package/dist/providers/openai/types/openAIBatchEmbeddingCreateParams.js +2 -0
  205. package/dist/providers/openai/types/openAIBatchEmbeddingCreateParams.js.map +1 -0
  206. package/dist/providers/openai/types/openAIModels.d.ts +4 -0
  207. package/dist/providers/openai/types/openAIModels.d.ts.map +1 -0
  208. package/dist/providers/openai/types/openAIModels.js +2 -0
  209. package/dist/providers/openai/types/openAIModels.js.map +1 -0
  210. package/dist/providers/types/chatOptions.d.ts +5 -0
  211. package/dist/providers/types/chatOptions.d.ts.map +1 -0
  212. package/dist/providers/types/chatOptions.js +2 -0
  213. package/dist/providers/types/chatOptions.js.map +1 -0
  214. package/dist/providers/types/chatOptionsBase.d.ts +25 -0
  215. package/dist/providers/types/chatOptionsBase.d.ts.map +1 -0
  216. package/dist/providers/types/chatOptionsBase.js +2 -0
  217. package/dist/providers/types/chatOptionsBase.js.map +1 -0
  218. package/dist/providers/types/iJsonSchema.d.ts +13 -0
  219. package/dist/providers/types/iJsonSchema.d.ts.map +1 -0
  220. package/dist/providers/types/iJsonSchema.js +2 -0
  221. package/dist/providers/types/iJsonSchema.js.map +1 -0
  222. package/dist/providers/types/index.d.ts +11 -0
  223. package/dist/providers/types/index.d.ts.map +1 -0
  224. package/dist/providers/types/index.js +11 -0
  225. package/dist/providers/types/index.js.map +1 -0
  226. package/dist/providers/types/jsonObject.d.ts +8 -0
  227. package/dist/providers/types/jsonObject.d.ts.map +1 -0
  228. package/dist/providers/types/jsonObject.js +2 -0
  229. package/dist/providers/types/jsonObject.js.map +1 -0
  230. package/dist/providers/types/jsonSchema.d.ts +13 -0
  231. package/dist/providers/types/jsonSchema.d.ts.map +1 -0
  232. package/dist/providers/types/jsonSchema.js +2 -0
  233. package/dist/providers/types/jsonSchema.js.map +1 -0
  234. package/dist/providers/types/optionsBase.d.ts +21 -0
  235. package/dist/providers/types/optionsBase.d.ts.map +1 -0
  236. package/dist/providers/types/optionsBase.js +2 -0
  237. package/dist/providers/types/optionsBase.js.map +1 -0
  238. package/dist/providers/types/reasoningConfig.d.ts +9 -0
  239. package/dist/providers/types/reasoningConfig.d.ts.map +1 -0
  240. package/dist/providers/types/reasoningConfig.js +2 -0
  241. package/dist/providers/types/reasoningConfig.js.map +1 -0
  242. package/dist/providers/types/text.d.ts +8 -0
  243. package/dist/providers/types/text.d.ts.map +1 -0
  244. package/dist/providers/types/text.js +2 -0
  245. package/dist/providers/types/text.js.map +1 -0
  246. package/dist/providers/types/thinkingConfig.d.ts +11 -0
  247. package/dist/providers/types/thinkingConfig.d.ts.map +1 -0
  248. package/dist/providers/types/thinkingConfig.js +2 -0
  249. package/dist/providers/types/thinkingConfig.js.map +1 -0
  250. package/dist/providers/types/toolModel.d.ts +15 -0
  251. package/dist/providers/types/toolModel.d.ts.map +1 -0
  252. package/dist/providers/types/toolModel.js +2 -0
  253. package/dist/providers/types/toolModel.js.map +1 -0
  254. package/dist/types/batch.d.ts +280 -0
  255. package/dist/types/batch.d.ts.map +1 -0
  256. package/dist/types/batch.js +2 -0
  257. package/dist/types/batch.js.map +1 -0
  258. package/dist/types/chat.d.ts +144 -0
  259. package/dist/types/chat.d.ts.map +1 -0
  260. package/dist/types/chat.js +2 -0
  261. package/dist/types/chat.js.map +1 -0
  262. package/dist/types/embed.d.ts +70 -0
  263. package/dist/types/embed.d.ts.map +1 -0
  264. package/dist/types/embed.js +2 -0
  265. package/dist/types/embed.js.map +1 -0
  266. package/dist/types/file.d.ts +56 -0
  267. package/dist/types/file.d.ts.map +1 -0
  268. package/dist/types/file.js +2 -0
  269. package/dist/types/file.js.map +1 -0
  270. package/dist/types/handleErrorResponse.d.ts +35 -0
  271. package/dist/types/handleErrorResponse.d.ts.map +1 -0
  272. package/dist/types/handleErrorResponse.js +2 -0
  273. package/dist/types/handleErrorResponse.js.map +1 -0
  274. package/dist/types/index.d.ts +11 -0
  275. package/dist/types/index.d.ts.map +1 -0
  276. package/dist/types/index.js +11 -0
  277. package/dist/types/index.js.map +1 -0
  278. package/dist/types/providerModel.d.ts +12 -0
  279. package/dist/types/providerModel.d.ts.map +1 -0
  280. package/dist/types/providerModel.js +2 -0
  281. package/dist/types/providerModel.js.map +1 -0
  282. package/dist/types/responseBase.d.ts +9 -0
  283. package/dist/types/responseBase.d.ts.map +1 -0
  284. package/dist/types/responseBase.js +2 -0
  285. package/dist/types/responseBase.js.map +1 -0
  286. package/dist/types/resultBase.d.ts +30 -0
  287. package/dist/types/resultBase.d.ts.map +1 -0
  288. package/dist/types/resultBase.js +2 -0
  289. package/dist/types/resultBase.js.map +1 -0
  290. package/dist/types/retryOptions.d.ts +5 -0
  291. package/dist/types/retryOptions.d.ts.map +1 -0
  292. package/dist/types/retryOptions.js +2 -0
  293. package/dist/types/retryOptions.js.map +1 -0
  294. package/dist/types/usage.d.ts +9 -0
  295. package/dist/types/usage.d.ts.map +1 -0
  296. package/dist/types/usage.js +2 -0
  297. package/dist/types/usage.js.map +1 -0
  298. package/dist/types/utils.d.ts +2 -0
  299. package/dist/types/utils.d.ts.map +1 -0
  300. package/dist/types/utils.js +2 -0
  301. package/dist/types/utils.js.map +1 -0
  302. package/dist/utils.d.ts +4 -0
  303. package/dist/utils.d.ts.map +1 -0
  304. package/dist/utils.js +7 -0
  305. package/dist/utils.js.map +1 -0
  306. package/package.json +53 -0
package/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # AI-Suite
2
+
3
+ All AI providers in one place - a unified TypeScript interface for working with multiple AI models.
4
+
5
+ ## Features
6
+
7
+ - **Unified API** for multiple AI providers (OpenAI, Anthropic, Google Gemini, DeepSeek, Grok, Custom LLMs)
8
+ - **Simple and consistent** message format across all providers
9
+ - **Multimodal Support** for images and files (PDF, PNG, JPG, GIF, WebP)
10
+ - **Structured Output** with JSON Schema support via Zod
11
+ - **Tool/Function Calling** for all compatible providers
12
+ - **Reasoning & Thinking Modes** (OpenAI o1/o3, Grok, Gemini 2.5)
13
+ - **Built-in Retry Logic** with exponential backoff
14
+ - **Hooks System** for request/response interceptors
15
+ - **Langfuse Integration** for tracking and monitoring
16
+ - **Robust TypeScript** typing with full type safety
17
+ - **Custom LLM Support** for any OpenAI-compatible API
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ npm install @cubos/ai-suite
23
+ # or
24
+ yarn add @cubos/ai-suite
25
+ # or
26
+ pnpm add @cubos/ai-suite
27
+ ```
28
+
29
+ ## Quick Start
30
+
31
+ ```typescript
32
+ import { AISuite } from '@cubos/ai-suite';
33
+
34
+ // Initialize with API keys
35
+ const aiSuite = new AISuite({
36
+ openaiKey: process.env.OPENAI_API_KEY,
37
+ anthropicKey: process.env.ANTHROPIC_API_KEY,
38
+ geminiKey: process.env.GEMINI_API_KEY,
39
+ deepseekKey: process.env.DEEPSEEK_API_KEY,
40
+ grokKey: process.env.GROK_API_KEY,
41
+ // Optional: for custom LLM providers
42
+ customURL: process.env.CUSTOM_LLM_URL,
43
+ customLLMKey: process.env.CUSTOM_LLM_KEY
44
+ });
45
+
46
+ // Single provider chat completion
47
+ const response = await aiSuite.createChatCompletion(
48
+ 'openai/gpt-4o',
49
+ [{ role: 'user', content: 'Hello, world!' }],
50
+ { responseFormat: 'text' }
51
+ );
52
+
53
+ if (response.success) {
54
+ console.log(response.content);
55
+ } else {
56
+ console.error('Error:', response.error);
57
+ }
58
+ ```
59
+
60
+ ## Supported Providers
61
+
62
+ - **OpenAI** - GPT-4o, GPT-4, o1, o3, and more
63
+ - **Anthropic** - Claude 3.5 Sonnet, Claude 3 Opus, Haiku
64
+ - **Google Gemini** - Gemini 2.5 Pro, 2.5 Flash, 2.0 Flash, 1.5 Pro/Flash
65
+ - **DeepSeek** - DeepSeek Chat, DeepSeek Coder
66
+ - **Grok** - Grok 3, Grok 3 Mini
67
+ - **Custom LLM** - Any OpenAI-compatible API (Ollama, LM Studio, vLLM, etc.)
68
+
@@ -0,0 +1,54 @@
1
+ import type Langfuse from "langfuse";
2
+ import type { AnthropicProvider } from "./providers/anthropic/anthropicProvider.js";
3
+ import type { GeminiProvider } from "./providers/gemini/geminiProvider.js";
4
+ import type { OpenAIProvider } from "./providers/openai/openaiProvider.js";
5
+ import type { LangfuseData, OptionsBase } from "./providers/types/optionsBase.js";
6
+ import type { ChatBatchOptions, ChatBatchRequest, EmbeddingBatchRequest, Endpoint, ListBatchOptions, ResultBatch, ResultCancelBatch, ResultCreateBatch, ResultListBatch, ResultRetrieveBatch } from "./types/batch.js";
7
+ import type { EmbeddingOptions } from "./types/embed.js";
8
+ import type { ErrorAISuite } from "./types/handleErrorResponse.js";
9
+ import type { ProviderBatchType, ProviderChatModel, ProviderEmbeddingModel, ProviderModel } from "./types/providerModel.js";
10
+ import type { ResponseBase } from "./types/responseBase.js";
11
+ import type { ResultBase } from "./types/resultBase.js";
12
+ export declare class Batch<S extends string = string> {
13
+ protected getProvider: (provider: ProviderModel<S>) => OpenAIProvider | AnthropicProvider | GeminiProvider;
14
+ protected resultWhithObservation: <R extends ResultBase>(func: () => Promise<R>, langfuseOptions: {
15
+ langfuseData: LangfuseData;
16
+ model: string;
17
+ input: unknown;
18
+ }, provider: OpenAIProvider | AnthropicProvider | GeminiProvider, start: number) => Promise<(R & ResponseBase) | (ErrorAISuite & ResponseBase)>;
19
+ protected openaiKey: string;
20
+ protected anthropicKey: string;
21
+ protected geminiKey: string;
22
+ protected deepseekKey: string;
23
+ protected grokKey: string;
24
+ protected customURL?: string;
25
+ protected customLLMKey?: string;
26
+ protected langFuse?: Langfuse;
27
+ constructor(keys: {
28
+ openaiKey?: string;
29
+ anthropicKey?: string;
30
+ geminiKey?: string;
31
+ deepseekKey?: string;
32
+ grokKey?: string;
33
+ customURL?: string;
34
+ customLLMKey?: string;
35
+ langFuse?: Langfuse;
36
+ }, getProvider: (provider: ProviderModel<S>) => OpenAIProvider | AnthropicProvider | GeminiProvider, resultWhithObservation: <R extends ResultBase>(func: () => Promise<R>, langfuseOptions: {
37
+ langfuseData: LangfuseData;
38
+ model: string;
39
+ input: unknown;
40
+ }, provider: OpenAIProvider | AnthropicProvider | GeminiProvider, start: number) => Promise<(R & ResponseBase) | (ErrorAISuite & ResponseBase)>);
41
+ /**
42
+ * Creates a batch resource on the provider's platform.
43
+ * @partam provider the AI provider to use for file management (e.g., "openai", "anthropic", "gemini").
44
+ * @param batch batch object.
45
+ * @param options options for batch creation, including optional expiration time and metadata for hooks.
46
+ * @return a promise that resolves to the result of the batch creation operation, including status and provider information.
47
+ */
48
+ create<E extends Endpoint>(endpoint: E, provider: E extends "embeddings" ? ProviderEmbeddingModel<S> : ProviderChatModel<S>, batch: E extends "embeddings" ? EmbeddingBatchRequest : ChatBatchRequest, options: E extends "embeddings" ? EmbeddingOptions : ChatBatchOptions): Promise<ResultCreateBatch>;
49
+ list(provider: ProviderBatchType, options: ListBatchOptions): Promise<ResultListBatch>;
50
+ retrieve(provider: ProviderBatchType, id: string, options: OptionsBase): Promise<ResultRetrieveBatch>;
51
+ cancel(provider: ProviderBatchType, id: string, options: OptionsBase): Promise<ResultCancelBatch>;
52
+ result(provider: ProviderBatchType, id: string, options: OptionsBase): Promise<ResultBatch>;
53
+ }
54
+ //# sourceMappingURL=batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../src/batch.ts"],"names":[],"mappings":"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"}
package/dist/batch.js ADDED
@@ -0,0 +1,85 @@
1
+ export class Batch {
2
+ constructor(keys, getProvider, resultWhithObservation) {
3
+ this.getProvider = getProvider;
4
+ this.resultWhithObservation = resultWhithObservation;
5
+ this.openaiKey = keys.openaiKey || "";
6
+ this.anthropicKey = keys.anthropicKey || "";
7
+ this.geminiKey = keys.geminiKey || "";
8
+ this.deepseekKey = keys.deepseekKey || "";
9
+ this.grokKey = keys.grokKey || "";
10
+ this.customURL = keys.customURL || "";
11
+ this.customLLMKey = keys.customLLMKey || "";
12
+ this.langFuse = keys.langFuse;
13
+ this.getProvider = getProvider;
14
+ this.resultWhithObservation = resultWhithObservation;
15
+ }
16
+ /**
17
+ * Creates a batch resource on the provider's platform.
18
+ * @partam provider the AI provider to use for file management (e.g., "openai", "anthropic", "gemini").
19
+ * @param batch batch object.
20
+ * @param options options for batch creation, including optional expiration time and metadata for hooks.
21
+ * @return a promise that resolves to the result of the batch creation operation, including status and provider information.
22
+ */
23
+ async create(endpoint, provider, batch, options) {
24
+ const start = Date.now();
25
+ const p = this.getProvider(provider);
26
+ const args = { endpoint, batch, options };
27
+ return this.resultWhithObservation(() => p.batch.create(args), {
28
+ langfuseData: {
29
+ name: "create-batch",
30
+ tags: ["batch", provider],
31
+ },
32
+ model: p.model,
33
+ input: batch,
34
+ }, p, start);
35
+ }
36
+ async list(provider, options) {
37
+ const start = Date.now();
38
+ const p = this.getProvider(provider);
39
+ return this.resultWhithObservation(() => p.batch.list(options), {
40
+ langfuseData: {
41
+ name: "list-batch",
42
+ tags: ["batch", provider],
43
+ },
44
+ model: p.model,
45
+ input: options,
46
+ }, p, start);
47
+ }
48
+ async retrieve(provider, id, options) {
49
+ const start = Date.now();
50
+ const p = this.getProvider(provider);
51
+ return this.resultWhithObservation(() => p.batch.retrieve(id, options), {
52
+ langfuseData: {
53
+ name: "retrieve-batch",
54
+ tags: ["batch", provider],
55
+ },
56
+ model: p.model,
57
+ input: id,
58
+ }, p, start);
59
+ }
60
+ async cancel(provider, id, options) {
61
+ const start = Date.now();
62
+ const p = this.getProvider(provider);
63
+ return this.resultWhithObservation(() => p.batch.cancel(id, options), {
64
+ langfuseData: {
65
+ name: "cancel-batch",
66
+ tags: ["batch", provider],
67
+ },
68
+ model: p.model,
69
+ input: id,
70
+ }, p, start);
71
+ }
72
+ async result(provider, id, options) {
73
+ const start = Date.now();
74
+ const p = this.getProvider(provider);
75
+ return this.resultWhithObservation(() => p.batch.result(id, options), {
76
+ langfuseData: {
77
+ name: "result-batch",
78
+ tags: ["batch", provider],
79
+ },
80
+ model: p.model,
81
+ input: id,
82
+ }, p, start);
83
+ }
84
+ }
85
+ //# sourceMappingURL=batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../src/batch.ts"],"names":[],"mappings":"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"}
package/dist/file.d.ts ADDED
@@ -0,0 +1,72 @@
1
+ import type Langfuse from "langfuse";
2
+ import type { AnthropicProvider } from "./providers/anthropic/anthropicProvider.js";
3
+ import type { GeminiProvider } from "./providers/gemini/geminiProvider.js";
4
+ import type { OpenAIProvider } from "./providers/openai/openaiProvider.js";
5
+ import type { LangfuseData, OptionsBase } from "./providers/types/optionsBase.js";
6
+ import type { CreateFileOptions, ListFileOptions, ResultCreateFile, ResultDeleteFile, ResultListFile } from "./types/file.js";
7
+ import type { ErrorAISuite } from "./types/handleErrorResponse.js";
8
+ import type { ProviderFileType, ProviderModel } from "./types/providerModel.js";
9
+ import type { ResponseBase } from "./types/responseBase.js";
10
+ import type { ResultBase } from "./types/resultBase.js";
11
+ export declare class File<S extends string = string> {
12
+ protected getProvider: (provider: ProviderModel<S>) => OpenAIProvider | AnthropicProvider | GeminiProvider;
13
+ protected resultWhithObservation: <R extends ResultBase>(func: () => Promise<R>, langfuseOptions: {
14
+ langfuseData: LangfuseData;
15
+ model: string;
16
+ input: unknown;
17
+ }, provider: OpenAIProvider | AnthropicProvider | GeminiProvider, start: number) => Promise<(R & ResponseBase) | (ErrorAISuite & ResponseBase)>;
18
+ protected openaiKey: string;
19
+ protected anthropicKey: string;
20
+ protected geminiKey: string;
21
+ protected deepseekKey: string;
22
+ protected grokKey: string;
23
+ protected customURL?: string;
24
+ protected customLLMKey?: string;
25
+ protected langFuse?: Langfuse;
26
+ constructor(keys: {
27
+ openaiKey?: string;
28
+ anthropicKey?: string;
29
+ geminiKey?: string;
30
+ deepseekKey?: string;
31
+ grokKey?: string;
32
+ customURL?: string;
33
+ customLLMKey?: string;
34
+ langFuse?: Langfuse;
35
+ }, getProvider: (provider: ProviderModel<S>) => OpenAIProvider | AnthropicProvider | GeminiProvider, resultWhithObservation: <R extends ResultBase>(func: () => Promise<R>, langfuseOptions: {
36
+ langfuseData: LangfuseData;
37
+ model: string;
38
+ input: unknown;
39
+ }, provider: OpenAIProvider | AnthropicProvider | GeminiProvider, start: number) => Promise<(R & ResponseBase) | (ErrorAISuite & ResponseBase)>);
40
+ /**
41
+ * Creates a file resource on the provider's platform.
42
+ * @partam provider the AI provider to use for file management (e.g., "openai", "anthropic", "gemini").
43
+ * @param file the file to be uploaded, must be a File object and of a supported type (e.g., "text/jsonl").
44
+ * @param options options for file creation, including optional expiration time and metadata for hooks.
45
+ * @return a promise that resolves to the result of the file creation operation, including success status, file details, and provider information.
46
+ */
47
+ create(provider: ProviderFileType, file: globalThis.File, options: CreateFileOptions): Promise<ResultCreateFile>;
48
+ /**
49
+ * Lists files available on the provider's platform.
50
+ * @param provider the AI provider to use for file management (e.g., "openai", "anthropic", "gemini").
51
+ * @param options options for listing files, including pagination parameters and metadata for hooks.
52
+ * @return a promise that resolves to the result of the file listing operation, including success status, list of files, and provider information.
53
+ */
54
+ list(provider: ProviderFileType, options: ListFileOptions): Promise<ResultListFile>;
55
+ /**
56
+ * Retrieves a specific file from the provider's platform using its unique identifier.
57
+ * @param provider the AI provider to use for file management (e.g., "openai", "anthropic", "gemini").
58
+ * @param id the unique identifier of the file to be retrieved.
59
+ * @param options options for retrieving the file, including metadata for hooks.
60
+ * @returns a promise that resolves to the result of the file retrieval operation, including success status, file details, and provider information.
61
+ */
62
+ retrieve(provider: ProviderFileType, id: string, options: OptionsBase): Promise<ResultCreateFile>;
63
+ /**
64
+ * Deletes a specific file from the provider's platform using its unique identifier.
65
+ * @param provider the AI provider to use for file management (e.g., "openai", "anthropic", "gemini").
66
+ * @param id the unique identifier of the file to be deleted.
67
+ * @param options options for deleting the file, including metadata for hooks.
68
+ * @returns a promise that resolves to the result of the file deletion operation, including success status and provider information.
69
+ */
70
+ delete(provider: ProviderFileType, id: string, options: OptionsBase): Promise<ResultDeleteFile>;
71
+ }
72
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"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"}
package/dist/file.js ADDED
@@ -0,0 +1,92 @@
1
+ export class File {
2
+ constructor(keys, getProvider, resultWhithObservation) {
3
+ this.getProvider = getProvider;
4
+ this.resultWhithObservation = resultWhithObservation;
5
+ this.openaiKey = keys.openaiKey || "";
6
+ this.anthropicKey = keys.anthropicKey || "";
7
+ this.geminiKey = keys.geminiKey || "";
8
+ this.deepseekKey = keys.deepseekKey || "";
9
+ this.grokKey = keys.grokKey || "";
10
+ this.customURL = keys.customURL || "";
11
+ this.customLLMKey = keys.customLLMKey || "";
12
+ this.langFuse = keys.langFuse;
13
+ this.getProvider = getProvider;
14
+ this.resultWhithObservation = resultWhithObservation;
15
+ }
16
+ /**
17
+ * Creates a file resource on the provider's platform.
18
+ * @partam provider the AI provider to use for file management (e.g., "openai", "anthropic", "gemini").
19
+ * @param file the file to be uploaded, must be a File object and of a supported type (e.g., "text/jsonl").
20
+ * @param options options for file creation, including optional expiration time and metadata for hooks.
21
+ * @return a promise that resolves to the result of the file creation operation, including success status, file details, and provider information.
22
+ */
23
+ async create(provider, file, options) {
24
+ const start = Date.now();
25
+ const p = this.getProvider(provider);
26
+ return this.resultWhithObservation(() => p.file.create(file, options), {
27
+ langfuseData: {
28
+ name: "create-file",
29
+ tags: ["file", provider],
30
+ },
31
+ model: provider,
32
+ input: file,
33
+ }, p, start);
34
+ }
35
+ /**
36
+ * Lists files available on the provider's platform.
37
+ * @param provider the AI provider to use for file management (e.g., "openai", "anthropic", "gemini").
38
+ * @param options options for listing files, including pagination parameters and metadata for hooks.
39
+ * @return a promise that resolves to the result of the file listing operation, including success status, list of files, and provider information.
40
+ */
41
+ async list(provider, options) {
42
+ const start = Date.now();
43
+ const p = this.getProvider(provider);
44
+ return this.resultWhithObservation(() => p.file.list(options), {
45
+ langfuseData: {
46
+ name: "list-files",
47
+ tags: ["file", provider],
48
+ },
49
+ model: provider,
50
+ input: { after: options.after, limit: options.limit },
51
+ }, p, start);
52
+ }
53
+ /**
54
+ * Retrieves a specific file from the provider's platform using its unique identifier.
55
+ * @param provider the AI provider to use for file management (e.g., "openai", "anthropic", "gemini").
56
+ * @param id the unique identifier of the file to be retrieved.
57
+ * @param options options for retrieving the file, including metadata for hooks.
58
+ * @returns a promise that resolves to the result of the file retrieval operation, including success status, file details, and provider information.
59
+ */
60
+ async retrieve(provider, id, options) {
61
+ const start = Date.now();
62
+ const p = this.getProvider(provider);
63
+ return this.resultWhithObservation(() => p.file.retrieve(id, options), {
64
+ langfuseData: {
65
+ name: "retrieve-file",
66
+ tags: ["file", provider],
67
+ },
68
+ model: provider,
69
+ input: id,
70
+ }, p, start);
71
+ }
72
+ /**
73
+ * Deletes a specific file from the provider's platform using its unique identifier.
74
+ * @param provider the AI provider to use for file management (e.g., "openai", "anthropic", "gemini").
75
+ * @param id the unique identifier of the file to be deleted.
76
+ * @param options options for deleting the file, including metadata for hooks.
77
+ * @returns a promise that resolves to the result of the file deletion operation, including success status and provider information.
78
+ */
79
+ async delete(provider, id, options) {
80
+ const start = Date.now();
81
+ const p = this.getProvider(provider);
82
+ return this.resultWhithObservation(() => p.file.delete(id, options), {
83
+ langfuseData: {
84
+ name: "delete-file",
85
+ tags: ["file", provider],
86
+ },
87
+ model: provider,
88
+ input: id,
89
+ }, p, start);
90
+ }
91
+ }
92
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import type { Langfuse } from "langfuse";
2
+ import { Batch } from "./batch.js";
3
+ import { File } from "./file.js";
4
+ import type { ChatOptions } from "./providers/types/index.js";
5
+ import type { MessageModel, ResultChatCompletion } from "./types/chat.js";
6
+ import type { EmbeddingOptions, EmbeddingRequest, ResultEmbedding } from "./types/embed.js";
7
+ import type { ProviderChatModel, ProviderEmbeddingModel } from "./types/providerModel.js";
8
+ export declare class AISuite<S extends string = string> {
9
+ private openaiKey;
10
+ private anthropicKey;
11
+ private geminiKey;
12
+ private deepseekKey;
13
+ private grokKey;
14
+ private langFuse?;
15
+ private customURL?;
16
+ private customLLMKey?;
17
+ hooks?: {
18
+ handleRequest?: (req: unknown) => Promise<void>;
19
+ handleResponse?: (req: unknown, res: unknown, metadata: Record<string, unknown>) => Promise<void>;
20
+ failOnError?: boolean;
21
+ };
22
+ /**
23
+ * The Batch class provides an interface for managing file resources across different AI providers.
24
+ */
25
+ batch: Batch<S>;
26
+ /**
27
+ * The File class provides an interface for managing file resources across different AI providers.
28
+ * only batch file uploads are supported as of now.
29
+ */
30
+ file: File<S>;
31
+ constructor(keys: {
32
+ openaiKey?: string;
33
+ anthropicKey?: string;
34
+ geminiKey?: string;
35
+ deepseekKey?: string;
36
+ grokKey?: string;
37
+ customURL?: string;
38
+ customLLMKey?: string;
39
+ }, options?: {
40
+ hooks?: {
41
+ handleRequest?: (req: unknown) => Promise<void>;
42
+ handleResponse?: (req: unknown, res: unknown, metadata: Record<string, unknown>) => Promise<void>;
43
+ failOnError?: boolean;
44
+ };
45
+ langFuse?: Langfuse;
46
+ });
47
+ /**
48
+ * Create a chat completion with multiple providers
49
+ * @param providers - The providers to use
50
+ * @param messages - The messages to send to the providers
51
+ * @param options - The options to use
52
+ * @returns The chat completion
53
+ */
54
+ createChatCompletionMultiResult<T extends ProviderChatModel<S>>(providers: T[], messages: MessageModel[], options?: {
55
+ stream: false;
56
+ } & ChatOptions): Promise<ResultChatCompletion[]>;
57
+ /**
58
+ * Create a chat completion
59
+ * @param provider - The provider to use
60
+ * @param messages - The messages to send to the provider
61
+ * @param options - The options to use
62
+ * @returns The chat completion
63
+ */
64
+ createChatCompletion(provider: ProviderChatModel<S>, messages: MessageModel[], options?: {
65
+ stream: false;
66
+ } & ChatOptions): Promise<ResultChatCompletion>;
67
+ /**
68
+ * Create a chat completion
69
+ * @param provider - The provider to use
70
+ * @param embedding- The embedding request to send to the provider
71
+ * @param options - The options to use
72
+ * @returns The chat completion
73
+ */
74
+ createEmbedding(provider: ProviderEmbeddingModel<S>, embedding: EmbeddingRequest, options?: EmbeddingOptions): Promise<ResultEmbedding>;
75
+ private resultWhithObservation;
76
+ private getProvider;
77
+ }
78
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}