@ai-sdk/togetherai 3.0.0-beta.23 → 3.0.0-beta.24

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @ai-sdk/togetherai
2
2
 
3
+ ## 3.0.0-beta.24
4
+
5
+ ### Major Changes
6
+
7
+ - ef992f8: Remove CommonJS exports from all packages. All packages are now ESM-only (`"type": "module"`). Consumers using `require()` must switch to ESM `import` syntax.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [ef992f8]
12
+ - @ai-sdk/openai-compatible@3.0.0-beta.24
13
+ - @ai-sdk/provider@4.0.0-beta.11
14
+ - @ai-sdk/provider-utils@5.0.0-beta.19
15
+
3
16
  ## 3.0.0-beta.23
4
17
 
5
18
  ### Patch Changes
package/dist/index.js CHANGED
@@ -1,77 +1,63 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var index_exports = {};
22
- __export(index_exports, {
23
- VERSION: () => VERSION,
24
- createTogetherAI: () => createTogetherAI,
25
- togetherai: () => togetherai
26
- });
27
- module.exports = __toCommonJS(index_exports);
28
-
29
1
  // src/togetherai-provider.ts
30
- var import_openai_compatible = require("@ai-sdk/openai-compatible");
31
- var import_provider_utils5 = require("@ai-sdk/provider-utils");
2
+ import {
3
+ OpenAICompatibleChatLanguageModel,
4
+ OpenAICompatibleCompletionLanguageModel,
5
+ OpenAICompatibleEmbeddingModel
6
+ } from "@ai-sdk/openai-compatible";
7
+ import {
8
+ loadApiKey,
9
+ withoutTrailingSlash,
10
+ withUserAgentSuffix
11
+ } from "@ai-sdk/provider-utils";
32
12
 
33
13
  // src/reranking/togetherai-reranking-model.ts
34
- var import_provider_utils3 = require("@ai-sdk/provider-utils");
14
+ import {
15
+ combineHeaders,
16
+ createJsonErrorResponseHandler,
17
+ createJsonResponseHandler,
18
+ parseProviderOptions,
19
+ postJsonToApi
20
+ } from "@ai-sdk/provider-utils";
35
21
 
36
22
  // src/reranking/togetherai-reranking-api.ts
37
- var import_provider_utils = require("@ai-sdk/provider-utils");
38
- var import_v4 = require("zod/v4");
39
- var togetheraiErrorSchema = (0, import_provider_utils.lazySchema)(
40
- () => (0, import_provider_utils.zodSchema)(
41
- import_v4.z.object({
42
- error: import_v4.z.object({
43
- message: import_v4.z.string()
23
+ import { lazySchema, zodSchema } from "@ai-sdk/provider-utils";
24
+ import { z } from "zod/v4";
25
+ var togetheraiErrorSchema = lazySchema(
26
+ () => zodSchema(
27
+ z.object({
28
+ error: z.object({
29
+ message: z.string()
44
30
  })
45
31
  })
46
32
  )
47
33
  );
48
- var togetheraiRerankingResponseSchema = (0, import_provider_utils.lazySchema)(
49
- () => (0, import_provider_utils.zodSchema)(
50
- import_v4.z.object({
51
- id: import_v4.z.string().nullish(),
52
- model: import_v4.z.string().nullish(),
53
- results: import_v4.z.array(
54
- import_v4.z.object({
55
- index: import_v4.z.number(),
56
- relevance_score: import_v4.z.number()
34
+ var togetheraiRerankingResponseSchema = lazySchema(
35
+ () => zodSchema(
36
+ z.object({
37
+ id: z.string().nullish(),
38
+ model: z.string().nullish(),
39
+ results: z.array(
40
+ z.object({
41
+ index: z.number(),
42
+ relevance_score: z.number()
57
43
  })
58
44
  ),
59
- usage: import_v4.z.object({
60
- prompt_tokens: import_v4.z.number(),
61
- completion_tokens: import_v4.z.number(),
62
- total_tokens: import_v4.z.number()
45
+ usage: z.object({
46
+ prompt_tokens: z.number(),
47
+ completion_tokens: z.number(),
48
+ total_tokens: z.number()
63
49
  })
64
50
  })
65
51
  )
66
52
  );
67
53
 
68
54
  // src/reranking/togetherai-reranking-options.ts
69
- var import_provider_utils2 = require("@ai-sdk/provider-utils");
70
- var import_v42 = require("zod/v4");
71
- var togetheraiRerankingModelOptionsSchema = (0, import_provider_utils2.lazySchema)(
72
- () => (0, import_provider_utils2.zodSchema)(
73
- import_v42.z.object({
74
- rankFields: import_v42.z.array(import_v42.z.string()).optional()
55
+ import { lazySchema as lazySchema2, zodSchema as zodSchema2 } from "@ai-sdk/provider-utils";
56
+ import { z as z2 } from "zod/v4";
57
+ var togetheraiRerankingModelOptionsSchema = lazySchema2(
58
+ () => zodSchema2(
59
+ z2.object({
60
+ rankFields: z2.array(z2.string()).optional()
75
61
  })
76
62
  )
77
63
  );
@@ -96,7 +82,7 @@ var TogetherAIRerankingModel = class {
96
82
  providerOptions
97
83
  }) {
98
84
  var _a, _b;
99
- const rerankingOptions = await (0, import_provider_utils3.parseProviderOptions)({
85
+ const rerankingOptions = await parseProviderOptions({
100
86
  provider: "togetherai",
101
87
  providerOptions,
102
88
  schema: togetheraiRerankingModelOptionsSchema
@@ -105,9 +91,9 @@ var TogetherAIRerankingModel = class {
105
91
  responseHeaders,
106
92
  value: response,
107
93
  rawValue
108
- } = await (0, import_provider_utils3.postJsonToApi)({
94
+ } = await postJsonToApi({
109
95
  url: `${this.config.baseURL}/rerank`,
110
- headers: (0, import_provider_utils3.combineHeaders)(this.config.headers(), headers),
96
+ headers: combineHeaders(this.config.headers(), headers),
111
97
  body: {
112
98
  model: this.modelId,
113
99
  documents: documents.values,
@@ -117,11 +103,11 @@ var TogetherAIRerankingModel = class {
117
103
  return_documents: false
118
104
  // reduce response size
119
105
  },
120
- failedResponseHandler: (0, import_provider_utils3.createJsonErrorResponseHandler)({
106
+ failedResponseHandler: createJsonErrorResponseHandler({
121
107
  errorSchema: togetheraiErrorSchema,
122
108
  errorToMessage: (data) => data.error.message
123
109
  }),
124
- successfulResponseHandler: (0, import_provider_utils3.createJsonResponseHandler)(
110
+ successfulResponseHandler: createJsonResponseHandler(
125
111
  togetheraiRerankingResponseSchema
126
112
  ),
127
113
  abortSignal,
@@ -143,8 +129,17 @@ var TogetherAIRerankingModel = class {
143
129
  };
144
130
 
145
131
  // src/togetherai-image-model.ts
146
- var import_provider_utils4 = require("@ai-sdk/provider-utils");
147
- var import_v43 = require("zod/v4");
132
+ import {
133
+ combineHeaders as combineHeaders2,
134
+ convertImageModelFileToDataUri,
135
+ createJsonResponseHandler as createJsonResponseHandler2,
136
+ createJsonErrorResponseHandler as createJsonErrorResponseHandler2,
137
+ lazySchema as lazySchema3,
138
+ parseProviderOptions as parseProviderOptions2,
139
+ postJsonToApi as postJsonToApi2,
140
+ zodSchema as zodSchema3
141
+ } from "@ai-sdk/provider-utils";
142
+ import { z as z3 } from "zod/v4";
148
143
  var TogetherAIImageModel = class {
149
144
  constructor(modelId, config) {
150
145
  this.modelId = modelId;
@@ -181,14 +176,14 @@ var TogetherAIImageModel = class {
181
176
  });
182
177
  }
183
178
  const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
184
- const togetheraiOptions = await (0, import_provider_utils4.parseProviderOptions)({
179
+ const togetheraiOptions = await parseProviderOptions2({
185
180
  provider: "togetherai",
186
181
  providerOptions,
187
182
  schema: togetheraiImageModelOptionsSchema
188
183
  });
189
184
  let imageUrl;
190
185
  if (files != null && files.length > 0) {
191
- imageUrl = (0, import_provider_utils4.convertImageModelFileToDataUri)(files[0]);
186
+ imageUrl = convertImageModelFileToDataUri(files[0]);
192
187
  if (files.length > 1) {
193
188
  warnings.push({
194
189
  type: "other",
@@ -197,9 +192,9 @@ var TogetherAIImageModel = class {
197
192
  }
198
193
  }
199
194
  const splitSize = size == null ? void 0 : size.split("x");
200
- const { value: response, responseHeaders } = await (0, import_provider_utils4.postJsonToApi)({
195
+ const { value: response, responseHeaders } = await postJsonToApi2({
201
196
  url: `${this.config.baseURL}/images/generations`,
202
- headers: (0, import_provider_utils4.combineHeaders)(this.config.headers(), headers),
197
+ headers: combineHeaders2(this.config.headers(), headers),
203
198
  body: {
204
199
  model: this.modelId,
205
200
  prompt,
@@ -213,11 +208,11 @@ var TogetherAIImageModel = class {
213
208
  response_format: "base64",
214
209
  ...togetheraiOptions != null ? togetheraiOptions : {}
215
210
  },
216
- failedResponseHandler: (0, import_provider_utils4.createJsonErrorResponseHandler)({
211
+ failedResponseHandler: createJsonErrorResponseHandler2({
217
212
  errorSchema: togetheraiErrorSchema2,
218
213
  errorToMessage: (data) => data.error.message
219
214
  }),
220
- successfulResponseHandler: (0, import_provider_utils4.createJsonResponseHandler)(
215
+ successfulResponseHandler: createJsonResponseHandler2(
221
216
  togetheraiImageResponseSchema
222
217
  ),
223
218
  abortSignal,
@@ -234,45 +229,45 @@ var TogetherAIImageModel = class {
234
229
  };
235
230
  }
236
231
  };
237
- var togetheraiImageResponseSchema = import_v43.z.object({
238
- data: import_v43.z.array(
239
- import_v43.z.object({
240
- b64_json: import_v43.z.string()
232
+ var togetheraiImageResponseSchema = z3.object({
233
+ data: z3.array(
234
+ z3.object({
235
+ b64_json: z3.string()
241
236
  })
242
237
  )
243
238
  });
244
- var togetheraiErrorSchema2 = import_v43.z.object({
245
- error: import_v43.z.object({
246
- message: import_v43.z.string()
239
+ var togetheraiErrorSchema2 = z3.object({
240
+ error: z3.object({
241
+ message: z3.string()
247
242
  })
248
243
  });
249
- var togetheraiImageModelOptionsSchema = (0, import_provider_utils4.lazySchema)(
250
- () => (0, import_provider_utils4.zodSchema)(
251
- import_v43.z.object({
244
+ var togetheraiImageModelOptionsSchema = lazySchema3(
245
+ () => zodSchema3(
246
+ z3.object({
252
247
  /**
253
248
  * Number of generation steps. Higher values can improve quality.
254
249
  */
255
- steps: import_v43.z.number().nullish(),
250
+ steps: z3.number().nullish(),
256
251
  /**
257
252
  * Guidance scale for image generation.
258
253
  */
259
- guidance: import_v43.z.number().nullish(),
254
+ guidance: z3.number().nullish(),
260
255
  /**
261
256
  * Negative prompt to guide what to avoid.
262
257
  */
263
- negative_prompt: import_v43.z.string().nullish(),
258
+ negative_prompt: z3.string().nullish(),
264
259
  /**
265
260
  * Disable the safety checker for image generation.
266
261
  * When true, the API will not reject images flagged as potentially NSFW.
267
262
  * Not available for Flux Schnell Free and Flux Pro models.
268
263
  */
269
- disable_safety_checker: import_v43.z.boolean().nullish()
264
+ disable_safety_checker: z3.boolean().nullish()
270
265
  }).passthrough()
271
266
  )
272
267
  );
273
268
 
274
269
  // src/version.ts
275
- var VERSION = true ? "3.0.0-beta.23" : "0.0.0-test";
270
+ var VERSION = true ? "3.0.0-beta.24" : "0.0.0-test";
276
271
 
277
272
  // src/togetherai-provider.ts
278
273
  function loadDeprecatedApiKey() {
@@ -292,14 +287,14 @@ function loadDeprecatedApiKey() {
292
287
  }
293
288
  function createTogetherAI(options = {}) {
294
289
  var _a;
295
- const baseURL = (0, import_provider_utils5.withoutTrailingSlash)(
290
+ const baseURL = withoutTrailingSlash(
296
291
  (_a = options.baseURL) != null ? _a : "https://api.together.xyz/v1/"
297
292
  );
298
293
  const getHeaders = () => {
299
294
  var _a2;
300
- return (0, import_provider_utils5.withUserAgentSuffix)(
295
+ return withUserAgentSuffix(
301
296
  {
302
- Authorization: `Bearer ${(0, import_provider_utils5.loadApiKey)({
297
+ Authorization: `Bearer ${loadApiKey({
303
298
  apiKey: (_a2 = options.apiKey) != null ? _a2 : loadDeprecatedApiKey(),
304
299
  environmentVariableName: "TOGETHER_API_KEY",
305
300
  description: "TogetherAI"
@@ -316,16 +311,16 @@ function createTogetherAI(options = {}) {
316
311
  fetch: options.fetch
317
312
  });
318
313
  const createChatModel = (modelId) => {
319
- return new import_openai_compatible.OpenAICompatibleChatLanguageModel(
314
+ return new OpenAICompatibleChatLanguageModel(
320
315
  modelId,
321
316
  getCommonModelConfig("chat")
322
317
  );
323
318
  };
324
- const createCompletionModel = (modelId) => new import_openai_compatible.OpenAICompatibleCompletionLanguageModel(
319
+ const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(
325
320
  modelId,
326
321
  getCommonModelConfig("completion")
327
322
  );
328
- const createEmbeddingModel = (modelId) => new import_openai_compatible.OpenAICompatibleEmbeddingModel(
323
+ const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(
329
324
  modelId,
330
325
  getCommonModelConfig("embedding")
331
326
  );
@@ -351,10 +346,9 @@ function createTogetherAI(options = {}) {
351
346
  return provider;
352
347
  }
353
348
  var togetherai = createTogetherAI();
354
- // Annotate the CommonJS export names for ESM import in node:
355
- 0 && (module.exports = {
349
+ export {
356
350
  VERSION,
357
351
  createTogetherAI,
358
352
  togetherai
359
- });
353
+ };
360
354
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/togetherai-provider.ts","../src/reranking/togetherai-reranking-model.ts","../src/reranking/togetherai-reranking-api.ts","../src/reranking/togetherai-reranking-options.ts","../src/togetherai-image-model.ts","../src/version.ts"],"sourcesContent":["export type { OpenAICompatibleErrorData as TogetherAIErrorData } from '@ai-sdk/openai-compatible';\nexport type {\n TogetherAIRerankingModelOptions,\n /** @deprecated Use `TogetherAIRerankingModelOptions` instead. */\n TogetherAIRerankingModelOptions as TogetherAIRerankingOptions,\n} from './reranking/togetherai-reranking-options';\nexport { createTogetherAI, togetherai } from './togetherai-provider';\nexport type {\n TogetherAIProvider,\n TogetherAIProviderSettings,\n} from './togetherai-provider';\nexport type {\n TogetherAIImageModelOptions,\n /** @deprecated Use `TogetherAIImageModelOptions` instead. */\n TogetherAIImageModelOptions as TogetherAIImageProviderOptions,\n} from './togetherai-image-model';\nexport { VERSION } from './version';\n","import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel,\n} from '@ai-sdk/openai-compatible';\nimport {\n EmbeddingModelV4,\n ImageModelV4,\n LanguageModelV4,\n ProviderV4,\n RerankingModelV4,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { TogetherAIRerankingModel } from './reranking/togetherai-reranking-model';\nimport { TogetherAIRerankingModelId } from './reranking/togetherai-reranking-options';\nimport { TogetherAIChatModelId } from './togetherai-chat-options';\nimport { TogetherAICompletionModelId } from './togetherai-completion-options';\nimport { TogetherAIEmbeddingModelId } from './togetherai-embedding-options';\nimport { TogetherAIImageModel } from './togetherai-image-model';\nimport { TogetherAIImageModelId } from './togetherai-image-settings';\nimport { VERSION } from './version';\n\nexport interface TogetherAIProviderSettings {\n /**\n * TogetherAI API key.\n */\n apiKey?: string;\n /**\n * Base URL for the API calls.\n */\n baseURL?: string;\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface TogetherAIProvider extends ProviderV4 {\n /**\n * Creates a model for text generation.\n */\n (modelId: TogetherAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a chat model for text generation.\n */\n chatModel(modelId: TogetherAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a chat model for text generation.\n */\n languageModel(modelId: TogetherAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a completion model for text generation.\n */\n completionModel(modelId: TogetherAICompletionModelId): LanguageModelV4;\n\n /**\n * Creates a text embedding model for text generation.\n */\n embeddingModel(modelId: TogetherAIEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: TogetherAIEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * Creates a model for image generation.\n */\n image(modelId: TogetherAIImageModelId): ImageModelV4;\n\n /**\n * Creates a model for image generation.\n */\n imageModel(modelId: TogetherAIImageModelId): ImageModelV4;\n\n /**\n * Creates a model for reranking.\n */\n reranking(modelId: TogetherAIRerankingModelId): RerankingModelV4;\n\n /**\n * Creates a model for reranking.\n */\n rerankingModel(modelId: TogetherAIRerankingModelId): RerankingModelV4;\n}\n\nfunction loadDeprecatedApiKey(): string | undefined {\n if (typeof process === 'undefined') {\n return undefined;\n }\n // If the new env var is set, let loadApiKey handle it\n if (typeof process.env.TOGETHER_API_KEY === 'string') {\n return undefined;\n }\n const key = process.env.TOGETHER_AI_API_KEY;\n if (typeof key === 'string') {\n console.warn(\n 'TOGETHER_AI_API_KEY is deprecated and will be removed in a future release. Please use TOGETHER_API_KEY instead.',\n );\n }\n return key;\n}\n\nexport function createTogetherAI(\n options: TogetherAIProviderSettings = {},\n): TogetherAIProvider {\n const baseURL = withoutTrailingSlash(\n options.baseURL ?? 'https://api.together.xyz/v1/',\n );\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey ?? loadDeprecatedApiKey(),\n environmentVariableName: 'TOGETHER_API_KEY',\n description: 'TogetherAI',\n })}`,\n ...options.headers,\n },\n `ai-sdk/togetherai/${VERSION}`,\n );\n\n interface CommonModelConfig {\n provider: string;\n url: ({ path }: { path: string }) => string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n }\n\n const getCommonModelConfig = (modelType: string): CommonModelConfig => ({\n provider: `togetherai.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createChatModel = (modelId: TogetherAIChatModelId) => {\n return new OpenAICompatibleChatLanguageModel(\n modelId,\n getCommonModelConfig('chat'),\n );\n };\n\n const createCompletionModel = (modelId: TogetherAICompletionModelId) =>\n new OpenAICompatibleCompletionLanguageModel(\n modelId,\n getCommonModelConfig('completion'),\n );\n\n const createEmbeddingModel = (modelId: TogetherAIEmbeddingModelId) =>\n new OpenAICompatibleEmbeddingModel(\n modelId,\n getCommonModelConfig('embedding'),\n );\n\n const createImageModel = (modelId: TogetherAIImageModelId) =>\n new TogetherAIImageModel(modelId, {\n ...getCommonModelConfig('image'),\n baseURL: baseURL ?? 'https://api.together.xyz/v1/',\n });\n\n const createRerankingModel = (modelId: TogetherAIRerankingModelId) =>\n new TogetherAIRerankingModel(modelId, {\n ...getCommonModelConfig('reranking'),\n baseURL: baseURL ?? 'https://api.together.xyz/v1/',\n });\n\n const provider = (modelId: TogetherAIChatModelId) => createChatModel(modelId);\n\n provider.specificationVersion = 'v4' as const;\n provider.completionModel = createCompletionModel;\n provider.languageModel = createChatModel;\n provider.chatModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.reranking = createRerankingModel;\n provider.rerankingModel = createRerankingModel;\n\n return provider;\n}\n\nexport const togetherai = createTogetherAI();\n","import { RerankingModelV4 } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n FetchFunction,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport {\n togetheraiErrorSchema,\n TogetherAIRerankingInput,\n togetheraiRerankingResponseSchema,\n} from './togetherai-reranking-api';\nimport {\n TogetherAIRerankingModelId,\n togetheraiRerankingModelOptionsSchema,\n} from './togetherai-reranking-options';\n\ntype TogetherAIRerankingConfig = {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string | undefined>;\n fetch?: FetchFunction;\n};\n\nexport class TogetherAIRerankingModel implements RerankingModelV4 {\n readonly specificationVersion = 'v4';\n readonly modelId: TogetherAIRerankingModelId;\n\n private readonly config: TogetherAIRerankingConfig;\n\n constructor(\n modelId: TogetherAIRerankingModelId,\n config: TogetherAIRerankingConfig,\n ) {\n this.modelId = modelId;\n this.config = config;\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n // see https://docs.together.ai/reference/rerank-1\n async doRerank({\n documents,\n headers,\n query,\n topN,\n abortSignal,\n providerOptions,\n }: Parameters<RerankingModelV4['doRerank']>[0]): Promise<\n Awaited<ReturnType<RerankingModelV4['doRerank']>>\n > {\n const rerankingOptions = await parseProviderOptions({\n provider: 'togetherai',\n providerOptions,\n schema: togetheraiRerankingModelOptionsSchema,\n });\n\n const {\n responseHeaders,\n value: response,\n rawValue,\n } = await postJsonToApi({\n url: `${this.config.baseURL}/rerank`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n model: this.modelId,\n documents: documents.values,\n query,\n top_n: topN,\n rank_fields: rerankingOptions?.rankFields,\n return_documents: false, // reduce response size\n } satisfies TogetherAIRerankingInput,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: togetheraiErrorSchema,\n errorToMessage: data => data.error.message,\n }),\n successfulResponseHandler: createJsonResponseHandler(\n togetheraiRerankingResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n ranking: response.results.map(result => ({\n index: result.index,\n relevanceScore: result.relevance_score,\n })),\n response: {\n id: response.id ?? undefined,\n modelId: response.model ?? undefined,\n headers: responseHeaders,\n body: rawValue,\n },\n };\n }\n}\n","import { JSONObject } from '@ai-sdk/provider';\nimport { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://docs.together.ai/reference/rerank-1\nexport type TogetherAIRerankingInput = {\n model: string;\n query: string;\n documents: JSONObject[] | string[];\n top_n: number | undefined;\n return_documents: boolean | undefined;\n rank_fields: string[] | undefined;\n};\n\nexport const togetheraiErrorSchema = lazySchema(() =>\n zodSchema(\n z.object({\n error: z.object({\n message: z.string(),\n }),\n }),\n ),\n);\n\nexport const togetheraiRerankingResponseSchema = lazySchema(() =>\n zodSchema(\n z.object({\n id: z.string().nullish(),\n model: z.string().nullish(),\n results: z.array(\n z.object({\n index: z.number(),\n relevance_score: z.number(),\n }),\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number(),\n }),\n }),\n ),\n);\n","import { FlexibleSchema, lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// see https://docs.together.ai/docs/serverless-models#rerank-models\nexport type TogetherAIRerankingModelId =\n | 'Salesforce/Llama-Rank-v1'\n | 'mixedbread-ai/Mxbai-Rerank-Large-V2'\n | (string & {});\n\nexport type TogetherAIRerankingModelOptions = {\n /**\n * List of keys in the JSON Object document to rank by.\n * Defaults to use all supplied keys for ranking.\n *\n * @example [\"title\", \"text\"]\n */\n rankFields?: string[];\n};\n\nexport const togetheraiRerankingModelOptionsSchema: FlexibleSchema<TogetherAIRerankingModelOptions> =\n lazySchema(() =>\n zodSchema(\n z.object({\n rankFields: z.array(z.string()).optional(),\n }),\n ),\n );\n","import { ImageModelV4, SharedV4Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonResponseHandler,\n createJsonErrorResponseHandler,\n FetchFunction,\n InferSchema,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { TogetherAIImageModelId } from './togetherai-image-settings';\nimport { z } from 'zod/v4';\n\ninterface TogetherAIImageModelConfig {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class TogetherAIImageModel implements ImageModelV4 {\n readonly specificationVersion = 'v4';\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: TogetherAIImageModelId,\n private config: TogetherAIImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask,\n }: Parameters<ImageModelV4['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV4['doGenerate']>>\n > {\n const warnings: Array<SharedV4Warning> = [];\n\n if (mask != null) {\n throw new Error(\n 'Together AI does not support mask-based image editing. ' +\n 'Use FLUX Kontext models (e.g., black-forest-labs/FLUX.1-kontext-pro) ' +\n 'with a reference image and descriptive prompt instead.',\n );\n }\n\n if (size != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'aspectRatio',\n details:\n 'This model does not support the `aspectRatio` option. Use `size` instead.',\n });\n }\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n const togetheraiOptions = await parseProviderOptions({\n provider: 'togetherai',\n providerOptions,\n schema: togetheraiImageModelOptionsSchema,\n });\n\n // Handle image input from files\n let imageUrl: string | undefined;\n if (files != null && files.length > 0) {\n imageUrl = convertImageModelFileToDataUri(files[0]);\n\n if (files.length > 1) {\n warnings.push({\n type: 'other',\n message:\n 'Together AI only supports a single input image. Additional images are ignored.',\n });\n }\n }\n\n const splitSize = size?.split('x');\n // https://docs.together.ai/reference/post_images-generations\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/images/generations`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n model: this.modelId,\n prompt,\n seed,\n ...(n > 1 ? { n } : {}),\n ...(splitSize && {\n width: parseInt(splitSize[0]),\n height: parseInt(splitSize[1]),\n }),\n ...(imageUrl != null ? { image_url: imageUrl } : {}),\n response_format: 'base64',\n ...(togetheraiOptions ?? {}),\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: togetheraiErrorSchema,\n errorToMessage: data => data.error.message,\n }),\n successfulResponseHandler: createJsonResponseHandler(\n togetheraiImageResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n images: response.data.map(item => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst togetheraiImageResponseSchema = z.object({\n data: z.array(\n z.object({\n b64_json: z.string(),\n }),\n ),\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst togetheraiErrorSchema = z.object({\n error: z.object({\n message: z.string(),\n }),\n});\n\n/**\n * Provider options schema for Together AI image generation.\n */\nexport const togetheraiImageModelOptionsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n /**\n * Number of generation steps. Higher values can improve quality.\n */\n steps: z.number().nullish(),\n\n /**\n * Guidance scale for image generation.\n */\n guidance: z.number().nullish(),\n\n /**\n * Negative prompt to guide what to avoid.\n */\n negative_prompt: z.string().nullish(),\n\n /**\n * Disable the safety checker for image generation.\n * When true, the API will not reject images flagged as potentially NSFW.\n * Not available for Flux Schnell Free and Flux Pro models.\n */\n disable_safety_checker: z.boolean().nullish(),\n })\n .passthrough(),\n ),\n);\n\nexport type TogetherAIImageModelOptions = InferSchema<\n typeof togetheraiImageModelOptionsSchema\n>;\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,+BAIO;AAQP,IAAAA,yBAKO;;;AChBP,IAAAC,yBAOO;;;ACPP,4BAAsC;AACtC,gBAAkB;AAYX,IAAM,4BAAwB;AAAA,EAAW,UAC9C;AAAA,IACE,YAAE,OAAO;AAAA,MACP,OAAO,YAAE,OAAO;AAAA,QACd,SAAS,YAAE,OAAO;AAAA,MACpB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAEO,IAAM,wCAAoC;AAAA,EAAW,UAC1D;AAAA,IACE,YAAE,OAAO;AAAA,MACP,IAAI,YAAE,OAAO,EAAE,QAAQ;AAAA,MACvB,OAAO,YAAE,OAAO,EAAE,QAAQ;AAAA,MAC1B,SAAS,YAAE;AAAA,QACT,YAAE,OAAO;AAAA,UACP,OAAO,YAAE,OAAO;AAAA,UAChB,iBAAiB,YAAE,OAAO;AAAA,QAC5B,CAAC;AAAA,MACH;AAAA,MACA,OAAO,YAAE,OAAO;AAAA,QACd,eAAe,YAAE,OAAO;AAAA,QACxB,mBAAmB,YAAE,OAAO;AAAA,QAC5B,cAAc,YAAE,OAAO;AAAA,MACzB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;;;AC1CA,IAAAC,yBAAsD;AACtD,IAAAC,aAAkB;AAkBX,IAAM,4CACX;AAAA,EAAW,UACT;AAAA,IACE,aAAE,OAAO;AAAA,MACP,YAAY,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IAC3C,CAAC;AAAA,EACH;AACF;;;AFAK,IAAM,2BAAN,MAA2D;AAAA,EAMhE,YACE,SACA,QACA;AARF,SAAS,uBAAuB;AAS9B,SAAK,UAAU;AACf,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA;AAAA,EAGA,MAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAEE;AAtDJ;AAuDI,UAAM,mBAAmB,UAAM,6CAAqB;AAAA,MAClD,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAED,UAAM;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,MACP;AAAA,IACF,IAAI,UAAM,sCAAc;AAAA,MACtB,KAAK,GAAG,KAAK,OAAO,OAAO;AAAA,MAC3B,aAAS,uCAAe,KAAK,OAAO,QAAQ,GAAG,OAAO;AAAA,MACtD,MAAM;AAAA,QACJ,OAAO,KAAK;AAAA,QACZ,WAAW,UAAU;AAAA,QACrB;AAAA,QACA,OAAO;AAAA,QACP,aAAa,qDAAkB;AAAA,QAC/B,kBAAkB;AAAA;AAAA,MACpB;AAAA,MACA,2BAAuB,uDAA+B;AAAA,QACpD,aAAa;AAAA,QACb,gBAAgB,UAAQ,KAAK,MAAM;AAAA,MACrC,CAAC;AAAA,MACD,+BAA2B;AAAA,QACzB;AAAA,MACF;AAAA,MACA;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,WAAO;AAAA,MACL,SAAS,SAAS,QAAQ,IAAI,aAAW;AAAA,QACvC,OAAO,OAAO;AAAA,QACd,gBAAgB,OAAO;AAAA,MACzB,EAAE;AAAA,MACF,UAAU;AAAA,QACR,KAAI,cAAS,OAAT,YAAe;AAAA,QACnB,UAAS,cAAS,UAAT,YAAkB;AAAA,QAC3B,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;;;AGnGA,IAAAC,yBAWO;AAEP,IAAAC,aAAkB;AAYX,IAAM,uBAAN,MAAmD;AAAA,EAQxD,YACW,SACD,QACR;AAFS;AACD;AATV,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAAA,EASzB;AAAA,EAPH,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAEE;AAnDJ;AAoDI,UAAM,WAAmC,CAAC;AAE1C,QAAI,QAAQ,MAAM;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,MAGF;AAAA,IACF;AAEA,QAAI,QAAQ,MAAM;AAChB,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAEA,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AAEvE,UAAM,oBAAoB,UAAM,6CAAqB;AAAA,MACnD,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAGD,QAAI;AACJ,QAAI,SAAS,QAAQ,MAAM,SAAS,GAAG;AACrC,qBAAW,uDAA+B,MAAM,CAAC,CAAC;AAElD,UAAI,MAAM,SAAS,GAAG;AACpB,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AAAA,IACF;AAEA,UAAM,YAAY,6BAAM,MAAM;AAE9B,UAAM,EAAE,OAAO,UAAU,gBAAgB,IAAI,UAAM,sCAAc;AAAA,MAC/D,KAAK,GAAG,KAAK,OAAO,OAAO;AAAA,MAC3B,aAAS,uCAAe,KAAK,OAAO,QAAQ,GAAG,OAAO;AAAA,MACtD,MAAM;AAAA,QACJ,OAAO,KAAK;AAAA,QACZ;AAAA,QACA;AAAA,QACA,GAAI,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;AAAA,QACrB,GAAI,aAAa;AAAA,UACf,OAAO,SAAS,UAAU,CAAC,CAAC;AAAA,UAC5B,QAAQ,SAAS,UAAU,CAAC,CAAC;AAAA,QAC/B;AAAA,QACA,GAAI,YAAY,OAAO,EAAE,WAAW,SAAS,IAAI,CAAC;AAAA,QAClD,iBAAiB;AAAA,QACjB,GAAI,gDAAqB,CAAC;AAAA,MAC5B;AAAA,MACA,2BAAuB,uDAA+B;AAAA,QACpD,aAAaC;AAAA,QACb,gBAAgB,UAAQ,KAAK,MAAM;AAAA,MACrC,CAAC;AAAA,MACD,+BAA2B;AAAA,QACzB;AAAA,MACF;AAAA,MACA;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,WAAO;AAAA,MACL,QAAQ,SAAS,KAAK,IAAI,UAAQ,KAAK,QAAQ;AAAA,MAC/C;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF;AAIA,IAAM,gCAAgC,aAAE,OAAO;AAAA,EAC7C,MAAM,aAAE;AAAA,IACN,aAAE,OAAO;AAAA,MACP,UAAU,aAAE,OAAO;AAAA,IACrB,CAAC;AAAA,EACH;AACF,CAAC;AAID,IAAMA,yBAAwB,aAAE,OAAO;AAAA,EACrC,OAAO,aAAE,OAAO;AAAA,IACd,SAAS,aAAE,OAAO;AAAA,EACpB,CAAC;AACH,CAAC;AAKM,IAAM,wCAAoC;AAAA,EAAW,UAC1D;AAAA,IACE,aACG,OAAO;AAAA;AAAA;AAAA;AAAA,MAIN,OAAO,aAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,MAK1B,UAAU,aAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,MAK7B,iBAAiB,aAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOpC,wBAAwB,aAAE,QAAQ,EAAE,QAAQ;AAAA,IAC9C,CAAC,EACA,YAAY;AAAA,EACjB;AACF;;;ACrLO,IAAM,UACX,OACI,kBACA;;;AL8FN,SAAS,uBAA2C;AAClD,MAAI,OAAO,YAAY,aAAa;AAClC,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ,IAAI,qBAAqB,UAAU;AACpD,WAAO;AAAA,EACT;AACA,QAAM,MAAM,QAAQ,IAAI;AACxB,MAAI,OAAO,QAAQ,UAAU;AAC3B,YAAQ;AAAA,MACN;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,iBACd,UAAsC,CAAC,GACnB;AAtHtB;AAuHE,QAAM,cAAU;AAAA,KACd,aAAQ,YAAR,YAAmB;AAAA,EACrB;AACA,QAAM,aAAa,MAAG;AA1HxB,QAAAC;AA2HI;AAAA,MACE;AAAA,QACE,eAAe,cAAU,mCAAW;AAAA,UAClC,SAAQA,MAAA,QAAQ,WAAR,OAAAA,MAAkB,qBAAqB;AAAA,UAC/C,yBAAyB;AAAA,UACzB,aAAa;AAAA,QACf,CAAC,CAAC;AAAA,QACF,GAAG,QAAQ;AAAA,MACb;AAAA,MACA,qBAAqB,OAAO;AAAA,IAC9B;AAAA;AASF,QAAM,uBAAuB,CAAC,eAA0C;AAAA,IACtE,UAAU,cAAc,SAAS;AAAA,IACjC,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,IACpC,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB;AAEA,QAAM,kBAAkB,CAAC,YAAmC;AAC1D,WAAO,IAAI;AAAA,MACT;AAAA,MACA,qBAAqB,MAAM;AAAA,IAC7B;AAAA,EACF;AAEA,QAAM,wBAAwB,CAAC,YAC7B,IAAI;AAAA,IACF;AAAA,IACA,qBAAqB,YAAY;AAAA,EACnC;AAEF,QAAM,uBAAuB,CAAC,YAC5B,IAAI;AAAA,IACF;AAAA,IACA,qBAAqB,WAAW;AAAA,EAClC;AAEF,QAAM,mBAAmB,CAAC,YACxB,IAAI,qBAAqB,SAAS;AAAA,IAChC,GAAG,qBAAqB,OAAO;AAAA,IAC/B,SAAS,4BAAW;AAAA,EACtB,CAAC;AAEH,QAAM,uBAAuB,CAAC,YAC5B,IAAI,yBAAyB,SAAS;AAAA,IACpC,GAAG,qBAAqB,WAAW;AAAA,IACnC,SAAS,4BAAW;AAAA,EACtB,CAAC;AAEH,QAAM,WAAW,CAAC,YAAmC,gBAAgB,OAAO;AAE5E,WAAS,uBAAuB;AAChC,WAAS,kBAAkB;AAC3B,WAAS,gBAAgB;AACzB,WAAS,YAAY;AACrB,WAAS,iBAAiB;AAC1B,WAAS,qBAAqB;AAC9B,WAAS,QAAQ;AACjB,WAAS,aAAa;AACtB,WAAS,YAAY;AACrB,WAAS,iBAAiB;AAE1B,SAAO;AACT;AAEO,IAAM,aAAa,iBAAiB;","names":["import_provider_utils","import_provider_utils","import_provider_utils","import_v4","import_provider_utils","import_v4","togetheraiErrorSchema","_a"]}
1
+ {"version":3,"sources":["../src/togetherai-provider.ts","../src/reranking/togetherai-reranking-model.ts","../src/reranking/togetherai-reranking-api.ts","../src/reranking/togetherai-reranking-options.ts","../src/togetherai-image-model.ts","../src/version.ts"],"sourcesContent":["import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel,\n} from '@ai-sdk/openai-compatible';\nimport {\n EmbeddingModelV4,\n ImageModelV4,\n LanguageModelV4,\n ProviderV4,\n RerankingModelV4,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { TogetherAIRerankingModel } from './reranking/togetherai-reranking-model';\nimport { TogetherAIRerankingModelId } from './reranking/togetherai-reranking-options';\nimport { TogetherAIChatModelId } from './togetherai-chat-options';\nimport { TogetherAICompletionModelId } from './togetherai-completion-options';\nimport { TogetherAIEmbeddingModelId } from './togetherai-embedding-options';\nimport { TogetherAIImageModel } from './togetherai-image-model';\nimport { TogetherAIImageModelId } from './togetherai-image-settings';\nimport { VERSION } from './version';\n\nexport interface TogetherAIProviderSettings {\n /**\n * TogetherAI API key.\n */\n apiKey?: string;\n /**\n * Base URL for the API calls.\n */\n baseURL?: string;\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface TogetherAIProvider extends ProviderV4 {\n /**\n * Creates a model for text generation.\n */\n (modelId: TogetherAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a chat model for text generation.\n */\n chatModel(modelId: TogetherAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a chat model for text generation.\n */\n languageModel(modelId: TogetherAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a completion model for text generation.\n */\n completionModel(modelId: TogetherAICompletionModelId): LanguageModelV4;\n\n /**\n * Creates a text embedding model for text generation.\n */\n embeddingModel(modelId: TogetherAIEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: TogetherAIEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * Creates a model for image generation.\n */\n image(modelId: TogetherAIImageModelId): ImageModelV4;\n\n /**\n * Creates a model for image generation.\n */\n imageModel(modelId: TogetherAIImageModelId): ImageModelV4;\n\n /**\n * Creates a model for reranking.\n */\n reranking(modelId: TogetherAIRerankingModelId): RerankingModelV4;\n\n /**\n * Creates a model for reranking.\n */\n rerankingModel(modelId: TogetherAIRerankingModelId): RerankingModelV4;\n}\n\nfunction loadDeprecatedApiKey(): string | undefined {\n if (typeof process === 'undefined') {\n return undefined;\n }\n // If the new env var is set, let loadApiKey handle it\n if (typeof process.env.TOGETHER_API_KEY === 'string') {\n return undefined;\n }\n const key = process.env.TOGETHER_AI_API_KEY;\n if (typeof key === 'string') {\n console.warn(\n 'TOGETHER_AI_API_KEY is deprecated and will be removed in a future release. Please use TOGETHER_API_KEY instead.',\n );\n }\n return key;\n}\n\nexport function createTogetherAI(\n options: TogetherAIProviderSettings = {},\n): TogetherAIProvider {\n const baseURL = withoutTrailingSlash(\n options.baseURL ?? 'https://api.together.xyz/v1/',\n );\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey ?? loadDeprecatedApiKey(),\n environmentVariableName: 'TOGETHER_API_KEY',\n description: 'TogetherAI',\n })}`,\n ...options.headers,\n },\n `ai-sdk/togetherai/${VERSION}`,\n );\n\n interface CommonModelConfig {\n provider: string;\n url: ({ path }: { path: string }) => string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n }\n\n const getCommonModelConfig = (modelType: string): CommonModelConfig => ({\n provider: `togetherai.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createChatModel = (modelId: TogetherAIChatModelId) => {\n return new OpenAICompatibleChatLanguageModel(\n modelId,\n getCommonModelConfig('chat'),\n );\n };\n\n const createCompletionModel = (modelId: TogetherAICompletionModelId) =>\n new OpenAICompatibleCompletionLanguageModel(\n modelId,\n getCommonModelConfig('completion'),\n );\n\n const createEmbeddingModel = (modelId: TogetherAIEmbeddingModelId) =>\n new OpenAICompatibleEmbeddingModel(\n modelId,\n getCommonModelConfig('embedding'),\n );\n\n const createImageModel = (modelId: TogetherAIImageModelId) =>\n new TogetherAIImageModel(modelId, {\n ...getCommonModelConfig('image'),\n baseURL: baseURL ?? 'https://api.together.xyz/v1/',\n });\n\n const createRerankingModel = (modelId: TogetherAIRerankingModelId) =>\n new TogetherAIRerankingModel(modelId, {\n ...getCommonModelConfig('reranking'),\n baseURL: baseURL ?? 'https://api.together.xyz/v1/',\n });\n\n const provider = (modelId: TogetherAIChatModelId) => createChatModel(modelId);\n\n provider.specificationVersion = 'v4' as const;\n provider.completionModel = createCompletionModel;\n provider.languageModel = createChatModel;\n provider.chatModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.reranking = createRerankingModel;\n provider.rerankingModel = createRerankingModel;\n\n return provider;\n}\n\nexport const togetherai = createTogetherAI();\n","import { RerankingModelV4 } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n FetchFunction,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport {\n togetheraiErrorSchema,\n TogetherAIRerankingInput,\n togetheraiRerankingResponseSchema,\n} from './togetherai-reranking-api';\nimport {\n TogetherAIRerankingModelId,\n togetheraiRerankingModelOptionsSchema,\n} from './togetherai-reranking-options';\n\ntype TogetherAIRerankingConfig = {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string | undefined>;\n fetch?: FetchFunction;\n};\n\nexport class TogetherAIRerankingModel implements RerankingModelV4 {\n readonly specificationVersion = 'v4';\n readonly modelId: TogetherAIRerankingModelId;\n\n private readonly config: TogetherAIRerankingConfig;\n\n constructor(\n modelId: TogetherAIRerankingModelId,\n config: TogetherAIRerankingConfig,\n ) {\n this.modelId = modelId;\n this.config = config;\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n // see https://docs.together.ai/reference/rerank-1\n async doRerank({\n documents,\n headers,\n query,\n topN,\n abortSignal,\n providerOptions,\n }: Parameters<RerankingModelV4['doRerank']>[0]): Promise<\n Awaited<ReturnType<RerankingModelV4['doRerank']>>\n > {\n const rerankingOptions = await parseProviderOptions({\n provider: 'togetherai',\n providerOptions,\n schema: togetheraiRerankingModelOptionsSchema,\n });\n\n const {\n responseHeaders,\n value: response,\n rawValue,\n } = await postJsonToApi({\n url: `${this.config.baseURL}/rerank`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n model: this.modelId,\n documents: documents.values,\n query,\n top_n: topN,\n rank_fields: rerankingOptions?.rankFields,\n return_documents: false, // reduce response size\n } satisfies TogetherAIRerankingInput,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: togetheraiErrorSchema,\n errorToMessage: data => data.error.message,\n }),\n successfulResponseHandler: createJsonResponseHandler(\n togetheraiRerankingResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n ranking: response.results.map(result => ({\n index: result.index,\n relevanceScore: result.relevance_score,\n })),\n response: {\n id: response.id ?? undefined,\n modelId: response.model ?? undefined,\n headers: responseHeaders,\n body: rawValue,\n },\n };\n }\n}\n","import { JSONObject } from '@ai-sdk/provider';\nimport { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://docs.together.ai/reference/rerank-1\nexport type TogetherAIRerankingInput = {\n model: string;\n query: string;\n documents: JSONObject[] | string[];\n top_n: number | undefined;\n return_documents: boolean | undefined;\n rank_fields: string[] | undefined;\n};\n\nexport const togetheraiErrorSchema = lazySchema(() =>\n zodSchema(\n z.object({\n error: z.object({\n message: z.string(),\n }),\n }),\n ),\n);\n\nexport const togetheraiRerankingResponseSchema = lazySchema(() =>\n zodSchema(\n z.object({\n id: z.string().nullish(),\n model: z.string().nullish(),\n results: z.array(\n z.object({\n index: z.number(),\n relevance_score: z.number(),\n }),\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number(),\n }),\n }),\n ),\n);\n","import { FlexibleSchema, lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// see https://docs.together.ai/docs/serverless-models#rerank-models\nexport type TogetherAIRerankingModelId =\n | 'Salesforce/Llama-Rank-v1'\n | 'mixedbread-ai/Mxbai-Rerank-Large-V2'\n | (string & {});\n\nexport type TogetherAIRerankingModelOptions = {\n /**\n * List of keys in the JSON Object document to rank by.\n * Defaults to use all supplied keys for ranking.\n *\n * @example [\"title\", \"text\"]\n */\n rankFields?: string[];\n};\n\nexport const togetheraiRerankingModelOptionsSchema: FlexibleSchema<TogetherAIRerankingModelOptions> =\n lazySchema(() =>\n zodSchema(\n z.object({\n rankFields: z.array(z.string()).optional(),\n }),\n ),\n );\n","import { ImageModelV4, SharedV4Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonResponseHandler,\n createJsonErrorResponseHandler,\n FetchFunction,\n InferSchema,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { TogetherAIImageModelId } from './togetherai-image-settings';\nimport { z } from 'zod/v4';\n\ninterface TogetherAIImageModelConfig {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class TogetherAIImageModel implements ImageModelV4 {\n readonly specificationVersion = 'v4';\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: TogetherAIImageModelId,\n private config: TogetherAIImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask,\n }: Parameters<ImageModelV4['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV4['doGenerate']>>\n > {\n const warnings: Array<SharedV4Warning> = [];\n\n if (mask != null) {\n throw new Error(\n 'Together AI does not support mask-based image editing. ' +\n 'Use FLUX Kontext models (e.g., black-forest-labs/FLUX.1-kontext-pro) ' +\n 'with a reference image and descriptive prompt instead.',\n );\n }\n\n if (size != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'aspectRatio',\n details:\n 'This model does not support the `aspectRatio` option. Use `size` instead.',\n });\n }\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n const togetheraiOptions = await parseProviderOptions({\n provider: 'togetherai',\n providerOptions,\n schema: togetheraiImageModelOptionsSchema,\n });\n\n // Handle image input from files\n let imageUrl: string | undefined;\n if (files != null && files.length > 0) {\n imageUrl = convertImageModelFileToDataUri(files[0]);\n\n if (files.length > 1) {\n warnings.push({\n type: 'other',\n message:\n 'Together AI only supports a single input image. Additional images are ignored.',\n });\n }\n }\n\n const splitSize = size?.split('x');\n // https://docs.together.ai/reference/post_images-generations\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/images/generations`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n model: this.modelId,\n prompt,\n seed,\n ...(n > 1 ? { n } : {}),\n ...(splitSize && {\n width: parseInt(splitSize[0]),\n height: parseInt(splitSize[1]),\n }),\n ...(imageUrl != null ? { image_url: imageUrl } : {}),\n response_format: 'base64',\n ...(togetheraiOptions ?? {}),\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: togetheraiErrorSchema,\n errorToMessage: data => data.error.message,\n }),\n successfulResponseHandler: createJsonResponseHandler(\n togetheraiImageResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n images: response.data.map(item => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst togetheraiImageResponseSchema = z.object({\n data: z.array(\n z.object({\n b64_json: z.string(),\n }),\n ),\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst togetheraiErrorSchema = z.object({\n error: z.object({\n message: z.string(),\n }),\n});\n\n/**\n * Provider options schema for Together AI image generation.\n */\nexport const togetheraiImageModelOptionsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n /**\n * Number of generation steps. Higher values can improve quality.\n */\n steps: z.number().nullish(),\n\n /**\n * Guidance scale for image generation.\n */\n guidance: z.number().nullish(),\n\n /**\n * Negative prompt to guide what to avoid.\n */\n negative_prompt: z.string().nullish(),\n\n /**\n * Disable the safety checker for image generation.\n * When true, the API will not reject images flagged as potentially NSFW.\n * Not available for Flux Schnell Free and Flux Pro models.\n */\n disable_safety_checker: z.boolean().nullish(),\n })\n .passthrough(),\n ),\n);\n\nexport type TogetherAIImageModelOptions = InferSchema<\n typeof togetheraiImageModelOptionsSchema\n>;\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["lazySchema","zodSchema","z","combineHeaders","createJsonResponseHandler","createJsonErrorResponseHandler","lazySchema","parseProviderOptions","postJsonToApi","zodSchema","z","togetheraiErrorSchema","_a"]}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@ai-sdk/togetherai",
3
- "version": "3.0.0-beta.23",
3
+ "version": "3.0.0-beta.24",
4
+ "type": "module",
4
5
  "license": "Apache-2.0",
5
6
  "sideEffects": false,
6
7
  "main": "./dist/index.js",
7
- "module": "./dist/index.mjs",
8
8
  "types": "./dist/index.d.ts",
9
9
  "files": [
10
10
  "dist/**/*",
@@ -24,21 +24,21 @@
24
24
  "./package.json": "./package.json",
25
25
  ".": {
26
26
  "types": "./dist/index.d.ts",
27
- "import": "./dist/index.mjs",
28
- "require": "./dist/index.js"
27
+ "import": "./dist/index.js",
28
+ "default": "./dist/index.js"
29
29
  }
30
30
  },
31
31
  "dependencies": {
32
- "@ai-sdk/openai-compatible": "3.0.0-beta.23",
33
- "@ai-sdk/provider": "4.0.0-beta.10",
34
- "@ai-sdk/provider-utils": "5.0.0-beta.18"
32
+ "@ai-sdk/openai-compatible": "3.0.0-beta.24",
33
+ "@ai-sdk/provider": "4.0.0-beta.11",
34
+ "@ai-sdk/provider-utils": "5.0.0-beta.19"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "20.17.24",
38
38
  "tsup": "^8",
39
39
  "typescript": "5.8.3",
40
40
  "zod": "3.25.76",
41
- "@ai-sdk/test-server": "2.0.0-beta.0",
41
+ "@ai-sdk/test-server": "2.0.0-beta.1",
42
42
  "@vercel/ai-tsconfig": "0.0.0"
43
43
  },
44
44
  "peerDependencies": {
package/dist/index.d.mts DELETED
@@ -1,103 +0,0 @@
1
- export { OpenAICompatibleErrorData as TogetherAIErrorData } from '@ai-sdk/openai-compatible';
2
- import { ProviderV4, LanguageModelV4, EmbeddingModelV4, ImageModelV4, RerankingModelV4 } from '@ai-sdk/provider';
3
- import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
4
- import { FetchFunction, InferSchema } from '@ai-sdk/provider-utils';
5
-
6
- type TogetherAIRerankingModelId = 'Salesforce/Llama-Rank-v1' | 'mixedbread-ai/Mxbai-Rerank-Large-V2' | (string & {});
7
- type TogetherAIRerankingModelOptions = {
8
- /**
9
- * List of keys in the JSON Object document to rank by.
10
- * Defaults to use all supplied keys for ranking.
11
- *
12
- * @example ["title", "text"]
13
- */
14
- rankFields?: string[];
15
- };
16
-
17
- type TogetherAIChatModelId = 'meta-llama/Llama-3.3-70B-Instruct-Turbo' | 'meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo' | 'meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo' | 'meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo' | 'meta-llama/Meta-Llama-3-8B-Instruct-Turbo' | 'meta-llama/Meta-Llama-3-70B-Instruct-Turbo' | 'meta-llama/Llama-3.2-3B-Instruct-Turbo' | 'meta-llama/Meta-Llama-3-8B-Instruct-Lite' | 'meta-llama/Meta-Llama-3-70B-Instruct-Lite' | 'meta-llama/Llama-3-8b-chat-hf' | 'meta-llama/Llama-3-70b-chat-hf' | 'nvidia/Llama-3.1-Nemotron-70B-Instruct-HF' | 'Qwen/Qwen2.5-Coder-32B-Instruct' | 'Qwen/QwQ-32B-Preview' | 'microsoft/WizardLM-2-8x22B' | 'google/gemma-2-27b-it' | 'google/gemma-2-9b-it' | 'databricks/dbrx-instruct' | 'deepseek-ai/deepseek-llm-67b-chat' | 'deepseek-ai/DeepSeek-V3' | 'google/gemma-2b-it' | 'Gryphe/MythoMax-L2-13b' | 'meta-llama/Llama-2-13b-chat-hf' | 'mistralai/Mistral-7B-Instruct-v0.1' | 'mistralai/Mistral-7B-Instruct-v0.2' | 'mistralai/Mistral-7B-Instruct-v0.3' | 'mistralai/Mixtral-8x7B-Instruct-v0.1' | 'mistralai/Mixtral-8x22B-Instruct-v0.1' | 'NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO' | 'Qwen/Qwen2.5-7B-Instruct-Turbo' | 'Qwen/Qwen2.5-72B-Instruct-Turbo' | 'Qwen/Qwen2-72B-Instruct' | 'upstage/SOLAR-10.7B-Instruct-v1.0' | (string & {});
18
-
19
- type TogetherAICompletionModelId = 'meta-llama/Llama-2-70b-hf' | 'mistralai/Mistral-7B-v0.1' | 'mistralai/Mixtral-8x7B-v0.1' | 'Meta-Llama/Llama-Guard-7b' | 'codellama/CodeLlama-34b-Instruct-hf' | 'Qwen/Qwen2.5-Coder-32B-Instruct' | (string & {});
20
-
21
- type TogetherAIEmbeddingModelId = 'togethercomputer/m2-bert-80M-2k-retrieval' | 'togethercomputer/m2-bert-80M-32k-retrieval' | 'togethercomputer/m2-bert-80M-8k-retrieval' | 'WhereIsAI/UAE-Large-V1' | 'BAAI/bge-large-en-v1.5' | 'BAAI/bge-base-en-v1.5' | 'sentence-transformers/msmarco-bert-base-dot-v5' | 'bert-base-uncased' | (string & {});
22
-
23
- type TogetherAIImageModelId = 'stabilityai/stable-diffusion-xl-base-1.0' | 'black-forest-labs/FLUX.1-dev' | 'black-forest-labs/FLUX.1-dev-lora' | 'black-forest-labs/FLUX.1-schnell' | 'black-forest-labs/FLUX.1-canny' | 'black-forest-labs/FLUX.1-depth' | 'black-forest-labs/FLUX.1-redux' | 'black-forest-labs/FLUX.1.1-pro' | 'black-forest-labs/FLUX.1-pro' | 'black-forest-labs/FLUX.1-schnell-Free' | 'black-forest-labs/FLUX.1-kontext-pro' | 'black-forest-labs/FLUX.1-kontext-max' | 'black-forest-labs/FLUX.1-kontext-dev' | (string & {});
24
-
25
- interface TogetherAIProviderSettings {
26
- /**
27
- * TogetherAI API key.
28
- */
29
- apiKey?: string;
30
- /**
31
- * Base URL for the API calls.
32
- */
33
- baseURL?: string;
34
- /**
35
- * Custom headers to include in the requests.
36
- */
37
- headers?: Record<string, string>;
38
- /**
39
- * Custom fetch implementation. You can use it as a middleware to intercept requests,
40
- * or to provide a custom fetch implementation for e.g. testing.
41
- */
42
- fetch?: FetchFunction;
43
- }
44
- interface TogetherAIProvider extends ProviderV4 {
45
- /**
46
- * Creates a model for text generation.
47
- */
48
- (modelId: TogetherAIChatModelId): LanguageModelV4;
49
- /**
50
- * Creates a chat model for text generation.
51
- */
52
- chatModel(modelId: TogetherAIChatModelId): LanguageModelV4;
53
- /**
54
- * Creates a chat model for text generation.
55
- */
56
- languageModel(modelId: TogetherAIChatModelId): LanguageModelV4;
57
- /**
58
- * Creates a completion model for text generation.
59
- */
60
- completionModel(modelId: TogetherAICompletionModelId): LanguageModelV4;
61
- /**
62
- * Creates a text embedding model for text generation.
63
- */
64
- embeddingModel(modelId: TogetherAIEmbeddingModelId): EmbeddingModelV4;
65
- /**
66
- * @deprecated Use `embeddingModel` instead.
67
- */
68
- textEmbeddingModel(modelId: TogetherAIEmbeddingModelId): EmbeddingModelV4;
69
- /**
70
- * Creates a model for image generation.
71
- */
72
- image(modelId: TogetherAIImageModelId): ImageModelV4;
73
- /**
74
- * Creates a model for image generation.
75
- */
76
- imageModel(modelId: TogetherAIImageModelId): ImageModelV4;
77
- /**
78
- * Creates a model for reranking.
79
- */
80
- reranking(modelId: TogetherAIRerankingModelId): RerankingModelV4;
81
- /**
82
- * Creates a model for reranking.
83
- */
84
- rerankingModel(modelId: TogetherAIRerankingModelId): RerankingModelV4;
85
- }
86
- declare function createTogetherAI(options?: TogetherAIProviderSettings): TogetherAIProvider;
87
- declare const togetherai: TogetherAIProvider;
88
-
89
- /**
90
- * Provider options schema for Together AI image generation.
91
- */
92
- declare const togetheraiImageModelOptionsSchema: _ai_sdk_provider_utils.LazySchema<{
93
- [x: string]: unknown;
94
- steps?: number | null | undefined;
95
- guidance?: number | null | undefined;
96
- negative_prompt?: string | null | undefined;
97
- disable_safety_checker?: boolean | null | undefined;
98
- }>;
99
- type TogetherAIImageModelOptions = InferSchema<typeof togetheraiImageModelOptionsSchema>;
100
-
101
- declare const VERSION: string;
102
-
103
- export { type TogetherAIImageModelOptions, type TogetherAIImageModelOptions as TogetherAIImageProviderOptions, type TogetherAIProvider, type TogetherAIProviderSettings, type TogetherAIRerankingModelOptions, type TogetherAIRerankingModelOptions as TogetherAIRerankingOptions, VERSION, createTogetherAI, togetherai };
package/dist/index.mjs DELETED
@@ -1,354 +0,0 @@
1
- // src/togetherai-provider.ts
2
- import {
3
- OpenAICompatibleChatLanguageModel,
4
- OpenAICompatibleCompletionLanguageModel,
5
- OpenAICompatibleEmbeddingModel
6
- } from "@ai-sdk/openai-compatible";
7
- import {
8
- loadApiKey,
9
- withoutTrailingSlash,
10
- withUserAgentSuffix
11
- } from "@ai-sdk/provider-utils";
12
-
13
- // src/reranking/togetherai-reranking-model.ts
14
- import {
15
- combineHeaders,
16
- createJsonErrorResponseHandler,
17
- createJsonResponseHandler,
18
- parseProviderOptions,
19
- postJsonToApi
20
- } from "@ai-sdk/provider-utils";
21
-
22
- // src/reranking/togetherai-reranking-api.ts
23
- import { lazySchema, zodSchema } from "@ai-sdk/provider-utils";
24
- import { z } from "zod/v4";
25
- var togetheraiErrorSchema = lazySchema(
26
- () => zodSchema(
27
- z.object({
28
- error: z.object({
29
- message: z.string()
30
- })
31
- })
32
- )
33
- );
34
- var togetheraiRerankingResponseSchema = lazySchema(
35
- () => zodSchema(
36
- z.object({
37
- id: z.string().nullish(),
38
- model: z.string().nullish(),
39
- results: z.array(
40
- z.object({
41
- index: z.number(),
42
- relevance_score: z.number()
43
- })
44
- ),
45
- usage: z.object({
46
- prompt_tokens: z.number(),
47
- completion_tokens: z.number(),
48
- total_tokens: z.number()
49
- })
50
- })
51
- )
52
- );
53
-
54
- // src/reranking/togetherai-reranking-options.ts
55
- import { lazySchema as lazySchema2, zodSchema as zodSchema2 } from "@ai-sdk/provider-utils";
56
- import { z as z2 } from "zod/v4";
57
- var togetheraiRerankingModelOptionsSchema = lazySchema2(
58
- () => zodSchema2(
59
- z2.object({
60
- rankFields: z2.array(z2.string()).optional()
61
- })
62
- )
63
- );
64
-
65
- // src/reranking/togetherai-reranking-model.ts
66
- var TogetherAIRerankingModel = class {
67
- constructor(modelId, config) {
68
- this.specificationVersion = "v4";
69
- this.modelId = modelId;
70
- this.config = config;
71
- }
72
- get provider() {
73
- return this.config.provider;
74
- }
75
- // see https://docs.together.ai/reference/rerank-1
76
- async doRerank({
77
- documents,
78
- headers,
79
- query,
80
- topN,
81
- abortSignal,
82
- providerOptions
83
- }) {
84
- var _a, _b;
85
- const rerankingOptions = await parseProviderOptions({
86
- provider: "togetherai",
87
- providerOptions,
88
- schema: togetheraiRerankingModelOptionsSchema
89
- });
90
- const {
91
- responseHeaders,
92
- value: response,
93
- rawValue
94
- } = await postJsonToApi({
95
- url: `${this.config.baseURL}/rerank`,
96
- headers: combineHeaders(this.config.headers(), headers),
97
- body: {
98
- model: this.modelId,
99
- documents: documents.values,
100
- query,
101
- top_n: topN,
102
- rank_fields: rerankingOptions == null ? void 0 : rerankingOptions.rankFields,
103
- return_documents: false
104
- // reduce response size
105
- },
106
- failedResponseHandler: createJsonErrorResponseHandler({
107
- errorSchema: togetheraiErrorSchema,
108
- errorToMessage: (data) => data.error.message
109
- }),
110
- successfulResponseHandler: createJsonResponseHandler(
111
- togetheraiRerankingResponseSchema
112
- ),
113
- abortSignal,
114
- fetch: this.config.fetch
115
- });
116
- return {
117
- ranking: response.results.map((result) => ({
118
- index: result.index,
119
- relevanceScore: result.relevance_score
120
- })),
121
- response: {
122
- id: (_a = response.id) != null ? _a : void 0,
123
- modelId: (_b = response.model) != null ? _b : void 0,
124
- headers: responseHeaders,
125
- body: rawValue
126
- }
127
- };
128
- }
129
- };
130
-
131
- // src/togetherai-image-model.ts
132
- import {
133
- combineHeaders as combineHeaders2,
134
- convertImageModelFileToDataUri,
135
- createJsonResponseHandler as createJsonResponseHandler2,
136
- createJsonErrorResponseHandler as createJsonErrorResponseHandler2,
137
- lazySchema as lazySchema3,
138
- parseProviderOptions as parseProviderOptions2,
139
- postJsonToApi as postJsonToApi2,
140
- zodSchema as zodSchema3
141
- } from "@ai-sdk/provider-utils";
142
- import { z as z3 } from "zod/v4";
143
- var TogetherAIImageModel = class {
144
- constructor(modelId, config) {
145
- this.modelId = modelId;
146
- this.config = config;
147
- this.specificationVersion = "v4";
148
- this.maxImagesPerCall = 1;
149
- }
150
- get provider() {
151
- return this.config.provider;
152
- }
153
- async doGenerate({
154
- prompt,
155
- n,
156
- size,
157
- seed,
158
- providerOptions,
159
- headers,
160
- abortSignal,
161
- files,
162
- mask
163
- }) {
164
- var _a, _b, _c;
165
- const warnings = [];
166
- if (mask != null) {
167
- throw new Error(
168
- "Together AI does not support mask-based image editing. Use FLUX Kontext models (e.g., black-forest-labs/FLUX.1-kontext-pro) with a reference image and descriptive prompt instead."
169
- );
170
- }
171
- if (size != null) {
172
- warnings.push({
173
- type: "unsupported",
174
- feature: "aspectRatio",
175
- details: "This model does not support the `aspectRatio` option. Use `size` instead."
176
- });
177
- }
178
- const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
179
- const togetheraiOptions = await parseProviderOptions2({
180
- provider: "togetherai",
181
- providerOptions,
182
- schema: togetheraiImageModelOptionsSchema
183
- });
184
- let imageUrl;
185
- if (files != null && files.length > 0) {
186
- imageUrl = convertImageModelFileToDataUri(files[0]);
187
- if (files.length > 1) {
188
- warnings.push({
189
- type: "other",
190
- message: "Together AI only supports a single input image. Additional images are ignored."
191
- });
192
- }
193
- }
194
- const splitSize = size == null ? void 0 : size.split("x");
195
- const { value: response, responseHeaders } = await postJsonToApi2({
196
- url: `${this.config.baseURL}/images/generations`,
197
- headers: combineHeaders2(this.config.headers(), headers),
198
- body: {
199
- model: this.modelId,
200
- prompt,
201
- seed,
202
- ...n > 1 ? { n } : {},
203
- ...splitSize && {
204
- width: parseInt(splitSize[0]),
205
- height: parseInt(splitSize[1])
206
- },
207
- ...imageUrl != null ? { image_url: imageUrl } : {},
208
- response_format: "base64",
209
- ...togetheraiOptions != null ? togetheraiOptions : {}
210
- },
211
- failedResponseHandler: createJsonErrorResponseHandler2({
212
- errorSchema: togetheraiErrorSchema2,
213
- errorToMessage: (data) => data.error.message
214
- }),
215
- successfulResponseHandler: createJsonResponseHandler2(
216
- togetheraiImageResponseSchema
217
- ),
218
- abortSignal,
219
- fetch: this.config.fetch
220
- });
221
- return {
222
- images: response.data.map((item) => item.b64_json),
223
- warnings,
224
- response: {
225
- timestamp: currentDate,
226
- modelId: this.modelId,
227
- headers: responseHeaders
228
- }
229
- };
230
- }
231
- };
232
- var togetheraiImageResponseSchema = z3.object({
233
- data: z3.array(
234
- z3.object({
235
- b64_json: z3.string()
236
- })
237
- )
238
- });
239
- var togetheraiErrorSchema2 = z3.object({
240
- error: z3.object({
241
- message: z3.string()
242
- })
243
- });
244
- var togetheraiImageModelOptionsSchema = lazySchema3(
245
- () => zodSchema3(
246
- z3.object({
247
- /**
248
- * Number of generation steps. Higher values can improve quality.
249
- */
250
- steps: z3.number().nullish(),
251
- /**
252
- * Guidance scale for image generation.
253
- */
254
- guidance: z3.number().nullish(),
255
- /**
256
- * Negative prompt to guide what to avoid.
257
- */
258
- negative_prompt: z3.string().nullish(),
259
- /**
260
- * Disable the safety checker for image generation.
261
- * When true, the API will not reject images flagged as potentially NSFW.
262
- * Not available for Flux Schnell Free and Flux Pro models.
263
- */
264
- disable_safety_checker: z3.boolean().nullish()
265
- }).passthrough()
266
- )
267
- );
268
-
269
- // src/version.ts
270
- var VERSION = true ? "3.0.0-beta.23" : "0.0.0-test";
271
-
272
- // src/togetherai-provider.ts
273
- function loadDeprecatedApiKey() {
274
- if (typeof process === "undefined") {
275
- return void 0;
276
- }
277
- if (typeof process.env.TOGETHER_API_KEY === "string") {
278
- return void 0;
279
- }
280
- const key = process.env.TOGETHER_AI_API_KEY;
281
- if (typeof key === "string") {
282
- console.warn(
283
- "TOGETHER_AI_API_KEY is deprecated and will be removed in a future release. Please use TOGETHER_API_KEY instead."
284
- );
285
- }
286
- return key;
287
- }
288
- function createTogetherAI(options = {}) {
289
- var _a;
290
- const baseURL = withoutTrailingSlash(
291
- (_a = options.baseURL) != null ? _a : "https://api.together.xyz/v1/"
292
- );
293
- const getHeaders = () => {
294
- var _a2;
295
- return withUserAgentSuffix(
296
- {
297
- Authorization: `Bearer ${loadApiKey({
298
- apiKey: (_a2 = options.apiKey) != null ? _a2 : loadDeprecatedApiKey(),
299
- environmentVariableName: "TOGETHER_API_KEY",
300
- description: "TogetherAI"
301
- })}`,
302
- ...options.headers
303
- },
304
- `ai-sdk/togetherai/${VERSION}`
305
- );
306
- };
307
- const getCommonModelConfig = (modelType) => ({
308
- provider: `togetherai.${modelType}`,
309
- url: ({ path }) => `${baseURL}${path}`,
310
- headers: getHeaders,
311
- fetch: options.fetch
312
- });
313
- const createChatModel = (modelId) => {
314
- return new OpenAICompatibleChatLanguageModel(
315
- modelId,
316
- getCommonModelConfig("chat")
317
- );
318
- };
319
- const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(
320
- modelId,
321
- getCommonModelConfig("completion")
322
- );
323
- const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(
324
- modelId,
325
- getCommonModelConfig("embedding")
326
- );
327
- const createImageModel = (modelId) => new TogetherAIImageModel(modelId, {
328
- ...getCommonModelConfig("image"),
329
- baseURL: baseURL != null ? baseURL : "https://api.together.xyz/v1/"
330
- });
331
- const createRerankingModel = (modelId) => new TogetherAIRerankingModel(modelId, {
332
- ...getCommonModelConfig("reranking"),
333
- baseURL: baseURL != null ? baseURL : "https://api.together.xyz/v1/"
334
- });
335
- const provider = (modelId) => createChatModel(modelId);
336
- provider.specificationVersion = "v4";
337
- provider.completionModel = createCompletionModel;
338
- provider.languageModel = createChatModel;
339
- provider.chatModel = createChatModel;
340
- provider.embeddingModel = createEmbeddingModel;
341
- provider.textEmbeddingModel = createEmbeddingModel;
342
- provider.image = createImageModel;
343
- provider.imageModel = createImageModel;
344
- provider.reranking = createRerankingModel;
345
- provider.rerankingModel = createRerankingModel;
346
- return provider;
347
- }
348
- var togetherai = createTogetherAI();
349
- export {
350
- VERSION,
351
- createTogetherAI,
352
- togetherai
353
- };
354
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/togetherai-provider.ts","../src/reranking/togetherai-reranking-model.ts","../src/reranking/togetherai-reranking-api.ts","../src/reranking/togetherai-reranking-options.ts","../src/togetherai-image-model.ts","../src/version.ts"],"sourcesContent":["import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel,\n} from '@ai-sdk/openai-compatible';\nimport {\n EmbeddingModelV4,\n ImageModelV4,\n LanguageModelV4,\n ProviderV4,\n RerankingModelV4,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { TogetherAIRerankingModel } from './reranking/togetherai-reranking-model';\nimport { TogetherAIRerankingModelId } from './reranking/togetherai-reranking-options';\nimport { TogetherAIChatModelId } from './togetherai-chat-options';\nimport { TogetherAICompletionModelId } from './togetherai-completion-options';\nimport { TogetherAIEmbeddingModelId } from './togetherai-embedding-options';\nimport { TogetherAIImageModel } from './togetherai-image-model';\nimport { TogetherAIImageModelId } from './togetherai-image-settings';\nimport { VERSION } from './version';\n\nexport interface TogetherAIProviderSettings {\n /**\n * TogetherAI API key.\n */\n apiKey?: string;\n /**\n * Base URL for the API calls.\n */\n baseURL?: string;\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface TogetherAIProvider extends ProviderV4 {\n /**\n * Creates a model for text generation.\n */\n (modelId: TogetherAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a chat model for text generation.\n */\n chatModel(modelId: TogetherAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a chat model for text generation.\n */\n languageModel(modelId: TogetherAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a completion model for text generation.\n */\n completionModel(modelId: TogetherAICompletionModelId): LanguageModelV4;\n\n /**\n * Creates a text embedding model for text generation.\n */\n embeddingModel(modelId: TogetherAIEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: TogetherAIEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * Creates a model for image generation.\n */\n image(modelId: TogetherAIImageModelId): ImageModelV4;\n\n /**\n * Creates a model for image generation.\n */\n imageModel(modelId: TogetherAIImageModelId): ImageModelV4;\n\n /**\n * Creates a model for reranking.\n */\n reranking(modelId: TogetherAIRerankingModelId): RerankingModelV4;\n\n /**\n * Creates a model for reranking.\n */\n rerankingModel(modelId: TogetherAIRerankingModelId): RerankingModelV4;\n}\n\nfunction loadDeprecatedApiKey(): string | undefined {\n if (typeof process === 'undefined') {\n return undefined;\n }\n // If the new env var is set, let loadApiKey handle it\n if (typeof process.env.TOGETHER_API_KEY === 'string') {\n return undefined;\n }\n const key = process.env.TOGETHER_AI_API_KEY;\n if (typeof key === 'string') {\n console.warn(\n 'TOGETHER_AI_API_KEY is deprecated and will be removed in a future release. Please use TOGETHER_API_KEY instead.',\n );\n }\n return key;\n}\n\nexport function createTogetherAI(\n options: TogetherAIProviderSettings = {},\n): TogetherAIProvider {\n const baseURL = withoutTrailingSlash(\n options.baseURL ?? 'https://api.together.xyz/v1/',\n );\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey ?? loadDeprecatedApiKey(),\n environmentVariableName: 'TOGETHER_API_KEY',\n description: 'TogetherAI',\n })}`,\n ...options.headers,\n },\n `ai-sdk/togetherai/${VERSION}`,\n );\n\n interface CommonModelConfig {\n provider: string;\n url: ({ path }: { path: string }) => string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n }\n\n const getCommonModelConfig = (modelType: string): CommonModelConfig => ({\n provider: `togetherai.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createChatModel = (modelId: TogetherAIChatModelId) => {\n return new OpenAICompatibleChatLanguageModel(\n modelId,\n getCommonModelConfig('chat'),\n );\n };\n\n const createCompletionModel = (modelId: TogetherAICompletionModelId) =>\n new OpenAICompatibleCompletionLanguageModel(\n modelId,\n getCommonModelConfig('completion'),\n );\n\n const createEmbeddingModel = (modelId: TogetherAIEmbeddingModelId) =>\n new OpenAICompatibleEmbeddingModel(\n modelId,\n getCommonModelConfig('embedding'),\n );\n\n const createImageModel = (modelId: TogetherAIImageModelId) =>\n new TogetherAIImageModel(modelId, {\n ...getCommonModelConfig('image'),\n baseURL: baseURL ?? 'https://api.together.xyz/v1/',\n });\n\n const createRerankingModel = (modelId: TogetherAIRerankingModelId) =>\n new TogetherAIRerankingModel(modelId, {\n ...getCommonModelConfig('reranking'),\n baseURL: baseURL ?? 'https://api.together.xyz/v1/',\n });\n\n const provider = (modelId: TogetherAIChatModelId) => createChatModel(modelId);\n\n provider.specificationVersion = 'v4' as const;\n provider.completionModel = createCompletionModel;\n provider.languageModel = createChatModel;\n provider.chatModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.reranking = createRerankingModel;\n provider.rerankingModel = createRerankingModel;\n\n return provider;\n}\n\nexport const togetherai = createTogetherAI();\n","import { RerankingModelV4 } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n FetchFunction,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport {\n togetheraiErrorSchema,\n TogetherAIRerankingInput,\n togetheraiRerankingResponseSchema,\n} from './togetherai-reranking-api';\nimport {\n TogetherAIRerankingModelId,\n togetheraiRerankingModelOptionsSchema,\n} from './togetherai-reranking-options';\n\ntype TogetherAIRerankingConfig = {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string | undefined>;\n fetch?: FetchFunction;\n};\n\nexport class TogetherAIRerankingModel implements RerankingModelV4 {\n readonly specificationVersion = 'v4';\n readonly modelId: TogetherAIRerankingModelId;\n\n private readonly config: TogetherAIRerankingConfig;\n\n constructor(\n modelId: TogetherAIRerankingModelId,\n config: TogetherAIRerankingConfig,\n ) {\n this.modelId = modelId;\n this.config = config;\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n // see https://docs.together.ai/reference/rerank-1\n async doRerank({\n documents,\n headers,\n query,\n topN,\n abortSignal,\n providerOptions,\n }: Parameters<RerankingModelV4['doRerank']>[0]): Promise<\n Awaited<ReturnType<RerankingModelV4['doRerank']>>\n > {\n const rerankingOptions = await parseProviderOptions({\n provider: 'togetherai',\n providerOptions,\n schema: togetheraiRerankingModelOptionsSchema,\n });\n\n const {\n responseHeaders,\n value: response,\n rawValue,\n } = await postJsonToApi({\n url: `${this.config.baseURL}/rerank`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n model: this.modelId,\n documents: documents.values,\n query,\n top_n: topN,\n rank_fields: rerankingOptions?.rankFields,\n return_documents: false, // reduce response size\n } satisfies TogetherAIRerankingInput,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: togetheraiErrorSchema,\n errorToMessage: data => data.error.message,\n }),\n successfulResponseHandler: createJsonResponseHandler(\n togetheraiRerankingResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n ranking: response.results.map(result => ({\n index: result.index,\n relevanceScore: result.relevance_score,\n })),\n response: {\n id: response.id ?? undefined,\n modelId: response.model ?? undefined,\n headers: responseHeaders,\n body: rawValue,\n },\n };\n }\n}\n","import { JSONObject } from '@ai-sdk/provider';\nimport { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://docs.together.ai/reference/rerank-1\nexport type TogetherAIRerankingInput = {\n model: string;\n query: string;\n documents: JSONObject[] | string[];\n top_n: number | undefined;\n return_documents: boolean | undefined;\n rank_fields: string[] | undefined;\n};\n\nexport const togetheraiErrorSchema = lazySchema(() =>\n zodSchema(\n z.object({\n error: z.object({\n message: z.string(),\n }),\n }),\n ),\n);\n\nexport const togetheraiRerankingResponseSchema = lazySchema(() =>\n zodSchema(\n z.object({\n id: z.string().nullish(),\n model: z.string().nullish(),\n results: z.array(\n z.object({\n index: z.number(),\n relevance_score: z.number(),\n }),\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number(),\n }),\n }),\n ),\n);\n","import { FlexibleSchema, lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// see https://docs.together.ai/docs/serverless-models#rerank-models\nexport type TogetherAIRerankingModelId =\n | 'Salesforce/Llama-Rank-v1'\n | 'mixedbread-ai/Mxbai-Rerank-Large-V2'\n | (string & {});\n\nexport type TogetherAIRerankingModelOptions = {\n /**\n * List of keys in the JSON Object document to rank by.\n * Defaults to use all supplied keys for ranking.\n *\n * @example [\"title\", \"text\"]\n */\n rankFields?: string[];\n};\n\nexport const togetheraiRerankingModelOptionsSchema: FlexibleSchema<TogetherAIRerankingModelOptions> =\n lazySchema(() =>\n zodSchema(\n z.object({\n rankFields: z.array(z.string()).optional(),\n }),\n ),\n );\n","import { ImageModelV4, SharedV4Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonResponseHandler,\n createJsonErrorResponseHandler,\n FetchFunction,\n InferSchema,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { TogetherAIImageModelId } from './togetherai-image-settings';\nimport { z } from 'zod/v4';\n\ninterface TogetherAIImageModelConfig {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class TogetherAIImageModel implements ImageModelV4 {\n readonly specificationVersion = 'v4';\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: TogetherAIImageModelId,\n private config: TogetherAIImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask,\n }: Parameters<ImageModelV4['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV4['doGenerate']>>\n > {\n const warnings: Array<SharedV4Warning> = [];\n\n if (mask != null) {\n throw new Error(\n 'Together AI does not support mask-based image editing. ' +\n 'Use FLUX Kontext models (e.g., black-forest-labs/FLUX.1-kontext-pro) ' +\n 'with a reference image and descriptive prompt instead.',\n );\n }\n\n if (size != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'aspectRatio',\n details:\n 'This model does not support the `aspectRatio` option. Use `size` instead.',\n });\n }\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n const togetheraiOptions = await parseProviderOptions({\n provider: 'togetherai',\n providerOptions,\n schema: togetheraiImageModelOptionsSchema,\n });\n\n // Handle image input from files\n let imageUrl: string | undefined;\n if (files != null && files.length > 0) {\n imageUrl = convertImageModelFileToDataUri(files[0]);\n\n if (files.length > 1) {\n warnings.push({\n type: 'other',\n message:\n 'Together AI only supports a single input image. Additional images are ignored.',\n });\n }\n }\n\n const splitSize = size?.split('x');\n // https://docs.together.ai/reference/post_images-generations\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/images/generations`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n model: this.modelId,\n prompt,\n seed,\n ...(n > 1 ? { n } : {}),\n ...(splitSize && {\n width: parseInt(splitSize[0]),\n height: parseInt(splitSize[1]),\n }),\n ...(imageUrl != null ? { image_url: imageUrl } : {}),\n response_format: 'base64',\n ...(togetheraiOptions ?? {}),\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: togetheraiErrorSchema,\n errorToMessage: data => data.error.message,\n }),\n successfulResponseHandler: createJsonResponseHandler(\n togetheraiImageResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n images: response.data.map(item => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst togetheraiImageResponseSchema = z.object({\n data: z.array(\n z.object({\n b64_json: z.string(),\n }),\n ),\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst togetheraiErrorSchema = z.object({\n error: z.object({\n message: z.string(),\n }),\n});\n\n/**\n * Provider options schema for Together AI image generation.\n */\nexport const togetheraiImageModelOptionsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n /**\n * Number of generation steps. Higher values can improve quality.\n */\n steps: z.number().nullish(),\n\n /**\n * Guidance scale for image generation.\n */\n guidance: z.number().nullish(),\n\n /**\n * Negative prompt to guide what to avoid.\n */\n negative_prompt: z.string().nullish(),\n\n /**\n * Disable the safety checker for image generation.\n * When true, the API will not reject images flagged as potentially NSFW.\n * Not available for Flux Schnell Free and Flux Pro models.\n */\n disable_safety_checker: z.boolean().nullish(),\n })\n .passthrough(),\n ),\n);\n\nexport type TogetherAIImageModelOptions = InferSchema<\n typeof togetheraiImageModelOptionsSchema\n>;\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["lazySchema","zodSchema","z","combineHeaders","createJsonResponseHandler","createJsonErrorResponseHandler","lazySchema","parseProviderOptions","postJsonToApi","zodSchema","z","togetheraiErrorSchema","_a"]}