@ai-sdk/togetherai 3.0.0-beta.5 → 3.0.0-beta.57

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/dist/index.js CHANGED
@@ -1,77 +1,66 @@
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
- // 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()
54
+ // src/reranking/togetherai-reranking-model-options.ts
55
+ import {
56
+ lazySchema as lazySchema2,
57
+ zodSchema as zodSchema2
58
+ } from "@ai-sdk/provider-utils";
59
+ import { z as z2 } from "zod/v4";
60
+ var togetheraiRerankingModelOptionsSchema = lazySchema2(
61
+ () => zodSchema2(
62
+ z2.object({
63
+ rankFields: z2.array(z2.string()).optional()
75
64
  })
76
65
  )
77
66
  );
@@ -96,7 +85,7 @@ var TogetherAIRerankingModel = class {
96
85
  providerOptions
97
86
  }) {
98
87
  var _a, _b;
99
- const rerankingOptions = await (0, import_provider_utils3.parseProviderOptions)({
88
+ const rerankingOptions = await parseProviderOptions({
100
89
  provider: "togetherai",
101
90
  providerOptions,
102
91
  schema: togetheraiRerankingModelOptionsSchema
@@ -105,9 +94,9 @@ var TogetherAIRerankingModel = class {
105
94
  responseHeaders,
106
95
  value: response,
107
96
  rawValue
108
- } = await (0, import_provider_utils3.postJsonToApi)({
97
+ } = await postJsonToApi({
109
98
  url: `${this.config.baseURL}/rerank`,
110
- headers: (0, import_provider_utils3.combineHeaders)(this.config.headers(), headers),
99
+ headers: combineHeaders(this.config.headers(), headers),
111
100
  body: {
112
101
  model: this.modelId,
113
102
  documents: documents.values,
@@ -117,11 +106,11 @@ var TogetherAIRerankingModel = class {
117
106
  return_documents: false
118
107
  // reduce response size
119
108
  },
120
- failedResponseHandler: (0, import_provider_utils3.createJsonErrorResponseHandler)({
109
+ failedResponseHandler: createJsonErrorResponseHandler({
121
110
  errorSchema: togetheraiErrorSchema,
122
111
  errorToMessage: (data) => data.error.message
123
112
  }),
124
- successfulResponseHandler: (0, import_provider_utils3.createJsonResponseHandler)(
113
+ successfulResponseHandler: createJsonResponseHandler(
125
114
  togetheraiRerankingResponseSchema
126
115
  ),
127
116
  abortSignal,
@@ -143,9 +132,52 @@ var TogetherAIRerankingModel = class {
143
132
  };
144
133
 
145
134
  // src/togetherai-image-model.ts
146
- var import_provider_utils4 = require("@ai-sdk/provider-utils");
147
- var import_v43 = require("zod/v4");
148
- var TogetherAIImageModel = class {
135
+ import {
136
+ combineHeaders as combineHeaders2,
137
+ convertImageModelFileToDataUri,
138
+ createJsonResponseHandler as createJsonResponseHandler2,
139
+ createJsonErrorResponseHandler as createJsonErrorResponseHandler2,
140
+ parseProviderOptions as parseProviderOptions2,
141
+ postJsonToApi as postJsonToApi2,
142
+ serializeModelOptions,
143
+ WORKFLOW_SERIALIZE,
144
+ WORKFLOW_DESERIALIZE
145
+ } from "@ai-sdk/provider-utils";
146
+
147
+ // src/togetherai-image-model-options.ts
148
+ import {
149
+ lazySchema as lazySchema3,
150
+ zodSchema as zodSchema3
151
+ } from "@ai-sdk/provider-utils";
152
+ import { z as z3 } from "zod/v4";
153
+ var togetheraiImageModelOptionsSchema = lazySchema3(
154
+ () => zodSchema3(
155
+ z3.object({
156
+ /**
157
+ * Number of generation steps. Higher values can improve quality.
158
+ */
159
+ steps: z3.number().nullish(),
160
+ /**
161
+ * Guidance scale for image generation.
162
+ */
163
+ guidance: z3.number().nullish(),
164
+ /**
165
+ * Negative prompt to guide what to avoid.
166
+ */
167
+ negative_prompt: z3.string().nullish(),
168
+ /**
169
+ * Disable the safety checker for image generation.
170
+ * When true, the API will not reject images flagged as potentially NSFW.
171
+ * Not available for Flux Schnell Free and Flux Pro models.
172
+ */
173
+ disable_safety_checker: z3.boolean().nullish()
174
+ }).passthrough()
175
+ )
176
+ );
177
+
178
+ // src/togetherai-image-model.ts
179
+ import { z as z4 } from "zod/v4";
180
+ var TogetherAIImageModel = class _TogetherAIImageModel {
149
181
  constructor(modelId, config) {
150
182
  this.modelId = modelId;
151
183
  this.config = config;
@@ -155,6 +187,15 @@ var TogetherAIImageModel = class {
155
187
  get provider() {
156
188
  return this.config.provider;
157
189
  }
190
+ static [WORKFLOW_SERIALIZE](model) {
191
+ return serializeModelOptions({
192
+ modelId: model.modelId,
193
+ config: model.config
194
+ });
195
+ }
196
+ static [WORKFLOW_DESERIALIZE](options) {
197
+ return new _TogetherAIImageModel(options.modelId, options.config);
198
+ }
158
199
  async doGenerate({
159
200
  prompt,
160
201
  n,
@@ -166,7 +207,7 @@ var TogetherAIImageModel = class {
166
207
  files,
167
208
  mask
168
209
  }) {
169
- var _a, _b, _c;
210
+ var _a, _b, _c, _d, _e;
170
211
  const warnings = [];
171
212
  if (mask != null) {
172
213
  throw new Error(
@@ -181,14 +222,14 @@ var TogetherAIImageModel = class {
181
222
  });
182
223
  }
183
224
  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)({
225
+ const togetheraiOptions = await parseProviderOptions2({
185
226
  provider: "togetherai",
186
227
  providerOptions,
187
228
  schema: togetheraiImageModelOptionsSchema
188
229
  });
189
230
  let imageUrl;
190
231
  if (files != null && files.length > 0) {
191
- imageUrl = (0, import_provider_utils4.convertImageModelFileToDataUri)(files[0]);
232
+ imageUrl = convertImageModelFileToDataUri(files[0]);
192
233
  if (files.length > 1) {
193
234
  warnings.push({
194
235
  type: "other",
@@ -197,13 +238,13 @@ var TogetherAIImageModel = class {
197
238
  }
198
239
  }
199
240
  const splitSize = size == null ? void 0 : size.split("x");
200
- const { value: response, responseHeaders } = await (0, import_provider_utils4.postJsonToApi)({
241
+ const { value: response, responseHeaders } = await postJsonToApi2({
201
242
  url: `${this.config.baseURL}/images/generations`,
202
- headers: (0, import_provider_utils4.combineHeaders)(this.config.headers(), headers),
243
+ headers: combineHeaders2((_e = (_d = this.config).headers) == null ? void 0 : _e.call(_d), headers),
203
244
  body: {
204
245
  model: this.modelId,
205
246
  prompt,
206
- seed,
247
+ ...seed != null ? { seed } : {},
207
248
  ...n > 1 ? { n } : {},
208
249
  ...splitSize && {
209
250
  width: parseInt(splitSize[0]),
@@ -213,11 +254,11 @@ var TogetherAIImageModel = class {
213
254
  response_format: "base64",
214
255
  ...togetheraiOptions != null ? togetheraiOptions : {}
215
256
  },
216
- failedResponseHandler: (0, import_provider_utils4.createJsonErrorResponseHandler)({
257
+ failedResponseHandler: createJsonErrorResponseHandler2({
217
258
  errorSchema: togetheraiErrorSchema2,
218
259
  errorToMessage: (data) => data.error.message
219
260
  }),
220
- successfulResponseHandler: (0, import_provider_utils4.createJsonResponseHandler)(
261
+ successfulResponseHandler: createJsonResponseHandler2(
221
262
  togetheraiImageResponseSchema
222
263
  ),
223
264
  abortSignal,
@@ -234,45 +275,21 @@ var TogetherAIImageModel = class {
234
275
  };
235
276
  }
236
277
  };
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()
278
+ var togetheraiImageResponseSchema = z4.object({
279
+ data: z4.array(
280
+ z4.object({
281
+ b64_json: z4.string()
241
282
  })
242
283
  )
243
284
  });
244
- var togetheraiErrorSchema2 = import_v43.z.object({
245
- error: import_v43.z.object({
246
- message: import_v43.z.string()
285
+ var togetheraiErrorSchema2 = z4.object({
286
+ error: z4.object({
287
+ message: z4.string()
247
288
  })
248
289
  });
249
- var togetheraiImageModelOptionsSchema = (0, import_provider_utils4.lazySchema)(
250
- () => (0, import_provider_utils4.zodSchema)(
251
- import_v43.z.object({
252
- /**
253
- * Number of generation steps. Higher values can improve quality.
254
- */
255
- steps: import_v43.z.number().nullish(),
256
- /**
257
- * Guidance scale for image generation.
258
- */
259
- guidance: import_v43.z.number().nullish(),
260
- /**
261
- * Negative prompt to guide what to avoid.
262
- */
263
- negative_prompt: import_v43.z.string().nullish(),
264
- /**
265
- * Disable the safety checker for image generation.
266
- * When true, the API will not reject images flagged as potentially NSFW.
267
- * Not available for Flux Schnell Free and Flux Pro models.
268
- */
269
- disable_safety_checker: import_v43.z.boolean().nullish()
270
- }).passthrough()
271
- )
272
- );
273
290
 
274
291
  // src/version.ts
275
- var VERSION = true ? "3.0.0-beta.5" : "0.0.0-test";
292
+ var VERSION = true ? "3.0.0-beta.57" : "0.0.0-test";
276
293
 
277
294
  // src/togetherai-provider.ts
278
295
  function loadDeprecatedApiKey() {
@@ -292,14 +309,14 @@ function loadDeprecatedApiKey() {
292
309
  }
293
310
  function createTogetherAI(options = {}) {
294
311
  var _a;
295
- const baseURL = (0, import_provider_utils5.withoutTrailingSlash)(
312
+ const baseURL = withoutTrailingSlash(
296
313
  (_a = options.baseURL) != null ? _a : "https://api.together.xyz/v1/"
297
314
  );
298
315
  const getHeaders = () => {
299
316
  var _a2;
300
- return (0, import_provider_utils5.withUserAgentSuffix)(
317
+ return withUserAgentSuffix(
301
318
  {
302
- Authorization: `Bearer ${(0, import_provider_utils5.loadApiKey)({
319
+ Authorization: `Bearer ${loadApiKey({
303
320
  apiKey: (_a2 = options.apiKey) != null ? _a2 : loadDeprecatedApiKey(),
304
321
  environmentVariableName: "TOGETHER_API_KEY",
305
322
  description: "TogetherAI"
@@ -316,16 +333,16 @@ function createTogetherAI(options = {}) {
316
333
  fetch: options.fetch
317
334
  });
318
335
  const createChatModel = (modelId) => {
319
- return new import_openai_compatible.OpenAICompatibleChatLanguageModel(
336
+ return new OpenAICompatibleChatLanguageModel(
320
337
  modelId,
321
338
  getCommonModelConfig("chat")
322
339
  );
323
340
  };
324
- const createCompletionModel = (modelId) => new import_openai_compatible.OpenAICompatibleCompletionLanguageModel(
341
+ const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(
325
342
  modelId,
326
343
  getCommonModelConfig("completion")
327
344
  );
328
- const createEmbeddingModel = (modelId) => new import_openai_compatible.OpenAICompatibleEmbeddingModel(
345
+ const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(
329
346
  modelId,
330
347
  getCommonModelConfig("embedding")
331
348
  );
@@ -351,10 +368,9 @@ function createTogetherAI(options = {}) {
351
368
  return provider;
352
369
  }
353
370
  var togetherai = createTogetherAI();
354
- // Annotate the CommonJS export names for ESM import in node:
355
- 0 && (module.exports = {
371
+ export {
356
372
  VERSION,
357
373
  createTogetherAI,
358
374
  togetherai
359
- });
375
+ };
360
376
  //# 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":"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","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-model-options.ts","../src/togetherai-image-model.ts","../src/togetherai-image-model-options.ts","../src/version.ts"],"sourcesContent":["import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel,\n} from '@ai-sdk/openai-compatible';\nimport type {\n EmbeddingModelV4,\n ImageModelV4,\n LanguageModelV4,\n ProviderV4,\n RerankingModelV4,\n} from '@ai-sdk/provider';\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { TogetherAIRerankingModel } from './reranking/togetherai-reranking-model';\nimport type { TogetherAIRerankingModelId } from './reranking/togetherai-reranking-model-options';\nimport type { TogetherAIChatModelId } from './togetherai-chat-options';\nimport type { TogetherAICompletionModelId } from './togetherai-completion-options';\nimport type { TogetherAIEmbeddingModelId } from './togetherai-embedding-options';\nimport { TogetherAIImageModel } from './togetherai-image-model';\nimport type { 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 type { RerankingModelV4 } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport {\n togetheraiErrorSchema,\n togetheraiRerankingResponseSchema,\n type TogetherAIRerankingInput,\n} from './togetherai-reranking-api';\nimport {\n togetheraiRerankingModelOptionsSchema,\n type TogetherAIRerankingModelId,\n} from './togetherai-reranking-model-options';\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 type { 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 {\n lazySchema,\n zodSchema,\n type FlexibleSchema,\n} 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 type { ImageModelV4, SharedV4Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonResponseHandler,\n createJsonErrorResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n serializeModelOptions,\n WORKFLOW_SERIALIZE,\n WORKFLOW_DESERIALIZE,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { togetheraiImageModelOptionsSchema } from './togetherai-image-model-options';\nimport type { 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 static [WORKFLOW_SERIALIZE](model: TogetherAIImageModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: TogetherAIImageModelId;\n config: TogetherAIImageModelConfig;\n }) {\n return new TogetherAIImageModel(options.modelId, options.config);\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 != null ? { 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","import {\n lazySchema,\n zodSchema,\n type InferSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\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","parseProviderOptions","postJsonToApi","lazySchema","zodSchema","z","z","parseProviderOptions","postJsonToApi","combineHeaders","createJsonErrorResponseHandler","togetheraiErrorSchema","createJsonResponseHandler","_a"]}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@ai-sdk/togetherai",
3
- "version": "3.0.0-beta.5",
3
+ "version": "3.0.0-beta.57",
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,36 +24,38 @@
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.5",
33
- "@ai-sdk/provider": "4.0.0-beta.2",
34
- "@ai-sdk/provider-utils": "5.0.0-beta.3"
32
+ "@ai-sdk/openai-compatible": "3.0.0-beta.57",
33
+ "@ai-sdk/provider": "4.0.0-beta.19",
34
+ "@ai-sdk/provider-utils": "5.0.0-beta.49"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/node": "20.17.24",
38
- "tsup": "^8",
37
+ "@types/node": "22.19.19",
38
+ "tsup": "^8.5.1",
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.7",
42
42
  "@vercel/ai-tsconfig": "0.0.0"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "zod": "^3.25.76 || ^4.1.8"
46
46
  },
47
47
  "engines": {
48
- "node": ">=18"
48
+ "node": ">=22"
49
49
  },
50
50
  "publishConfig": {
51
- "access": "public"
51
+ "access": "public",
52
+ "provenance": true
52
53
  },
53
54
  "homepage": "https://ai-sdk.dev/docs",
54
55
  "repository": {
55
56
  "type": "git",
56
- "url": "git+https://github.com/vercel/ai.git"
57
+ "url": "https://github.com/vercel/ai",
58
+ "directory": "packages/togetherai"
57
59
  },
58
60
  "bugs": {
59
61
  "url": "https://github.com/vercel/ai/issues"
@@ -65,9 +67,7 @@
65
67
  "build": "pnpm clean && tsup --tsconfig tsconfig.build.json",
66
68
  "build:watch": "pnpm clean && tsup --watch",
67
69
  "clean": "del-cli dist docs *.tsbuildinfo",
68
- "lint": "eslint \"./**/*.ts*\"",
69
70
  "type-check": "tsc --build",
70
- "prettier-check": "prettier --check \"./**/*.ts*\"",
71
71
  "test": "pnpm test:node && pnpm test:edge",
72
72
  "test:update": "pnpm test:node -u",
73
73
  "test:watch": "vitest --config vitest.node.config.js",
package/src/index.ts CHANGED
@@ -3,7 +3,7 @@ export type {
3
3
  TogetherAIRerankingModelOptions,
4
4
  /** @deprecated Use `TogetherAIRerankingModelOptions` instead. */
5
5
  TogetherAIRerankingModelOptions as TogetherAIRerankingOptions,
6
- } from './reranking/togetherai-reranking-options';
6
+ } from './reranking/togetherai-reranking-model-options';
7
7
  export { createTogetherAI, togetherai } from './togetherai-provider';
8
8
  export type {
9
9
  TogetherAIProvider,
@@ -13,5 +13,5 @@ export type {
13
13
  TogetherAIImageModelOptions,
14
14
  /** @deprecated Use `TogetherAIImageModelOptions` instead. */
15
15
  TogetherAIImageModelOptions as TogetherAIImageProviderOptions,
16
- } from './togetherai-image-model';
16
+ } from './togetherai-image-model-options';
17
17
  export { VERSION } from './version';
@@ -1,4 +1,4 @@
1
- import { JSONObject } from '@ai-sdk/provider';
1
+ import type { JSONObject } from '@ai-sdk/provider';
2
2
  import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';
3
3
  import { z } from 'zod/v4';
4
4
 
@@ -1,4 +1,8 @@
1
- import { FlexibleSchema, lazySchema, zodSchema } from '@ai-sdk/provider-utils';
1
+ import {
2
+ lazySchema,
3
+ zodSchema,
4
+ type FlexibleSchema,
5
+ } from '@ai-sdk/provider-utils';
2
6
  import { z } from 'zod/v4';
3
7
 
4
8
  // see https://docs.together.ai/docs/serverless-models#rerank-models
@@ -1,22 +1,21 @@
1
- import { RerankingModelV4 } from '@ai-sdk/provider';
1
+ import type { RerankingModelV4 } from '@ai-sdk/provider';
2
2
  import {
3
3
  combineHeaders,
4
4
  createJsonErrorResponseHandler,
5
5
  createJsonResponseHandler,
6
- FetchFunction,
7
6
  parseProviderOptions,
8
7
  postJsonToApi,
8
+ type FetchFunction,
9
9
  } from '@ai-sdk/provider-utils';
10
10
  import {
11
11
  togetheraiErrorSchema,
12
- TogetherAIRerankingInput,
13
12
  togetheraiRerankingResponseSchema,
13
+ type TogetherAIRerankingInput,
14
14
  } from './togetherai-reranking-api';
15
15
  import {
16
- TogetherAIRerankingModelId,
17
16
  togetheraiRerankingModelOptionsSchema,
18
- } from './togetherai-reranking-options';
19
-
17
+ type TogetherAIRerankingModelId,
18
+ } from './togetherai-reranking-model-options';
20
19
  type TogetherAIRerankingConfig = {
21
20
  provider: string;
22
21
  baseURL: string;