@truefoundry/ai-gateway-sdk 0.0.0-stage → 0.0.2

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 (1338) hide show
  1. package/README.md +192 -2
  2. package/dist/adapters/bedrock-converse/index.d.ts +9 -0
  3. package/dist/adapters/bedrock-converse/index.js +121 -0
  4. package/dist/adapters/bedrock-converse/index.js.map +1 -0
  5. package/dist/adapters/bedrock-converse/requestTransform.d.ts +111 -0
  6. package/dist/adapters/bedrock-converse/requestTransform.js +187 -0
  7. package/dist/adapters/bedrock-converse/requestTransform.js.map +1 -0
  8. package/dist/adapters/bedrock-converse/responseTransform.d.ts +7 -0
  9. package/dist/adapters/bedrock-converse/responseTransform.js +104 -0
  10. package/dist/adapters/bedrock-converse/responseTransform.js.map +1 -0
  11. package/dist/adapters/bedrock-converse/streamTransform.d.ts +34 -0
  12. package/dist/adapters/bedrock-converse/streamTransform.js +204 -0
  13. package/dist/adapters/bedrock-converse/streamTransform.js.map +1 -0
  14. package/dist/adapters/constants.d.ts +15 -0
  15. package/dist/adapters/constants.js +26 -0
  16. package/dist/adapters/constants.js.map +1 -0
  17. package/dist/adapters/gemini/index.d.ts +9 -0
  18. package/dist/adapters/gemini/index.js +146 -0
  19. package/dist/adapters/gemini/index.js.map +1 -0
  20. package/dist/adapters/gemini/requestTransform.d.ts +72 -0
  21. package/dist/adapters/gemini/requestTransform.js +227 -0
  22. package/dist/adapters/gemini/requestTransform.js.map +1 -0
  23. package/dist/adapters/gemini/responseTransform.d.ts +7 -0
  24. package/dist/adapters/gemini/responseTransform.js +113 -0
  25. package/dist/adapters/gemini/responseTransform.js.map +1 -0
  26. package/dist/adapters/gemini/streamTransform.d.ts +22 -0
  27. package/dist/adapters/gemini/streamTransform.js +174 -0
  28. package/dist/adapters/gemini/streamTransform.js.map +1 -0
  29. package/dist/adapters/guardrailHelpers.d.ts +49 -0
  30. package/dist/adapters/guardrailHelpers.js +23 -0
  31. package/dist/adapters/guardrailHelpers.js.map +1 -0
  32. package/dist/adapters/index.d.ts +28 -0
  33. package/dist/adapters/index.js +62 -0
  34. package/dist/adapters/index.js.map +1 -0
  35. package/dist/adapters/messages/index.d.ts +9 -0
  36. package/dist/adapters/messages/index.js +112 -0
  37. package/dist/adapters/messages/index.js.map +1 -0
  38. package/dist/adapters/messages/requestTransform.d.ts +8 -0
  39. package/dist/adapters/messages/requestTransform.js +206 -0
  40. package/dist/adapters/messages/requestTransform.js.map +1 -0
  41. package/dist/adapters/messages/responseTransform.d.ts +8 -0
  42. package/dist/adapters/messages/responseTransform.js +104 -0
  43. package/dist/adapters/messages/responseTransform.js.map +1 -0
  44. package/dist/adapters/messages/streamTransform.d.ts +26 -0
  45. package/dist/adapters/messages/streamTransform.js +174 -0
  46. package/dist/adapters/messages/streamTransform.js.map +1 -0
  47. package/dist/adapters/registry.d.ts +67 -0
  48. package/dist/adapters/registry.js +232 -0
  49. package/dist/adapters/registry.js.map +1 -0
  50. package/dist/adapters/responses/encryptedContentAffinity.d.ts +12 -0
  51. package/dist/adapters/responses/encryptedContentAffinity.js +55 -0
  52. package/dist/adapters/responses/encryptedContentAffinity.js.map +1 -0
  53. package/dist/adapters/responses/index.d.ts +6 -0
  54. package/dist/adapters/responses/index.js +201 -0
  55. package/dist/adapters/responses/index.js.map +1 -0
  56. package/dist/adapters/responses/requestTransform.d.ts +7 -0
  57. package/dist/adapters/responses/requestTransform.js +190 -0
  58. package/dist/adapters/responses/requestTransform.js.map +1 -0
  59. package/dist/adapters/responses/responseTransform.d.ts +30 -0
  60. package/dist/adapters/responses/responseTransform.js +174 -0
  61. package/dist/adapters/responses/responseTransform.js.map +1 -0
  62. package/dist/adapters/responses/streamTransform.d.ts +40 -0
  63. package/dist/adapters/responses/streamTransform.js +301 -0
  64. package/dist/adapters/responses/streamTransform.js.map +1 -0
  65. package/dist/adapters/types.d.ts +79 -0
  66. package/dist/adapters/types.js +2 -0
  67. package/dist/adapters/types.js.map +1 -0
  68. package/dist/autogen/decoders.d.ts +956 -0
  69. package/dist/autogen/decoders.js +10502 -0
  70. package/dist/autogen/decoders.js.map +1 -0
  71. package/dist/autogen/helpers.d.ts +5 -0
  72. package/dist/autogen/helpers.js +3 -0
  73. package/dist/autogen/helpers.js.map +1 -0
  74. package/dist/autogen/meta.d.ts +961 -0
  75. package/dist/autogen/meta.js +960 -0
  76. package/dist/autogen/meta.js.map +1 -0
  77. package/dist/autogen/models.d.ts +24388 -0
  78. package/dist/autogen/models.js +9 -0
  79. package/dist/autogen/models.js.map +1 -0
  80. package/dist/autogen/schema.json +30705 -0
  81. package/dist/autogen/validate.d.ts +6 -0
  82. package/dist/autogen/validate.js +15 -0
  83. package/dist/autogen/validate.js.map +1 -0
  84. package/dist/cache/port.d.ts +31 -0
  85. package/dist/cache/port.js +44 -0
  86. package/dist/cache/port.js.map +1 -0
  87. package/dist/catalog/snapshots.d.ts +19 -0
  88. package/dist/catalog/snapshots.js +14 -0
  89. package/dist/catalog/snapshots.js.map +1 -0
  90. package/dist/config.d.ts +89 -0
  91. package/dist/config.js +195 -0
  92. package/dist/config.js.map +1 -0
  93. package/dist/constants/jsonRpc.d.ts +30 -0
  94. package/dist/constants/jsonRpc.js +11 -0
  95. package/dist/constants/jsonRpc.js.map +1 -0
  96. package/dist/constants.d.ts +26 -0
  97. package/dist/constants.js +27 -0
  98. package/dist/constants.js.map +1 -0
  99. package/dist/entities/Authentication.d.ts +37 -0
  100. package/dist/entities/Authentication.js +11 -0
  101. package/dist/entities/Authentication.js.map +1 -0
  102. package/dist/entities/Model.d.ts +105 -0
  103. package/dist/entities/Model.js +55 -0
  104. package/dist/entities/Model.js.map +1 -0
  105. package/dist/entities/Provider.d.ts +46 -0
  106. package/dist/entities/Provider.js +48 -0
  107. package/dist/entities/Provider.js.map +1 -0
  108. package/dist/entities/ProviderAccount.d.ts +23 -0
  109. package/dist/entities/ProviderAccount.js +2 -0
  110. package/dist/entities/ProviderAccount.js.map +1 -0
  111. package/dist/errors.d.ts +190 -0
  112. package/dist/errors.js +300 -0
  113. package/dist/errors.js.map +1 -0
  114. package/dist/globals.d.ts +452 -0
  115. package/dist/globals.js +782 -0
  116. package/dist/globals.js.map +1 -0
  117. package/dist/handlers/handlerUtils.d.ts +2 -0
  118. package/dist/handlers/handlerUtils.js +240 -0
  119. package/dist/handlers/handlerUtils.js.map +1 -0
  120. package/dist/handlers/retryFromExecution.d.ts +12 -0
  121. package/dist/handlers/retryFromExecution.js +21 -0
  122. package/dist/handlers/retryFromExecution.js.map +1 -0
  123. package/dist/handlers/retryHandler.d.ts +20 -0
  124. package/dist/handlers/retryHandler.js +276 -0
  125. package/dist/handlers/retryHandler.js.map +1 -0
  126. package/dist/handlers/streamHandler.d.ts +6 -0
  127. package/dist/handlers/streamHandler.js +29 -0
  128. package/dist/handlers/streamHandler.js.map +1 -0
  129. package/dist/handlers/streamHandlerUtils.d.ts +21 -0
  130. package/dist/handlers/streamHandlerUtils.js +220 -0
  131. package/dist/handlers/streamHandlerUtils.js.map +1 -0
  132. package/dist/handlers/tfyUtils.d.ts +24 -0
  133. package/dist/handlers/tfyUtils.js +221 -0
  134. package/dist/handlers/tfyUtils.js.map +1 -0
  135. package/dist/http/createSafeDispatcher.d.ts +29 -0
  136. package/dist/http/createSafeDispatcher.js +49 -0
  137. package/dist/http/createSafeDispatcher.js.map +1 -0
  138. package/dist/http/errors.d.ts +23 -0
  139. package/dist/http/errors.js +128 -0
  140. package/dist/http/errors.js.map +1 -0
  141. package/dist/http/guardedLookup.d.ts +18 -0
  142. package/dist/http/guardedLookup.js +72 -0
  143. package/dist/http/guardedLookup.js.map +1 -0
  144. package/dist/http/index.d.ts +7 -0
  145. package/dist/http/index.js +7 -0
  146. package/dist/http/index.js.map +1 -0
  147. package/dist/http/isPublicIp.d.ts +1 -0
  148. package/dist/http/isPublicIp.js +63 -0
  149. package/dist/http/isPublicIp.js.map +1 -0
  150. package/dist/http/loopbackDispatcher.d.ts +32 -0
  151. package/dist/http/loopbackDispatcher.js +40 -0
  152. package/dist/http/loopbackDispatcher.js.map +1 -0
  153. package/dist/http/loopbackFetch.d.ts +18 -0
  154. package/dist/http/loopbackFetch.js +47 -0
  155. package/dist/http/loopbackFetch.js.map +1 -0
  156. package/dist/http/meshTls.d.ts +153 -0
  157. package/dist/http/meshTls.js +274 -0
  158. package/dist/http/meshTls.js.map +1 -0
  159. package/dist/http/safeFetch.d.ts +49 -0
  160. package/dist/http/safeFetch.js +226 -0
  161. package/dist/http/safeFetch.js.map +1 -0
  162. package/dist/http/types.d.ts +10 -0
  163. package/dist/http/types.js +2 -0
  164. package/dist/http/types.js.map +1 -0
  165. package/dist/http/urlverify/config.d.ts +20 -0
  166. package/dist/http/urlverify/config.js +66 -0
  167. package/dist/http/urlverify/config.js.map +1 -0
  168. package/dist/http/urlverify/hostname.d.ts +10 -0
  169. package/dist/http/urlverify/hostname.js +29 -0
  170. package/dist/http/urlverify/hostname.js.map +1 -0
  171. package/dist/http/urlverify/ip.d.ts +13 -0
  172. package/dist/http/urlverify/ip.js +115 -0
  173. package/dist/http/urlverify/ip.js.map +1 -0
  174. package/dist/http/urlverify/mode.d.ts +20 -0
  175. package/dist/http/urlverify/mode.js +22 -0
  176. package/dist/http/urlverify/mode.js.map +1 -0
  177. package/dist/index.d.ts +16 -0
  178. package/dist/index.js +11 -0
  179. package/dist/index.js.map +1 -0
  180. package/dist/loadbalancer_utils.d.ts +6 -0
  181. package/dist/loadbalancer_utils.js +2 -0
  182. package/dist/loadbalancer_utils.js.map +1 -0
  183. package/dist/logger.d.ts +18 -0
  184. package/dist/logger.js +93 -0
  185. package/dist/logger.js.map +1 -0
  186. package/dist/parity/transformCapturedProviderResponse.d.ts +42 -0
  187. package/dist/parity/transformCapturedProviderResponse.js +52 -0
  188. package/dist/parity/transformCapturedProviderResponse.js.map +1 -0
  189. package/dist/providers/ai21/api.d.ts +3 -0
  190. package/dist/providers/ai21/api.js +21 -0
  191. package/dist/providers/ai21/api.js.map +1 -0
  192. package/dist/providers/ai21/chatComplete.d.ts +4 -0
  193. package/dist/providers/ai21/chatComplete.js +170 -0
  194. package/dist/providers/ai21/chatComplete.js.map +1 -0
  195. package/dist/providers/ai21/index.d.ts +8 -0
  196. package/dist/providers/ai21/index.js +11 -0
  197. package/dist/providers/ai21/index.js.map +1 -0
  198. package/dist/providers/anthropic/anthropicBetas.d.ts +51 -0
  199. package/dist/providers/anthropic/anthropicBetas.js +95 -0
  200. package/dist/providers/anthropic/anthropicBetas.js.map +1 -0
  201. package/dist/providers/anthropic/api.d.ts +22 -0
  202. package/dist/providers/anthropic/api.js +87 -0
  203. package/dist/providers/anthropic/api.js.map +1 -0
  204. package/dist/providers/anthropic/betaTracing.d.ts +10 -0
  205. package/dist/providers/anthropic/betaTracing.js +30 -0
  206. package/dist/providers/anthropic/betaTracing.js.map +1 -0
  207. package/dist/providers/anthropic/chatComplete.d.ts +137 -0
  208. package/dist/providers/anthropic/chatComplete.js +1395 -0
  209. package/dist/providers/anthropic/chatComplete.js.map +1 -0
  210. package/dist/providers/anthropic/complete.d.ts +32 -0
  211. package/dist/providers/anthropic/complete.js +110 -0
  212. package/dist/providers/anthropic/complete.js.map +1 -0
  213. package/dist/providers/anthropic/deleteFile.d.ts +7 -0
  214. package/dist/providers/anthropic/deleteFile.js +23 -0
  215. package/dist/providers/anthropic/deleteFile.js.map +1 -0
  216. package/dist/providers/anthropic/fileTypes.d.ts +64 -0
  217. package/dist/providers/anthropic/fileTypes.js +7 -0
  218. package/dist/providers/anthropic/fileTypes.js.map +1 -0
  219. package/dist/providers/anthropic/fileUtils.d.ts +14 -0
  220. package/dist/providers/anthropic/fileUtils.js +22 -0
  221. package/dist/providers/anthropic/fileUtils.js.map +1 -0
  222. package/dist/providers/anthropic/index.d.ts +8 -0
  223. package/dist/providers/anthropic/index.js +33 -0
  224. package/dist/providers/anthropic/index.js.map +1 -0
  225. package/dist/providers/anthropic/listFiles.d.ts +7 -0
  226. package/dist/providers/anthropic/listFiles.js +26 -0
  227. package/dist/providers/anthropic/listFiles.js.map +1 -0
  228. package/dist/providers/anthropic/messages.d.ts +5 -0
  229. package/dist/providers/anthropic/messages.js +19 -0
  230. package/dist/providers/anthropic/messages.js.map +1 -0
  231. package/dist/providers/anthropic/retrieveFile.d.ts +7 -0
  232. package/dist/providers/anthropic/retrieveFile.js +19 -0
  233. package/dist/providers/anthropic/retrieveFile.js.map +1 -0
  234. package/dist/providers/anthropic/retrieveFileContent.d.ts +4 -0
  235. package/dist/providers/anthropic/retrieveFileContent.js +17 -0
  236. package/dist/providers/anthropic/retrieveFileContent.js.map +1 -0
  237. package/dist/providers/anthropic/serverTools.d.ts +10 -0
  238. package/dist/providers/anthropic/serverTools.js +70 -0
  239. package/dist/providers/anthropic/serverTools.js.map +1 -0
  240. package/dist/providers/anthropic/types.d.ts +119 -0
  241. package/dist/providers/anthropic/types.js +11 -0
  242. package/dist/providers/anthropic/types.js.map +1 -0
  243. package/dist/providers/anthropic/uploadFile.d.ts +7 -0
  244. package/dist/providers/anthropic/uploadFile.js +47 -0
  245. package/dist/providers/anthropic/uploadFile.js.map +1 -0
  246. package/dist/providers/anthropic/uploadFileUtils.d.ts +20 -0
  247. package/dist/providers/anthropic/uploadFileUtils.js +60 -0
  248. package/dist/providers/anthropic/uploadFileUtils.js.map +1 -0
  249. package/dist/providers/anthropic/utils.d.ts +52 -0
  250. package/dist/providers/anthropic/utils.js +119 -0
  251. package/dist/providers/anthropic/utils.js.map +1 -0
  252. package/dist/providers/anthropic-base/constants.d.ts +12 -0
  253. package/dist/providers/anthropic-base/constants.js +53 -0
  254. package/dist/providers/anthropic-base/constants.js.map +1 -0
  255. package/dist/providers/anthropic-base/messages.d.ts +12 -0
  256. package/dist/providers/anthropic-base/messages.js +81 -0
  257. package/dist/providers/anthropic-base/messages.js.map +1 -0
  258. package/dist/providers/anthropic-base/types.d.ts +49 -0
  259. package/dist/providers/anthropic-base/types.js +2 -0
  260. package/dist/providers/anthropic-base/types.js.map +1 -0
  261. package/dist/providers/anthropic-base/utils/streamGenerator.d.ts +7 -0
  262. package/dist/providers/anthropic-base/utils/streamGenerator.js +135 -0
  263. package/dist/providers/anthropic-base/utils/streamGenerator.js.map +1 -0
  264. package/dist/providers/anyscale/api.d.ts +12 -0
  265. package/dist/providers/anyscale/api.js +26 -0
  266. package/dist/providers/anyscale/api.js.map +1 -0
  267. package/dist/providers/anyscale/chatComplete.d.ts +29 -0
  268. package/dist/providers/anyscale/chatComplete.js +163 -0
  269. package/dist/providers/anyscale/chatComplete.js.map +1 -0
  270. package/dist/providers/anyscale/complete.d.ts +8 -0
  271. package/dist/providers/anyscale/complete.js +111 -0
  272. package/dist/providers/anyscale/complete.js.map +1 -0
  273. package/dist/providers/anyscale/embed.d.ts +7 -0
  274. package/dist/providers/anyscale/embed.js +40 -0
  275. package/dist/providers/anyscale/embed.js.map +1 -0
  276. package/dist/providers/anyscale/index.d.ts +8 -0
  277. package/dist/providers/anyscale/index.js +19 -0
  278. package/dist/providers/anyscale/index.js.map +1 -0
  279. package/dist/providers/aws-bedrock-mantle/api.d.ts +14 -0
  280. package/dist/providers/aws-bedrock-mantle/api.js +200 -0
  281. package/dist/providers/aws-bedrock-mantle/api.js.map +1 -0
  282. package/dist/providers/aws-bedrock-mantle/index.d.ts +5 -0
  283. package/dist/providers/aws-bedrock-mantle/index.js +91 -0
  284. package/dist/providers/aws-bedrock-mantle/index.js.map +1 -0
  285. package/dist/providers/aws-bedrock-mantle/modelFamily.d.ts +5 -0
  286. package/dist/providers/aws-bedrock-mantle/modelFamily.js +11 -0
  287. package/dist/providers/aws-bedrock-mantle/modelFamily.js.map +1 -0
  288. package/dist/providers/aws-bedrock-mantle/responsesLite.d.ts +14 -0
  289. package/dist/providers/aws-bedrock-mantle/responsesLite.js +210 -0
  290. package/dist/providers/aws-bedrock-mantle/responsesLite.js.map +1 -0
  291. package/dist/providers/aws-claude-platform/api.d.ts +3 -0
  292. package/dist/providers/aws-claude-platform/api.js +105 -0
  293. package/dist/providers/aws-claude-platform/api.js.map +1 -0
  294. package/dist/providers/aws-claude-platform/index.d.ts +3 -0
  295. package/dist/providers/aws-claude-platform/index.js +21 -0
  296. package/dist/providers/aws-claude-platform/index.js.map +1 -0
  297. package/dist/providers/aws-claude-platform/uploadFile.d.ts +21 -0
  298. package/dist/providers/aws-claude-platform/uploadFile.js +58 -0
  299. package/dist/providers/aws-claude-platform/uploadFile.js.map +1 -0
  300. package/dist/providers/azure-ai-inference/api.d.ts +4 -0
  301. package/dist/providers/azure-ai-inference/api.js +209 -0
  302. package/dist/providers/azure-ai-inference/api.js.map +1 -0
  303. package/dist/providers/azure-ai-inference/chatComplete.d.ts +6 -0
  304. package/dist/providers/azure-ai-inference/chatComplete.js +78 -0
  305. package/dist/providers/azure-ai-inference/chatComplete.js.map +1 -0
  306. package/dist/providers/azure-ai-inference/complete.d.ts +6 -0
  307. package/dist/providers/azure-ai-inference/complete.js +63 -0
  308. package/dist/providers/azure-ai-inference/complete.js.map +1 -0
  309. package/dist/providers/azure-ai-inference/createSpeech.d.ts +5 -0
  310. package/dist/providers/azure-ai-inference/createSpeech.js +58 -0
  311. package/dist/providers/azure-ai-inference/createSpeech.js.map +1 -0
  312. package/dist/providers/azure-ai-inference/createTranscription.d.ts +4 -0
  313. package/dist/providers/azure-ai-inference/createTranscription.js +29 -0
  314. package/dist/providers/azure-ai-inference/createTranscription.js.map +1 -0
  315. package/dist/providers/azure-ai-inference/createTranslation.d.ts +4 -0
  316. package/dist/providers/azure-ai-inference/createTranslation.js +29 -0
  317. package/dist/providers/azure-ai-inference/createTranslation.js.map +1 -0
  318. package/dist/providers/azure-ai-inference/embed.d.ts +12 -0
  319. package/dist/providers/azure-ai-inference/embed.js +24 -0
  320. package/dist/providers/azure-ai-inference/embed.js.map +1 -0
  321. package/dist/providers/azure-ai-inference/index.d.ts +4 -0
  322. package/dist/providers/azure-ai-inference/index.js +69 -0
  323. package/dist/providers/azure-ai-inference/index.js.map +1 -0
  324. package/dist/providers/azure-ai-inference/messages.d.ts +5 -0
  325. package/dist/providers/azure-ai-inference/messages.js +21 -0
  326. package/dist/providers/azure-ai-inference/messages.js.map +1 -0
  327. package/dist/providers/azure-ai-inference/rerank.d.ts +30 -0
  328. package/dist/providers/azure-ai-inference/rerank.js +61 -0
  329. package/dist/providers/azure-ai-inference/rerank.js.map +1 -0
  330. package/dist/providers/azure-openai/api.d.ts +3 -0
  331. package/dist/providers/azure-openai/api.js +227 -0
  332. package/dist/providers/azure-openai/api.js.map +1 -0
  333. package/dist/providers/azure-openai/chatComplete.d.ts +6 -0
  334. package/dist/providers/azure-openai/chatComplete.js +168 -0
  335. package/dist/providers/azure-openai/chatComplete.js.map +1 -0
  336. package/dist/providers/azure-openai/complete.d.ts +6 -0
  337. package/dist/providers/azure-openai/complete.js +78 -0
  338. package/dist/providers/azure-openai/complete.js.map +1 -0
  339. package/dist/providers/azure-openai/createBatch.d.ts +3 -0
  340. package/dist/providers/azure-openai/createBatch.js +47 -0
  341. package/dist/providers/azure-openai/createBatch.js.map +1 -0
  342. package/dist/providers/azure-openai/createFinetune.d.ts +37 -0
  343. package/dist/providers/azure-openai/createFinetune.js +12 -0
  344. package/dist/providers/azure-openai/createFinetune.js.map +1 -0
  345. package/dist/providers/azure-openai/createSpeech.d.ts +3 -0
  346. package/dist/providers/azure-openai/createSpeech.js +40 -0
  347. package/dist/providers/azure-openai/createSpeech.js.map +1 -0
  348. package/dist/providers/azure-openai/createTranscription.d.ts +9 -0
  349. package/dist/providers/azure-openai/createTranscription.js +41 -0
  350. package/dist/providers/azure-openai/createTranscription.js.map +1 -0
  351. package/dist/providers/azure-openai/createTranslation.d.ts +9 -0
  352. package/dist/providers/azure-openai/createTranslation.js +41 -0
  353. package/dist/providers/azure-openai/createTranslation.js.map +1 -0
  354. package/dist/providers/azure-openai/embed.d.ts +7 -0
  355. package/dist/providers/azure-openai/embed.js +34 -0
  356. package/dist/providers/azure-openai/embed.js.map +1 -0
  357. package/dist/providers/azure-openai/getBatchOutput.d.ts +2 -0
  358. package/dist/providers/azure-openai/getBatchOutput.js +120 -0
  359. package/dist/providers/azure-openai/getBatchOutput.js.map +1 -0
  360. package/dist/providers/azure-openai/imageEdit.d.ts +4 -0
  361. package/dist/providers/azure-openai/imageEdit.js +40 -0
  362. package/dist/providers/azure-openai/imageEdit.js.map +1 -0
  363. package/dist/providers/azure-openai/imageGenerate.d.ts +12 -0
  364. package/dist/providers/azure-openai/imageGenerate.js +45 -0
  365. package/dist/providers/azure-openai/imageGenerate.js.map +1 -0
  366. package/dist/providers/azure-openai/index.d.ts +6 -0
  367. package/dist/providers/azure-openai/index.js +125 -0
  368. package/dist/providers/azure-openai/index.js.map +1 -0
  369. package/dist/providers/azure-openai/utils.d.ts +19 -0
  370. package/dist/providers/azure-openai/utils.js +99 -0
  371. package/dist/providers/azure-openai/utils.js.map +1 -0
  372. package/dist/providers/azure-openai/wifAuth.d.ts +1 -0
  373. package/dist/providers/azure-openai/wifAuth.js +19 -0
  374. package/dist/providers/azure-openai/wifAuth.js.map +1 -0
  375. package/dist/providers/baseten/api.d.ts +3 -0
  376. package/dist/providers/baseten/api.js +24 -0
  377. package/dist/providers/baseten/api.js.map +1 -0
  378. package/dist/providers/baseten/index.d.ts +3 -0
  379. package/dist/providers/baseten/index.js +19 -0
  380. package/dist/providers/baseten/index.js.map +1 -0
  381. package/dist/providers/bedrock/api.d.ts +25 -0
  382. package/dist/providers/bedrock/api.js +470 -0
  383. package/dist/providers/bedrock/api.js.map +1 -0
  384. package/dist/providers/bedrock/cancelBatch.d.ts +10 -0
  385. package/dist/providers/bedrock/cancelBatch.js +20 -0
  386. package/dist/providers/bedrock/cancelBatch.js.map +1 -0
  387. package/dist/providers/bedrock/chatComplete.d.ts +70 -0
  388. package/dist/providers/bedrock/chatComplete.js +1375 -0
  389. package/dist/providers/bedrock/chatComplete.js.map +1 -0
  390. package/dist/providers/bedrock/complete.d.ts +136 -0
  391. package/dist/providers/bedrock/complete.js +868 -0
  392. package/dist/providers/bedrock/complete.js.map +1 -0
  393. package/dist/providers/bedrock/constants.d.ts +72 -0
  394. package/dist/providers/bedrock/constants.js +99 -0
  395. package/dist/providers/bedrock/constants.js.map +1 -0
  396. package/dist/providers/bedrock/countTokens.d.ts +16 -0
  397. package/dist/providers/bedrock/countTokens.js +61 -0
  398. package/dist/providers/bedrock/countTokens.js.map +1 -0
  399. package/dist/providers/bedrock/createBatch.d.ts +4 -0
  400. package/dist/providers/bedrock/createBatch.js +75 -0
  401. package/dist/providers/bedrock/createBatch.js.map +1 -0
  402. package/dist/providers/bedrock/createFinetune.d.ts +11 -0
  403. package/dist/providers/bedrock/createFinetune.js +88 -0
  404. package/dist/providers/bedrock/createFinetune.js.map +1 -0
  405. package/dist/providers/bedrock/deleteFile.d.ts +2 -0
  406. package/dist/providers/bedrock/deleteFile.js +10 -0
  407. package/dist/providers/bedrock/deleteFile.js.map +1 -0
  408. package/dist/providers/bedrock/embed.d.ts +68 -0
  409. package/dist/providers/bedrock/embed.js +345 -0
  410. package/dist/providers/bedrock/embed.js.map +1 -0
  411. package/dist/providers/bedrock/getBatchOutput.d.ts +5 -0
  412. package/dist/providers/bedrock/getBatchOutput.js +112 -0
  413. package/dist/providers/bedrock/getBatchOutput.js.map +1 -0
  414. package/dist/providers/bedrock/imageEdit.d.ts +18 -0
  415. package/dist/providers/bedrock/imageEdit.js +493 -0
  416. package/dist/providers/bedrock/imageEdit.js.map +1 -0
  417. package/dist/providers/bedrock/imageGenerate.d.ts +36 -0
  418. package/dist/providers/bedrock/imageGenerate.js +151 -0
  419. package/dist/providers/bedrock/imageGenerate.js.map +1 -0
  420. package/dist/providers/bedrock/imageVariation.d.ts +9 -0
  421. package/dist/providers/bedrock/imageVariation.js +117 -0
  422. package/dist/providers/bedrock/imageVariation.js.map +1 -0
  423. package/dist/providers/bedrock/index.d.ts +6 -0
  424. package/dist/providers/bedrock/index.js +328 -0
  425. package/dist/providers/bedrock/index.js.map +1 -0
  426. package/dist/providers/bedrock/listBatches.d.ts +4 -0
  427. package/dist/providers/bedrock/listBatches.js +33 -0
  428. package/dist/providers/bedrock/listBatches.js.map +1 -0
  429. package/dist/providers/bedrock/listFiles.d.ts +2 -0
  430. package/dist/providers/bedrock/listFiles.js +10 -0
  431. package/dist/providers/bedrock/listFiles.js.map +1 -0
  432. package/dist/providers/bedrock/listFinetunes.d.ts +7 -0
  433. package/dist/providers/bedrock/listFinetunes.js +16 -0
  434. package/dist/providers/bedrock/listFinetunes.js.map +1 -0
  435. package/dist/providers/bedrock/messages.d.ts +21 -0
  436. package/dist/providers/bedrock/messages.js +436 -0
  437. package/dist/providers/bedrock/messages.js.map +1 -0
  438. package/dist/providers/bedrock/modelFamily.d.ts +9 -0
  439. package/dist/providers/bedrock/modelFamily.js +12 -0
  440. package/dist/providers/bedrock/modelFamily.js.map +1 -0
  441. package/dist/providers/bedrock/requestHandlerFetch.d.ts +9 -0
  442. package/dist/providers/bedrock/requestHandlerFetch.js +35 -0
  443. package/dist/providers/bedrock/requestHandlerFetch.js.map +1 -0
  444. package/dist/providers/bedrock/rerank.d.ts +18 -0
  445. package/dist/providers/bedrock/rerank.js +126 -0
  446. package/dist/providers/bedrock/rerank.js.map +1 -0
  447. package/dist/providers/bedrock/retrieveBatch.d.ts +4 -0
  448. package/dist/providers/bedrock/retrieveBatch.js +43 -0
  449. package/dist/providers/bedrock/retrieveBatch.js.map +1 -0
  450. package/dist/providers/bedrock/retrieveFile.d.ts +2 -0
  451. package/dist/providers/bedrock/retrieveFile.js +66 -0
  452. package/dist/providers/bedrock/retrieveFile.js.map +1 -0
  453. package/dist/providers/bedrock/retrieveFileContent.d.ts +3 -0
  454. package/dist/providers/bedrock/retrieveFileContent.js +61 -0
  455. package/dist/providers/bedrock/retrieveFileContent.js.map +1 -0
  456. package/dist/providers/bedrock/retrieveFinetune.d.ts +7 -0
  457. package/dist/providers/bedrock/retrieveFinetune.js +9 -0
  458. package/dist/providers/bedrock/retrieveFinetune.js.map +1 -0
  459. package/dist/providers/bedrock/types.d.ts +291 -0
  460. package/dist/providers/bedrock/types.js +28 -0
  461. package/dist/providers/bedrock/types.js.map +1 -0
  462. package/dist/providers/bedrock/uploadFile.d.ts +11 -0
  463. package/dist/providers/bedrock/uploadFile.js +471 -0
  464. package/dist/providers/bedrock/uploadFile.js.map +1 -0
  465. package/dist/providers/bedrock/uploadFileUtils.d.ts +68 -0
  466. package/dist/providers/bedrock/uploadFileUtils.js +952 -0
  467. package/dist/providers/bedrock/uploadFileUtils.js.map +1 -0
  468. package/dist/providers/bedrock/utils/messagesUtils.d.ts +35 -0
  469. package/dist/providers/bedrock/utils/messagesUtils.js +73 -0
  470. package/dist/providers/bedrock/utils/messagesUtils.js.map +1 -0
  471. package/dist/providers/bedrock/utils.d.ts +72 -0
  472. package/dist/providers/bedrock/utils.js +652 -0
  473. package/dist/providers/bedrock/utils.js.map +1 -0
  474. package/dist/providers/cartesia/api.d.ts +13 -0
  475. package/dist/providers/cartesia/api.js +27 -0
  476. package/dist/providers/cartesia/api.js.map +1 -0
  477. package/dist/providers/cartesia/index.d.ts +13 -0
  478. package/dist/providers/cartesia/index.js +16 -0
  479. package/dist/providers/cartesia/index.js.map +1 -0
  480. package/dist/providers/cerebras/api.d.ts +2 -0
  481. package/dist/providers/cerebras/api.js +19 -0
  482. package/dist/providers/cerebras/api.js.map +1 -0
  483. package/dist/providers/cerebras/index.d.ts +3 -0
  484. package/dist/providers/cerebras/index.js +19 -0
  485. package/dist/providers/cerebras/index.js.map +1 -0
  486. package/dist/providers/cloudera/api.d.ts +3 -0
  487. package/dist/providers/cloudera/api.js +34 -0
  488. package/dist/providers/cloudera/api.js.map +1 -0
  489. package/dist/providers/cloudera/chatComplete.d.ts +14 -0
  490. package/dist/providers/cloudera/chatComplete.js +63 -0
  491. package/dist/providers/cloudera/chatComplete.js.map +1 -0
  492. package/dist/providers/cloudera/embed.d.ts +5 -0
  493. package/dist/providers/cloudera/embed.js +29 -0
  494. package/dist/providers/cloudera/embed.js.map +1 -0
  495. package/dist/providers/cloudera/index.d.ts +8 -0
  496. package/dist/providers/cloudera/index.js +15 -0
  497. package/dist/providers/cloudera/index.js.map +1 -0
  498. package/dist/providers/cloudera/utils.d.ts +1 -0
  499. package/dist/providers/cloudera/utils.js +261 -0
  500. package/dist/providers/cloudera/utils.js.map +1 -0
  501. package/dist/providers/cohere/api.d.ts +3 -0
  502. package/dist/providers/cohere/api.js +52 -0
  503. package/dist/providers/cohere/api.js.map +1 -0
  504. package/dist/providers/cohere/cancelBatch.d.ts +8 -0
  505. package/dist/providers/cohere/cancelBatch.js +12 -0
  506. package/dist/providers/cohere/cancelBatch.js.map +1 -0
  507. package/dist/providers/cohere/chatComplete.d.ts +6 -0
  508. package/dist/providers/cohere/chatComplete.js +315 -0
  509. package/dist/providers/cohere/chatComplete.js.map +1 -0
  510. package/dist/providers/cohere/complete.d.ts +39 -0
  511. package/dist/providers/cohere/complete.js +116 -0
  512. package/dist/providers/cohere/complete.js.map +1 -0
  513. package/dist/providers/cohere/createBatch.d.ts +4 -0
  514. package/dist/providers/cohere/createBatch.js +51 -0
  515. package/dist/providers/cohere/createBatch.js.map +1 -0
  516. package/dist/providers/cohere/deleteFile.d.ts +8 -0
  517. package/dist/providers/cohere/deleteFile.js +13 -0
  518. package/dist/providers/cohere/deleteFile.js.map +1 -0
  519. package/dist/providers/cohere/embed.d.ts +94 -0
  520. package/dist/providers/cohere/embed.js +137 -0
  521. package/dist/providers/cohere/embed.js.map +1 -0
  522. package/dist/providers/cohere/getBatchOutput.d.ts +2 -0
  523. package/dist/providers/cohere/getBatchOutput.js +117 -0
  524. package/dist/providers/cohere/getBatchOutput.js.map +1 -0
  525. package/dist/providers/cohere/getFiles.d.ts +4 -0
  526. package/dist/providers/cohere/getFiles.js +51 -0
  527. package/dist/providers/cohere/getFiles.js.map +1 -0
  528. package/dist/providers/cohere/index.d.ts +10 -0
  529. package/dist/providers/cohere/index.js +46 -0
  530. package/dist/providers/cohere/index.js.map +1 -0
  531. package/dist/providers/cohere/listBatches.d.ts +3 -0
  532. package/dist/providers/cohere/listBatches.js +30 -0
  533. package/dist/providers/cohere/listBatches.js.map +1 -0
  534. package/dist/providers/cohere/rerank.d.ts +46 -0
  535. package/dist/providers/cohere/rerank.js +41 -0
  536. package/dist/providers/cohere/rerank.js.map +1 -0
  537. package/dist/providers/cohere/retrieveBatch.d.ts +3 -0
  538. package/dist/providers/cohere/retrieveBatch.js +33 -0
  539. package/dist/providers/cohere/retrieveBatch.js.map +1 -0
  540. package/dist/providers/cohere/types.d.ts +264 -0
  541. package/dist/providers/cohere/types.js +10 -0
  542. package/dist/providers/cohere/types.js.map +1 -0
  543. package/dist/providers/cohere/uploadFile.d.ts +13 -0
  544. package/dist/providers/cohere/uploadFile.js +40 -0
  545. package/dist/providers/cohere/uploadFile.js.map +1 -0
  546. package/dist/providers/cohere/utils.d.ts +2 -0
  547. package/dist/providers/cohere/utils.js +15 -0
  548. package/dist/providers/cohere/utils.js.map +1 -0
  549. package/dist/providers/cortex/api.d.ts +3 -0
  550. package/dist/providers/cortex/api.js +25 -0
  551. package/dist/providers/cortex/api.js.map +1 -0
  552. package/dist/providers/cortex/index.d.ts +3 -0
  553. package/dist/providers/cortex/index.js +37 -0
  554. package/dist/providers/cortex/index.js.map +1 -0
  555. package/dist/providers/databricks/api.d.ts +3 -0
  556. package/dist/providers/databricks/api.js +69 -0
  557. package/dist/providers/databricks/api.js.map +1 -0
  558. package/dist/providers/databricks/chatComplete.d.ts +17 -0
  559. package/dist/providers/databricks/chatComplete.js +174 -0
  560. package/dist/providers/databricks/chatComplete.js.map +1 -0
  561. package/dist/providers/databricks/createModelResponse.d.ts +12 -0
  562. package/dist/providers/databricks/createModelResponse.js +24 -0
  563. package/dist/providers/databricks/createModelResponse.js.map +1 -0
  564. package/dist/providers/databricks/embed.d.ts +6 -0
  565. package/dist/providers/databricks/embed.js +27 -0
  566. package/dist/providers/databricks/embed.js.map +1 -0
  567. package/dist/providers/databricks/index.d.ts +3 -0
  568. package/dist/providers/databricks/index.js +66 -0
  569. package/dist/providers/databricks/index.js.map +1 -0
  570. package/dist/providers/databricks/messages.d.ts +5 -0
  571. package/dist/providers/databricks/messages.js +23 -0
  572. package/dist/providers/databricks/messages.js.map +1 -0
  573. package/dist/providers/databricks/utils.d.ts +3 -0
  574. package/dist/providers/databricks/utils.js +46 -0
  575. package/dist/providers/databricks/utils.js.map +1 -0
  576. package/dist/providers/deepgram/api.d.ts +13 -0
  577. package/dist/providers/deepgram/api.js +26 -0
  578. package/dist/providers/deepgram/api.js.map +1 -0
  579. package/dist/providers/deepgram/index.d.ts +13 -0
  580. package/dist/providers/deepgram/index.js +16 -0
  581. package/dist/providers/deepgram/index.js.map +1 -0
  582. package/dist/providers/deepinfra/api.d.ts +3 -0
  583. package/dist/providers/deepinfra/api.js +21 -0
  584. package/dist/providers/deepinfra/api.js.map +1 -0
  585. package/dist/providers/deepinfra/chatComplete.d.ts +23 -0
  586. package/dist/providers/deepinfra/chatComplete.js +150 -0
  587. package/dist/providers/deepinfra/chatComplete.js.map +1 -0
  588. package/dist/providers/deepinfra/embed.d.ts +5 -0
  589. package/dist/providers/deepinfra/embed.js +28 -0
  590. package/dist/providers/deepinfra/embed.js.map +1 -0
  591. package/dist/providers/deepinfra/index.d.ts +8 -0
  592. package/dist/providers/deepinfra/index.js +15 -0
  593. package/dist/providers/deepinfra/index.js.map +1 -0
  594. package/dist/providers/deepinfra/utils.d.ts +3 -0
  595. package/dist/providers/deepinfra/utils.js +25 -0
  596. package/dist/providers/deepinfra/utils.js.map +1 -0
  597. package/dist/providers/elevenlabs/api.d.ts +8 -0
  598. package/dist/providers/elevenlabs/api.js +21 -0
  599. package/dist/providers/elevenlabs/api.js.map +1 -0
  600. package/dist/providers/elevenlabs/index.d.ts +8 -0
  601. package/dist/providers/elevenlabs/index.js +11 -0
  602. package/dist/providers/elevenlabs/index.js.map +1 -0
  603. package/dist/providers/google/api.d.ts +8 -0
  604. package/dist/providers/google/api.js +52 -0
  605. package/dist/providers/google/api.js.map +1 -0
  606. package/dist/providers/google/chatComplete.d.ts +131 -0
  607. package/dist/providers/google/chatComplete.js +935 -0
  608. package/dist/providers/google/chatComplete.js.map +1 -0
  609. package/dist/providers/google/createSpeech.d.ts +30 -0
  610. package/dist/providers/google/createSpeech.js +227 -0
  611. package/dist/providers/google/createSpeech.js.map +1 -0
  612. package/dist/providers/google/embed.d.ts +11 -0
  613. package/dist/providers/google/embed.js +77 -0
  614. package/dist/providers/google/embed.js.map +1 -0
  615. package/dist/providers/google/imageEdit.d.ts +5 -0
  616. package/dist/providers/google/imageEdit.js +165 -0
  617. package/dist/providers/google/imageEdit.js.map +1 -0
  618. package/dist/providers/google/imageGenerate.d.ts +16 -0
  619. package/dist/providers/google/imageGenerate.js +181 -0
  620. package/dist/providers/google/imageGenerate.js.map +1 -0
  621. package/dist/providers/google/index.d.ts +8 -0
  622. package/dist/providers/google/index.js +44 -0
  623. package/dist/providers/google/index.js.map +1 -0
  624. package/dist/providers/google/responseFormatHandlers.d.ts +13 -0
  625. package/dist/providers/google/responseFormatHandlers.js +30 -0
  626. package/dist/providers/google/responseFormatHandlers.js.map +1 -0
  627. package/dist/providers/google/types.d.ts +48 -0
  628. package/dist/providers/google/types.js +16 -0
  629. package/dist/providers/google/types.js.map +1 -0
  630. package/dist/providers/google-vertex-ai/api.d.ts +14 -0
  631. package/dist/providers/google-vertex-ai/api.js +330 -0
  632. package/dist/providers/google-vertex-ai/api.js.map +1 -0
  633. package/dist/providers/google-vertex-ai/cancelBatch.d.ts +6 -0
  634. package/dist/providers/google-vertex-ai/cancelBatch.js +9 -0
  635. package/dist/providers/google-vertex-ai/cancelBatch.js.map +1 -0
  636. package/dist/providers/google-vertex-ai/chatComplete.d.ts +50 -0
  637. package/dist/providers/google-vertex-ai/chatComplete.js +1512 -0
  638. package/dist/providers/google-vertex-ai/chatComplete.js.map +1 -0
  639. package/dist/providers/google-vertex-ai/createBatch.d.ts +186 -0
  640. package/dist/providers/google-vertex-ai/createBatch.js +101 -0
  641. package/dist/providers/google-vertex-ai/createBatch.js.map +1 -0
  642. package/dist/providers/google-vertex-ai/createFinetune.d.ts +44 -0
  643. package/dist/providers/google-vertex-ai/createFinetune.js +44 -0
  644. package/dist/providers/google-vertex-ai/createFinetune.js.map +1 -0
  645. package/dist/providers/google-vertex-ai/createSpeech.d.ts +16 -0
  646. package/dist/providers/google-vertex-ai/createSpeech.js +185 -0
  647. package/dist/providers/google-vertex-ai/createSpeech.js.map +1 -0
  648. package/dist/providers/google-vertex-ai/embed.d.ts +32 -0
  649. package/dist/providers/google-vertex-ai/embed.js +275 -0
  650. package/dist/providers/google-vertex-ai/embed.js.map +1 -0
  651. package/dist/providers/google-vertex-ai/getBatchOutput.d.ts +3 -0
  652. package/dist/providers/google-vertex-ai/getBatchOutput.js +160 -0
  653. package/dist/providers/google-vertex-ai/getBatchOutput.js.map +1 -0
  654. package/dist/providers/google-vertex-ai/imageEdit.d.ts +56 -0
  655. package/dist/providers/google-vertex-ai/imageEdit.js +559 -0
  656. package/dist/providers/google-vertex-ai/imageEdit.js.map +1 -0
  657. package/dist/providers/google-vertex-ai/imageGenerate.d.ts +75 -0
  658. package/dist/providers/google-vertex-ai/imageGenerate.js +384 -0
  659. package/dist/providers/google-vertex-ai/imageGenerate.js.map +1 -0
  660. package/dist/providers/google-vertex-ai/index.d.ts +20 -0
  661. package/dist/providers/google-vertex-ai/index.js +207 -0
  662. package/dist/providers/google-vertex-ai/index.js.map +1 -0
  663. package/dist/providers/google-vertex-ai/listBatches.d.ts +429 -0
  664. package/dist/providers/google-vertex-ai/listBatches.js +23 -0
  665. package/dist/providers/google-vertex-ai/listBatches.js.map +1 -0
  666. package/dist/providers/google-vertex-ai/listFiles.d.ts +2 -0
  667. package/dist/providers/google-vertex-ai/listFiles.js +16 -0
  668. package/dist/providers/google-vertex-ai/listFiles.js.map +1 -0
  669. package/dist/providers/google-vertex-ai/listFinetunes.d.ts +58 -0
  670. package/dist/providers/google-vertex-ai/listFinetunes.js +22 -0
  671. package/dist/providers/google-vertex-ai/listFinetunes.js.map +1 -0
  672. package/dist/providers/google-vertex-ai/messages.d.ts +5 -0
  673. package/dist/providers/google-vertex-ai/messages.js +39 -0
  674. package/dist/providers/google-vertex-ai/messages.js.map +1 -0
  675. package/dist/providers/google-vertex-ai/messagesCountTokens.d.ts +8 -0
  676. package/dist/providers/google-vertex-ai/messagesCountTokens.js +13 -0
  677. package/dist/providers/google-vertex-ai/messagesCountTokens.js.map +1 -0
  678. package/dist/providers/google-vertex-ai/retrieveBatch.d.ts +189 -0
  679. package/dist/providers/google-vertex-ai/retrieveBatch.js +14 -0
  680. package/dist/providers/google-vertex-ai/retrieveBatch.js.map +1 -0
  681. package/dist/providers/google-vertex-ai/retrieveFile.d.ts +3 -0
  682. package/dist/providers/google-vertex-ai/retrieveFile.js +52 -0
  683. package/dist/providers/google-vertex-ai/retrieveFile.js.map +1 -0
  684. package/dist/providers/google-vertex-ai/retrieveFileContent.d.ts +1 -0
  685. package/dist/providers/google-vertex-ai/retrieveFileContent.js +13 -0
  686. package/dist/providers/google-vertex-ai/retrieveFileContent.js.map +1 -0
  687. package/dist/providers/google-vertex-ai/retrieveFinetune.d.ts +19 -0
  688. package/dist/providers/google-vertex-ai/retrieveFinetune.js +8 -0
  689. package/dist/providers/google-vertex-ai/retrieveFinetune.js.map +1 -0
  690. package/dist/providers/google-vertex-ai/transformGenerationConfig.d.ts +14 -0
  691. package/dist/providers/google-vertex-ai/transformGenerationConfig.js +136 -0
  692. package/dist/providers/google-vertex-ai/transformGenerationConfig.js.map +1 -0
  693. package/dist/providers/google-vertex-ai/types.d.ts +364 -0
  694. package/dist/providers/google-vertex-ai/types.js +20 -0
  695. package/dist/providers/google-vertex-ai/types.js.map +1 -0
  696. package/dist/providers/google-vertex-ai/uploadFile.d.ts +7 -0
  697. package/dist/providers/google-vertex-ai/uploadFile.js +193 -0
  698. package/dist/providers/google-vertex-ai/uploadFile.js.map +1 -0
  699. package/dist/providers/google-vertex-ai/utils.d.ts +654 -0
  700. package/dist/providers/google-vertex-ai/utils.js +1151 -0
  701. package/dist/providers/google-vertex-ai/utils.js.map +1 -0
  702. package/dist/providers/google-vertex-ai/wifAuth.d.ts +2 -0
  703. package/dist/providers/google-vertex-ai/wifAuth.js +237 -0
  704. package/dist/providers/google-vertex-ai/wifAuth.js.map +1 -0
  705. package/dist/providers/groq/api.d.ts +3 -0
  706. package/dist/providers/groq/api.js +59 -0
  707. package/dist/providers/groq/api.js.map +1 -0
  708. package/dist/providers/groq/cancelBatch.d.ts +2 -0
  709. package/dist/providers/groq/cancelBatch.js +9 -0
  710. package/dist/providers/groq/cancelBatch.js.map +1 -0
  711. package/dist/providers/groq/chatComplete.d.ts +39 -0
  712. package/dist/providers/groq/chatComplete.js +142 -0
  713. package/dist/providers/groq/chatComplete.js.map +1 -0
  714. package/dist/providers/groq/complete.d.ts +13 -0
  715. package/dist/providers/groq/complete.js +213 -0
  716. package/dist/providers/groq/complete.js.map +1 -0
  717. package/dist/providers/groq/createBatch.d.ts +3 -0
  718. package/dist/providers/groq/createBatch.js +28 -0
  719. package/dist/providers/groq/createBatch.js.map +1 -0
  720. package/dist/providers/groq/createSpeech.d.ts +8 -0
  721. package/dist/providers/groq/createSpeech.js +37 -0
  722. package/dist/providers/groq/createSpeech.js.map +1 -0
  723. package/dist/providers/groq/createTranscription.d.ts +7 -0
  724. package/dist/providers/groq/createTranscription.js +31 -0
  725. package/dist/providers/groq/createTranscription.js.map +1 -0
  726. package/dist/providers/groq/createTranslation.d.ts +7 -0
  727. package/dist/providers/groq/createTranslation.js +31 -0
  728. package/dist/providers/groq/createTranslation.js.map +1 -0
  729. package/dist/providers/groq/deleteFile.d.ts +2 -0
  730. package/dist/providers/groq/deleteFile.js +9 -0
  731. package/dist/providers/groq/deleteFile.js.map +1 -0
  732. package/dist/providers/groq/index.d.ts +3 -0
  733. package/dist/providers/groq/index.js +70 -0
  734. package/dist/providers/groq/index.js.map +1 -0
  735. package/dist/providers/groq/listBatches.d.ts +2 -0
  736. package/dist/providers/groq/listBatches.js +9 -0
  737. package/dist/providers/groq/listBatches.js.map +1 -0
  738. package/dist/providers/groq/listFiles.d.ts +2 -0
  739. package/dist/providers/groq/listFiles.js +9 -0
  740. package/dist/providers/groq/listFiles.js.map +1 -0
  741. package/dist/providers/groq/retrieveBatch.d.ts +2 -0
  742. package/dist/providers/groq/retrieveBatch.js +9 -0
  743. package/dist/providers/groq/retrieveBatch.js.map +1 -0
  744. package/dist/providers/groq/retrieveFile.d.ts +2 -0
  745. package/dist/providers/groq/retrieveFile.js +9 -0
  746. package/dist/providers/groq/retrieveFile.js.map +1 -0
  747. package/dist/providers/groq/retrieveFileContent.d.ts +2 -0
  748. package/dist/providers/groq/retrieveFileContent.js +9 -0
  749. package/dist/providers/groq/retrieveFileContent.js.map +1 -0
  750. package/dist/providers/groq/uploadFile.d.ts +3 -0
  751. package/dist/providers/groq/uploadFile.js +12 -0
  752. package/dist/providers/groq/uploadFile.js.map +1 -0
  753. package/dist/providers/groq/utils.d.ts +2 -0
  754. package/dist/providers/groq/utils.js +7 -0
  755. package/dist/providers/groq/utils.js.map +1 -0
  756. package/dist/providers/index.d.ts +5 -0
  757. package/dist/providers/index.js +88 -0
  758. package/dist/providers/index.js.map +1 -0
  759. package/dist/providers/microsoft-foundry/api.d.ts +11 -0
  760. package/dist/providers/microsoft-foundry/api.js +270 -0
  761. package/dist/providers/microsoft-foundry/api.js.map +1 -0
  762. package/dist/providers/microsoft-foundry/createBatch.d.ts +10 -0
  763. package/dist/providers/microsoft-foundry/createBatch.js +40 -0
  764. package/dist/providers/microsoft-foundry/createBatch.js.map +1 -0
  765. package/dist/providers/microsoft-foundry/createTranscription.d.ts +3 -0
  766. package/dist/providers/microsoft-foundry/createTranscription.js +23 -0
  767. package/dist/providers/microsoft-foundry/createTranscription.js.map +1 -0
  768. package/dist/providers/microsoft-foundry/createTranslation.d.ts +3 -0
  769. package/dist/providers/microsoft-foundry/createTranslation.js +23 -0
  770. package/dist/providers/microsoft-foundry/createTranslation.js.map +1 -0
  771. package/dist/providers/microsoft-foundry/getBatchOutput.d.ts +3 -0
  772. package/dist/providers/microsoft-foundry/getBatchOutput.js +106 -0
  773. package/dist/providers/microsoft-foundry/getBatchOutput.js.map +1 -0
  774. package/dist/providers/microsoft-foundry/imageEdit.d.ts +3 -0
  775. package/dist/providers/microsoft-foundry/imageEdit.js +28 -0
  776. package/dist/providers/microsoft-foundry/imageEdit.js.map +1 -0
  777. package/dist/providers/microsoft-foundry/index.d.ts +3 -0
  778. package/dist/providers/microsoft-foundry/index.js +142 -0
  779. package/dist/providers/microsoft-foundry/index.js.map +1 -0
  780. package/dist/providers/microsoft-foundry/messages.d.ts +5 -0
  781. package/dist/providers/microsoft-foundry/messages.js +16 -0
  782. package/dist/providers/microsoft-foundry/messages.js.map +1 -0
  783. package/dist/providers/microsoft-foundry/rerank.d.ts +30 -0
  784. package/dist/providers/microsoft-foundry/rerank.js +53 -0
  785. package/dist/providers/microsoft-foundry/rerank.js.map +1 -0
  786. package/dist/providers/microsoft-foundry/responseTransforms.d.ts +2 -0
  787. package/dist/providers/microsoft-foundry/responseTransforms.js +4 -0
  788. package/dist/providers/microsoft-foundry/responseTransforms.js.map +1 -0
  789. package/dist/providers/mistral-ai/api.d.ts +3 -0
  790. package/dist/providers/mistral-ai/api.js +23 -0
  791. package/dist/providers/mistral-ai/api.js.map +1 -0
  792. package/dist/providers/mistral-ai/chatComplete.d.ts +48 -0
  793. package/dist/providers/mistral-ai/chatComplete.js +257 -0
  794. package/dist/providers/mistral-ai/chatComplete.js.map +1 -0
  795. package/dist/providers/mistral-ai/embed.d.ts +8 -0
  796. package/dist/providers/mistral-ai/embed.js +52 -0
  797. package/dist/providers/mistral-ai/embed.js.map +1 -0
  798. package/dist/providers/mistral-ai/index.d.ts +8 -0
  799. package/dist/providers/mistral-ai/index.js +15 -0
  800. package/dist/providers/mistral-ai/index.js.map +1 -0
  801. package/dist/providers/mistral-ai/types.d.ts +7 -0
  802. package/dist/providers/mistral-ai/types.js +9 -0
  803. package/dist/providers/mistral-ai/types.js.map +1 -0
  804. package/dist/providers/nomic/api.d.ts +3 -0
  805. package/dist/providers/nomic/api.js +18 -0
  806. package/dist/providers/nomic/api.js.map +1 -0
  807. package/dist/providers/nomic/embed.d.ts +24 -0
  808. package/dist/providers/nomic/embed.js +70 -0
  809. package/dist/providers/nomic/embed.js.map +1 -0
  810. package/dist/providers/nomic/index.d.ts +8 -0
  811. package/dist/providers/nomic/index.js +11 -0
  812. package/dist/providers/nomic/index.js.map +1 -0
  813. package/dist/providers/ollama/api.d.ts +3 -0
  814. package/dist/providers/ollama/api.js +31 -0
  815. package/dist/providers/ollama/api.js.map +1 -0
  816. package/dist/providers/ollama/chatComplete.d.ts +22 -0
  817. package/dist/providers/ollama/chatComplete.js +110 -0
  818. package/dist/providers/ollama/chatComplete.js.map +1 -0
  819. package/dist/providers/ollama/embed.d.ts +11 -0
  820. package/dist/providers/ollama/embed.js +43 -0
  821. package/dist/providers/ollama/embed.js.map +1 -0
  822. package/dist/providers/ollama/index.d.ts +8 -0
  823. package/dist/providers/ollama/index.js +15 -0
  824. package/dist/providers/ollama/index.js.map +1 -0
  825. package/dist/providers/open-ai-base/chatCompleteViaResponses/eligibility.d.ts +62 -0
  826. package/dist/providers/open-ai-base/chatCompleteViaResponses/eligibility.js +171 -0
  827. package/dist/providers/open-ai-base/chatCompleteViaResponses/eligibility.js.map +1 -0
  828. package/dist/providers/open-ai-base/chatCompleteViaResponses/index.d.ts +10 -0
  829. package/dist/providers/open-ai-base/chatCompleteViaResponses/index.js +10 -0
  830. package/dist/providers/open-ai-base/chatCompleteViaResponses/index.js.map +1 -0
  831. package/dist/providers/open-ai-base/chatCompleteViaResponses/requestTransform.d.ts +32 -0
  832. package/dist/providers/open-ai-base/chatCompleteViaResponses/requestTransform.js +257 -0
  833. package/dist/providers/open-ai-base/chatCompleteViaResponses/requestTransform.js.map +1 -0
  834. package/dist/providers/open-ai-base/chatCompleteViaResponses/responseTransform.d.ts +13 -0
  835. package/dist/providers/open-ai-base/chatCompleteViaResponses/responseTransform.js +116 -0
  836. package/dist/providers/open-ai-base/chatCompleteViaResponses/responseTransform.js.map +1 -0
  837. package/dist/providers/open-ai-base/chatCompleteViaResponses/streamTransform.d.ts +34 -0
  838. package/dist/providers/open-ai-base/chatCompleteViaResponses/streamTransform.js +285 -0
  839. package/dist/providers/open-ai-base/chatCompleteViaResponses/streamTransform.js.map +1 -0
  840. package/dist/providers/open-ai-base/chatCompleteViaResponses/types.d.ts +19 -0
  841. package/dist/providers/open-ai-base/chatCompleteViaResponses/types.js +2 -0
  842. package/dist/providers/open-ai-base/chatCompleteViaResponses/types.js.map +1 -0
  843. package/dist/providers/open-ai-base/constants.d.ts +38 -0
  844. package/dist/providers/open-ai-base/constants.js +347 -0
  845. package/dist/providers/open-ai-base/constants.js.map +1 -0
  846. package/dist/providers/open-ai-base/createModelResponse.d.ts +9 -0
  847. package/dist/providers/open-ai-base/createModelResponse.js +172 -0
  848. package/dist/providers/open-ai-base/createModelResponse.js.map +1 -0
  849. package/dist/providers/open-ai-base/cursor.utils.d.ts +42 -0
  850. package/dist/providers/open-ai-base/cursor.utils.js +131 -0
  851. package/dist/providers/open-ai-base/cursor.utils.js.map +1 -0
  852. package/dist/providers/open-ai-base/helpers.d.ts +41 -0
  853. package/dist/providers/open-ai-base/helpers.js +356 -0
  854. package/dist/providers/open-ai-base/helpers.js.map +1 -0
  855. package/dist/providers/open-ai-base/index.d.ts +67 -0
  856. package/dist/providers/open-ai-base/index.js +550 -0
  857. package/dist/providers/open-ai-base/index.js.map +1 -0
  858. package/dist/providers/openai/api.d.ts +3 -0
  859. package/dist/providers/openai/api.js +141 -0
  860. package/dist/providers/openai/api.js.map +1 -0
  861. package/dist/providers/openai/cancelBatch.d.ts +2 -0
  862. package/dist/providers/openai/cancelBatch.js +14 -0
  863. package/dist/providers/openai/cancelBatch.js.map +1 -0
  864. package/dist/providers/openai/chatComplete.d.ts +14 -0
  865. package/dist/providers/openai/chatComplete.js +402 -0
  866. package/dist/providers/openai/chatComplete.js.map +1 -0
  867. package/dist/providers/openai/complete.d.ts +14 -0
  868. package/dist/providers/openai/complete.js +144 -0
  869. package/dist/providers/openai/complete.js.map +1 -0
  870. package/dist/providers/openai/createBatch.d.ts +3 -0
  871. package/dist/providers/openai/createBatch.js +33 -0
  872. package/dist/providers/openai/createBatch.js.map +1 -0
  873. package/dist/providers/openai/createFinetune.d.ts +3 -0
  874. package/dist/providers/openai/createFinetune.js +48 -0
  875. package/dist/providers/openai/createFinetune.js.map +1 -0
  876. package/dist/providers/openai/createModelResponseCompact.d.ts +42 -0
  877. package/dist/providers/openai/createModelResponseCompact.js +25 -0
  878. package/dist/providers/openai/createModelResponseCompact.js.map +1 -0
  879. package/dist/providers/openai/createSpeech.d.ts +3 -0
  880. package/dist/providers/openai/createSpeech.js +40 -0
  881. package/dist/providers/openai/createSpeech.js.map +1 -0
  882. package/dist/providers/openai/createTranscription.d.ts +8 -0
  883. package/dist/providers/openai/createTranscription.js +44 -0
  884. package/dist/providers/openai/createTranscription.js.map +1 -0
  885. package/dist/providers/openai/createTranslation.d.ts +8 -0
  886. package/dist/providers/openai/createTranslation.js +41 -0
  887. package/dist/providers/openai/createTranslation.js.map +1 -0
  888. package/dist/providers/openai/deleteFile.d.ts +2 -0
  889. package/dist/providers/openai/deleteFile.js +14 -0
  890. package/dist/providers/openai/deleteFile.js.map +1 -0
  891. package/dist/providers/openai/embed.d.ts +7 -0
  892. package/dist/providers/openai/embed.js +35 -0
  893. package/dist/providers/openai/embed.js.map +1 -0
  894. package/dist/providers/openai/getBatchOutput.d.ts +3 -0
  895. package/dist/providers/openai/getBatchOutput.js +55 -0
  896. package/dist/providers/openai/getBatchOutput.js.map +1 -0
  897. package/dist/providers/openai/imageEdit.d.ts +3 -0
  898. package/dist/providers/openai/imageEdit.js +34 -0
  899. package/dist/providers/openai/imageEdit.js.map +1 -0
  900. package/dist/providers/openai/imageGenerate.d.ts +12 -0
  901. package/dist/providers/openai/imageGenerate.js +45 -0
  902. package/dist/providers/openai/imageGenerate.js.map +1 -0
  903. package/dist/providers/openai/imageVariation.d.ts +3 -0
  904. package/dist/providers/openai/imageVariation.js +29 -0
  905. package/dist/providers/openai/imageVariation.js.map +1 -0
  906. package/dist/providers/openai/index.d.ts +6 -0
  907. package/dist/providers/openai/index.js +146 -0
  908. package/dist/providers/openai/index.js.map +1 -0
  909. package/dist/providers/openai/listBatches.d.ts +2 -0
  910. package/dist/providers/openai/listBatches.js +14 -0
  911. package/dist/providers/openai/listBatches.js.map +1 -0
  912. package/dist/providers/openai/listFiles.d.ts +2 -0
  913. package/dist/providers/openai/listFiles.js +14 -0
  914. package/dist/providers/openai/listFiles.js.map +1 -0
  915. package/dist/providers/openai/moderation.d.ts +2 -0
  916. package/dist/providers/openai/moderation.js +14 -0
  917. package/dist/providers/openai/moderation.js.map +1 -0
  918. package/dist/providers/openai/retrieveBatch.d.ts +2 -0
  919. package/dist/providers/openai/retrieveBatch.js +9 -0
  920. package/dist/providers/openai/retrieveBatch.js.map +1 -0
  921. package/dist/providers/openai/retrieveFileContent.d.ts +2 -0
  922. package/dist/providers/openai/retrieveFileContent.js +9 -0
  923. package/dist/providers/openai/retrieveFileContent.js.map +1 -0
  924. package/dist/providers/openai/uploadFile.d.ts +3 -0
  925. package/dist/providers/openai/uploadFile.js +17 -0
  926. package/dist/providers/openai/uploadFile.js.map +1 -0
  927. package/dist/providers/openai/utils.d.ts +7 -0
  928. package/dist/providers/openai/utils.js +7 -0
  929. package/dist/providers/openai/utils.js.map +1 -0
  930. package/dist/providers/openai-like/api.d.ts +7 -0
  931. package/dist/providers/openai-like/api.js +40 -0
  932. package/dist/providers/openai-like/api.js.map +1 -0
  933. package/dist/providers/openai-like/chatComplete.d.ts +41 -0
  934. package/dist/providers/openai-like/chatComplete.js +91 -0
  935. package/dist/providers/openai-like/chatComplete.js.map +1 -0
  936. package/dist/providers/openai-like/embed.d.ts +9 -0
  937. package/dist/providers/openai-like/embed.js +23 -0
  938. package/dist/providers/openai-like/embed.js.map +1 -0
  939. package/dist/providers/openai-like/index.d.ts +16 -0
  940. package/dist/providers/openai-like/index.js +35 -0
  941. package/dist/providers/openai-like/index.js.map +1 -0
  942. package/dist/providers/openai-like/utils.d.ts +16 -0
  943. package/dist/providers/openai-like/utils.js +16 -0
  944. package/dist/providers/openai-like/utils.js.map +1 -0
  945. package/dist/providers/openrouter/api.d.ts +3 -0
  946. package/dist/providers/openrouter/api.js +30 -0
  947. package/dist/providers/openrouter/api.js.map +1 -0
  948. package/dist/providers/openrouter/chatComplete.d.ts +51 -0
  949. package/dist/providers/openrouter/chatComplete.js +251 -0
  950. package/dist/providers/openrouter/chatComplete.js.map +1 -0
  951. package/dist/providers/openrouter/index.d.ts +3 -0
  952. package/dist/providers/openrouter/index.js +20 -0
  953. package/dist/providers/openrouter/index.js.map +1 -0
  954. package/dist/providers/openrouter/utils.d.ts +20 -0
  955. package/dist/providers/openrouter/utils.js +15 -0
  956. package/dist/providers/openrouter/utils.js.map +1 -0
  957. package/dist/providers/palm/api.d.ts +3 -0
  958. package/dist/providers/palm/api.js +26 -0
  959. package/dist/providers/palm/api.js.map +1 -0
  960. package/dist/providers/palm/chatComplete.d.ts +5 -0
  961. package/dist/providers/palm/chatComplete.js +91 -0
  962. package/dist/providers/palm/chatComplete.js.map +1 -0
  963. package/dist/providers/palm/complete.d.ts +5 -0
  964. package/dist/providers/palm/complete.js +82 -0
  965. package/dist/providers/palm/complete.js.map +1 -0
  966. package/dist/providers/palm/embed.d.ts +12 -0
  967. package/dist/providers/palm/embed.js +46 -0
  968. package/dist/providers/palm/embed.js.map +1 -0
  969. package/dist/providers/palm/index.d.ts +8 -0
  970. package/dist/providers/palm/index.js +17 -0
  971. package/dist/providers/palm/index.js.map +1 -0
  972. package/dist/providers/perplexity-ai/api.d.ts +3 -0
  973. package/dist/providers/perplexity-ai/api.js +20 -0
  974. package/dist/providers/perplexity-ai/api.js.map +1 -0
  975. package/dist/providers/perplexity-ai/chatCompleteViaResponses.d.ts +8 -0
  976. package/dist/providers/perplexity-ai/chatCompleteViaResponses.js +152 -0
  977. package/dist/providers/perplexity-ai/chatCompleteViaResponses.js.map +1 -0
  978. package/dist/providers/perplexity-ai/createModelResponse.d.ts +6 -0
  979. package/dist/providers/perplexity-ai/createModelResponse.js +51 -0
  980. package/dist/providers/perplexity-ai/createModelResponse.js.map +1 -0
  981. package/dist/providers/perplexity-ai/decision.d.ts +29 -0
  982. package/dist/providers/perplexity-ai/decision.js +47 -0
  983. package/dist/providers/perplexity-ai/decision.js.map +1 -0
  984. package/dist/providers/perplexity-ai/index.d.ts +3 -0
  985. package/dist/providers/perplexity-ai/index.js +23 -0
  986. package/dist/providers/perplexity-ai/index.js.map +1 -0
  987. package/dist/providers/requestHandlerApiArgs.d.ts +12 -0
  988. package/dist/providers/requestHandlerApiArgs.js +19 -0
  989. package/dist/providers/requestHandlerApiArgs.js.map +1 -0
  990. package/dist/providers/sagemaker/api.d.ts +3 -0
  991. package/dist/providers/sagemaker/api.js +86 -0
  992. package/dist/providers/sagemaker/api.js.map +1 -0
  993. package/dist/providers/sagemaker/chatComplete.d.ts +10 -0
  994. package/dist/providers/sagemaker/chatComplete.js +160 -0
  995. package/dist/providers/sagemaker/chatComplete.js.map +1 -0
  996. package/dist/providers/sagemaker/embed.d.ts +10 -0
  997. package/dist/providers/sagemaker/embed.js +55 -0
  998. package/dist/providers/sagemaker/embed.js.map +1 -0
  999. package/dist/providers/sagemaker/index.d.ts +3 -0
  1000. package/dist/providers/sagemaker/index.js +30 -0
  1001. package/dist/providers/sagemaker/index.js.map +1 -0
  1002. package/dist/providers/sagemaker/utils.d.ts +3 -0
  1003. package/dist/providers/sagemaker/utils.js +11 -0
  1004. package/dist/providers/sagemaker/utils.js.map +1 -0
  1005. package/dist/providers/sambanova/api.d.ts +3 -0
  1006. package/dist/providers/sambanova/api.js +18 -0
  1007. package/dist/providers/sambanova/api.js.map +1 -0
  1008. package/dist/providers/sambanova/chatComplete.d.ts +31 -0
  1009. package/dist/providers/sambanova/chatComplete.js +54 -0
  1010. package/dist/providers/sambanova/chatComplete.js.map +1 -0
  1011. package/dist/providers/sambanova/index.d.ts +3 -0
  1012. package/dist/providers/sambanova/index.js +72 -0
  1013. package/dist/providers/sambanova/index.js.map +1 -0
  1014. package/dist/providers/segmind/api.d.ts +7 -0
  1015. package/dist/providers/segmind/api.js +18 -0
  1016. package/dist/providers/segmind/api.js.map +1 -0
  1017. package/dist/providers/segmind/imageGenerate.d.ts +13 -0
  1018. package/dist/providers/segmind/imageGenerate.js +130 -0
  1019. package/dist/providers/segmind/imageGenerate.js.map +1 -0
  1020. package/dist/providers/segmind/index.d.ts +8 -0
  1021. package/dist/providers/segmind/index.js +11 -0
  1022. package/dist/providers/segmind/index.js.map +1 -0
  1023. package/dist/providers/shared/responseFormatUtils.d.ts +100 -0
  1024. package/dist/providers/shared/responseFormatUtils.js +495 -0
  1025. package/dist/providers/shared/responseFormatUtils.js.map +1 -0
  1026. package/dist/providers/smallest-ai/api.d.ts +10 -0
  1027. package/dist/providers/smallest-ai/api.js +24 -0
  1028. package/dist/providers/smallest-ai/api.js.map +1 -0
  1029. package/dist/providers/smallest-ai/index.d.ts +3 -0
  1030. package/dist/providers/smallest-ai/index.js +6 -0
  1031. package/dist/providers/smallest-ai/index.js.map +1 -0
  1032. package/dist/providers/stability-ai/api.d.ts +7 -0
  1033. package/dist/providers/stability-ai/api.js +52 -0
  1034. package/dist/providers/stability-ai/api.js.map +1 -0
  1035. package/dist/providers/stability-ai/constants.d.ts +6 -0
  1036. package/dist/providers/stability-ai/constants.js +7 -0
  1037. package/dist/providers/stability-ai/constants.js.map +1 -0
  1038. package/dist/providers/stability-ai/imageGenerate.d.ts +17 -0
  1039. package/dist/providers/stability-ai/imageGenerate.js +77 -0
  1040. package/dist/providers/stability-ai/imageGenerate.js.map +1 -0
  1041. package/dist/providers/stability-ai/imageGenerateV2.d.ts +18 -0
  1042. package/dist/providers/stability-ai/imageGenerateV2.js +127 -0
  1043. package/dist/providers/stability-ai/imageGenerateV2.js.map +1 -0
  1044. package/dist/providers/stability-ai/index.d.ts +8 -0
  1045. package/dist/providers/stability-ai/index.js +26 -0
  1046. package/dist/providers/stability-ai/index.js.map +1 -0
  1047. package/dist/providers/stability-ai/utils.d.ts +1 -0
  1048. package/dist/providers/stability-ai/utils.js +12 -0
  1049. package/dist/providers/stability-ai/utils.js.map +1 -0
  1050. package/dist/providers/together-ai/api.d.ts +3 -0
  1051. package/dist/providers/together-ai/api.js +22 -0
  1052. package/dist/providers/together-ai/api.js.map +1 -0
  1053. package/dist/providers/together-ai/chatComplete.d.ts +41 -0
  1054. package/dist/providers/together-ai/chatComplete.js +161 -0
  1055. package/dist/providers/together-ai/chatComplete.js.map +1 -0
  1056. package/dist/providers/together-ai/complete.d.ts +13 -0
  1057. package/dist/providers/together-ai/complete.js +100 -0
  1058. package/dist/providers/together-ai/complete.js.map +1 -0
  1059. package/dist/providers/together-ai/embed.d.ts +8 -0
  1060. package/dist/providers/together-ai/embed.js +50 -0
  1061. package/dist/providers/together-ai/embed.js.map +1 -0
  1062. package/dist/providers/together-ai/index.d.ts +8 -0
  1063. package/dist/providers/together-ai/index.js +19 -0
  1064. package/dist/providers/together-ai/index.js.map +1 -0
  1065. package/dist/providers/together-ai/types.d.ts +7 -0
  1066. package/dist/providers/together-ai/types.js +9 -0
  1067. package/dist/providers/together-ai/types.js.map +1 -0
  1068. package/dist/providers/truefoundry-models/api.d.ts +3 -0
  1069. package/dist/providers/truefoundry-models/api.js +29 -0
  1070. package/dist/providers/truefoundry-models/api.js.map +1 -0
  1071. package/dist/providers/truefoundry-models/index.d.ts +3 -0
  1072. package/dist/providers/truefoundry-models/index.js +27 -0
  1073. package/dist/providers/truefoundry-models/index.js.map +1 -0
  1074. package/dist/providers/types.d.ts +459 -0
  1075. package/dist/providers/types.js +9 -0
  1076. package/dist/providers/types.js.map +1 -0
  1077. package/dist/providers/typesafe/api.d.ts +5 -0
  1078. package/dist/providers/typesafe/api.js +55 -0
  1079. package/dist/providers/typesafe/api.js.map +1 -0
  1080. package/dist/providers/typesafe/decision.d.ts +44 -0
  1081. package/dist/providers/typesafe/decision.js +105 -0
  1082. package/dist/providers/typesafe/decision.js.map +1 -0
  1083. package/dist/providers/typesafe/index.d.ts +3 -0
  1084. package/dist/providers/typesafe/index.js +23 -0
  1085. package/dist/providers/typesafe/index.js.map +1 -0
  1086. package/dist/providers/utils/cacheControlUtils.d.ts +40 -0
  1087. package/dist/providers/utils/cacheControlUtils.js +196 -0
  1088. package/dist/providers/utils/cacheControlUtils.js.map +1 -0
  1089. package/dist/providers/utils/fileUtils.d.ts +18 -0
  1090. package/dist/providers/utils/fileUtils.js +46 -0
  1091. package/dist/providers/utils/fileUtils.js.map +1 -0
  1092. package/dist/providers/utils/finishReasonMap.d.ts +4 -0
  1093. package/dist/providers/utils/finishReasonMap.js +83 -0
  1094. package/dist/providers/utils/finishReasonMap.js.map +1 -0
  1095. package/dist/providers/utils/toolUtils.d.ts +10 -0
  1096. package/dist/providers/utils/toolUtils.js +35 -0
  1097. package/dist/providers/utils/toolUtils.js.map +1 -0
  1098. package/dist/providers/utils.d.ts +63 -0
  1099. package/dist/providers/utils.js +210 -0
  1100. package/dist/providers/utils.js.map +1 -0
  1101. package/dist/providers/wafer/api.d.ts +2 -0
  1102. package/dist/providers/wafer/api.js +26 -0
  1103. package/dist/providers/wafer/api.js.map +1 -0
  1104. package/dist/providers/wafer/index.d.ts +3 -0
  1105. package/dist/providers/wafer/index.js +16 -0
  1106. package/dist/providers/wafer/index.js.map +1 -0
  1107. package/dist/providers/xai/index.d.ts +3 -0
  1108. package/dist/providers/xai/index.js +21 -0
  1109. package/dist/providers/xai/index.js.map +1 -0
  1110. package/dist/requestContext.d.ts +5 -0
  1111. package/dist/requestContext.js +19 -0
  1112. package/dist/requestContext.js.map +1 -0
  1113. package/dist/runtime/ambientCredentials.d.ts +14 -0
  1114. package/dist/runtime/ambientCredentials.js +22 -0
  1115. package/dist/runtime/ambientCredentials.js.map +1 -0
  1116. package/dist/sdk.d.ts +66 -0
  1117. package/dist/sdk.js +98 -0
  1118. package/dist/sdk.js.map +1 -0
  1119. package/dist/services/buildExecutionReport.d.ts +48 -0
  1120. package/dist/services/buildExecutionReport.js +206 -0
  1121. package/dist/services/buildExecutionReport.js.map +1 -0
  1122. package/dist/services/buildFetchInit.d.ts +7 -0
  1123. package/dist/services/buildFetchInit.js +70 -0
  1124. package/dist/services/buildFetchInit.js.map +1 -0
  1125. package/dist/services/createProviderRequest.d.ts +25 -0
  1126. package/dist/services/createProviderRequest.js +276 -0
  1127. package/dist/services/createProviderRequest.js.map +1 -0
  1128. package/dist/services/execute.d.ts +11 -0
  1129. package/dist/services/execute.js +204 -0
  1130. package/dist/services/execute.js.map +1 -0
  1131. package/dist/services/handleProviderResponse.d.ts +42 -0
  1132. package/dist/services/handleProviderResponse.js +436 -0
  1133. package/dist/services/handleProviderResponse.js.map +1 -0
  1134. package/dist/services/transformToProviderRequest.d.ts +29 -0
  1135. package/dist/services/transformToProviderRequest.js +268 -0
  1136. package/dist/services/transformToProviderRequest.js.map +1 -0
  1137. package/dist/stream/firstChunkGate.d.ts +31 -0
  1138. package/dist/stream/firstChunkGate.js +86 -0
  1139. package/dist/stream/firstChunkGate.js.map +1 -0
  1140. package/dist/stream/firstChunkGateValidators.d.ts +23 -0
  1141. package/dist/stream/firstChunkGateValidators.js +174 -0
  1142. package/dist/stream/firstChunkGateValidators.js.map +1 -0
  1143. package/dist/stream/index.d.ts +19 -0
  1144. package/dist/stream/index.js +13 -0
  1145. package/dist/stream/index.js.map +1 -0
  1146. package/dist/stream/internalMetadataSse.d.ts +22 -0
  1147. package/dist/stream/internalMetadataSse.js +60 -0
  1148. package/dist/stream/internalMetadataSse.js.map +1 -0
  1149. package/dist/stream/pumpProviderAwsEventStream.d.ts +32 -0
  1150. package/dist/stream/pumpProviderAwsEventStream.js +103 -0
  1151. package/dist/stream/pumpProviderAwsEventStream.js.map +1 -0
  1152. package/dist/stream/pumpProviderSseStream.d.ts +11 -0
  1153. package/dist/stream/pumpProviderSseStream.js +154 -0
  1154. package/dist/stream/pumpProviderSseStream.js.map +1 -0
  1155. package/dist/stream/readAwsEventFrames.d.ts +12 -0
  1156. package/dist/stream/readAwsEventFrames.js +113 -0
  1157. package/dist/stream/readAwsEventFrames.js.map +1 -0
  1158. package/dist/stream/readSseFrames.d.ts +6 -0
  1159. package/dist/stream/readSseFrames.js +80 -0
  1160. package/dist/stream/readSseFrames.js.map +1 -0
  1161. package/dist/stream/resolvePumpAbortSignal.d.ts +16 -0
  1162. package/dist/stream/resolvePumpAbortSignal.js +30 -0
  1163. package/dist/stream/resolvePumpAbortSignal.js.map +1 -0
  1164. package/dist/stream/resolveStreamEndReason.d.ts +16 -0
  1165. package/dist/stream/resolveStreamEndReason.js +89 -0
  1166. package/dist/stream/resolveStreamEndReason.js.map +1 -0
  1167. package/dist/stream/shouldReadAwsEventStream.d.ts +17 -0
  1168. package/dist/stream/shouldReadAwsEventStream.js +29 -0
  1169. package/dist/stream/shouldReadAwsEventStream.js.map +1 -0
  1170. package/dist/stream/shouldRequireAzureStreamSleep.d.ts +8 -0
  1171. package/dist/stream/shouldRequireAzureStreamSleep.js +12 -0
  1172. package/dist/stream/shouldRequireAzureStreamSleep.js.map +1 -0
  1173. package/dist/stream/splitPatterns.d.ts +20 -0
  1174. package/dist/stream/splitPatterns.js +33 -0
  1175. package/dist/stream/splitPatterns.js.map +1 -0
  1176. package/dist/stream/types.d.ts +91 -0
  1177. package/dist/stream/types.js +2 -0
  1178. package/dist/stream/types.js.map +1 -0
  1179. package/dist/tfy-providers/custom/api.d.ts +3 -0
  1180. package/dist/tfy-providers/custom/api.js +125 -0
  1181. package/dist/tfy-providers/custom/api.js.map +1 -0
  1182. package/dist/tfy-providers/custom/cohere-rerank-v2/rerank.d.ts +30 -0
  1183. package/dist/tfy-providers/custom/cohere-rerank-v2/rerank.js +30 -0
  1184. package/dist/tfy-providers/custom/cohere-rerank-v2/rerank.js.map +1 -0
  1185. package/dist/tfy-providers/custom/index.d.ts +14 -0
  1186. package/dist/tfy-providers/custom/index.js +85 -0
  1187. package/dist/tfy-providers/custom/index.js.map +1 -0
  1188. package/dist/tfy-providers/custom/infinity/embed.d.ts +10 -0
  1189. package/dist/tfy-providers/custom/infinity/embed.js +24 -0
  1190. package/dist/tfy-providers/custom/infinity/embed.js.map +1 -0
  1191. package/dist/tfy-providers/custom/infinity/rerank.d.ts +27 -0
  1192. package/dist/tfy-providers/custom/infinity/rerank.js +28 -0
  1193. package/dist/tfy-providers/custom/infinity/rerank.js.map +1 -0
  1194. package/dist/tfy-providers/custom/nemo-retriever/embed.d.ts +10 -0
  1195. package/dist/tfy-providers/custom/nemo-retriever/embed.js +28 -0
  1196. package/dist/tfy-providers/custom/nemo-retriever/embed.js.map +1 -0
  1197. package/dist/tfy-providers/custom/nemo-retriever/rerank.d.ts +45 -0
  1198. package/dist/tfy-providers/custom/nemo-retriever/rerank.js +53 -0
  1199. package/dist/tfy-providers/custom/nemo-retriever/rerank.js.map +1 -0
  1200. package/dist/tfy-providers/custom/openai-compatible/chatComplete.d.ts +12 -0
  1201. package/dist/tfy-providers/custom/openai-compatible/chatComplete.js +109 -0
  1202. package/dist/tfy-providers/custom/openai-compatible/chatComplete.js.map +1 -0
  1203. package/dist/tfy-providers/custom/openai-compatible/complete.d.ts +12 -0
  1204. package/dist/tfy-providers/custom/openai-compatible/complete.js +82 -0
  1205. package/dist/tfy-providers/custom/openai-compatible/complete.js.map +1 -0
  1206. package/dist/tfy-providers/custom/openai-compatible/embed.d.ts +10 -0
  1207. package/dist/tfy-providers/custom/openai-compatible/embed.js +28 -0
  1208. package/dist/tfy-providers/custom/openai-compatible/embed.js.map +1 -0
  1209. package/dist/tfy-providers/custom/tei/embed.d.ts +10 -0
  1210. package/dist/tfy-providers/custom/tei/embed.js +24 -0
  1211. package/dist/tfy-providers/custom/tei/embed.js.map +1 -0
  1212. package/dist/tfy-providers/custom/vllm-openai/chatComplete.d.ts +27 -0
  1213. package/dist/tfy-providers/custom/vllm-openai/chatComplete.js +158 -0
  1214. package/dist/tfy-providers/custom/vllm-openai/chatComplete.js.map +1 -0
  1215. package/dist/tfy-providers/custom/vllm-openai/complete.d.ts +12 -0
  1216. package/dist/tfy-providers/custom/vllm-openai/complete.js +82 -0
  1217. package/dist/tfy-providers/custom/vllm-openai/complete.js.map +1 -0
  1218. package/dist/tracing/constants.d.ts +0 -0
  1219. package/dist/tracing/constants.js +2 -0
  1220. package/dist/tracing/constants.js.map +1 -0
  1221. package/dist/types/MessagesRequest.d.ts +459 -0
  1222. package/dist/types/MessagesRequest.js +2 -0
  1223. package/dist/types/MessagesRequest.js.map +1 -0
  1224. package/dist/types/MessagesStreamResponse.d.ts +64 -0
  1225. package/dist/types/MessagesStreamResponse.js +2 -0
  1226. package/dist/types/MessagesStreamResponse.js.map +1 -0
  1227. package/dist/types/cache.d.ts +12 -0
  1228. package/dist/types/cache.js +2 -0
  1229. package/dist/types/cache.js.map +1 -0
  1230. package/dist/types/contracts.d.ts +161 -0
  1231. package/dist/types/contracts.js +2 -0
  1232. package/dist/types/contracts.js.map +1 -0
  1233. package/dist/types/embedRequestBody.d.ts +59 -0
  1234. package/dist/types/embedRequestBody.js +2 -0
  1235. package/dist/types/embedRequestBody.js.map +1 -0
  1236. package/dist/types/executionReport.d.ts +223 -0
  1237. package/dist/types/executionReport.js +2 -0
  1238. package/dist/types/executionReport.js.map +1 -0
  1239. package/dist/types/headers.d.ts +42 -0
  1240. package/dist/types/headers.js +8 -0
  1241. package/dist/types/headers.js.map +1 -0
  1242. package/dist/types/inputList.d.ts +145 -0
  1243. package/dist/types/inputList.js +8 -0
  1244. package/dist/types/inputList.js.map +1 -0
  1245. package/dist/types/messagesResponse.d.ts +204 -0
  1246. package/dist/types/messagesResponse.js +10 -0
  1247. package/dist/types/messagesResponse.js.map +1 -0
  1248. package/dist/types/modelConfig.d.ts +41 -0
  1249. package/dist/types/modelConfig.js +2 -0
  1250. package/dist/types/modelConfig.js.map +1 -0
  1251. package/dist/types/modelResponses.d.ts +2174 -0
  1252. package/dist/types/modelResponses.js +8 -0
  1253. package/dist/types/modelResponses.js.map +1 -0
  1254. package/dist/types/options.d.ts +122 -0
  1255. package/dist/types/options.js +2 -0
  1256. package/dist/types/options.js.map +1 -0
  1257. package/dist/types/requestBody.d.ts +586 -0
  1258. package/dist/types/requestBody.js +25 -0
  1259. package/dist/types/requestBody.js.map +1 -0
  1260. package/dist/types/responseBody.d.ts +51 -0
  1261. package/dist/types/responseBody.js +2 -0
  1262. package/dist/types/responseBody.js.map +1 -0
  1263. package/dist/types/shared.d.ts +116 -0
  1264. package/dist/types/shared.js +2 -0
  1265. package/dist/types/shared.js.map +1 -0
  1266. package/dist/utils/abortSignals.d.ts +4 -0
  1267. package/dist/utils/abortSignals.js +7 -0
  1268. package/dist/utils/abortSignals.js.map +1 -0
  1269. package/dist/utils/abortUtils.d.ts +5 -0
  1270. package/dist/utils/abortUtils.js +20 -0
  1271. package/dist/utils/abortUtils.js.map +1 -0
  1272. package/dist/utils/audioUtils.d.ts +5 -0
  1273. package/dist/utils/audioUtils.js +50 -0
  1274. package/dist/utils/audioUtils.js.map +1 -0
  1275. package/dist/utils/awsEventStreamEncoder.d.ts +12 -0
  1276. package/dist/utils/awsEventStreamEncoder.js +49 -0
  1277. package/dist/utils/awsEventStreamEncoder.js.map +1 -0
  1278. package/dist/utils/awsSigV4.d.ts +2 -0
  1279. package/dist/utils/awsSigV4.js +49 -0
  1280. package/dist/utils/awsSigV4.js.map +1 -0
  1281. package/dist/utils/azureEntraAuth.d.ts +10 -0
  1282. package/dist/utils/azureEntraAuth.js +80 -0
  1283. package/dist/utils/azureEntraAuth.js.map +1 -0
  1284. package/dist/utils/billedUsage.d.ts +18 -0
  1285. package/dist/utils/billedUsage.js +89 -0
  1286. package/dist/utils/billedUsage.js.map +1 -0
  1287. package/dist/utils/deriveProviderHeaderOptions.d.ts +9 -0
  1288. package/dist/utils/deriveProviderHeaderOptions.js +141 -0
  1289. package/dist/utils/deriveProviderHeaderOptions.js.map +1 -0
  1290. package/dist/utils/errorHandlingUtils.d.ts +93 -0
  1291. package/dist/utils/errorHandlingUtils.js +134 -0
  1292. package/dist/utils/errorHandlingUtils.js.map +1 -0
  1293. package/dist/utils/ignoreWithLog.d.ts +3 -0
  1294. package/dist/utils/ignoreWithLog.js +12 -0
  1295. package/dist/utils/ignoreWithLog.js.map +1 -0
  1296. package/dist/utils/isStreamingEnabled.d.ts +14 -0
  1297. package/dist/utils/isStreamingEnabled.js +14 -0
  1298. package/dist/utils/isStreamingEnabled.js.map +1 -0
  1299. package/dist/utils/jsonValue.d.ts +5 -0
  1300. package/dist/utils/jsonValue.js +15 -0
  1301. package/dist/utils/jsonValue.js.map +1 -0
  1302. package/dist/utils/jwtUtils.d.ts +30 -0
  1303. package/dist/utils/jwtUtils.js +102 -0
  1304. package/dist/utils/jwtUtils.js.map +1 -0
  1305. package/dist/utils/k8sTokenRequest.d.ts +1 -0
  1306. package/dist/utils/k8sTokenRequest.js +45 -0
  1307. package/dist/utils/k8sTokenRequest.js.map +1 -0
  1308. package/dist/utils/memoryOptimizationUtils.d.ts +19 -0
  1309. package/dist/utils/memoryOptimizationUtils.js +38 -0
  1310. package/dist/utils/memoryOptimizationUtils.js.map +1 -0
  1311. package/dist/utils/misc.d.ts +3 -0
  1312. package/dist/utils/misc.js +24 -0
  1313. package/dist/utils/misc.js.map +1 -0
  1314. package/dist/utils/modelParamUtils.d.ts +91 -0
  1315. package/dist/utils/modelParamUtils.js +387 -0
  1316. package/dist/utils/modelParamUtils.js.map +1 -0
  1317. package/dist/utils/providerConfigTransform.d.ts +24 -0
  1318. package/dist/utils/providerConfigTransform.js +111 -0
  1319. package/dist/utils/providerConfigTransform.js.map +1 -0
  1320. package/dist/utils/providerReportedCost.d.ts +2 -0
  1321. package/dist/utils/providerReportedCost.js +15 -0
  1322. package/dist/utils/providerReportedCost.js.map +1 -0
  1323. package/dist/utils/reasoningUtils.d.ts +28 -0
  1324. package/dist/utils/reasoningUtils.js +148 -0
  1325. package/dist/utils/reasoningUtils.js.map +1 -0
  1326. package/dist/utils/sdkRequestUrl.d.ts +7 -0
  1327. package/dist/utils/sdkRequestUrl.js +9 -0
  1328. package/dist/utils/sdkRequestUrl.js.map +1 -0
  1329. package/dist/utils/sseUtils.d.ts +48 -0
  1330. package/dist/utils/sseUtils.js +152 -0
  1331. package/dist/utils/sseUtils.js.map +1 -0
  1332. package/dist/utils/systemMessageUtils.d.ts +7 -0
  1333. package/dist/utils/systemMessageUtils.js +67 -0
  1334. package/dist/utils/systemMessageUtils.js.map +1 -0
  1335. package/dist/utils.d.ts +16 -0
  1336. package/dist/utils.js +82 -0
  1337. package/dist/utils.js.map +1 -0
  1338. package/package.json +59 -4
@@ -0,0 +1,49 @@
1
+ import { Agent, EnvHttpProxyAgent } from 'undici';
2
+ import config from '../config.js';
3
+ import { guardedLookup } from './guardedLookup.js';
4
+ function buildDispatcher(ssrf, tls, connection) {
5
+ const connect = {
6
+ ...tls,
7
+ ...(ssrf === 'guard' ? { lookup: guardedLookup } : {}),
8
+ };
9
+ const timeouts = {
10
+ headersTimeout: connection?.headersTimeoutMs ?? config.UNDICI_HEADERS_TIMEOUT_MS,
11
+ bodyTimeout: connection?.bodyTimeoutMs ?? config.UNDICI_BODY_TIMEOUT_MS,
12
+ };
13
+ // When connection is provided it owns the proxy decision (undefined = direct). Falling back to
14
+ // process env would reintroduce a proxy the MCP store deliberately omitted.
15
+ const httpProxy = connection ? connection.proxyUrl : config.HTTP_PROXY;
16
+ const httpsProxy = connection ? connection.proxyUrl : config.HTTPS_PROXY;
17
+ const noProxy = connection ? connection.noProxy : config.NO_PROXY;
18
+ if (httpsProxy || httpProxy) {
19
+ // Mirrors proxy-bootstrap's global agent so per-request dispatchers keep honoring NO_PROXY.
20
+ return new EnvHttpProxyAgent({
21
+ httpProxy,
22
+ httpsProxy,
23
+ ...(noProxy ? { noProxy } : {}),
24
+ ...(tls ? { requestTls: tls } : {}),
25
+ connect,
26
+ ...timeouts,
27
+ });
28
+ }
29
+ return new Agent({ connect, ...timeouts });
30
+ }
31
+ // Requests without per-request overrides — the overwhelming majority — share a dispatcher so
32
+ // connection pooling survives. Overrides are per provider account or per MCP server, so those build
33
+ // a dispatcher per request, matching what the handlers already did before safeFetch.
34
+ const sharedDispatchers = new Map();
35
+ export function createSafeDispatcher(ssrf, tls, connection) {
36
+ if (tls || connection)
37
+ return buildDispatcher(ssrf, tls, connection);
38
+ let shared = sharedDispatchers.get(ssrf);
39
+ if (!shared) {
40
+ shared = buildDispatcher(ssrf, undefined, undefined);
41
+ sharedDispatchers.set(ssrf, shared);
42
+ }
43
+ return shared;
44
+ }
45
+ /** @internal Exported for tests: drops the pooled dispatchers so proxy/timeout config is re-read. */
46
+ export function __resetSharedDispatchersForTests() {
47
+ sharedDispatchers.clear();
48
+ }
49
+ //# sourceMappingURL=createSafeDispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSafeDispatcher.js","sourceRoot":"","sources":["../../src/http/createSafeDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAmB,MAAM,QAAQ,CAAC;AACnE,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA6BhD,SAAS,eAAe,CACtB,IAAc,EACd,GAAoC,EACpC,UAAkD;IAElD,MAAM,OAAO,GAAG;QACd,GAAG,GAAG;QACN,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC;IACF,MAAM,QAAQ,GAAG;QACf,cAAc,EAAE,UAAU,EAAE,gBAAgB,IAAI,MAAM,CAAC,yBAAyB;QAChF,WAAW,EAAE,UAAU,EAAE,aAAa,IAAI,MAAM,CAAC,sBAAsB;KACxE,CAAC;IAEF,+FAA+F;IAC/F,4EAA4E;IAC5E,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;IACvE,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;IACzE,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAElE,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;QAC5B,4FAA4F;QAC5F,OAAO,IAAI,iBAAiB,CAAC;YAC3B,SAAS;YACT,UAAU;YACV,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,OAAO;YACP,GAAG,QAAQ;SACZ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,6FAA6F;AAC7F,oGAAoG;AACpG,qFAAqF;AACrF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAwB,CAAC;AAE1D,MAAM,UAAU,oBAAoB,CAClC,IAAc,EACd,GAAoC,EACpC,UAAkD;IAElD,IAAI,GAAG,IAAI,UAAU;QAAE,OAAO,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAErE,IAAI,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACrD,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,gCAAgC;IAC9C,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,23 @@
1
+ /** Thrown when safeFetch refuses a request because its target is internal or denylisted. */
2
+ export declare class SSRFError extends Error {
3
+ name: string;
4
+ /** Stable marker: Node's DNS lookup callback stringifies custom errors into a plain Error. */
5
+ code: string;
6
+ }
7
+ /**
8
+ * undici surfaces connect-time failures as `TypeError('fetch failed')` with the real reason on the
9
+ * cause chain, so an SSRFError raised inside the DNS lookup would otherwise reach callers as an
10
+ * opaque network error. Recovers our error from anywhere on that chain.
11
+ */
12
+ export declare function unwrapSafeFetchError(error: unknown): unknown;
13
+ /** 504 when the upstream never answered in time, 502 when it could not be reached at all. */
14
+ export type UpstreamConnectivityFailure = {
15
+ status: 502 | 504;
16
+ message: string;
17
+ };
18
+ /**
19
+ * Classifies a failure to reach an upstream at the network level (timeout, refused, DNS, reset, TLS), so callers
20
+ * can attribute it to the upstream instead of a generic gateway 500. Walks the cause chain because undici only
21
+ * reports `fetch failed` at the top; `undefined` for anything that is not a connectivity failure.
22
+ */
23
+ export declare function getUpstreamConnectivityFailure(error: unknown): UpstreamConnectivityFailure | undefined;
@@ -0,0 +1,128 @@
1
+ /** Thrown when safeFetch refuses a request because its target is internal or denylisted. */
2
+ export class SSRFError extends Error {
3
+ name = 'SSRFError';
4
+ /** Stable marker: Node's DNS lookup callback stringifies custom errors into a plain Error. */
5
+ code = 'ERR_SSRF_BLOCKED';
6
+ }
7
+ // A malformed error chain should never turn error handling into an infinite loop.
8
+ const MAX_CAUSE_DEPTH = 10;
9
+ function readErrorField(error, field) {
10
+ if (!error || typeof error !== 'object')
11
+ return undefined;
12
+ const value = error[field];
13
+ return typeof value === 'string' ? value : undefined;
14
+ }
15
+ /**
16
+ * undici/Node often preserve neither the SSRFError prototype nor a nested `.cause` when the failure
17
+ * originates inside `connect.lookup`: the callback error is re-created as a plain Error whose
18
+ * message is `"SSRFError: …"`. Match by code/name/message so callers still see SSRFError.
19
+ */
20
+ function asSSRFError(error) {
21
+ if (error instanceof SSRFError)
22
+ return error;
23
+ const code = readErrorField(error, 'code');
24
+ const name = readErrorField(error, 'name');
25
+ const message = readErrorField(error, 'message');
26
+ if (code === 'ERR_SSRF_BLOCKED' || name === 'SSRFError') {
27
+ return new SSRFError(message || 'Blocked by SSRF guard');
28
+ }
29
+ if (message?.startsWith('SSRFError:')) {
30
+ return new SSRFError(message.slice('SSRFError:'.length).trim());
31
+ }
32
+ return undefined;
33
+ }
34
+ /** Each link of `error`'s `.cause` chain, outermost first; `error` itself is not yielded. */
35
+ function* causeChain(error) {
36
+ let cause = error?.cause;
37
+ for (let depth = 0; cause && depth < MAX_CAUSE_DEPTH; depth++) {
38
+ yield cause;
39
+ cause = cause.cause;
40
+ }
41
+ }
42
+ // A dual-stack connect fails with one error per address, wrapped in an AggregateError.
43
+ function aggregateMembers(link) {
44
+ const errors = link?.errors;
45
+ return Array.isArray(errors) ? errors : [];
46
+ }
47
+ /**
48
+ * undici surfaces connect-time failures as `TypeError('fetch failed')` with the real reason on the
49
+ * cause chain, so an SSRFError raised inside the DNS lookup would otherwise reach callers as an
50
+ * opaque network error. Recovers our error from anywhere on that chain.
51
+ */
52
+ export function unwrapSafeFetchError(error) {
53
+ const direct = asSSRFError(error);
54
+ if (direct)
55
+ return direct;
56
+ for (const link of causeChain(error)) {
57
+ for (const candidate of [link, ...aggregateMembers(link)]) {
58
+ const ssrf = asSSRFError(candidate);
59
+ if (ssrf)
60
+ return ssrf;
61
+ }
62
+ }
63
+ return error;
64
+ }
65
+ const FETCH_FAILED_MESSAGE = 'fetch failed';
66
+ const UPSTREAM_TIMEOUT_NAMES = new Set(['ConnectTimeoutError', 'HeadersTimeoutError', 'BodyTimeoutError']);
67
+ const UPSTREAM_TIMEOUT_CODES = new Set([
68
+ 'UND_ERR_CONNECT_TIMEOUT',
69
+ 'UND_ERR_HEADERS_TIMEOUT',
70
+ 'UND_ERR_BODY_TIMEOUT',
71
+ 'ETIMEDOUT',
72
+ ]);
73
+ const UPSTREAM_UNREACHABLE_CODES = new Set([
74
+ 'ECONNREFUSED',
75
+ 'ENOTFOUND',
76
+ 'EAI_AGAIN',
77
+ 'ECONNRESET',
78
+ 'EHOSTUNREACH',
79
+ 'ENETUNREACH',
80
+ 'EPIPE',
81
+ 'UND_ERR_SOCKET',
82
+ ]);
83
+ const UPSTREAM_TLS_CODE_PREFIXES = ['ERR_TLS_', 'ERR_SSL_', 'CERT_'];
84
+ function classifyNetworkError(error) {
85
+ const name = readErrorField(error, 'name');
86
+ const code = readErrorField(error, 'code');
87
+ if ((name && UPSTREAM_TIMEOUT_NAMES.has(name)) || (code && UPSTREAM_TIMEOUT_CODES.has(code)))
88
+ return 504;
89
+ if (code && (UPSTREAM_UNREACHABLE_CODES.has(code) || UPSTREAM_TLS_CODE_PREFIXES.some(p => code.startsWith(p)))) {
90
+ return 502;
91
+ }
92
+ return undefined;
93
+ }
94
+ // An AggregateError's own message is usually empty; its members carry the per-address reasons, one per line.
95
+ function describeCause(link) {
96
+ const memberMessages = aggregateMembers(link)
97
+ .map(member => readErrorField(member, 'message'))
98
+ .filter((message) => Boolean(message));
99
+ if (memberMessages.length > 0)
100
+ return [...new Set(memberMessages)].join('\n');
101
+ return readErrorField(link, 'message') || undefined;
102
+ }
103
+ function isFetchFailed(error) {
104
+ return error instanceof Error && error.message === FETCH_FAILED_MESSAGE;
105
+ }
106
+ /**
107
+ * Classifies a failure to reach an upstream at the network level (timeout, refused, DNS, reset, TLS), so callers
108
+ * can attribute it to the upstream instead of a generic gateway 500. Walks the cause chain because undici only
109
+ * reports `fetch failed` at the top; `undefined` for anything that is not a connectivity failure.
110
+ */
111
+ export function getUpstreamConnectivityFailure(error) {
112
+ let failure;
113
+ for (const link of causeChain(error)) {
114
+ const status = [link, ...aggregateMembers(link)].map(classifyNetworkError).find(s => s !== undefined);
115
+ if (status === undefined)
116
+ continue;
117
+ // Deeper links sit closer to the socket, so the last recognised one carries the most specific reason.
118
+ failure = { status, message: describeCause(link) ?? failure?.message ?? FETCH_FAILED_MESSAGE };
119
+ }
120
+ if (failure)
121
+ return failure;
122
+ // undici says `fetch failed` for every connect-phase error; an unrecognised cause still means unreachable.
123
+ if (isFetchFailed(error)) {
124
+ return { status: 502, message: describeCause(error.cause) ?? FETCH_FAILED_MESSAGE };
125
+ }
126
+ return undefined;
127
+ }
128
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/http/errors.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,IAAI,GAAG,WAAW,CAAC;IAC5B,8FAA8F;IAC9F,IAAI,GAAG,kBAAkB,CAAC;CAC3B;AAED,kFAAkF;AAClF,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,SAAS,cAAc,CAAC,KAAc,EAAE,KAAkC;IACxE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,KAAK,GAAI,KAAiC,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEjD,IAAI,IAAI,KAAK,kBAAkB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACxD,OAAO,IAAI,SAAS,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6FAA6F;AAC7F,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAc;IACjC,IAAI,KAAK,GAAa,KAAyC,EAAE,KAAK,CAAC;IACvE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,GAAG,eAAe,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9D,MAAM,KAAK,CAAC;QACZ,KAAK,GAAI,KAA6B,CAAC,KAAK,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,SAAS,gBAAgB,CAAC,IAAa;IACrC,MAAM,MAAM,GAAI,IAA2C,EAAE,MAAM,CAAC;IACpE,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,KAAK,MAAM,SAAS,IAAI,CAAC,IAAI,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAE5C,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAC3G,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,yBAAyB;IACzB,yBAAyB;IACzB,sBAAsB;IACtB,WAAW;CACZ,CAAC,CAAC;AACH,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IACzC,cAAc;IACd,WAAW;IACX,WAAW;IACX,YAAY;IACZ,cAAc;IACd,aAAa;IACb,OAAO;IACP,gBAAgB;CACjB,CAAC,CAAC;AACH,MAAM,0BAA0B,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAKrE,SAAS,oBAAoB,CAAC,KAAc;IAC1C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACzG,IAAI,IAAI,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6GAA6G;AAC7G,SAAS,aAAa,CAAC,IAAa;IAClC,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC;SAC1C,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SAChD,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,OAAO,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC;AACtD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,oBAAoB,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,KAAc;IAC3D,IAAI,OAAgD,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QACtG,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,sGAAsG;QACtG,OAAO,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,CAAC;IACjG,CAAC;IACD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,2GAA2G;IAC3G,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,CAAE,KAAe,CAAC,KAAK,CAAC,IAAI,oBAAoB,EAAE,CAAC;IACjG,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { LookupFunction } from 'node:net';
2
+ /**
3
+ * A DNS lookup that, in `enforce` mode, fails the connection when any resolved address is internal.
4
+ * In `monitor` mode a violation is only logged — the callback still receives the real address, so
5
+ * the connection proceeds (failing it here would be blocking, not monitoring). In `off` mode this
6
+ * passes through to a plain lookup with no classification at all.
7
+ *
8
+ * undici runs this inside the socket's own lookup, so the addresses we validate (in `enforce` mode)
9
+ * are exactly the ones the socket connects to. There is no separate "validate now, resolve again
10
+ * later" step, which is what closes the DNS-rebinding window.
11
+ */
12
+ export declare const guardedLookup: LookupFunction;
13
+ /**
14
+ * Best-effort pre-flight check, used only when a forward proxy is configured: the socket then
15
+ * connects to the proxy, so {@link guardedLookup} would classify the proxy instead of the target.
16
+ * The proxy still resolves the target itself, so this cannot rule out rebinding.
17
+ */
18
+ export declare function assertHostnameIsPublic(hostname: string): Promise<void>;
@@ -0,0 +1,72 @@
1
+ import { lookup as dnsLookup } from 'node:dns';
2
+ import { lookup as dnsLookupAsync } from 'node:dns/promises';
3
+ import { SSRFError } from './errors.js';
4
+ import { isPublicIp } from './isPublicIp.js';
5
+ import { assertHostnameAllowed } from './urlverify/hostname.js';
6
+ import { getSsrfGuardMode, logSsrfViolation } from './urlverify/mode.js';
7
+ function assertAddressesArePublic(hostname, addresses) {
8
+ if (addresses.length === 0) {
9
+ throw new SSRFError(`Blocked: DNS for "${hostname}" returned no addresses`);
10
+ }
11
+ const internal = addresses.find(a => !isPublicIp(a.address));
12
+ if (internal) {
13
+ throw new SSRFError(`Blocked: "${hostname}" resolves to internal address ${internal.address}`);
14
+ }
15
+ }
16
+ /**
17
+ * A DNS lookup that, in `enforce` mode, fails the connection when any resolved address is internal.
18
+ * In `monitor` mode a violation is only logged — the callback still receives the real address, so
19
+ * the connection proceeds (failing it here would be blocking, not monitoring). In `off` mode this
20
+ * passes through to a plain lookup with no classification at all.
21
+ *
22
+ * undici runs this inside the socket's own lookup, so the addresses we validate (in `enforce` mode)
23
+ * are exactly the ones the socket connects to. There is no separate "validate now, resolve again
24
+ * later" step, which is what closes the DNS-rebinding window.
25
+ */
26
+ export const guardedLookup = (hostname, options, callback) => {
27
+ const mode = getSsrfGuardMode();
28
+ if (mode === 'off') {
29
+ return dnsLookup(hostname, options, callback);
30
+ }
31
+ try {
32
+ assertHostnameAllowed(hostname);
33
+ }
34
+ catch (hostnameError) {
35
+ if (mode === 'enforce')
36
+ return callback(hostnameError, '');
37
+ logSsrfViolation({ hostname }, hostnameError);
38
+ }
39
+ const allOptions = { ...options, all: true };
40
+ dnsLookup(hostname, allOptions, (err, addresses) => {
41
+ if (err)
42
+ return callback(err, '');
43
+ try {
44
+ assertAddressesArePublic(hostname, addresses);
45
+ }
46
+ catch (ssrfError) {
47
+ if (mode === 'enforce')
48
+ return callback(ssrfError, '');
49
+ logSsrfViolation({ hostname }, ssrfError);
50
+ }
51
+ if (options.all)
52
+ return callback(null, addresses);
53
+ callback(null, addresses[0].address, addresses[0].family);
54
+ });
55
+ };
56
+ /**
57
+ * Best-effort pre-flight check, used only when a forward proxy is configured: the socket then
58
+ * connects to the proxy, so {@link guardedLookup} would classify the proxy instead of the target.
59
+ * The proxy still resolves the target itself, so this cannot rule out rebinding.
60
+ */
61
+ export async function assertHostnameIsPublic(hostname) {
62
+ assertHostnameAllowed(hostname);
63
+ let addresses;
64
+ try {
65
+ addresses = await dnsLookupAsync(hostname, { all: true });
66
+ }
67
+ catch {
68
+ throw new SSRFError(`Blocked: host "${hostname}" could not be resolved`);
69
+ }
70
+ assertAddressesArePublic(hostname, addresses);
71
+ }
72
+ //# sourceMappingURL=guardedLookup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardedLookup.js","sourceRoot":"","sources":["../../src/http/guardedLookup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { createSafeDispatcher, type SafeFetchConnectionOptions, type SafeFetchTlsOptions, } from './createSafeDispatcher.js';
2
+ export { SSRFError, getUpstreamConnectivityFailure, type UpstreamConnectivityFailure } from './errors.js';
3
+ export { assertHostnameIsPublic, guardedLookup } from './guardedLookup.js';
4
+ export { isPublicIp } from './isPublicIp.js';
5
+ export { assertMeshTlsFilesReadable, createMeshHttpsAgent, isInternalMeshUrl, isMeshMutualTlsEnabled, meshNatsTlsOptions, meshServerTlsOptions, meshTlsExemptPathSet, meshTlsFetchOptions, meshTlsHttpsAgentOptions, normalizeInternalMeshUrl, } from './meshTls.js';
6
+ export { assertSafeToFetch, safeFetch, type SafeFetchInit } from './safeFetch.js';
7
+ export type { SsrfMode } from './types.js';
@@ -0,0 +1,7 @@
1
+ export { createSafeDispatcher, } from './createSafeDispatcher.js';
2
+ export { SSRFError, getUpstreamConnectivityFailure } from './errors.js';
3
+ export { assertHostnameIsPublic, guardedLookup } from './guardedLookup.js';
4
+ export { isPublicIp } from './isPublicIp.js';
5
+ export { assertMeshTlsFilesReadable, createMeshHttpsAgent, isInternalMeshUrl, isMeshMutualTlsEnabled, meshNatsTlsOptions, meshServerTlsOptions, meshTlsExemptPathSet, meshTlsFetchOptions, meshTlsHttpsAgentOptions, normalizeInternalMeshUrl, } from './meshTls.js';
6
+ export { assertSafeToFetch, safeFetch } from './safeFetch.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAGrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAoC,MAAM,UAAU,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAsB,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function isPublicIp(ip: string): boolean;
@@ -0,0 +1,63 @@
1
+ import { isIPv4, isIPv6 } from 'node:net';
2
+ import config from '../config.js';
3
+ import { URL_VERIFY_CONFIG } from './urlverify/config.js';
4
+ import { isIpInCidr, parseIp } from './urlverify/ip.js';
5
+ /**
6
+ * True only for a public, internet-routable IP; any internal/reserved/unparseable address is false.
7
+ *
8
+ * Built on top of servicefoundry-server's `src/urlverify/{config,ip}.ts` (PLA-2199), ported verbatim
9
+ * into `./urlverify/`: `URL_VERIFY_CONFIG.denyCidrsV4/denyCidrsV6/extraDenyCidrs` is the source of
10
+ * truth for which ranges are non-public, and `parseIp`/`isIpInCidr` do the byte-level matching.
11
+ * `SSRF_BLOCKED_EXACT_IPS` is an addition on top (not part of the ported files) for blocking single
12
+ * addresses without needing a CIDR.
13
+ *
14
+ * Always classifies — callers (`safeFetch`'s `assertTargetIsPublic`, `guardedLookup`) decide whether
15
+ * the guard is off, log-only, or blocking via `getSsrfGuardMode()`.
16
+ */
17
+ function blockedExactIps() {
18
+ return new Set(config.SSRF_BLOCKED_EXACT_IPS.map(ip => normalizeIp(ip)));
19
+ }
20
+ function normalizeIp(ip) {
21
+ let normalized = ip.replace(/\.+$/, '').toLowerCase();
22
+ if (normalized.startsWith('[') && normalized.endsWith(']')) {
23
+ normalized = normalized.slice(1, -1);
24
+ }
25
+ return normalized;
26
+ }
27
+ /** Unmaps IPv4-mapped IPv6 (`::ffff:x.x.x.x` or `::ffff:7f00:1`) to the embedded IPv4 string when present. */
28
+ function unmapIpv4MappedAddress(ip) {
29
+ const normalized = normalizeIp(ip);
30
+ if (!normalized.startsWith('::ffff:')) {
31
+ return normalized;
32
+ }
33
+ const embedded = normalized.slice('::ffff:'.length);
34
+ if (isIPv4(embedded)) {
35
+ return embedded;
36
+ }
37
+ const hexParts = embedded.split(':');
38
+ if (hexParts.length === 2 && hexParts.every(part => /^[0-9a-f]{1,4}$/i.test(part))) {
39
+ const hi = parseInt(hexParts[0], 16);
40
+ const lo = parseInt(hexParts[1], 16);
41
+ return `${(hi >> 8) & 0xff}.${hi & 0xff}.${(lo >> 8) & 0xff}.${lo & 0xff}`;
42
+ }
43
+ return normalized;
44
+ }
45
+ function isDeniedByCidrs(ip) {
46
+ const parsed = parseIp(ip);
47
+ if (!parsed) {
48
+ return true; // unparseable — fail closed, same as the pre-ported implementation.
49
+ }
50
+ const denyCidrs = parsed.version === 4 ? URL_VERIFY_CONFIG.denyCidrsV4 : URL_VERIFY_CONFIG.denyCidrsV6;
51
+ return [...denyCidrs, ...URL_VERIFY_CONFIG.extraDenyCidrs].some(cidr => isIpInCidr(parsed.bytes, cidr));
52
+ }
53
+ export function isPublicIp(ip) {
54
+ const candidate = unmapIpv4MappedAddress(ip);
55
+ if (blockedExactIps().has(candidate)) {
56
+ return false;
57
+ }
58
+ if (isIPv4(candidate) || isIPv6(candidate)) {
59
+ return !isDeniedByCidrs(candidate);
60
+ }
61
+ return false;
62
+ }
63
+ //# sourceMappingURL=isPublicIp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPublicIp.js","sourceRoot":"","sources":["../../src/http/isPublicIp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Makes the process-wide `fetch` carry mesh TLS material for calls the gateway makes to ITSELF.
3
+ *
4
+ * THIS IS THE ONE SANCTIONED EXCEPTION to the rule in {@link ../http/meshTls} that the material is
5
+ * never installed globally, and it does not weaken it: what goes on the global dispatcher is a
6
+ * router, not the material. Anything whose origin is not exactly {@link loopbackOrigin} is handed
7
+ * to the unchanged base dispatcher, so no provider, customer MCP server or auth host can be reached
8
+ * with the client certificate — or, worse, with a `ca` that replaces the default trust store and
9
+ * would fail verification against every public host.
10
+ *
11
+ * Why it is needed at all: {@link loopbackFetch} already fixes every loopback caller that lets us
12
+ * pass a `fetch` in (`mcpGateway/connectedLocalClient.ts`, and agent model calls via
13
+ * `createLoopbackOpenAILLM`). Two still do not: registered-MCP (`RemoteMCP` from
14
+ * `@truefoundry/utils`) and the channels session/turn client (`AgentSessionClient` from
15
+ * `truefoundry-gateway-sdk`) each own their transport and expose no `fetch`/agent hook, so under
16
+ * TLS they present no client certificate and do not trust the internal CA unless this router is
17
+ * installed. The symptom is a bare `fetch failed: self-signed certificate in certificate chain`.
18
+ *
19
+ * Remove this once those clients accept a `fetch`, in favour of passing {@link loopbackFetch}.
20
+ * Note: OpenAI's Node shim uses `node-fetch`, which ignores undici's global dispatcher — model
21
+ * calls must use {@link loopbackFetch} directly, not this router alone.
22
+ */
23
+ import type { Dispatcher } from 'undici';
24
+ /**
25
+ * Wraps `base` so loopback dispatches get the mesh material and everything else is untouched.
26
+ *
27
+ * A no-op when TLS is off — `loopbackTlsFetchOptions()` returns undefined, and the origin is plain
28
+ * http anyway — so this is safe to install unconditionally at bootstrap. It is resolved per
29
+ * dispatch instead of at wrap time because the wrap happens during bootstrap, before anything has
30
+ * established that the certificate files are readable.
31
+ */
32
+ export declare function withLoopbackMeshTls(base: Dispatcher): Dispatcher;
@@ -0,0 +1,40 @@
1
+ import { createSafeDispatcher } from './createSafeDispatcher.js';
2
+ import { isLoopbackUrl } from './loopbackFetch.js';
3
+ import { loopbackTlsFetchOptions } from './meshTls.js';
4
+ /**
5
+ * Keyed on the certificate rather than built once, so a reissued certificate is picked up without
6
+ * a restart, and pooled rather than built per call, because this sits under the agent's token
7
+ * streaming — `createSafeDispatcher` builds a fresh Agent whenever TLS options are passed, which
8
+ * would mean a new connection pool per request.
9
+ */
10
+ let pooled;
11
+ function loopbackTlsDispatcher() {
12
+ const tls = loopbackTlsFetchOptions();
13
+ if (!tls)
14
+ return undefined;
15
+ if (pooled?.cert !== tls.cert) {
16
+ // `ssrf: 'none'` for the same reason loopbackFetch needs it: `localhost` is on the urlverify
17
+ // hostname denylist, so the guarded mode would block the call outright.
18
+ pooled = { cert: tls.cert, dispatcher: createSafeDispatcher('none', tls, undefined) };
19
+ }
20
+ return pooled.dispatcher;
21
+ }
22
+ /**
23
+ * Wraps `base` so loopback dispatches get the mesh material and everything else is untouched.
24
+ *
25
+ * A no-op when TLS is off — `loopbackTlsFetchOptions()` returns undefined, and the origin is plain
26
+ * http anyway — so this is safe to install unconditionally at bootstrap. It is resolved per
27
+ * dispatch instead of at wrap time because the wrap happens during bootstrap, before anything has
28
+ * established that the certificate files are readable.
29
+ */
30
+ export function withLoopbackMeshTls(base) {
31
+ return base.compose(dispatch => (options, handler) => {
32
+ if (isLoopbackUrl(options.origin ?? '')) {
33
+ const loopback = loopbackTlsDispatcher();
34
+ if (loopback)
35
+ return loopback.dispatch(options, handler);
36
+ }
37
+ return dispatch(options, handler);
38
+ });
39
+ }
40
+ //# sourceMappingURL=loopbackDispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loopbackDispatcher.js","sourceRoot":"","sources":["../../src/http/loopbackDispatcher.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD;;;;;GAKG;AACH,IAAI,MAA4D,CAAC;AAEjE,SAAS,qBAAqB;IAC5B,MAAM,GAAG,GAAG,uBAAuB,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAE3B,IAAI,MAAM,EAAE,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,6FAA6F;QAC7F,wEAAwE;QACxE,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;IACxF,CAAC;IACD,OAAO,MAAM,CAAC,UAAU,CAAC;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QACnD,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;YACzC,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Whether `url` targets this gateway's own listener, and so should use {@link loopbackFetch}.
3
+ *
4
+ * Compared by origin rather than by hostname: an external MCP server on `localhost` at a different
5
+ * port is not us, and — the case that actually matters — a customer's remote MCP URL must never pick
6
+ * up the internal material. Call sites that build transports for both loopback and remote targets
7
+ * (`mcpGateway/connectedLocalClient.ts`) gate on this.
8
+ */
9
+ export declare function isLoopbackUrl(url: string | URL): boolean;
10
+ /**
11
+ * Matches the MCP SDK's `FetchLike` and OpenAI's `fetch` override — a drop-in for global `fetch`
12
+ * elsewhere when the target is this process.
13
+ *
14
+ * Returns the TLS material afresh per call rather than closing over it, so a process that boots with
15
+ * TLS off does not cache an empty option set that would then be wrong. `meshTlsFetchOptions` caches
16
+ * the file reads, so this is not a per-request disk hit.
17
+ */
18
+ export declare const loopbackFetch: (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * `fetch` for calls the gateway makes to itself.
3
+ *
4
+ * Several paths call the gateway back through its own port: the MCP transport probe and client
5
+ * (`/{tenant}/mcp/{server}/server`), the semantic-cache embeddings hop, complexity routing, and the
6
+ * agent channels client. Once the listener serves HTTPS with mutual TLS, plain `fetch` fails those
7
+ * twice over — it does not trust the internal CA, and it presents no client certificate — so they
8
+ * need a dispatcher carrying the pod's own material.
9
+ *
10
+ * `ssrf: 'none'` is required, not incidental: `localhost` is on the hostname denylist in
11
+ * `urlverify/config.ts`, so the guarded mode would block every loopback call. That is safe here
12
+ * because the target is built from `config.PORT` rather than from tenant or request input — the
13
+ * existing loopback call in `handlers/complexityRouting` already does the same thing for the same
14
+ * reason.
15
+ *
16
+ * DO NOT use this as a general-purpose fetch. It carries the client certificate and, more
17
+ * dangerously, a `ca` that REPLACES the default trust store — pointed at any public host it would
18
+ * fail verification against every provider the gateway talks to.
19
+ */
20
+ import { loopbackOrigin, loopbackTlsFetchOptions } from './meshTls.js';
21
+ import { safeFetch } from './safeFetch.js';
22
+ /**
23
+ * Whether `url` targets this gateway's own listener, and so should use {@link loopbackFetch}.
24
+ *
25
+ * Compared by origin rather than by hostname: an external MCP server on `localhost` at a different
26
+ * port is not us, and — the case that actually matters — a customer's remote MCP URL must never pick
27
+ * up the internal material. Call sites that build transports for both loopback and remote targets
28
+ * (`mcpGateway/connectedLocalClient.ts`) gate on this.
29
+ */
30
+ export function isLoopbackUrl(url) {
31
+ try {
32
+ return new URL(url instanceof URL ? url.href : url).origin === loopbackOrigin();
33
+ }
34
+ catch {
35
+ return false;
36
+ }
37
+ }
38
+ /**
39
+ * Matches the MCP SDK's `FetchLike` and OpenAI's `fetch` override — a drop-in for global `fetch`
40
+ * elsewhere when the target is this process.
41
+ *
42
+ * Returns the TLS material afresh per call rather than closing over it, so a process that boots with
43
+ * TLS off does not cache an empty option set that would then be wrong. `meshTlsFetchOptions` caches
44
+ * the file reads, so this is not a per-request disk hit.
45
+ */
46
+ export const loopbackFetch = (input, init) => safeFetch(input, { ...init, ssrf: 'none', tls: loopbackTlsFetchOptions() });
47
+ //# sourceMappingURL=loopbackFetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loopbackFetch.js","sourceRoot":"","sources":["../../src/http/loopbackFetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,GAAiB;IAC7C,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAA6B,EAAE,IAAkB,EAAqB,EAAE,CACpG,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC"}