modelfusion 0.109.0 → 0.111.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/core/api/ApiFacade.cjs +20 -0
  3. package/core/api/ApiFacade.d.ts +4 -0
  4. package/core/api/ApiFacade.js +4 -0
  5. package/core/api/BaseUrlApiConfiguration.cjs +47 -5
  6. package/core/api/BaseUrlApiConfiguration.d.ts +23 -6
  7. package/core/api/BaseUrlApiConfiguration.js +45 -4
  8. package/core/api/BaseUrlApiConfiguration.test.cjs +11 -0
  9. package/core/api/BaseUrlApiConfiguration.test.d.ts +1 -0
  10. package/core/api/BaseUrlApiConfiguration.test.js +9 -0
  11. package/core/api/callWithRetryAndThrottle.cjs +3 -3
  12. package/core/api/callWithRetryAndThrottle.js +3 -3
  13. package/core/api/index.cjs +15 -2
  14. package/core/api/index.d.ts +2 -2
  15. package/core/api/index.js +2 -2
  16. package/core/api/postToApi.cjs +28 -5
  17. package/core/api/postToApi.d.ts +5 -4
  18. package/core/api/postToApi.js +26 -4
  19. package/core/api/throttleOff.cjs +8 -0
  20. package/core/api/throttleOff.d.ts +5 -0
  21. package/core/api/throttleOff.js +4 -0
  22. package/{extension → internal}/index.cjs +2 -7
  23. package/{extension → internal}/index.d.ts +1 -1
  24. package/{extension → internal}/index.js +1 -1
  25. package/model-function/generate-structure/generateStructure.d.ts +1 -1
  26. package/model-provider/anthropic/AnthropicApiConfiguration.cjs +14 -6
  27. package/model-provider/anthropic/AnthropicApiConfiguration.d.ts +7 -8
  28. package/model-provider/anthropic/AnthropicApiConfiguration.js +15 -7
  29. package/model-provider/anthropic/AnthropicError.cjs +7 -27
  30. package/model-provider/anthropic/AnthropicError.d.ts +21 -16
  31. package/model-provider/anthropic/AnthropicError.js +7 -25
  32. package/model-provider/anthropic/AnthropicFacade.cjs +10 -1
  33. package/model-provider/anthropic/AnthropicFacade.d.ts +9 -0
  34. package/model-provider/anthropic/AnthropicFacade.js +8 -0
  35. package/model-provider/anthropic/AnthropicTextGenerationModel.cjs +22 -24
  36. package/model-provider/anthropic/AnthropicTextGenerationModel.js +23 -25
  37. package/model-provider/anthropic/index.cjs +1 -4
  38. package/model-provider/anthropic/index.d.ts +1 -1
  39. package/model-provider/anthropic/index.js +0 -1
  40. package/model-provider/automatic1111/Automatic1111ApiConfiguration.cjs +12 -4
  41. package/model-provider/automatic1111/Automatic1111ApiConfiguration.d.ts +3 -3
  42. package/model-provider/automatic1111/Automatic1111ApiConfiguration.js +12 -4
  43. package/model-provider/automatic1111/Automatic1111Error.cjs +3 -3
  44. package/model-provider/automatic1111/Automatic1111Error.d.ts +13 -3
  45. package/model-provider/automatic1111/Automatic1111Error.js +4 -4
  46. package/model-provider/automatic1111/Automatic1111Facade.cjs +9 -9
  47. package/model-provider/automatic1111/Automatic1111Facade.d.ts +6 -6
  48. package/model-provider/automatic1111/Automatic1111Facade.js +7 -7
  49. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.cjs +11 -7
  50. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.js +11 -7
  51. package/model-provider/cohere/CohereApiConfiguration.cjs +14 -6
  52. package/model-provider/cohere/CohereApiConfiguration.d.ts +7 -8
  53. package/model-provider/cohere/CohereApiConfiguration.js +15 -7
  54. package/model-provider/cohere/CohereError.cjs +8 -43
  55. package/model-provider/cohere/CohereError.d.ts +9 -16
  56. package/model-provider/cohere/CohereError.js +8 -41
  57. package/model-provider/cohere/CohereFacade.cjs +12 -3
  58. package/model-provider/cohere/CohereFacade.d.ts +11 -2
  59. package/model-provider/cohere/CohereFacade.js +10 -2
  60. package/model-provider/cohere/CohereTextEmbeddingModel.cjs +18 -22
  61. package/model-provider/cohere/CohereTextEmbeddingModel.js +18 -22
  62. package/model-provider/cohere/CohereTextGenerationModel.cjs +31 -39
  63. package/model-provider/cohere/CohereTextGenerationModel.d.ts +110 -8
  64. package/model-provider/cohere/CohereTextGenerationModel.js +31 -39
  65. package/model-provider/cohere/CohereTokenizer.cjs +32 -41
  66. package/model-provider/cohere/CohereTokenizer.d.ts +2 -2
  67. package/model-provider/cohere/CohereTokenizer.js +32 -41
  68. package/model-provider/cohere/index.cjs +1 -3
  69. package/model-provider/cohere/index.d.ts +1 -1
  70. package/model-provider/cohere/index.js +0 -1
  71. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.cjs +14 -6
  72. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.d.ts +7 -8
  73. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.js +15 -7
  74. package/model-provider/elevenlabs/ElevenLabsFacade.cjs +10 -1
  75. package/model-provider/elevenlabs/ElevenLabsFacade.d.ts +9 -0
  76. package/model-provider/elevenlabs/ElevenLabsFacade.js +8 -0
  77. package/model-provider/elevenlabs/ElevenLabsSpeechModel.cjs +42 -53
  78. package/model-provider/elevenlabs/ElevenLabsSpeechModel.js +44 -55
  79. package/model-provider/huggingface/HuggingFaceApiConfiguration.cjs +14 -6
  80. package/model-provider/huggingface/HuggingFaceApiConfiguration.d.ts +7 -8
  81. package/model-provider/huggingface/HuggingFaceApiConfiguration.js +15 -7
  82. package/model-provider/huggingface/HuggingFaceError.cjs +7 -29
  83. package/model-provider/huggingface/HuggingFaceError.d.ts +9 -16
  84. package/model-provider/huggingface/HuggingFaceError.js +7 -27
  85. package/model-provider/huggingface/HuggingFaceFacade.cjs +10 -1
  86. package/model-provider/huggingface/HuggingFaceFacade.d.ts +9 -0
  87. package/model-provider/huggingface/HuggingFaceFacade.js +8 -0
  88. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.cjs +17 -27
  89. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.js +17 -27
  90. package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +22 -23
  91. package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +22 -23
  92. package/model-provider/huggingface/index.cjs +1 -3
  93. package/model-provider/huggingface/index.d.ts +1 -1
  94. package/model-provider/huggingface/index.js +0 -1
  95. package/model-provider/llamacpp/LlamaCppApiConfiguration.cjs +13 -6
  96. package/model-provider/llamacpp/LlamaCppApiConfiguration.d.ts +7 -9
  97. package/model-provider/llamacpp/LlamaCppApiConfiguration.js +14 -7
  98. package/model-provider/llamacpp/LlamaCppCompletionModel.cjs +4 -4
  99. package/model-provider/llamacpp/LlamaCppCompletionModel.d.ts +173 -5
  100. package/model-provider/llamacpp/LlamaCppCompletionModel.js +4 -4
  101. package/model-provider/llamacpp/LlamaCppError.cjs +7 -27
  102. package/model-provider/llamacpp/LlamaCppError.d.ts +9 -16
  103. package/model-provider/llamacpp/LlamaCppError.js +7 -25
  104. package/model-provider/llamacpp/LlamaCppFacade.cjs +10 -2
  105. package/model-provider/llamacpp/LlamaCppFacade.d.ts +8 -1
  106. package/model-provider/llamacpp/LlamaCppFacade.js +8 -1
  107. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.cjs +10 -14
  108. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.js +10 -14
  109. package/model-provider/llamacpp/LlamaCppTokenizer.cjs +14 -18
  110. package/model-provider/llamacpp/LlamaCppTokenizer.js +14 -18
  111. package/model-provider/llamacpp/index.cjs +1 -3
  112. package/model-provider/llamacpp/index.d.ts +1 -1
  113. package/model-provider/llamacpp/index.js +0 -1
  114. package/model-provider/lmnt/LmntApiConfiguration.cjs +14 -6
  115. package/model-provider/lmnt/LmntApiConfiguration.d.ts +7 -8
  116. package/model-provider/lmnt/LmntApiConfiguration.js +15 -7
  117. package/model-provider/lmnt/LmntFacade.cjs +11 -2
  118. package/model-provider/lmnt/LmntFacade.d.ts +10 -1
  119. package/model-provider/lmnt/LmntFacade.js +9 -1
  120. package/model-provider/lmnt/LmntSpeechModel.cjs +53 -41
  121. package/model-provider/lmnt/LmntSpeechModel.d.ts +51 -3
  122. package/model-provider/lmnt/LmntSpeechModel.js +54 -42
  123. package/model-provider/mistral/MistralApiConfiguration.cjs +14 -6
  124. package/model-provider/mistral/MistralApiConfiguration.d.ts +9 -11
  125. package/model-provider/mistral/MistralApiConfiguration.js +15 -7
  126. package/model-provider/mistral/MistralChatModel.cjs +4 -4
  127. package/model-provider/mistral/MistralChatModel.d.ts +48 -3
  128. package/model-provider/mistral/MistralChatModel.js +5 -5
  129. package/model-provider/mistral/MistralError.cjs +3 -3
  130. package/model-provider/mistral/MistralError.d.ts +15 -3
  131. package/model-provider/mistral/MistralError.js +4 -4
  132. package/model-provider/mistral/MistralFacade.cjs +5 -1
  133. package/model-provider/mistral/MistralFacade.d.ts +10 -3
  134. package/model-provider/mistral/MistralFacade.js +6 -2
  135. package/model-provider/mistral/MistralTextEmbeddingModel.cjs +2 -1
  136. package/model-provider/mistral/MistralTextEmbeddingModel.js +2 -1
  137. package/model-provider/ollama/OllamaApiConfiguration.cjs +13 -6
  138. package/model-provider/ollama/OllamaApiConfiguration.d.ts +7 -10
  139. package/model-provider/ollama/OllamaApiConfiguration.js +14 -7
  140. package/model-provider/ollama/OllamaChatModel.cjs +4 -4
  141. package/model-provider/ollama/OllamaChatModel.d.ts +46 -5
  142. package/model-provider/ollama/OllamaChatModel.js +5 -5
  143. package/model-provider/ollama/OllamaCompletionModel.cjs +4 -4
  144. package/model-provider/ollama/OllamaCompletionModel.d.ts +40 -5
  145. package/model-provider/ollama/OllamaCompletionModel.js +5 -5
  146. package/model-provider/ollama/OllamaError.cjs +3 -3
  147. package/model-provider/ollama/OllamaError.d.ts +7 -3
  148. package/model-provider/ollama/OllamaError.js +4 -4
  149. package/model-provider/ollama/OllamaFacade.cjs +6 -2
  150. package/model-provider/ollama/OllamaFacade.d.ts +8 -3
  151. package/model-provider/ollama/OllamaFacade.js +6 -2
  152. package/model-provider/ollama/OllamaTextEmbeddingModel.cjs +15 -16
  153. package/model-provider/ollama/OllamaTextEmbeddingModel.js +15 -16
  154. package/model-provider/openai/AbstractOpenAIChatModel.cjs +4 -4
  155. package/model-provider/openai/AbstractOpenAIChatModel.d.ts +148 -2
  156. package/model-provider/openai/AbstractOpenAIChatModel.js +4 -4
  157. package/model-provider/openai/AbstractOpenAICompletionModel.cjs +30 -32
  158. package/model-provider/openai/AbstractOpenAICompletionModel.js +30 -32
  159. package/model-provider/openai/AzureOpenAIApiConfiguration.d.ts +9 -8
  160. package/model-provider/openai/OpenAIApiConfiguration.cjs +14 -6
  161. package/model-provider/openai/OpenAIApiConfiguration.d.ts +7 -8
  162. package/model-provider/openai/OpenAIApiConfiguration.js +15 -7
  163. package/model-provider/openai/OpenAICompletionModel.cjs +3 -91
  164. package/model-provider/openai/OpenAICompletionModel.d.ts +3 -71
  165. package/model-provider/openai/OpenAICompletionModel.js +3 -91
  166. package/model-provider/openai/OpenAIError.cjs +8 -8
  167. package/model-provider/openai/OpenAIError.d.ts +27 -3
  168. package/model-provider/openai/OpenAIError.js +9 -9
  169. package/model-provider/openai/OpenAIFacade.cjs +23 -2
  170. package/model-provider/openai/OpenAIFacade.d.ts +20 -2
  171. package/model-provider/openai/OpenAIFacade.js +20 -1
  172. package/model-provider/openai/OpenAIImageGenerationModel.cjs +20 -21
  173. package/model-provider/openai/OpenAIImageGenerationModel.d.ts +1 -1
  174. package/model-provider/openai/OpenAIImageGenerationModel.js +20 -21
  175. package/model-provider/openai/OpenAISpeechModel.cjs +17 -22
  176. package/model-provider/openai/OpenAISpeechModel.js +17 -22
  177. package/model-provider/openai/OpenAITextEmbeddingModel.cjs +18 -23
  178. package/model-provider/openai/OpenAITextEmbeddingModel.js +18 -23
  179. package/model-provider/openai/OpenAITranscriptionModel.cjs +42 -48
  180. package/model-provider/openai/OpenAITranscriptionModel.d.ts +14 -10
  181. package/model-provider/openai/OpenAITranscriptionModel.js +42 -48
  182. package/model-provider/openai/TikTokenTokenizer.cjs +0 -18
  183. package/model-provider/openai/TikTokenTokenizer.d.ts +3 -3
  184. package/model-provider/openai/TikTokenTokenizer.js +0 -18
  185. package/model-provider/openai-compatible/FireworksAIApiConfiguration.cjs +11 -7
  186. package/model-provider/openai-compatible/FireworksAIApiConfiguration.d.ts +4 -9
  187. package/model-provider/openai-compatible/FireworksAIApiConfiguration.js +12 -8
  188. package/model-provider/openai-compatible/OpenAICompatibleFacade.cjs +25 -1
  189. package/model-provider/openai-compatible/OpenAICompatibleFacade.d.ts +23 -0
  190. package/model-provider/openai-compatible/OpenAICompatibleFacade.js +22 -0
  191. package/model-provider/openai-compatible/TogetherAIApiConfiguration.cjs +11 -7
  192. package/model-provider/openai-compatible/TogetherAIApiConfiguration.d.ts +4 -9
  193. package/model-provider/openai-compatible/TogetherAIApiConfiguration.js +12 -8
  194. package/model-provider/stability/StabilityApiConfiguration.cjs +13 -12
  195. package/model-provider/stability/StabilityApiConfiguration.d.ts +4 -4
  196. package/model-provider/stability/StabilityApiConfiguration.js +13 -12
  197. package/model-provider/stability/StabilityError.cjs +3 -3
  198. package/model-provider/stability/StabilityError.d.ts +7 -3
  199. package/model-provider/stability/StabilityError.js +4 -4
  200. package/model-provider/stability/StabilityFacade.cjs +9 -9
  201. package/model-provider/stability/StabilityFacade.d.ts +8 -8
  202. package/model-provider/stability/StabilityFacade.js +7 -7
  203. package/model-provider/stability/StabilityImageGenerationModel.cjs +2 -1
  204. package/model-provider/stability/StabilityImageGenerationModel.js +2 -1
  205. package/model-provider/whispercpp/WhisperCppApiConfiguration.cjs +13 -6
  206. package/model-provider/whispercpp/WhisperCppApiConfiguration.d.ts +7 -10
  207. package/model-provider/whispercpp/WhisperCppApiConfiguration.js +14 -7
  208. package/model-provider/whispercpp/WhisperCppFacade.cjs +9 -5
  209. package/model-provider/whispercpp/WhisperCppFacade.d.ts +7 -2
  210. package/model-provider/whispercpp/WhisperCppFacade.js +8 -4
  211. package/model-provider/whispercpp/WhisperCppTranscriptionModel.cjs +5 -2
  212. package/model-provider/whispercpp/WhisperCppTranscriptionModel.js +6 -3
  213. package/package.json +5 -5
  214. package/tool/WebSearchTool.cjs +2 -2
  215. package/tool/WebSearchTool.d.ts +1 -2
  216. package/tool/WebSearchTool.js +3 -3
  217. package/vector-index/memory/MemoryVectorIndex.cjs +2 -2
  218. package/vector-index/memory/MemoryVectorIndex.js +3 -3
  219. package/core/api/BaseUrlPartsApiConfiguration.cjs +0 -53
  220. package/core/api/BaseUrlPartsApiConfiguration.d.ts +0 -26
  221. package/core/api/BaseUrlPartsApiConfiguration.js +0 -49
  222. package/core/api/throttleUnlimitedConcurrency.cjs +0 -8
  223. package/core/api/throttleUnlimitedConcurrency.d.ts +0 -5
  224. package/core/api/throttleUnlimitedConcurrency.js +0 -4
  225. package/model-provider/elevenlabs/ElevenLabsError.cjs +0 -30
  226. package/model-provider/elevenlabs/ElevenLabsError.d.ts +0 -3
  227. package/model-provider/elevenlabs/ElevenLabsError.js +0 -26
  228. package/model-provider/lmnt/LmntError.cjs +0 -30
  229. package/model-provider/lmnt/LmntError.d.ts +0 -3
  230. package/model-provider/lmnt/LmntError.js +0 -26
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.111.0 - 2024-01-01
4
+
5
+ Reworked API configuration support.
6
+
7
+ ### Added
8
+
9
+ - All providers now have an `Api` function that you can call to create custom API configurations. The base URL set up is more flexible and allows you to override parts of the base URL selectively.
10
+ - `api` namespace with retry and throttle configurations
11
+
12
+ ### Changed
13
+
14
+ - Updated Cohere models.
15
+ - Updated LMNT API calls to LMNT `v1` API.
16
+ - **breaking change**: Renamed `throttleUnlimitedConcurrency` to `throttleOff`.
17
+
18
+ ## v0.110.0 - 2023-12-30
19
+
20
+ ### Changed
21
+
22
+ - **breaking change**: renamed `modelfusion/extension` to `modelfusion/internal`. This requires updating `modelfusion-experimental` (if used) to `v0.3.0`
23
+
24
+ ### Removed
25
+
26
+ - Deprecated OpenAI completion models that will be deactivated on January 4, 2024.
27
+
3
28
  ## v0.109.0 - 2023-12-30
4
29
 
5
30
  ### Added
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./retryNever.cjs"), exports);
18
+ __exportStar(require("./retryWithExponentialBackoff.cjs"), exports);
19
+ __exportStar(require("./throttleMaxConcurrency.cjs"), exports);
20
+ __exportStar(require("./throttleOff.cjs"), exports);
@@ -0,0 +1,4 @@
1
+ export * from "./retryNever.js";
2
+ export * from "./retryWithExponentialBackoff.js";
3
+ export * from "./throttleMaxConcurrency.js";
4
+ export * from "./throttleOff.js";
@@ -0,0 +1,4 @@
1
+ export * from "./retryNever.js";
2
+ export * from "./retryWithExponentialBackoff.js";
3
+ export * from "./throttleMaxConcurrency.js";
4
+ export * from "./throttleOff.js";
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseUrlApiConfiguration = void 0;
3
+ exports.BaseUrlApiConfigurationWithDefaults = exports.BaseUrlApiConfiguration = void 0;
4
4
  const AbstractApiConfiguration_js_1 = require("./AbstractApiConfiguration.cjs");
5
5
  /**
6
- * An API configuration that uses a base URL and a set of headers.
6
+ * An API configuration that uses different URL parts and a set of headers.
7
7
  *
8
8
  * You can use it to configure custom APIs for models, e.g. your own internal OpenAI proxy with custom headers.
9
9
  */
@@ -22,11 +22,53 @@ class BaseUrlApiConfiguration extends AbstractApiConfiguration_js_1.AbstractApiC
22
22
  writable: true,
23
23
  value: void 0
24
24
  });
25
- this.baseUrl = baseUrl;
26
- this.headers = headers;
25
+ this.baseUrl = typeof baseUrl == "string" ? parseBaseUrl(baseUrl) : baseUrl;
26
+ this.headers = headers ?? {};
27
27
  }
28
28
  assembleUrl(path) {
29
- return `${this.baseUrl}${path}`;
29
+ let basePath = this.baseUrl.path;
30
+ // ensure base path ends without a slash
31
+ if (basePath.endsWith("/")) {
32
+ basePath = basePath.slice(0, -1);
33
+ }
34
+ // ensure path starts with a slash
35
+ if (!path.startsWith("/")) {
36
+ path = `/${path}`;
37
+ }
38
+ return `${this.baseUrl.protocol}://${this.baseUrl.host}:${this.baseUrl.port}${basePath}${path}`;
30
39
  }
31
40
  }
32
41
  exports.BaseUrlApiConfiguration = BaseUrlApiConfiguration;
42
+ class BaseUrlApiConfigurationWithDefaults extends BaseUrlApiConfiguration {
43
+ constructor({ baseUrlDefaults, baseUrl, headers, retry, throttle, }) {
44
+ super({
45
+ baseUrl: resolveBaseUrl(baseUrl, baseUrlDefaults),
46
+ headers,
47
+ retry,
48
+ throttle,
49
+ });
50
+ }
51
+ }
52
+ exports.BaseUrlApiConfigurationWithDefaults = BaseUrlApiConfigurationWithDefaults;
53
+ function parseBaseUrl(baseUrl) {
54
+ const url = new URL(baseUrl);
55
+ return {
56
+ protocol: url.protocol.slice(0, -1), // remove trailing colon
57
+ host: url.hostname,
58
+ port: url.port,
59
+ path: url.pathname,
60
+ };
61
+ }
62
+ function resolveBaseUrl(baseUrl = {}, baseUrlDefaults) {
63
+ if (typeof baseUrl == "string") {
64
+ return baseUrl;
65
+ }
66
+ else {
67
+ return {
68
+ protocol: baseUrl.protocol ?? baseUrlDefaults.protocol,
69
+ host: baseUrl.host ?? baseUrlDefaults.host,
70
+ port: baseUrl.port ?? baseUrlDefaults.port,
71
+ path: baseUrl.path ?? baseUrlDefaults.path,
72
+ };
73
+ }
74
+ }
@@ -1,20 +1,37 @@
1
1
  import { AbstractApiConfiguration } from "./AbstractApiConfiguration.js";
2
2
  import { RetryFunction } from "./RetryFunction.js";
3
3
  import { ThrottleFunction } from "./ThrottleFunction.js";
4
- export type BaseUrlApiConfigurationOptions = {
5
- baseUrl: string;
6
- headers: Record<string, string>;
4
+ export type UrlParts = {
5
+ protocol: string;
6
+ host: string;
7
+ port: string;
8
+ path: string;
9
+ };
10
+ export type BaseUrlPartsApiConfigurationOptions = {
11
+ baseUrl: string | UrlParts;
12
+ headers?: Record<string, string>;
7
13
  retry?: RetryFunction;
8
14
  throttle?: ThrottleFunction;
9
15
  };
10
16
  /**
11
- * An API configuration that uses a base URL and a set of headers.
17
+ * An API configuration that uses different URL parts and a set of headers.
12
18
  *
13
19
  * You can use it to configure custom APIs for models, e.g. your own internal OpenAI proxy with custom headers.
14
20
  */
15
21
  export declare class BaseUrlApiConfiguration extends AbstractApiConfiguration {
16
- readonly baseUrl: string;
22
+ readonly baseUrl: UrlParts;
17
23
  readonly headers: Record<string, string>;
18
- constructor({ baseUrl, headers, retry, throttle, }: BaseUrlApiConfigurationOptions);
24
+ constructor({ baseUrl, headers, retry, throttle, }: BaseUrlPartsApiConfigurationOptions);
19
25
  assembleUrl(path: string): string;
20
26
  }
27
+ export type PartialBaseUrlPartsApiConfigurationOptions = {
28
+ baseUrl?: string | Partial<UrlParts>;
29
+ headers?: Record<string, string>;
30
+ retry?: RetryFunction;
31
+ throttle?: ThrottleFunction;
32
+ };
33
+ export declare class BaseUrlApiConfigurationWithDefaults extends BaseUrlApiConfiguration {
34
+ constructor({ baseUrlDefaults, baseUrl, headers, retry, throttle, }: {
35
+ baseUrlDefaults: UrlParts;
36
+ } & PartialBaseUrlPartsApiConfigurationOptions);
37
+ }
@@ -1,6 +1,6 @@
1
1
  import { AbstractApiConfiguration } from "./AbstractApiConfiguration.js";
2
2
  /**
3
- * An API configuration that uses a base URL and a set of headers.
3
+ * An API configuration that uses different URL parts and a set of headers.
4
4
  *
5
5
  * You can use it to configure custom APIs for models, e.g. your own internal OpenAI proxy with custom headers.
6
6
  */
@@ -19,10 +19,51 @@ export class BaseUrlApiConfiguration extends AbstractApiConfiguration {
19
19
  writable: true,
20
20
  value: void 0
21
21
  });
22
- this.baseUrl = baseUrl;
23
- this.headers = headers;
22
+ this.baseUrl = typeof baseUrl == "string" ? parseBaseUrl(baseUrl) : baseUrl;
23
+ this.headers = headers ?? {};
24
24
  }
25
25
  assembleUrl(path) {
26
- return `${this.baseUrl}${path}`;
26
+ let basePath = this.baseUrl.path;
27
+ // ensure base path ends without a slash
28
+ if (basePath.endsWith("/")) {
29
+ basePath = basePath.slice(0, -1);
30
+ }
31
+ // ensure path starts with a slash
32
+ if (!path.startsWith("/")) {
33
+ path = `/${path}`;
34
+ }
35
+ return `${this.baseUrl.protocol}://${this.baseUrl.host}:${this.baseUrl.port}${basePath}${path}`;
36
+ }
37
+ }
38
+ export class BaseUrlApiConfigurationWithDefaults extends BaseUrlApiConfiguration {
39
+ constructor({ baseUrlDefaults, baseUrl, headers, retry, throttle, }) {
40
+ super({
41
+ baseUrl: resolveBaseUrl(baseUrl, baseUrlDefaults),
42
+ headers,
43
+ retry,
44
+ throttle,
45
+ });
46
+ }
47
+ }
48
+ function parseBaseUrl(baseUrl) {
49
+ const url = new URL(baseUrl);
50
+ return {
51
+ protocol: url.protocol.slice(0, -1), // remove trailing colon
52
+ host: url.hostname,
53
+ port: url.port,
54
+ path: url.pathname,
55
+ };
56
+ }
57
+ function resolveBaseUrl(baseUrl = {}, baseUrlDefaults) {
58
+ if (typeof baseUrl == "string") {
59
+ return baseUrl;
60
+ }
61
+ else {
62
+ return {
63
+ protocol: baseUrl.protocol ?? baseUrlDefaults.protocol,
64
+ host: baseUrl.host ?? baseUrlDefaults.host,
65
+ port: baseUrl.port ?? baseUrlDefaults.port,
66
+ path: baseUrl.path ?? baseUrlDefaults.path,
67
+ };
27
68
  }
28
69
  }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const BaseUrlApiConfiguration_js_1 = require("./BaseUrlApiConfiguration.cjs");
4
+ describe("with text URLs", () => {
5
+ it("should assemble the correct url", async () => {
6
+ const api = new BaseUrlApiConfiguration_js_1.BaseUrlApiConfiguration({
7
+ baseUrl: "http://localhost:8080",
8
+ });
9
+ expect(api.assembleUrl("/test")).toBe("http://localhost:8080/test");
10
+ });
11
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import { BaseUrlApiConfiguration } from "./BaseUrlApiConfiguration.js";
2
+ describe("with text URLs", () => {
3
+ it("should assemble the correct url", async () => {
4
+ const api = new BaseUrlApiConfiguration({
5
+ baseUrl: "http://localhost:8080",
6
+ });
7
+ expect(api.assembleUrl("/test")).toBe("http://localhost:8080/test");
8
+ });
9
+ });
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.callWithRetryAndThrottle = void 0;
4
- const retryWithExponentialBackoff_js_1 = require("./retryWithExponentialBackoff.cjs");
5
- const throttleUnlimitedConcurrency_js_1 = require("./throttleUnlimitedConcurrency.cjs");
6
- const callWithRetryAndThrottle = async ({ retry = (0, retryWithExponentialBackoff_js_1.retryWithExponentialBackoff)(), throttle = (0, throttleUnlimitedConcurrency_js_1.throttleUnlimitedConcurrency)(), call, }) => retry(async () => throttle(call));
4
+ const retryNever_js_1 = require("./retryNever.cjs");
5
+ const throttleOff_js_1 = require("./throttleOff.cjs");
6
+ const callWithRetryAndThrottle = async ({ retry = (0, retryNever_js_1.retryNever)(), throttle = (0, throttleOff_js_1.throttleOff)(), call, }) => retry(async () => throttle(call));
7
7
  exports.callWithRetryAndThrottle = callWithRetryAndThrottle;
@@ -1,3 +1,3 @@
1
- import { retryWithExponentialBackoff } from "./retryWithExponentialBackoff.js";
2
- import { throttleUnlimitedConcurrency } from "./throttleUnlimitedConcurrency.js";
3
- export const callWithRetryAndThrottle = async ({ retry = retryWithExponentialBackoff(), throttle = throttleUnlimitedConcurrency(), call, }) => retry(async () => throttle(call));
1
+ import { retryNever } from "./retryNever.js";
2
+ import { throttleOff } from "./throttleOff.js";
3
+ export const callWithRetryAndThrottle = async ({ retry = retryNever(), throttle = throttleOff(), call, }) => retry(async () => throttle(call));
@@ -10,19 +10,32 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
13
18
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
19
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
20
  };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
16
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.api = void 0;
17
30
  __exportStar(require("./AbortError.cjs"), exports);
18
31
  __exportStar(require("./ApiCallError.cjs"), exports);
19
32
  __exportStar(require("./ApiConfiguration.cjs"), exports);
33
+ exports.api = __importStar(require("./ApiFacade.cjs"));
20
34
  __exportStar(require("./BaseUrlApiConfiguration.cjs"), exports);
21
- __exportStar(require("./BaseUrlPartsApiConfiguration.cjs"), exports);
22
35
  __exportStar(require("./RetryError.cjs"), exports);
23
36
  __exportStar(require("./RetryFunction.cjs"), exports);
24
37
  __exportStar(require("./ThrottleFunction.cjs"), exports);
25
38
  __exportStar(require("./retryNever.cjs"), exports);
26
39
  __exportStar(require("./retryWithExponentialBackoff.cjs"), exports);
27
40
  __exportStar(require("./throttleMaxConcurrency.cjs"), exports);
28
- __exportStar(require("./throttleUnlimitedConcurrency.cjs"), exports);
41
+ __exportStar(require("./throttleOff.cjs"), exports);
@@ -1,12 +1,12 @@
1
1
  export * from "./AbortError.js";
2
2
  export * from "./ApiCallError.js";
3
3
  export * from "./ApiConfiguration.js";
4
+ export * as api from "./ApiFacade.js";
4
5
  export * from "./BaseUrlApiConfiguration.js";
5
- export * from "./BaseUrlPartsApiConfiguration.js";
6
6
  export * from "./RetryError.js";
7
7
  export * from "./RetryFunction.js";
8
8
  export * from "./ThrottleFunction.js";
9
9
  export * from "./retryNever.js";
10
10
  export * from "./retryWithExponentialBackoff.js";
11
11
  export * from "./throttleMaxConcurrency.js";
12
- export * from "./throttleUnlimitedConcurrency.js";
12
+ export * from "./throttleOff.js";
package/core/api/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  export * from "./AbortError.js";
2
2
  export * from "./ApiCallError.js";
3
3
  export * from "./ApiConfiguration.js";
4
+ export * as api from "./ApiFacade.js";
4
5
  export * from "./BaseUrlApiConfiguration.js";
5
- export * from "./BaseUrlPartsApiConfiguration.js";
6
6
  export * from "./RetryError.js";
7
7
  export * from "./RetryFunction.js";
8
8
  export * from "./ThrottleFunction.js";
9
9
  export * from "./retryNever.js";
10
10
  export * from "./retryWithExponentialBackoff.js";
11
11
  export * from "./throttleMaxConcurrency.js";
12
- export * from "./throttleUnlimitedConcurrency.js";
12
+ export * from "./throttleOff.js";
@@ -1,11 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.postToApi = exports.postJsonToApi = exports.createAudioMpegResponseHandler = exports.createTextResponseHandler = exports.createJsonResponseHandler = exports.createJsonErrorResponseHandler = void 0;
4
- const ZodSchema_js_1 = require("../schema/ZodSchema.cjs");
3
+ exports.postToApi = exports.postJsonToApi = exports.createAudioMpegResponseHandler = exports.createTextResponseHandler = exports.createJsonResponseHandler = exports.createTextErrorResponseHandler = exports.createJsonErrorResponseHandler = void 0;
5
4
  const parseJSON_js_1 = require("../schema/parseJSON.cjs");
6
5
  const ApiCallError_js_1 = require("./ApiCallError.cjs");
7
6
  const createJsonErrorResponseHandler = ({ errorSchema, errorToMessage, isRetryable, }) => async ({ response, url, requestBodyValues }) => {
8
7
  const responseBody = await response.text();
8
+ // Some providers return an empty response body for some errors:
9
+ if (responseBody.trim() === "") {
10
+ return new ApiCallError_js_1.ApiCallError({
11
+ message: response.statusText,
12
+ url,
13
+ requestBodyValues,
14
+ statusCode: response.status,
15
+ responseBody,
16
+ isRetryable: isRetryable?.(response),
17
+ });
18
+ }
9
19
  // resilient parsing in case the response is not JSON or does not match the schema:
10
20
  try {
11
21
  const parsedError = (0, parseJSON_js_1.parseJSON)({
@@ -19,25 +29,38 @@ const createJsonErrorResponseHandler = ({ errorSchema, errorToMessage, isRetryab
19
29
  statusCode: response.status,
20
30
  responseBody,
21
31
  data: parsedError,
22
- isRetryable: isRetryable?.(parsedError, response),
32
+ isRetryable: isRetryable?.(response, parsedError),
23
33
  });
24
34
  }
25
35
  catch (parseError) {
26
36
  return new ApiCallError_js_1.ApiCallError({
27
- message: responseBody.trim() !== "" ? responseBody : response.statusText,
37
+ message: response.statusText,
28
38
  url,
29
39
  requestBodyValues,
30
40
  statusCode: response.status,
31
41
  responseBody,
42
+ isRetryable: isRetryable?.(response),
32
43
  });
33
44
  }
34
45
  };
35
46
  exports.createJsonErrorResponseHandler = createJsonErrorResponseHandler;
47
+ const createTextErrorResponseHandler = ({ isRetryable, } = {}) => async ({ response, url, requestBodyValues }) => {
48
+ const responseBody = await response.text();
49
+ return new ApiCallError_js_1.ApiCallError({
50
+ message: responseBody.trim() !== "" ? responseBody : response.statusText,
51
+ url,
52
+ requestBodyValues,
53
+ statusCode: response.status,
54
+ responseBody,
55
+ isRetryable: isRetryable?.(response),
56
+ });
57
+ };
58
+ exports.createTextErrorResponseHandler = createTextErrorResponseHandler;
36
59
  const createJsonResponseHandler = (responseSchema) => async ({ response, url, requestBodyValues }) => {
37
60
  const responseBody = await response.text();
38
61
  const parsedResult = (0, parseJSON_js_1.safeParseJSON)({
39
62
  text: responseBody,
40
- schema: new ZodSchema_js_1.ZodSchema(responseSchema),
63
+ schema: responseSchema,
41
64
  });
42
65
  if (!parsedResult.success) {
43
66
  throw new ApiCallError_js_1.ApiCallError({
@@ -1,7 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { z } from "zod";
3
2
  import { Schema } from "../schema/Schema.js";
4
- import { ZodSchema } from "../schema/ZodSchema.js";
5
3
  import { ApiCallError } from "./ApiCallError.js";
6
4
  export type ResponseHandler<T> = (options: {
7
5
  url: string;
@@ -11,9 +9,12 @@ export type ResponseHandler<T> = (options: {
11
9
  export declare const createJsonErrorResponseHandler: <T>({ errorSchema, errorToMessage, isRetryable, }: {
12
10
  errorSchema: Schema<T>;
13
11
  errorToMessage: (error: T) => string;
14
- isRetryable?: ((error: T, response: Response) => boolean) | undefined;
12
+ isRetryable?: ((response: Response, error?: T | undefined) => boolean) | undefined;
15
13
  }) => ResponseHandler<ApiCallError>;
16
- export declare const createJsonResponseHandler: <T>(responseSchema: z.ZodType<T, z.ZodTypeDef, T>) => ResponseHandler<T>;
14
+ export declare const createTextErrorResponseHandler: ({ isRetryable, }?: {
15
+ isRetryable?: ((response: Response) => boolean) | undefined;
16
+ }) => ResponseHandler<ApiCallError>;
17
+ export declare const createJsonResponseHandler: <T>(responseSchema: Schema<T>) => ResponseHandler<T>;
17
18
  export declare const createTextResponseHandler: () => ResponseHandler<string>;
18
19
  export declare const createAudioMpegResponseHandler: () => ResponseHandler<Buffer>;
19
20
  export declare const postJsonToApi: <T>({ url, headers, body, failedResponseHandler, successfulResponseHandler, abortSignal, }: {
@@ -1,8 +1,18 @@
1
- import { ZodSchema } from "../schema/ZodSchema.js";
2
1
  import { parseJSON, safeParseJSON } from "../schema/parseJSON.js";
3
2
  import { ApiCallError } from "./ApiCallError.js";
4
3
  export const createJsonErrorResponseHandler = ({ errorSchema, errorToMessage, isRetryable, }) => async ({ response, url, requestBodyValues }) => {
5
4
  const responseBody = await response.text();
5
+ // Some providers return an empty response body for some errors:
6
+ if (responseBody.trim() === "") {
7
+ return new ApiCallError({
8
+ message: response.statusText,
9
+ url,
10
+ requestBodyValues,
11
+ statusCode: response.status,
12
+ responseBody,
13
+ isRetryable: isRetryable?.(response),
14
+ });
15
+ }
6
16
  // resilient parsing in case the response is not JSON or does not match the schema:
7
17
  try {
8
18
  const parsedError = parseJSON({
@@ -16,24 +26,36 @@ export const createJsonErrorResponseHandler = ({ errorSchema, errorToMessage, is
16
26
  statusCode: response.status,
17
27
  responseBody,
18
28
  data: parsedError,
19
- isRetryable: isRetryable?.(parsedError, response),
29
+ isRetryable: isRetryable?.(response, parsedError),
20
30
  });
21
31
  }
22
32
  catch (parseError) {
23
33
  return new ApiCallError({
24
- message: responseBody.trim() !== "" ? responseBody : response.statusText,
34
+ message: response.statusText,
25
35
  url,
26
36
  requestBodyValues,
27
37
  statusCode: response.status,
28
38
  responseBody,
39
+ isRetryable: isRetryable?.(response),
29
40
  });
30
41
  }
31
42
  };
43
+ export const createTextErrorResponseHandler = ({ isRetryable, } = {}) => async ({ response, url, requestBodyValues }) => {
44
+ const responseBody = await response.text();
45
+ return new ApiCallError({
46
+ message: responseBody.trim() !== "" ? responseBody : response.statusText,
47
+ url,
48
+ requestBodyValues,
49
+ statusCode: response.status,
50
+ responseBody,
51
+ isRetryable: isRetryable?.(response),
52
+ });
53
+ };
32
54
  export const createJsonResponseHandler = (responseSchema) => async ({ response, url, requestBodyValues }) => {
33
55
  const responseBody = await response.text();
34
56
  const parsedResult = safeParseJSON({
35
57
  text: responseBody,
36
- schema: new ZodSchema(responseSchema),
58
+ schema: responseSchema,
37
59
  });
38
60
  if (!parsedResult.success) {
39
61
  throw new ApiCallError({
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.throttleOff = void 0;
4
+ /**
5
+ * The `throttleOff` strategy does not limit parallel API calls.
6
+ */
7
+ const throttleOff = () => (fn) => fn();
8
+ exports.throttleOff = throttleOff;
@@ -0,0 +1,5 @@
1
+ import { ThrottleFunction } from "./ThrottleFunction.js";
2
+ /**
3
+ * The `throttleOff` strategy does not limit parallel API calls.
4
+ */
5
+ export declare const throttleOff: () => ThrottleFunction;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * The `throttleOff` strategy does not limit parallel API calls.
3
+ */
4
+ export const throttleOff = () => (fn) => fn();
@@ -14,18 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.parseEventSourceStream = exports.AbstractModel = exports.executeFunctionCall = exports.postToApi = exports.postJsonToApi = exports.createTextResponseHandler = exports.createJsonResponseHandler = exports.createAudioMpegResponseHandler = exports.loadApiKey = exports.callWithRetryAndThrottle = void 0;
17
+ exports.parseEventSourceStream = exports.AbstractModel = exports.executeFunctionCall = exports.loadApiKey = exports.callWithRetryAndThrottle = void 0;
18
18
  __exportStar(require("../core/ExtensionFunctionEvent.cjs"), exports);
19
19
  var callWithRetryAndThrottle_js_1 = require("../core/api/callWithRetryAndThrottle.cjs");
20
20
  Object.defineProperty(exports, "callWithRetryAndThrottle", { enumerable: true, get: function () { return callWithRetryAndThrottle_js_1.callWithRetryAndThrottle; } });
21
21
  var loadApiKey_js_1 = require("../core/api/loadApiKey.cjs");
22
22
  Object.defineProperty(exports, "loadApiKey", { enumerable: true, get: function () { return loadApiKey_js_1.loadApiKey; } });
23
- var postToApi_js_1 = require("../core/api/postToApi.cjs");
24
- Object.defineProperty(exports, "createAudioMpegResponseHandler", { enumerable: true, get: function () { return postToApi_js_1.createAudioMpegResponseHandler; } });
25
- Object.defineProperty(exports, "createJsonResponseHandler", { enumerable: true, get: function () { return postToApi_js_1.createJsonResponseHandler; } });
26
- Object.defineProperty(exports, "createTextResponseHandler", { enumerable: true, get: function () { return postToApi_js_1.createTextResponseHandler; } });
27
- Object.defineProperty(exports, "postJsonToApi", { enumerable: true, get: function () { return postToApi_js_1.postJsonToApi; } });
28
- Object.defineProperty(exports, "postToApi", { enumerable: true, get: function () { return postToApi_js_1.postToApi; } });
23
+ __exportStar(require("../core/api/postToApi.cjs"), exports);
29
24
  var executeFunctionCall_js_1 = require("../core/executeFunctionCall.cjs");
30
25
  Object.defineProperty(exports, "executeFunctionCall", { enumerable: true, get: function () { return executeFunctionCall_js_1.executeFunctionCall; } });
31
26
  var AbstractModel_js_1 = require("../model-function/AbstractModel.cjs");
@@ -1,7 +1,7 @@
1
1
  export * from "../core/ExtensionFunctionEvent.js";
2
2
  export { callWithRetryAndThrottle } from "../core/api/callWithRetryAndThrottle.js";
3
3
  export { loadApiKey } from "../core/api/loadApiKey.js";
4
- export { ResponseHandler, createAudioMpegResponseHandler, createJsonResponseHandler, createTextResponseHandler, postJsonToApi, postToApi, } from "../core/api/postToApi.js";
4
+ export * from "../core/api/postToApi.js";
5
5
  export { executeFunctionCall } from "../core/executeFunctionCall.js";
6
6
  export { AbstractModel } from "../model-function/AbstractModel.js";
7
7
  export { ErrorHandler } from "../util/ErrorHandler.js";
@@ -1,7 +1,7 @@
1
1
  export * from "../core/ExtensionFunctionEvent.js";
2
2
  export { callWithRetryAndThrottle } from "../core/api/callWithRetryAndThrottle.js";
3
3
  export { loadApiKey } from "../core/api/loadApiKey.js";
4
- export { createAudioMpegResponseHandler, createJsonResponseHandler, createTextResponseHandler, postJsonToApi, postToApi, } from "../core/api/postToApi.js";
4
+ export * from "../core/api/postToApi.js";
5
5
  export { executeFunctionCall } from "../core/executeFunctionCall.js";
6
6
  export { AbstractModel } from "../model-function/AbstractModel.js";
7
7
  export { parseEventSourceStream } from "../util/streaming/parseEventSourceStream.js";
@@ -11,7 +11,7 @@ import { StructureGenerationModel, StructureGenerationModelSettings } from "./St
11
11
  * @example
12
12
  * const sentiment = await generateStructure(
13
13
  * openai.ChatTextGenerator(...).asFunctionCallStructureGenerationModel(...),
14
- * new ZodSchema(z.object({
14
+ * zodSchema(z.object({
15
15
  * sentiment: z
16
16
  * .enum(["positive", "neutral", "negative"])
17
17
  * .describe("Sentiment."),
@@ -3,20 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AnthropicApiConfiguration = void 0;
4
4
  const BaseUrlApiConfiguration_js_1 = require("../../core/api/BaseUrlApiConfiguration.cjs");
5
5
  const loadApiKey_js_1 = require("../../core/api/loadApiKey.cjs");
6
- class AnthropicApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfiguration {
7
- constructor({ baseUrl = "https://api.anthropic.com/v1", apiKey, retry, throttle, } = {}) {
6
+ /**
7
+ * Creates an API configuration for the Anthropic API.
8
+ * It calls the API at https://api.anthropic.com/v1 and uses the `ANTHROPIC_API_KEY` env variable by default.
9
+ */
10
+ class AnthropicApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfigurationWithDefaults {
11
+ constructor(settings = {}) {
8
12
  super({
9
- baseUrl,
13
+ ...settings,
10
14
  headers: {
11
15
  "x-api-key": (0, loadApiKey_js_1.loadApiKey)({
12
- apiKey,
16
+ apiKey: settings.apiKey,
13
17
  environmentVariableName: "ANTHROPIC_API_KEY",
14
18
  description: "Anthropic",
15
19
  }),
16
20
  "anthropic-version": "2023-06-01",
17
21
  },
18
- retry,
19
- throttle,
22
+ baseUrlDefaults: {
23
+ protocol: "https",
24
+ host: "api.anthropic.com",
25
+ port: "443",
26
+ path: "/v1",
27
+ },
20
28
  });
21
29
  }
22
30
  }
@@ -1,11 +1,10 @@
1
- import { BaseUrlApiConfiguration } from "../../core/api/BaseUrlApiConfiguration.js";
2
- import { RetryFunction } from "../../core/api/RetryFunction.js";
3
- import { ThrottleFunction } from "../../core/api/ThrottleFunction.js";
4
- export declare class AnthropicApiConfiguration extends BaseUrlApiConfiguration {
5
- constructor({ baseUrl, apiKey, retry, throttle, }?: {
6
- baseUrl?: string;
1
+ import { BaseUrlApiConfigurationWithDefaults, PartialBaseUrlPartsApiConfigurationOptions } from "../../core/api/BaseUrlApiConfiguration.js";
2
+ /**
3
+ * Creates an API configuration for the Anthropic API.
4
+ * It calls the API at https://api.anthropic.com/v1 and uses the `ANTHROPIC_API_KEY` env variable by default.
5
+ */
6
+ export declare class AnthropicApiConfiguration extends BaseUrlApiConfigurationWithDefaults {
7
+ constructor(settings?: PartialBaseUrlPartsApiConfigurationOptions & {
7
8
  apiKey?: string;
8
- retry?: RetryFunction;
9
- throttle?: ThrottleFunction;
10
9
  });
11
10
  }