@juspay/neurolink 10.8.4 → 10.8.6

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 (217) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/browser/neurolink.min.js +497 -478
  3. package/dist/factories/providerRegistry.js +11 -11
  4. package/dist/lib/factories/providerRegistry.js +11 -11
  5. package/dist/lib/providers/{amazonBedrock.d.ts → amazonBedrock/client.d.ts} +4 -4
  6. package/dist/{providers/amazonBedrock.js → lib/providers/amazonBedrock/client.js} +15 -18
  7. package/dist/lib/providers/amazonBedrock/constants.d.ts +1 -0
  8. package/dist/lib/providers/amazonBedrock/constants.js +3 -0
  9. package/dist/lib/providers/amazonBedrock/index.d.ts +3 -0
  10. package/dist/lib/providers/amazonBedrock/index.js +4 -0
  11. package/dist/lib/providers/amazonBedrock/utils.d.ts +1 -0
  12. package/dist/lib/providers/amazonBedrock/utils.js +4 -0
  13. package/dist/{providers/anthropic.d.ts → lib/providers/anthropic/client.d.ts} +6 -21
  14. package/dist/{providers/anthropic.js → lib/providers/anthropic/client.js} +28 -45
  15. package/dist/lib/providers/anthropic/constants.d.ts +4 -0
  16. package/dist/lib/providers/anthropic/constants.js +9 -0
  17. package/dist/lib/providers/anthropic/index.d.ts +3 -0
  18. package/dist/lib/providers/anthropic/index.js +4 -0
  19. package/dist/lib/providers/anthropic/utils.d.ts +7 -0
  20. package/dist/lib/providers/anthropic/utils.js +150 -0
  21. package/dist/lib/providers/{googleAiStudio.d.ts → googleAiStudio/client.d.ts} +4 -4
  22. package/dist/{providers/googleAiStudio.js → lib/providers/googleAiStudio/client.js} +16 -15
  23. package/dist/lib/providers/googleAiStudio/index.d.ts +2 -0
  24. package/dist/lib/providers/googleAiStudio/index.js +3 -0
  25. package/dist/lib/providers/googleAiStudio/utils.d.ts +2 -0
  26. package/dist/lib/providers/googleAiStudio/utils.js +19 -0
  27. package/dist/lib/providers/googleNativeGemini3/constants.d.ts +1 -0
  28. package/dist/lib/providers/googleNativeGemini3/constants.js +2 -0
  29. package/dist/lib/providers/googleNativeGemini3/index.d.ts +2 -0
  30. package/dist/lib/providers/googleNativeGemini3/index.js +3 -0
  31. package/dist/lib/providers/{googleNativeGemini3.d.ts → googleNativeGemini3/utils.d.ts} +2 -2
  32. package/dist/lib/providers/{googleNativeGemini3.js → googleNativeGemini3/utils.js} +8 -8
  33. package/dist/{providers/googleVertex.d.ts → lib/providers/googleVertex/client.d.ts} +4 -4
  34. package/dist/lib/providers/{googleVertex.js → googleVertex/client.js} +32 -32
  35. package/dist/lib/providers/googleVertex/constants.d.ts +5 -0
  36. package/dist/lib/providers/googleVertex/constants.js +27 -0
  37. package/dist/lib/providers/googleVertex/index.d.ts +3 -0
  38. package/dist/lib/providers/googleVertex/index.js +4 -0
  39. package/dist/lib/providers/googleVertex/utils.d.ts +12 -0
  40. package/dist/lib/providers/googleVertex/utils.js +287 -0
  41. package/dist/lib/providers/{huggingFace.d.ts → huggingFace/client.d.ts} +3 -3
  42. package/dist/lib/providers/{huggingFace.js → huggingFace/client.js} +7 -7
  43. package/dist/lib/providers/huggingFace/index.d.ts +2 -0
  44. package/dist/lib/providers/huggingFace/index.js +3 -0
  45. package/dist/lib/providers/huggingFace/utils.d.ts +2 -0
  46. package/dist/lib/providers/huggingFace/utils.js +8 -0
  47. package/dist/lib/providers/index.d.ts +10 -10
  48. package/dist/lib/providers/index.js +10 -10
  49. package/dist/{providers/litellm.d.ts → lib/providers/litellm/client.d.ts} +3 -3
  50. package/dist/lib/providers/{litellm.js → litellm/client.js} +13 -13
  51. package/dist/lib/providers/litellm/constants.d.ts +1 -0
  52. package/dist/lib/providers/litellm/constants.js +3 -0
  53. package/dist/lib/providers/litellm/index.d.ts +3 -0
  54. package/dist/lib/providers/litellm/index.js +4 -0
  55. package/dist/lib/providers/litellm/utils.d.ts +5 -0
  56. package/dist/lib/providers/litellm/utils.js +11 -0
  57. package/dist/{providers/nvidiaNim.d.ts → lib/providers/nvidiaNim/client.d.ts} +3 -3
  58. package/dist/lib/providers/{nvidiaNim.js → nvidiaNim/client.js} +8 -8
  59. package/dist/lib/providers/nvidiaNim/constants.d.ts +1 -0
  60. package/dist/lib/providers/nvidiaNim/constants.js +2 -0
  61. package/dist/lib/providers/nvidiaNim/index.d.ts +3 -0
  62. package/dist/lib/providers/nvidiaNim/index.js +4 -0
  63. package/dist/lib/providers/nvidiaNim/utils.d.ts +9 -0
  64. package/dist/lib/providers/nvidiaNim/utils.js +101 -0
  65. package/dist/{providers/ollama.d.ts → lib/providers/ollama/client.d.ts} +3 -3
  66. package/dist/{providers/ollama.js → lib/providers/ollama/client.js} +10 -13
  67. package/dist/lib/providers/ollama/constants.d.ts +4 -0
  68. package/dist/lib/providers/ollama/constants.js +6 -0
  69. package/dist/lib/providers/ollama/index.d.ts +3 -0
  70. package/dist/lib/providers/ollama/index.js +4 -0
  71. package/dist/lib/providers/ollama/utils.d.ts +8 -0
  72. package/dist/lib/providers/ollama/utils.js +43 -0
  73. package/dist/lib/providers/{openAI.d.ts → openAI/client.d.ts} +3 -3
  74. package/dist/lib/providers/{openAI.js → openAI/client.js} +13 -13
  75. package/dist/lib/providers/openAI/constants.d.ts +1 -0
  76. package/dist/lib/providers/openAI/constants.js +3 -0
  77. package/dist/lib/providers/openAI/index.d.ts +3 -0
  78. package/dist/lib/providers/openAI/index.js +4 -0
  79. package/dist/lib/providers/openAI/utils.d.ts +2 -0
  80. package/dist/lib/providers/openAI/utils.js +8 -0
  81. package/dist/lib/providers/{openRouter.d.ts → openRouter/client.d.ts} +3 -3
  82. package/dist/{providers/openRouter.js → lib/providers/openRouter/client.js} +13 -29
  83. package/dist/lib/providers/openRouter/constants.d.ts +1 -0
  84. package/dist/lib/providers/openRouter/constants.js +2 -0
  85. package/dist/lib/providers/openRouter/index.d.ts +3 -0
  86. package/dist/lib/providers/openRouter/index.js +4 -0
  87. package/dist/lib/providers/openRouter/utils.d.ts +3 -0
  88. package/dist/lib/providers/openRouter/utils.js +18 -0
  89. package/dist/lib/providers/{openaiCompatible.d.ts → openaiCompatible/client.d.ts} +2 -2
  90. package/dist/{providers/openaiCompatible.js → lib/providers/openaiCompatible/client.js} +8 -22
  91. package/dist/lib/providers/openaiCompatible/constants.d.ts +1 -0
  92. package/dist/lib/providers/openaiCompatible/constants.js +2 -0
  93. package/dist/lib/providers/openaiCompatible/index.d.ts +3 -0
  94. package/dist/lib/providers/openaiCompatible/index.js +4 -0
  95. package/dist/lib/providers/openaiCompatible/utils.d.ts +5 -0
  96. package/dist/lib/providers/openaiCompatible/utils.js +17 -0
  97. package/dist/lib/proxy/modelRouter.d.ts +10 -0
  98. package/dist/lib/proxy/modelRouter.js +17 -0
  99. package/dist/lib/proxy/proxyConfig.js +46 -0
  100. package/dist/lib/proxy/routingPolicy.d.ts +4 -2
  101. package/dist/lib/proxy/routingPolicy.js +8 -5
  102. package/dist/lib/proxy/runtimeConfig.js +2 -0
  103. package/dist/lib/server/routes/claudeProxyRoutes.d.ts +52 -1
  104. package/dist/lib/server/routes/claudeProxyRoutes.js +467 -221
  105. package/dist/lib/server/routes/openaiProxyRoutes.js +1 -1
  106. package/dist/lib/types/errors.d.ts +5 -0
  107. package/dist/lib/types/proxy.d.ts +24 -0
  108. package/dist/lib/types/subscription.d.ts +4 -0
  109. package/dist/lib/utils/providerHealth.js +2 -1
  110. package/dist/lib/utils/providerUtils.js +2 -1
  111. package/dist/providers/{amazonBedrock.d.ts → amazonBedrock/client.d.ts} +4 -4
  112. package/dist/{lib/providers/amazonBedrock.js → providers/amazonBedrock/client.js} +14 -19
  113. package/dist/providers/amazonBedrock/constants.d.ts +1 -0
  114. package/dist/providers/amazonBedrock/constants.js +2 -0
  115. package/dist/providers/amazonBedrock/index.d.ts +3 -0
  116. package/dist/providers/amazonBedrock/index.js +3 -0
  117. package/dist/providers/amazonBedrock/utils.d.ts +1 -0
  118. package/dist/providers/amazonBedrock/utils.js +3 -0
  119. package/dist/{lib/providers/anthropic.d.ts → providers/anthropic/client.d.ts} +6 -21
  120. package/dist/{lib/providers/anthropic.js → providers/anthropic/client.js} +27 -46
  121. package/dist/providers/anthropic/constants.d.ts +4 -0
  122. package/dist/providers/anthropic/constants.js +8 -0
  123. package/dist/providers/anthropic/index.d.ts +3 -0
  124. package/dist/providers/anthropic/index.js +3 -0
  125. package/dist/providers/anthropic/utils.d.ts +7 -0
  126. package/dist/providers/anthropic/utils.js +149 -0
  127. package/dist/providers/{googleAiStudio.d.ts → googleAiStudio/client.d.ts} +4 -4
  128. package/dist/{lib/providers/googleAiStudio.js → providers/googleAiStudio/client.js} +15 -16
  129. package/dist/providers/googleAiStudio/index.d.ts +2 -0
  130. package/dist/providers/googleAiStudio/index.js +2 -0
  131. package/dist/providers/googleAiStudio/utils.d.ts +2 -0
  132. package/dist/providers/googleAiStudio/utils.js +18 -0
  133. package/dist/providers/googleNativeGemini3/constants.d.ts +1 -0
  134. package/dist/providers/googleNativeGemini3/constants.js +1 -0
  135. package/dist/providers/googleNativeGemini3/index.d.ts +2 -0
  136. package/dist/providers/googleNativeGemini3/index.js +2 -0
  137. package/dist/providers/{googleNativeGemini3.d.ts → googleNativeGemini3/utils.d.ts} +2 -2
  138. package/dist/providers/{googleNativeGemini3.js → googleNativeGemini3/utils.js} +7 -7
  139. package/dist/{lib/providers/googleVertex.d.ts → providers/googleVertex/client.d.ts} +4 -4
  140. package/dist/providers/{googleVertex.js → googleVertex/client.js} +31 -31
  141. package/dist/providers/googleVertex/constants.d.ts +5 -0
  142. package/dist/providers/googleVertex/constants.js +26 -0
  143. package/dist/providers/googleVertex/index.d.ts +3 -0
  144. package/dist/providers/googleVertex/index.js +3 -0
  145. package/dist/providers/googleVertex/utils.d.ts +12 -0
  146. package/dist/providers/googleVertex/utils.js +286 -0
  147. package/dist/providers/{huggingFace.d.ts → huggingFace/client.d.ts} +3 -3
  148. package/dist/providers/{huggingFace.js → huggingFace/client.js} +6 -6
  149. package/dist/providers/huggingFace/index.d.ts +2 -0
  150. package/dist/providers/huggingFace/index.js +2 -0
  151. package/dist/providers/huggingFace/utils.d.ts +2 -0
  152. package/dist/providers/huggingFace/utils.js +7 -0
  153. package/dist/providers/index.d.ts +10 -10
  154. package/dist/providers/index.js +10 -10
  155. package/dist/{lib/providers/litellm.d.ts → providers/litellm/client.d.ts} +3 -3
  156. package/dist/providers/{litellm.js → litellm/client.js} +12 -12
  157. package/dist/providers/litellm/constants.d.ts +1 -0
  158. package/dist/providers/litellm/constants.js +2 -0
  159. package/dist/providers/litellm/index.d.ts +3 -0
  160. package/dist/providers/litellm/index.js +3 -0
  161. package/dist/providers/litellm/utils.d.ts +5 -0
  162. package/dist/providers/litellm/utils.js +10 -0
  163. package/dist/{lib/providers/nvidiaNim.d.ts → providers/nvidiaNim/client.d.ts} +3 -3
  164. package/dist/providers/{nvidiaNim.js → nvidiaNim/client.js} +7 -7
  165. package/dist/providers/nvidiaNim/constants.d.ts +1 -0
  166. package/dist/providers/nvidiaNim/constants.js +1 -0
  167. package/dist/providers/nvidiaNim/index.d.ts +3 -0
  168. package/dist/providers/nvidiaNim/index.js +3 -0
  169. package/dist/providers/nvidiaNim/utils.d.ts +9 -0
  170. package/dist/providers/nvidiaNim/utils.js +100 -0
  171. package/dist/{lib/providers/ollama.d.ts → providers/ollama/client.d.ts} +3 -3
  172. package/dist/{lib/providers/ollama.js → providers/ollama/client.js} +9 -14
  173. package/dist/providers/ollama/constants.d.ts +4 -0
  174. package/dist/providers/ollama/constants.js +5 -0
  175. package/dist/providers/ollama/index.d.ts +3 -0
  176. package/dist/providers/ollama/index.js +3 -0
  177. package/dist/providers/ollama/utils.d.ts +8 -0
  178. package/dist/providers/ollama/utils.js +42 -0
  179. package/dist/providers/{openAI.d.ts → openAI/client.d.ts} +3 -3
  180. package/dist/providers/{openAI.js → openAI/client.js} +12 -12
  181. package/dist/providers/openAI/constants.d.ts +1 -0
  182. package/dist/providers/openAI/constants.js +2 -0
  183. package/dist/providers/openAI/index.d.ts +3 -0
  184. package/dist/providers/openAI/index.js +3 -0
  185. package/dist/providers/openAI/utils.d.ts +2 -0
  186. package/dist/providers/openAI/utils.js +7 -0
  187. package/dist/providers/{openRouter.d.ts → openRouter/client.d.ts} +3 -3
  188. package/dist/{lib/providers/openRouter.js → providers/openRouter/client.js} +12 -30
  189. package/dist/providers/openRouter/constants.d.ts +1 -0
  190. package/dist/providers/openRouter/constants.js +1 -0
  191. package/dist/providers/openRouter/index.d.ts +3 -0
  192. package/dist/providers/openRouter/index.js +3 -0
  193. package/dist/providers/openRouter/utils.d.ts +3 -0
  194. package/dist/providers/openRouter/utils.js +17 -0
  195. package/dist/providers/{openaiCompatible.d.ts → openaiCompatible/client.d.ts} +2 -2
  196. package/dist/{lib/providers/openaiCompatible.js → providers/openaiCompatible/client.js} +7 -23
  197. package/dist/providers/openaiCompatible/constants.d.ts +1 -0
  198. package/dist/providers/openaiCompatible/constants.js +1 -0
  199. package/dist/providers/openaiCompatible/index.d.ts +3 -0
  200. package/dist/providers/openaiCompatible/index.js +3 -0
  201. package/dist/providers/openaiCompatible/utils.d.ts +5 -0
  202. package/dist/providers/openaiCompatible/utils.js +16 -0
  203. package/dist/proxy/modelRouter.d.ts +10 -0
  204. package/dist/proxy/modelRouter.js +17 -0
  205. package/dist/proxy/proxyConfig.js +46 -0
  206. package/dist/proxy/routingPolicy.d.ts +4 -2
  207. package/dist/proxy/routingPolicy.js +8 -5
  208. package/dist/proxy/runtimeConfig.js +2 -0
  209. package/dist/server/routes/claudeProxyRoutes.d.ts +52 -1
  210. package/dist/server/routes/claudeProxyRoutes.js +467 -221
  211. package/dist/server/routes/openaiProxyRoutes.js +1 -1
  212. package/dist/types/errors.d.ts +5 -0
  213. package/dist/types/proxy.d.ts +24 -0
  214. package/dist/types/subscription.d.ts +4 -0
  215. package/dist/utils/providerHealth.js +2 -1
  216. package/dist/utils/providerUtils.js +2 -1
  217. package/package.json +3 -1
@@ -2,20 +2,20 @@
2
2
  * Provider exports for Vercel AI SDK integration
3
3
  * This file centralizes all AI provider classes for easy import and usage
4
4
  */
5
- export { GoogleVertexProvider as GoogleVertexAI } from "./googleVertex.js";
6
- export { AmazonBedrockProvider as AmazonBedrock } from "./amazonBedrock.js";
5
+ export { GoogleVertexProvider as GoogleVertexAI } from "./googleVertex/index.js";
6
+ export { AmazonBedrockProvider as AmazonBedrock } from "./amazonBedrock/index.js";
7
7
  export { AmazonSageMakerProvider as AmazonSageMaker } from "./amazonSagemaker.js";
8
- export { OpenAIProvider as OpenAI } from "./openAI.js";
9
- export { OpenAICompatibleProvider as OpenAICompatible } from "./openaiCompatible.js";
10
- export { AnthropicProvider as AnthropicProvider } from "./anthropic.js";
8
+ export { OpenAIProvider as OpenAI } from "./openAI/index.js";
9
+ export { OpenAICompatibleProvider as OpenAICompatible } from "./openaiCompatible/index.js";
10
+ export { AnthropicProvider as AnthropicProvider } from "./anthropic/index.js";
11
11
  export { AzureOpenAIProvider } from "./azureOpenai.js";
12
- export { GoogleAIStudioProvider as GoogleAIStudio } from "./googleAiStudio.js";
13
- export { HuggingFaceProvider as HuggingFace } from "./huggingFace.js";
14
- export { OllamaProvider as Ollama } from "./ollama.js";
12
+ export { GoogleAIStudioProvider as GoogleAIStudio } from "./googleAiStudio/index.js";
13
+ export { HuggingFaceProvider as HuggingFace } from "./huggingFace/index.js";
14
+ export { OllamaProvider as Ollama } from "./ollama/index.js";
15
15
  export { MistralProvider as MistralAI } from "./mistral.js";
16
- export { LiteLLMProvider as LiteLLM } from "./litellm.js";
16
+ export { LiteLLMProvider as LiteLLM } from "./litellm/index.js";
17
17
  export { DeepSeekProvider as DeepSeek } from "./deepseek.js";
18
- export { NvidiaNimProvider as NvidiaNim } from "./nvidiaNim.js";
18
+ export { NvidiaNimProvider as NvidiaNim } from "./nvidiaNim/index.js";
19
19
  export { LMStudioProvider as LMStudio } from "./lmStudio.js";
20
20
  export { LlamaCppProvider as LlamaCpp } from "./llamaCpp.js";
21
21
  export { XaiProvider as Xai } from "./xai.js";
@@ -2,20 +2,20 @@
2
2
  * Provider exports for Vercel AI SDK integration
3
3
  * This file centralizes all AI provider classes for easy import and usage
4
4
  */
5
- export { GoogleVertexProvider as GoogleVertexAI } from "./googleVertex.js";
6
- export { AmazonBedrockProvider as AmazonBedrock } from "./amazonBedrock.js";
5
+ export { GoogleVertexProvider as GoogleVertexAI } from "./googleVertex/index.js";
6
+ export { AmazonBedrockProvider as AmazonBedrock } from "./amazonBedrock/index.js";
7
7
  export { AmazonSageMakerProvider as AmazonSageMaker } from "./amazonSagemaker.js";
8
- export { OpenAIProvider as OpenAI } from "./openAI.js";
9
- export { OpenAICompatibleProvider as OpenAICompatible } from "./openaiCompatible.js";
10
- export { AnthropicProvider as AnthropicProvider } from "./anthropic.js";
8
+ export { OpenAIProvider as OpenAI } from "./openAI/index.js";
9
+ export { OpenAICompatibleProvider as OpenAICompatible } from "./openaiCompatible/index.js";
10
+ export { AnthropicProvider as AnthropicProvider } from "./anthropic/index.js";
11
11
  export { AzureOpenAIProvider } from "./azureOpenai.js";
12
- export { GoogleAIStudioProvider as GoogleAIStudio } from "./googleAiStudio.js";
13
- export { HuggingFaceProvider as HuggingFace } from "./huggingFace.js";
14
- export { OllamaProvider as Ollama } from "./ollama.js";
12
+ export { GoogleAIStudioProvider as GoogleAIStudio } from "./googleAiStudio/index.js";
13
+ export { HuggingFaceProvider as HuggingFace } from "./huggingFace/index.js";
14
+ export { OllamaProvider as Ollama } from "./ollama/index.js";
15
15
  export { MistralProvider as MistralAI } from "./mistral.js";
16
- export { LiteLLMProvider as LiteLLM } from "./litellm.js";
16
+ export { LiteLLMProvider as LiteLLM } from "./litellm/index.js";
17
17
  export { DeepSeekProvider as DeepSeek } from "./deepseek.js";
18
- export { NvidiaNimProvider as NvidiaNim } from "./nvidiaNim.js";
18
+ export { NvidiaNimProvider as NvidiaNim } from "./nvidiaNim/index.js";
19
19
  export { LMStudioProvider as LMStudio } from "./lmStudio.js";
20
20
  export { LlamaCppProvider as LlamaCpp } from "./llamaCpp.js";
21
21
  export { XaiProvider as Xai } from "./xai.js";
@@ -1,6 +1,6 @@
1
- import type { AIProviderName } from "../constants/enums.js";
2
- import type { OpenAICompatBuildBodyArgs, OpenAICompatStreamLifecycleListeners } from "../types/index.js";
3
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
1
+ import type { AIProviderName } from "../../constants/enums.js";
2
+ import type { OpenAICompatBuildBodyArgs, OpenAICompatStreamLifecycleListeners } from "../../types/index.js";
3
+ import { OpenAIChatCompletionsProvider } from "../openaiChatCompletionsBase.js";
4
4
  /** Test hook: reset the discovery caches (state is module-global). */
5
5
  export declare function clearLiteLLMModelLimitsCache(): void;
6
6
  /**
@@ -1,16 +1,16 @@
1
1
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
2
- import { registerRuntimeContextWindow, registerRuntimeOutputCeiling, } from "../constants/contextWindows.js";
3
- import { createProxyFetch } from "../proxy/proxyFetch.js";
4
- import { AuthenticationError, InvalidModelError, ModelAccessDeniedError, NetworkError, ProviderError, RateLimitError, isModelAccessDeniedMessage, parseAllowedModels, } from "../types/index.js";
5
- import { isAbortError } from "../utils/errorHandling.js";
6
- import { logger } from "../utils/logger.js";
7
- import { redactUrlCredentials } from "../utils/logSanitize.js";
8
- import { isGemini25Model as isCanonicalGemini25Model } from "../utils/modelDetection.js";
9
- import { calculateCost } from "../utils/pricing.js";
10
- import { getProviderModel } from "../utils/providerConfig.js";
11
- import { createTimeoutController, TimeoutError } from "../utils/timeout.js";
12
- import { stripTrailingSlash } from "./openaiChatCompletionsClient.js";
13
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
2
+ import { registerRuntimeContextWindow, registerRuntimeOutputCeiling, } from "../../constants/contextWindows.js";
3
+ import { createProxyFetch } from "../../proxy/proxyFetch.js";
4
+ import { AuthenticationError, InvalidModelError, ModelAccessDeniedError, NetworkError, ProviderError, RateLimitError, isModelAccessDeniedMessage, parseAllowedModels, } from "../../types/index.js";
5
+ import { isAbortError } from "../../utils/errorHandling.js";
6
+ import { logger } from "../../utils/logger.js";
7
+ import { redactUrlCredentials } from "../../utils/logSanitize.js";
8
+ import { isGemini25Model as isCanonicalGemini25Model } from "../../utils/modelDetection.js";
9
+ import { calculateCost } from "../../utils/pricing.js";
10
+ import { getProviderModel } from "../../utils/providerConfig.js";
11
+ import { createTimeoutController, TimeoutError } from "../../utils/timeout.js";
12
+ import { stripTrailingSlash } from "../openaiChatCompletionsClient.js";
13
+ import { OpenAIChatCompletionsProvider } from "../openaiChatCompletionsBase.js";
14
14
  const streamTracer = trace.getTracer("neurolink.provider.litellm");
15
15
  const FALLBACK_LITELLM_MODEL = "openai/gpt-4o-mini";
16
16
  const getLiteLLMConfig = () => ({
@@ -486,4 +486,4 @@ export class LiteLLMProvider extends OpenAIChatCompletionsProvider {
486
486
  }
487
487
  }
488
488
  }
489
- //# sourceMappingURL=litellm.js.map
489
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ export declare const streamTracer: import("@opentelemetry/api").Tracer;
@@ -0,0 +1,3 @@
1
+ import { trace } from "@opentelemetry/api";
2
+ export const streamTracer = trace.getTracer("neurolink.provider.litellm");
3
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,3 @@
1
+ export * from "./client.js";
2
+ export * from "./constants.js";
3
+ export * from "./utils.js";
@@ -0,0 +1,4 @@
1
+ export * from "./client.js";
2
+ export * from "./constants.js";
3
+ export * from "./utils.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,5 @@
1
+ export declare const getLiteLLMConfig: () => {
2
+ baseURL: string;
3
+ apiKey: string;
4
+ };
5
+ export declare const getDefaultLiteLLMModel: () => string;
@@ -0,0 +1,11 @@
1
+ import { getProviderModel } from "../../utils/providerConfig.js";
2
+ export const getLiteLLMConfig = () => {
3
+ return {
4
+ baseURL: process.env.LITELLM_BASE_URL || "http://localhost:4000",
5
+ apiKey: process.env.LITELLM_API_KEY || "sk-anything",
6
+ };
7
+ };
8
+ export const getDefaultLiteLLMModel = () => {
9
+ return getProviderModel("LITELLM_MODEL", "openai/gpt-4o-mini");
10
+ };
11
+ //# sourceMappingURL=utils.js.map
@@ -1,6 +1,6 @@
1
- import type { AIProviderName } from "../constants/enums.js";
2
- import type { NeurolinkCredentials, OpenAICompatBuildBodyArgs, OpenAICompatChatRequest } from "../types/index.js";
3
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
1
+ import type { AIProviderName } from "../../constants/enums.js";
2
+ import type { NeurolinkCredentials, OpenAICompatBuildBodyArgs, OpenAICompatChatRequest } from "../../types/index.js";
3
+ import { OpenAIChatCompletionsProvider } from "../openaiChatCompletionsBase.js";
4
4
  declare const isNimFieldRejection: (body: string, field: string) => boolean;
5
5
  /**
6
6
  * Strip an offending field from a JSON request body and return the rebuilt
@@ -1,10 +1,10 @@
1
- import { NvidiaNimModels } from "../constants/enums.js";
2
- import { AuthenticationError, InvalidModelError, NetworkError, ProviderError, RateLimitError, } from "../types/index.js";
3
- import { logger } from "../utils/logger.js";
4
- import { redactUrlCredentials } from "../utils/logSanitize.js";
5
- import { createNvidiaNimConfig, getProviderModel, validateApiKey, } from "../utils/providerConfig.js";
6
- import { TimeoutError } from "../utils/timeout.js";
7
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
1
+ import { NvidiaNimModels } from "../../constants/enums.js";
2
+ import { AuthenticationError, InvalidModelError, NetworkError, ProviderError, RateLimitError, } from "../../types/index.js";
3
+ import { logger } from "../../utils/logger.js";
4
+ import { redactUrlCredentials } from "../../utils/logSanitize.js";
5
+ import { createNvidiaNimConfig, getProviderModel, validateApiKey, } from "../../utils/providerConfig.js";
6
+ import { TimeoutError } from "../../utils/timeout.js";
7
+ import { OpenAIChatCompletionsProvider } from "../openaiChatCompletionsBase.js";
8
8
  /**
9
9
  * Decide whether a NIM 400 response body is a rejection of the named
10
10
  * field (as opposed to an unrelated 400 that happens to mention the
@@ -285,4 +285,4 @@ export class NvidiaNimProvider extends OpenAIChatCompletionsProvider {
285
285
  }
286
286
  // Exported for test suites that probe NIM's 400-retry behaviour directly.
287
287
  export { isNimFieldRejection, stripFieldFromJsonBody };
288
- //# sourceMappingURL=nvidiaNim.js.map
288
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ export declare const NVIDIA_NIM_DEFAULT_BASE_URL = "https://integrate.api.nvidia.com/v1";
@@ -0,0 +1,2 @@
1
+ export const NVIDIA_NIM_DEFAULT_BASE_URL = "https://integrate.api.nvidia.com/v1";
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,3 @@
1
+ export * from "./client.js";
2
+ export * from "./constants.js";
3
+ export * from "./utils.js";
@@ -0,0 +1,4 @@
1
+ export * from "./client.js";
2
+ export * from "./constants.js";
3
+ export * from "./utils.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,9 @@
1
+ import type { NvidiaNimExtraBody } from "../../types/index.js";
2
+ export declare const makeLoggingFetch: (provider: string) => typeof fetch;
3
+ export declare const envInt: (k: string) => number | undefined;
4
+ export declare const envFloat: (k: string) => number | undefined;
5
+ export declare const buildNvidiaNimExtraBody: (thinkingEnabled: boolean, maxTokens: number | undefined) => NvidiaNimExtraBody;
6
+ export declare const stripReasoningBudget: (body: NvidiaNimExtraBody) => NvidiaNimExtraBody;
7
+ export declare const stripChatTemplate: (body: NvidiaNimExtraBody) => NvidiaNimExtraBody;
8
+ export declare const getNimApiKey: () => string;
9
+ export declare const getDefaultNimModel: () => string;
@@ -0,0 +1,101 @@
1
+ import { NvidiaNimModels } from "../../constants/enums.js";
2
+ import { createProxyFetch, maskProxyUrl } from "../../proxy/proxyFetch.js";
3
+ import { logger } from "../../utils/logger.js";
4
+ import { createNvidiaNimConfig, getProviderModel, validateApiKey, } from "../../utils/providerConfig.js";
5
+ export const makeLoggingFetch = (provider) => {
6
+ const base = createProxyFetch();
7
+ return (async (input, init) => {
8
+ const url = typeof input === "string"
9
+ ? input
10
+ : input instanceof URL
11
+ ? input.toString()
12
+ : input.url;
13
+ const reqSize = init?.body && typeof init.body === "string" ? init.body.length : 0;
14
+ const response = await base(input, init);
15
+ if (!response.ok) {
16
+ const safeUrl = maskProxyUrl(url) ?? "<redacted>";
17
+ if (process.env.NEUROLINK_DEBUG_HTTP === "1") {
18
+ const clone = response.clone();
19
+ const body = await clone.text().catch(() => "<unreadable>");
20
+ logger.warn(`[${provider}] upstream ${response.status}`, {
21
+ url: safeUrl,
22
+ body: body.slice(0, 800),
23
+ reqSize,
24
+ });
25
+ }
26
+ else {
27
+ logger.warn(`[${provider}] upstream ${response.status} url=${safeUrl} reqSize=${reqSize}`);
28
+ }
29
+ }
30
+ return response;
31
+ });
32
+ };
33
+ export const envInt = (k) => {
34
+ const v = process.env[k];
35
+ if (!v) {
36
+ return undefined;
37
+ }
38
+ const parsed = Number.parseInt(v, 10);
39
+ return Number.isFinite(parsed) ? parsed : undefined;
40
+ };
41
+ export const envFloat = (k) => {
42
+ const v = process.env[k];
43
+ if (!v) {
44
+ return undefined;
45
+ }
46
+ const parsed = Number.parseFloat(v);
47
+ return Number.isFinite(parsed) ? parsed : undefined;
48
+ };
49
+ export const buildNvidiaNimExtraBody = (thinkingEnabled, maxTokens) => {
50
+ const extra = {};
51
+ const topK = envInt("NVIDIA_NIM_TOP_K");
52
+ if (topK !== undefined && topK !== -1) {
53
+ extra.top_k = topK;
54
+ }
55
+ const minP = envFloat("NVIDIA_NIM_MIN_P");
56
+ if (minP !== undefined && minP !== 0) {
57
+ extra.min_p = minP;
58
+ }
59
+ const repPenalty = envFloat("NVIDIA_NIM_REPETITION_PENALTY");
60
+ if (repPenalty !== undefined && repPenalty !== 1) {
61
+ extra.repetition_penalty = repPenalty;
62
+ }
63
+ const minTokens = envInt("NVIDIA_NIM_MIN_TOKENS");
64
+ if (minTokens !== undefined && minTokens !== 0) {
65
+ extra.min_tokens = minTokens;
66
+ }
67
+ const chatTemplate = process.env.NVIDIA_NIM_CHAT_TEMPLATE;
68
+ if (chatTemplate) {
69
+ extra.chat_template = chatTemplate;
70
+ }
71
+ if (thinkingEnabled) {
72
+ extra.chat_template_kwargs = {
73
+ thinking: true,
74
+ enable_thinking: true,
75
+ ...(maxTokens ? { reasoning_budget: maxTokens } : {}),
76
+ };
77
+ }
78
+ return extra;
79
+ };
80
+ export const stripReasoningBudget = (body) => {
81
+ const cloned = { ...body };
82
+ if (cloned.chat_template_kwargs) {
83
+ const { reasoning_budget: _ignored, ...rest } = cloned.chat_template_kwargs;
84
+ cloned.chat_template_kwargs = rest;
85
+ if (Object.keys(cloned.chat_template_kwargs).length === 0) {
86
+ delete cloned.chat_template_kwargs;
87
+ }
88
+ }
89
+ return cloned;
90
+ };
91
+ export const stripChatTemplate = (body) => {
92
+ const { chat_template: _ignored, ...rest } = body;
93
+ return rest;
94
+ };
95
+ export const getNimApiKey = () => {
96
+ return validateApiKey(createNvidiaNimConfig());
97
+ };
98
+ export const getDefaultNimModel = () => {
99
+ return getProviderModel("NVIDIA_NIM_MODEL", NvidiaNimModels.LLAMA_3_3_70B_INSTRUCT);
100
+ };
101
+ //# sourceMappingURL=utils.js.map
@@ -1,6 +1,6 @@
1
- import type { AIProviderName } from "../constants/enums.js";
2
- import type { NeurolinkCredentials, StreamOptions, TextGenerationOptions } from "../types/index.js";
3
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
1
+ import type { AIProviderName } from "../../constants/enums.js";
2
+ import type { NeurolinkCredentials, StreamOptions, TextGenerationOptions } from "../../types/index.js";
3
+ import { OpenAIChatCompletionsProvider } from "../openaiChatCompletionsBase.js";
4
4
  /**
5
5
  * Ollama Provider — direct HTTP, no AI SDK.
6
6
  *
@@ -1,12 +1,12 @@
1
- import { OllamaModels } from "../constants/enums.js";
2
- import { modelConfig } from "../core/modelConfiguration.js";
3
- import { createProxyFetch } from "../proxy/proxyFetch.js";
4
- import { InvalidModelError, NetworkError, ProviderError, } from "../types/index.js";
5
- import { logger } from "../utils/logger.js";
6
- import { redactUrlCredentials } from "../utils/logSanitize.js";
7
- import { createTimeoutController, parseTimeout, TimeoutError, } from "../utils/timeout.js";
8
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
9
- import { stripTrailingSlash } from "./openaiChatCompletionsClient.js";
1
+ import { modelConfig } from "../../core/modelConfiguration.js";
2
+ import { createProxyFetch } from "../../proxy/proxyFetch.js";
3
+ import { InvalidModelError, NetworkError, ProviderError, } from "../../types/index.js";
4
+ import { logger } from "../../utils/logger.js";
5
+ import { redactUrlCredentials } from "../../utils/logSanitize.js";
6
+ import { createTimeoutController, parseTimeout, TimeoutError, } from "../../utils/timeout.js";
7
+ import { OpenAIChatCompletionsProvider } from "../openaiChatCompletionsBase.js";
8
+ import { stripTrailingSlash } from "../openaiChatCompletionsClient.js";
9
+ import { DEFAULT_OLLAMA_MODEL } from "./constants.js";
10
10
  // Ollama serves its OpenAI-compatible surface under `/v1` (/v1/chat/completions,
11
11
  // /v1/models, /v1/embeddings). The base client appends `/chat/completions` to
12
12
  // config.baseURL, so the base URL must already carry the `/v1` suffix.
@@ -15,10 +15,6 @@ const OLLAMA_DEFAULT_BASE_URL = "http://localhost:11434/v1";
15
15
  // requires a non-empty apiKey. A real key (OLLAMA_API_KEY) is only needed for
16
16
  // Ollama Cloud / an auth-proxying reverse proxy.
17
17
  const OLLAMA_PLACEHOLDER_KEY = "ollama";
18
- // Default model must match the registry default (providerRegistry.ts advertises
19
- // `OllamaModels.LLAMA3_2_LATEST`) so getConfiguration()/resolveModelName() agree
20
- // with what the registry reports.
21
- const DEFAULT_OLLAMA_MODEL = OllamaModels.LLAMA3_2_LATEST;
22
18
  const FALLBACK_OLLAMA_MODEL = "llama3.1:8b";
23
19
  const DEFAULT_EMBEDDING_MODEL = "nomic-embed-text";
24
20
  const EMBEDDINGS_TIMEOUT_MS = 30_000;
@@ -291,3 +287,4 @@ export class OllamaProvider extends OpenAIChatCompletionsProvider {
291
287
  }
292
288
  }
293
289
  }
290
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1,4 @@
1
+ import { OllamaModels } from "../../constants/enums.js";
2
+ export declare const DEFAULT_OLLAMA_MODEL = OllamaModels.LLAMA3_2_LATEST;
3
+ export declare const FALLBACK_OLLAMA_MODEL = "llama3.2:latest";
4
+ export declare const proxyFetch: typeof fetch;
@@ -0,0 +1,6 @@
1
+ import { OllamaModels } from "../../constants/enums.js";
2
+ import { createProxyFetch } from "../../proxy/proxyFetch.js";
3
+ export const DEFAULT_OLLAMA_MODEL = OllamaModels.LLAMA3_2_LATEST;
4
+ export const FALLBACK_OLLAMA_MODEL = "llama3.2:latest";
5
+ export const proxyFetch = createProxyFetch();
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,3 @@
1
+ export * from "./client.js";
2
+ export * from "./constants.js";
3
+ export * from "./utils.js";
@@ -0,0 +1,4 @@
1
+ export * from "./client.js";
2
+ export * from "./constants.js";
3
+ export * from "./utils.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,8 @@
1
+ import type { OllamaHttpError } from "../../types/index.js";
2
+ export declare function isOllamaHttpError(error: unknown): error is OllamaHttpError;
3
+ export declare function createOllamaHttpError(response: Response): Promise<OllamaHttpError>;
4
+ export declare const getOllamaBaseUrl: () => string;
5
+ export declare const isOpenAICompatibleMode: () => boolean;
6
+ export declare const createAbortSignalWithTimeout: (timeoutMs: number) => AbortSignal;
7
+ export declare const getDefaultOllamaModel: () => string;
8
+ export declare const getOllamaTimeout: () => number;
@@ -0,0 +1,43 @@
1
+ import { ProviderError } from "../../types/index.js";
2
+ import { DEFAULT_OLLAMA_MODEL } from "./constants.js";
3
+ export function isOllamaHttpError(error) {
4
+ return (error instanceof ProviderError &&
5
+ typeof error.statusCode === "number" &&
6
+ typeof error.responseBody === "string");
7
+ }
8
+ export async function createOllamaHttpError(response) {
9
+ let responseBody = "";
10
+ try {
11
+ responseBody = (await response.text()).trim();
12
+ }
13
+ catch {
14
+ // Ignore unreadable bodies
15
+ }
16
+ const suffix = responseBody ? ` - ${responseBody.slice(0, 500)}` : "";
17
+ const error = new ProviderError(`Ollama API error: ${response.status} ${response.statusText}${suffix}`, "ollama");
18
+ error.statusCode = response.status;
19
+ error.statusText = response.statusText;
20
+ error.responseBody = responseBody;
21
+ return error;
22
+ }
23
+ export const getOllamaBaseUrl = () => {
24
+ return process.env.OLLAMA_BASE_URL || "http://localhost:11434";
25
+ };
26
+ export const isOpenAICompatibleMode = () => {
27
+ return process.env.OLLAMA_OPENAI_COMPATIBLE === "true";
28
+ };
29
+ export const createAbortSignalWithTimeout = (timeoutMs) => {
30
+ const controller = new AbortController();
31
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
32
+ controller.signal.addEventListener("abort", () => {
33
+ clearTimeout(timeoutId);
34
+ });
35
+ return controller.signal;
36
+ };
37
+ export const getDefaultOllamaModel = () => {
38
+ return process.env.OLLAMA_MODEL || DEFAULT_OLLAMA_MODEL;
39
+ };
40
+ export const getOllamaTimeout = () => {
41
+ return parseInt(process.env.OLLAMA_TIMEOUT || "240000", 10);
42
+ };
43
+ //# sourceMappingURL=utils.js.map
@@ -1,6 +1,6 @@
1
- import type { AIProviderName } from "../constants/enums.js";
2
- import type { EnhancedGenerateResult, NeurolinkCredentials, OpenAICompatStreamLifecycleListeners, TextGenerationOptions } from "../types/index.js";
3
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
1
+ import type { AIProviderName } from "../../constants/enums.js";
2
+ import type { EnhancedGenerateResult, NeurolinkCredentials, OpenAICompatStreamLifecycleListeners, TextGenerationOptions } from "../../types/index.js";
3
+ import { OpenAIChatCompletionsProvider } from "../openaiChatCompletionsBase.js";
4
4
  /**
5
5
  * OpenAI Provider — direct HTTP, no AI SDK.
6
6
  *
@@ -1,16 +1,16 @@
1
1
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
2
- import { AIProviderName as AIProviderNameEnum } from "../constants/enums.js";
3
- import { createProxyFetch } from "../proxy/proxyFetch.js";
4
- import { AuthenticationError, InvalidModelError, NetworkError, ProviderError, RateLimitError, } from "../types/index.js";
5
- import { logger } from "../utils/logger.js";
6
- import { redactUrlCredentials } from "../utils/logSanitize.js";
7
- import { calculateCost } from "../utils/pricing.js";
8
- import { createOpenAIConfig, getProviderModel, validateApiKey, } from "../utils/providerConfig.js";
9
- import { MAX_IMAGE_BYTES, readBoundedBuffer } from "../utils/sizeGuard.js";
10
- import { assertSafeUrl } from "../utils/ssrfGuard.js";
11
- import { createTimeoutController, TimeoutError } from "../utils/timeout.js";
12
- import { stripTrailingSlash } from "./openaiChatCompletionsClient.js";
13
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
2
+ import { AIProviderName as AIProviderNameEnum } from "../../constants/enums.js";
3
+ import { createProxyFetch } from "../../proxy/proxyFetch.js";
4
+ import { AuthenticationError, InvalidModelError, NetworkError, ProviderError, RateLimitError, } from "../../types/index.js";
5
+ import { logger } from "../../utils/logger.js";
6
+ import { redactUrlCredentials } from "../../utils/logSanitize.js";
7
+ import { calculateCost } from "../../utils/pricing.js";
8
+ import { createOpenAIConfig, getProviderModel, validateApiKey, } from "../../utils/providerConfig.js";
9
+ import { MAX_IMAGE_BYTES, readBoundedBuffer } from "../../utils/sizeGuard.js";
10
+ import { assertSafeUrl } from "../../utils/ssrfGuard.js";
11
+ import { createTimeoutController, TimeoutError } from "../../utils/timeout.js";
12
+ import { stripTrailingSlash } from "../openaiChatCompletionsClient.js";
13
+ import { OpenAIChatCompletionsProvider } from "../openaiChatCompletionsBase.js";
14
14
  const OPENAI_DEFAULT_BASE_URL = "https://api.openai.com/v1";
15
15
  /**
16
16
  * Resolve the effective OpenAI base URL from optional credential / env
@@ -503,4 +503,4 @@ export class OpenAIProvider extends OpenAIChatCompletionsProvider {
503
503
  return "1024x1024";
504
504
  }
505
505
  }
506
- //# sourceMappingURL=openAI.js.map
506
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ export declare const streamTracer: import("@opentelemetry/api").Tracer;
@@ -0,0 +1,3 @@
1
+ import { trace } from "@opentelemetry/api";
2
+ export const streamTracer = trace.getTracer("neurolink.provider.openai");
3
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,3 @@
1
+ export * from "./client.js";
2
+ export * from "./constants.js";
3
+ export * from "./utils.js";
@@ -0,0 +1,4 @@
1
+ export * from "./client.js";
2
+ export * from "./constants.js";
3
+ export * from "./utils.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ export declare const getOpenAIApiKey: () => string;
2
+ export declare const getOpenAIModel: () => string;
@@ -0,0 +1,8 @@
1
+ import { createOpenAIConfig, getProviderModel, validateApiKey, } from "../../utils/providerConfig.js";
2
+ export const getOpenAIApiKey = () => {
3
+ return validateApiKey(createOpenAIConfig());
4
+ };
5
+ export const getOpenAIModel = () => {
6
+ return getProviderModel("OPENAI_MODEL", "gpt-4o");
7
+ };
8
+ //# sourceMappingURL=utils.js.map
@@ -1,6 +1,6 @@
1
- import { AIProviderName } from "../constants/enums.js";
2
- import type { NeurolinkCredentials } from "../types/index.js";
3
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
1
+ import { AIProviderName } from "../../constants/enums.js";
2
+ import type { NeurolinkCredentials } from "../../types/index.js";
3
+ import { OpenAIChatCompletionsProvider } from "../openaiChatCompletionsBase.js";
4
4
  /**
5
5
  * OpenRouter Provider — direct HTTP, no AI SDK.
6
6
  *
@@ -1,13 +1,13 @@
1
- import { AIProviderName } from "../constants/enums.js";
2
- import { AuthenticationError, InvalidModelError, NetworkError, ProviderError, RateLimitError, } from "../types/index.js";
3
- import { createProxyFetch } from "../proxy/proxyFetch.js";
4
- import { isAbortError } from "../utils/errorHandling.js";
5
- import { logger } from "../utils/logger.js";
6
- import { redactUrlCredentials } from "../utils/logSanitize.js";
7
- import { getProviderModel } from "../utils/providerConfig.js";
8
- import { TimeoutError } from "../utils/timeout.js";
9
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
10
- import { stripTrailingSlash } from "./openaiChatCompletionsClient.js";
1
+ import { AIProviderName } from "../../constants/enums.js";
2
+ import { AuthenticationError, InvalidModelError, NetworkError, ProviderError, RateLimitError, } from "../../types/index.js";
3
+ import { createProxyFetch } from "../../proxy/proxyFetch.js";
4
+ import { isAbortError } from "../../utils/errorHandling.js";
5
+ import { logger } from "../../utils/logger.js";
6
+ import { redactUrlCredentials } from "../../utils/logSanitize.js";
7
+ import { TimeoutError } from "../../utils/timeout.js";
8
+ import { OpenAIChatCompletionsProvider } from "../openaiChatCompletionsBase.js";
9
+ import { stripTrailingSlash } from "../openaiChatCompletionsClient.js";
10
+ import { getDefaultOpenRouterModel } from "./utils.js";
11
11
  // OpenRouter's OpenAI-compatible gateway. `${baseURL}/chat/completions` and
12
12
  // `${baseURL}/models` both resolve correctly off this root.
13
13
  const OPENROUTER_DEFAULT_BASE_URL = "https://openrouter.ai/api/v1";
@@ -20,23 +20,6 @@ const getOpenRouterApiKey = () => {
20
20
  }
21
21
  return apiKey;
22
22
  };
23
- /**
24
- * Returns the default model name for OpenRouter.
25
- *
26
- * OpenRouter uses a 'provider/model' format for model names (e.g.
27
- * 'anthropic/claude-sonnet-4.5', 'openai/gpt-4o', 'google/gemini-2.5-flash').
28
- *
29
- * The previous default `anthropic/claude-3-5-sonnet` was retired by OpenRouter
30
- * in late 2025 and now returns "No endpoints found for model" for every
31
- * caller. Default bumped to the current Anthropic mainline (Claude Sonnet
32
- * 4.5) so callers without an `OPENROUTER_MODEL` env var don't hit a dead
33
- * model. Must stay aligned with the registry default in
34
- * `src/lib/factories/providerRegistry.ts` and `PROVIDER_DEFAULTS` in
35
- * `src/lib/utils/modelChoices.ts`.
36
- */
37
- const getDefaultOpenRouterModel = () => {
38
- return getProviderModel("OPENROUTER_MODEL", "anthropic/claude-sonnet-4.5");
39
- };
40
23
  /**
41
24
  * OpenRouter Provider — direct HTTP, no AI SDK.
42
25
  *
@@ -276,8 +259,8 @@ export class OpenRouterProvider extends OpenAIChatCompletionsProvider {
276
259
  });
277
260
  }
278
261
  // Fallback to hardcoded list if API fetch fails. Aligned with
279
- // `getDefaultOpenRouterModel()` — `anthropic/claude-3-5-sonnet` was
280
- // retired by OpenRouter late 2025 and would return a dead model here.
262
+ // `getDefaultOpenRouterModel()` — `anthropic/claude-sonnet-4.5` is the
263
+ // current default and avoids the retired model.
281
264
  const fallbackModels = [
282
265
  // Anthropic Claude models
283
266
  "anthropic/claude-3.7-sonnet",
@@ -410,3 +393,4 @@ export class OpenRouterProvider extends OpenAIChatCompletionsProvider {
410
393
  }
411
394
  }
412
395
  }
396
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ export declare const MODELS_DISCOVERY_TIMEOUT_MS = 5000;
@@ -0,0 +1,2 @@
1
+ export const MODELS_DISCOVERY_TIMEOUT_MS = 5000;
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,3 @@
1
+ export * from "./client.js";
2
+ export * from "./constants.js";
3
+ export * from "./utils.js";