@ai-sdk/fireworks 0.0.0-c844ebcc-20250115030207 → 0.0.0-fd764a60-20260114143805
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 +1552 -10
- package/README.md +3 -3
- package/dist/index.d.mts +48 -24
- package/dist/index.d.ts +48 -24
- package/dist/index.js +95 -89
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +101 -96
- package/dist/index.mjs.map +1 -1
- package/package.json +18 -14
package/dist/index.mjs
CHANGED
|
@@ -1,22 +1,9 @@
|
|
|
1
|
-
// src/fireworks-provider.ts
|
|
2
|
-
import {
|
|
3
|
-
OpenAICompatibleChatLanguageModel,
|
|
4
|
-
OpenAICompatibleCompletionLanguageModel,
|
|
5
|
-
OpenAICompatibleEmbeddingModel
|
|
6
|
-
} from "@ai-sdk/openai-compatible";
|
|
7
|
-
import {
|
|
8
|
-
loadApiKey,
|
|
9
|
-
withoutTrailingSlash
|
|
10
|
-
} from "@ai-sdk/provider-utils";
|
|
11
|
-
import { z } from "zod";
|
|
12
|
-
|
|
13
1
|
// src/fireworks-image-model.ts
|
|
14
|
-
import {
|
|
15
|
-
APICallError
|
|
16
|
-
} from "@ai-sdk/provider";
|
|
17
2
|
import {
|
|
18
3
|
combineHeaders,
|
|
19
|
-
|
|
4
|
+
convertImageModelFileToDataUri,
|
|
5
|
+
createBinaryResponseHandler,
|
|
6
|
+
createStatusCodeErrorResponseHandler,
|
|
20
7
|
postJsonToApi
|
|
21
8
|
} from "@ai-sdk/provider-utils";
|
|
22
9
|
var modelToBackendConfig = {
|
|
@@ -26,6 +13,14 @@ var modelToBackendConfig = {
|
|
|
26
13
|
"accounts/fireworks/models/flux-1-schnell-fp8": {
|
|
27
14
|
urlFormat: "workflows"
|
|
28
15
|
},
|
|
16
|
+
"accounts/fireworks/models/flux-kontext-pro": {
|
|
17
|
+
urlFormat: "workflows_edit",
|
|
18
|
+
supportsEditing: true
|
|
19
|
+
},
|
|
20
|
+
"accounts/fireworks/models/flux-kontext-max": {
|
|
21
|
+
urlFormat: "workflows_edit",
|
|
22
|
+
supportsEditing: true
|
|
23
|
+
},
|
|
29
24
|
"accounts/fireworks/models/playground-v2-5-1024px-aesthetic": {
|
|
30
25
|
urlFormat: "image_generation",
|
|
31
26
|
supportsSize: true
|
|
@@ -47,70 +42,26 @@ var modelToBackendConfig = {
|
|
|
47
42
|
supportsSize: true
|
|
48
43
|
}
|
|
49
44
|
};
|
|
50
|
-
function getUrlForModel(baseUrl, modelId) {
|
|
51
|
-
|
|
52
|
-
switch (
|
|
45
|
+
function getUrlForModel(baseUrl, modelId, hasInputImage) {
|
|
46
|
+
const config = modelToBackendConfig[modelId];
|
|
47
|
+
switch (config == null ? void 0 : config.urlFormat) {
|
|
53
48
|
case "image_generation":
|
|
54
49
|
return `${baseUrl}/image_generation/${modelId}`;
|
|
50
|
+
case "workflows_edit":
|
|
51
|
+
return `${baseUrl}/workflows/${modelId}`;
|
|
55
52
|
case "workflows":
|
|
56
53
|
default:
|
|
54
|
+
if (hasInputImage && (config == null ? void 0 : config.supportsEditing)) {
|
|
55
|
+
return `${baseUrl}/workflows/${modelId}`;
|
|
56
|
+
}
|
|
57
57
|
return `${baseUrl}/workflows/${modelId}/text_to_image`;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
var createBinaryResponseHandler = () => async ({ response, url, requestBodyValues }) => {
|
|
61
|
-
const responseHeaders = extractResponseHeaders(response);
|
|
62
|
-
if (!response.body) {
|
|
63
|
-
throw new APICallError({
|
|
64
|
-
message: "Response body is empty",
|
|
65
|
-
url,
|
|
66
|
-
requestBodyValues,
|
|
67
|
-
statusCode: response.status,
|
|
68
|
-
responseHeaders,
|
|
69
|
-
responseBody: void 0
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
try {
|
|
73
|
-
const buffer = await response.arrayBuffer();
|
|
74
|
-
return {
|
|
75
|
-
responseHeaders,
|
|
76
|
-
value: buffer
|
|
77
|
-
};
|
|
78
|
-
} catch (error) {
|
|
79
|
-
throw new APICallError({
|
|
80
|
-
message: "Failed to read response as array buffer",
|
|
81
|
-
url,
|
|
82
|
-
requestBodyValues,
|
|
83
|
-
statusCode: response.status,
|
|
84
|
-
responseHeaders,
|
|
85
|
-
responseBody: void 0,
|
|
86
|
-
cause: error
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
var statusCodeErrorResponseHandler = async ({
|
|
91
|
-
response,
|
|
92
|
-
url,
|
|
93
|
-
requestBodyValues
|
|
94
|
-
}) => {
|
|
95
|
-
const responseHeaders = extractResponseHeaders(response);
|
|
96
|
-
const responseBody = await response.text();
|
|
97
|
-
return {
|
|
98
|
-
responseHeaders,
|
|
99
|
-
value: new APICallError({
|
|
100
|
-
message: response.statusText,
|
|
101
|
-
url,
|
|
102
|
-
requestBodyValues,
|
|
103
|
-
statusCode: response.status,
|
|
104
|
-
responseHeaders,
|
|
105
|
-
responseBody
|
|
106
|
-
})
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
60
|
var FireworksImageModel = class {
|
|
110
61
|
constructor(modelId, config) {
|
|
111
62
|
this.modelId = modelId;
|
|
112
63
|
this.config = config;
|
|
113
|
-
this.specificationVersion = "
|
|
64
|
+
this.specificationVersion = "v3";
|
|
114
65
|
this.maxImagesPerCall = 1;
|
|
115
66
|
}
|
|
116
67
|
get provider() {
|
|
@@ -124,46 +75,92 @@ var FireworksImageModel = class {
|
|
|
124
75
|
seed,
|
|
125
76
|
providerOptions,
|
|
126
77
|
headers,
|
|
127
|
-
abortSignal
|
|
78
|
+
abortSignal,
|
|
79
|
+
files,
|
|
80
|
+
mask
|
|
128
81
|
}) {
|
|
129
|
-
var _a;
|
|
82
|
+
var _a, _b, _c, _d;
|
|
130
83
|
const warnings = [];
|
|
131
84
|
const backendConfig = modelToBackendConfig[this.modelId];
|
|
132
85
|
if (!(backendConfig == null ? void 0 : backendConfig.supportsSize) && size != null) {
|
|
133
86
|
warnings.push({
|
|
134
|
-
type: "unsupported
|
|
135
|
-
|
|
87
|
+
type: "unsupported",
|
|
88
|
+
feature: "size",
|
|
136
89
|
details: "This model does not support the `size` option. Use `aspectRatio` instead."
|
|
137
90
|
});
|
|
138
91
|
}
|
|
139
92
|
if ((backendConfig == null ? void 0 : backendConfig.supportsSize) && aspectRatio != null) {
|
|
140
93
|
warnings.push({
|
|
141
|
-
type: "unsupported
|
|
142
|
-
|
|
94
|
+
type: "unsupported",
|
|
95
|
+
feature: "aspectRatio",
|
|
143
96
|
details: "This model does not support the `aspectRatio` option."
|
|
144
97
|
});
|
|
145
98
|
}
|
|
99
|
+
const hasInputImage = files != null && files.length > 0;
|
|
100
|
+
let inputImage;
|
|
101
|
+
if (hasInputImage) {
|
|
102
|
+
inputImage = convertImageModelFileToDataUri(files[0]);
|
|
103
|
+
if (files.length > 1) {
|
|
104
|
+
warnings.push({
|
|
105
|
+
type: "other",
|
|
106
|
+
message: "Fireworks only supports a single input image. Additional images are ignored."
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (mask != null) {
|
|
111
|
+
warnings.push({
|
|
112
|
+
type: "unsupported",
|
|
113
|
+
feature: "mask",
|
|
114
|
+
details: "Fireworks Kontext models do not support explicit masks. Use the prompt to describe the areas to edit."
|
|
115
|
+
});
|
|
116
|
+
}
|
|
146
117
|
const splitSize = size == null ? void 0 : size.split("x");
|
|
147
|
-
const
|
|
148
|
-
|
|
118
|
+
const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
|
|
119
|
+
const { value: response, responseHeaders } = await postJsonToApi({
|
|
120
|
+
url: getUrlForModel(this.config.baseURL, this.modelId, hasInputImage),
|
|
149
121
|
headers: combineHeaders(this.config.headers(), headers),
|
|
150
122
|
body: {
|
|
151
123
|
prompt,
|
|
152
124
|
aspect_ratio: aspectRatio,
|
|
153
125
|
seed,
|
|
154
126
|
samples: n,
|
|
127
|
+
...inputImage && { input_image: inputImage },
|
|
155
128
|
...splitSize && { width: splitSize[0], height: splitSize[1] },
|
|
156
|
-
...(
|
|
129
|
+
...(_d = providerOptions.fireworks) != null ? _d : {}
|
|
157
130
|
},
|
|
158
|
-
failedResponseHandler:
|
|
131
|
+
failedResponseHandler: createStatusCodeErrorResponseHandler(),
|
|
159
132
|
successfulResponseHandler: createBinaryResponseHandler(),
|
|
160
133
|
abortSignal,
|
|
161
134
|
fetch: this.config.fetch
|
|
162
135
|
});
|
|
163
|
-
return {
|
|
136
|
+
return {
|
|
137
|
+
images: [response],
|
|
138
|
+
warnings,
|
|
139
|
+
response: {
|
|
140
|
+
timestamp: currentDate,
|
|
141
|
+
modelId: this.modelId,
|
|
142
|
+
headers: responseHeaders
|
|
143
|
+
}
|
|
144
|
+
};
|
|
164
145
|
}
|
|
165
146
|
};
|
|
166
147
|
|
|
148
|
+
// src/fireworks-provider.ts
|
|
149
|
+
import {
|
|
150
|
+
OpenAICompatibleChatLanguageModel,
|
|
151
|
+
OpenAICompatibleCompletionLanguageModel,
|
|
152
|
+
OpenAICompatibleEmbeddingModel
|
|
153
|
+
} from "@ai-sdk/openai-compatible";
|
|
154
|
+
import {
|
|
155
|
+
loadApiKey,
|
|
156
|
+
withoutTrailingSlash,
|
|
157
|
+
withUserAgentSuffix
|
|
158
|
+
} from "@ai-sdk/provider-utils";
|
|
159
|
+
import { z } from "zod/v4";
|
|
160
|
+
|
|
161
|
+
// src/version.ts
|
|
162
|
+
var VERSION = true ? "0.0.0-fd764a60-20260114143805" : "0.0.0-test";
|
|
163
|
+
|
|
167
164
|
// src/fireworks-provider.ts
|
|
168
165
|
var fireworksErrorSchema = z.object({
|
|
169
166
|
error: z.string()
|
|
@@ -176,32 +173,34 @@ var defaultBaseURL = "https://api.fireworks.ai/inference/v1";
|
|
|
176
173
|
function createFireworks(options = {}) {
|
|
177
174
|
var _a;
|
|
178
175
|
const baseURL = withoutTrailingSlash((_a = options.baseURL) != null ? _a : defaultBaseURL);
|
|
179
|
-
const getHeaders = () => (
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
176
|
+
const getHeaders = () => withUserAgentSuffix(
|
|
177
|
+
{
|
|
178
|
+
Authorization: `Bearer ${loadApiKey({
|
|
179
|
+
apiKey: options.apiKey,
|
|
180
|
+
environmentVariableName: "FIREWORKS_API_KEY",
|
|
181
|
+
description: "Fireworks API key"
|
|
182
|
+
})}`,
|
|
183
|
+
...options.headers
|
|
184
|
+
},
|
|
185
|
+
`ai-sdk/fireworks/${VERSION}`
|
|
186
|
+
);
|
|
187
187
|
const getCommonModelConfig = (modelType) => ({
|
|
188
188
|
provider: `fireworks.${modelType}`,
|
|
189
189
|
url: ({ path }) => `${baseURL}${path}`,
|
|
190
190
|
headers: getHeaders,
|
|
191
191
|
fetch: options.fetch
|
|
192
192
|
});
|
|
193
|
-
const createChatModel = (modelId
|
|
194
|
-
return new OpenAICompatibleChatLanguageModel(modelId,
|
|
193
|
+
const createChatModel = (modelId) => {
|
|
194
|
+
return new OpenAICompatibleChatLanguageModel(modelId, {
|
|
195
195
|
...getCommonModelConfig("chat"),
|
|
196
|
-
errorStructure: fireworksErrorStructure
|
|
197
|
-
defaultObjectGenerationMode: "json"
|
|
196
|
+
errorStructure: fireworksErrorStructure
|
|
198
197
|
});
|
|
199
198
|
};
|
|
200
|
-
const createCompletionModel = (modelId
|
|
199
|
+
const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(modelId, {
|
|
201
200
|
...getCommonModelConfig("completion"),
|
|
202
201
|
errorStructure: fireworksErrorStructure
|
|
203
202
|
});
|
|
204
|
-
const
|
|
203
|
+
const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(modelId, {
|
|
205
204
|
...getCommonModelConfig("embedding"),
|
|
206
205
|
errorStructure: fireworksErrorStructure
|
|
207
206
|
});
|
|
@@ -209,15 +208,21 @@ function createFireworks(options = {}) {
|
|
|
209
208
|
...getCommonModelConfig("image"),
|
|
210
209
|
baseURL: baseURL != null ? baseURL : defaultBaseURL
|
|
211
210
|
});
|
|
212
|
-
const provider = (modelId
|
|
211
|
+
const provider = (modelId) => createChatModel(modelId);
|
|
212
|
+
provider.specificationVersion = "v3";
|
|
213
213
|
provider.completionModel = createCompletionModel;
|
|
214
214
|
provider.chatModel = createChatModel;
|
|
215
|
-
provider.
|
|
215
|
+
provider.languageModel = createChatModel;
|
|
216
|
+
provider.embeddingModel = createEmbeddingModel;
|
|
217
|
+
provider.textEmbeddingModel = createEmbeddingModel;
|
|
216
218
|
provider.image = createImageModel;
|
|
219
|
+
provider.imageModel = createImageModel;
|
|
217
220
|
return provider;
|
|
218
221
|
}
|
|
219
222
|
var fireworks = createFireworks();
|
|
220
223
|
export {
|
|
224
|
+
FireworksImageModel,
|
|
225
|
+
VERSION,
|
|
221
226
|
createFireworks,
|
|
222
227
|
fireworks
|
|
223
228
|
};
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/fireworks-provider.ts","../src/fireworks-image-model.ts"],"sourcesContent":["import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n EmbeddingModelV1,\n ImageModelV1,\n LanguageModelV1,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport {\n FireworksChatModelId,\n FireworksChatSettings,\n} from './fireworks-chat-settings';\nimport {\n FireworksCompletionModelId,\n FireworksCompletionSettings,\n} from './fireworks-completion-settings';\nimport {\n FireworksEmbeddingModelId,\n FireworksEmbeddingSettings,\n} from './fireworks-embedding-settings';\nimport {\n FireworksImageModel,\n FireworksImageModelId,\n} from './fireworks-image-model';\n\nexport type FireworksErrorData = z.infer<typeof fireworksErrorSchema>;\n\nconst fireworksErrorSchema = z.object({\n error: z.string(),\n});\n\nconst fireworksErrorStructure: ProviderErrorStructure<FireworksErrorData> = {\n errorSchema: fireworksErrorSchema,\n errorToMessage: data => data.error,\n};\n\nexport interface FireworksProviderSettings {\n /**\nFireworks API key. Default value is taken from the `FIREWORKS_API_KEY`\nenvironment variable.\n*/\n apiKey?: string;\n /**\nBase URL for the API calls.\n*/\n baseURL?: string;\n /**\nCustom headers to include in the requests.\n*/\n headers?: Record<string, string>;\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n*/\n fetch?: FetchFunction;\n}\n\nexport interface FireworksProvider {\n /**\nCreates a model for text generation.\n*/\n (\n modelId: FireworksChatModelId,\n settings?: FireworksChatSettings,\n ): LanguageModelV1;\n\n /**\nCreates a chat model for text generation.\n*/\n chatModel(\n modelId: FireworksChatModelId,\n settings?: FireworksChatSettings,\n ): LanguageModelV1;\n\n /**\nCreates a completion model for text generation.\n*/\n completionModel(\n modelId: FireworksCompletionModelId,\n settings?: FireworksCompletionSettings,\n ): LanguageModelV1;\n\n /**\nCreates a text embedding model for text generation.\n*/\n textEmbeddingModel(\n modelId: FireworksEmbeddingModelId,\n settings?: FireworksEmbeddingSettings,\n ): EmbeddingModelV1<string>;\n\n /**\nCreates a model for image generation.\n*/\n image(modelId: FireworksImageModelId): ImageModelV1;\n}\n\nconst defaultBaseURL = 'https://api.fireworks.ai/inference/v1';\n\nexport function createFireworks(\n options: FireworksProviderSettings = {},\n): FireworksProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'FIREWORKS_API_KEY',\n description: 'Fireworks API key',\n })}`,\n ...options.headers,\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: `fireworks.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createChatModel = (\n modelId: FireworksChatModelId,\n settings: FireworksChatSettings = {},\n ) => {\n return new OpenAICompatibleChatLanguageModel(modelId, settings, {\n ...getCommonModelConfig('chat'),\n errorStructure: fireworksErrorStructure,\n defaultObjectGenerationMode: 'json',\n });\n };\n\n const createCompletionModel = (\n modelId: FireworksCompletionModelId,\n settings: FireworksCompletionSettings = {},\n ) =>\n new OpenAICompatibleCompletionLanguageModel(modelId, settings, {\n ...getCommonModelConfig('completion'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createTextEmbeddingModel = (\n modelId: FireworksEmbeddingModelId,\n settings: FireworksEmbeddingSettings = {},\n ) =>\n new OpenAICompatibleEmbeddingModel(modelId, settings, {\n ...getCommonModelConfig('embedding'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createImageModel = (modelId: FireworksImageModelId) =>\n new FireworksImageModel(modelId, {\n ...getCommonModelConfig('image'),\n baseURL: baseURL ?? defaultBaseURL,\n });\n\n const provider = (\n modelId: FireworksChatModelId,\n settings?: FireworksChatSettings,\n ) => createChatModel(modelId, settings);\n\n provider.completionModel = createCompletionModel;\n provider.chatModel = createChatModel;\n provider.textEmbeddingModel = createTextEmbeddingModel;\n provider.image = createImageModel;\n\n return provider as FireworksProvider;\n}\n\nexport const fireworks = createFireworks();\n","import {\n APICallError,\n ImageModelV1,\n ImageModelV1CallWarning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n extractResponseHeaders,\n FetchFunction,\n postJsonToApi,\n ResponseHandler,\n} from '@ai-sdk/provider-utils';\n\n// https://fireworks.ai/models?type=image\nexport type FireworksImageModelId =\n | 'accounts/fireworks/models/flux-1-dev-fp8'\n | 'accounts/fireworks/models/flux-1-schnell-fp8'\n | 'accounts/fireworks/models/playground-v2-5-1024px-aesthetic'\n | 'accounts/fireworks/models/japanese-stable-diffusion-xl'\n | 'accounts/fireworks/models/playground-v2-1024px-aesthetic'\n | 'accounts/fireworks/models/SSD-1B'\n | 'accounts/fireworks/models/stable-diffusion-xl-1024-v1-0'\n | (string & {});\n\ninterface FireworksImageModelBackendConfig {\n urlFormat: 'workflows' | 'image_generation';\n supportsSize?: boolean;\n}\n\nconst modelToBackendConfig: Partial<\n Record<FireworksImageModelId, FireworksImageModelBackendConfig>\n> = {\n 'accounts/fireworks/models/flux-1-dev-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/flux-1-schnell-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/playground-v2-5-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/japanese-stable-diffusion-xl': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/playground-v2-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/stable-diffusion-xl-1024-v1-0': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/SSD-1B': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n};\n\nfunction getUrlForModel(\n baseUrl: string,\n modelId: FireworksImageModelId,\n): string {\n switch (modelToBackendConfig[modelId]?.urlFormat) {\n case 'image_generation':\n return `${baseUrl}/image_generation/${modelId}`;\n case 'workflows':\n default:\n return `${baseUrl}/workflows/${modelId}/text_to_image`;\n }\n}\n\ninterface FireworksImageModelConfig {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n}\n\nconst createBinaryResponseHandler =\n (): ResponseHandler<ArrayBuffer> =>\n async ({ response, url, requestBodyValues }) => {\n const responseHeaders = extractResponseHeaders(response);\n\n if (!response.body) {\n throw new APICallError({\n message: 'Response body is empty',\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody: undefined,\n });\n }\n\n try {\n const buffer = await response.arrayBuffer();\n return {\n responseHeaders,\n value: buffer,\n };\n } catch (error) {\n throw new APICallError({\n message: 'Failed to read response as array buffer',\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody: undefined,\n cause: error,\n });\n }\n };\n\nconst statusCodeErrorResponseHandler: ResponseHandler<APICallError> = async ({\n response,\n url,\n requestBodyValues,\n}) => {\n const responseHeaders = extractResponseHeaders(response);\n const responseBody = await response.text();\n\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues: requestBodyValues as Record<string, unknown>,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n }),\n };\n};\n\nexport class FireworksImageModel implements ImageModelV1 {\n readonly specificationVersion = 'v1';\n\n get provider(): string {\n return this.config.provider;\n }\n\n readonly maxImagesPerCall = 1;\n\n constructor(\n readonly modelId: FireworksImageModelId,\n private config: FireworksImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV1['doGenerate']>>\n > {\n const warnings: Array<ImageModelV1CallWarning> = [];\n\n const backendConfig = modelToBackendConfig[this.modelId];\n if (!backendConfig?.supportsSize && size != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'size',\n details:\n 'This model does not support the `size` option. Use `aspectRatio` instead.',\n });\n }\n\n // Use supportsSize as a proxy for whether the model does not support\n // aspectRatio. This invariant holds for the current set of models.\n if (backendConfig?.supportsSize && aspectRatio != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'aspectRatio',\n details: 'This model does not support the `aspectRatio` option.',\n });\n }\n\n const splitSize = size?.split('x');\n const { value: response } = await postJsonToApi({\n url: getUrlForModel(this.config.baseURL, this.modelId),\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n prompt,\n aspect_ratio: aspectRatio,\n seed,\n samples: n,\n ...(splitSize && { width: splitSize[0], height: splitSize[1] }),\n ...(providerOptions.fireworks ?? {}),\n },\n failedResponseHandler: statusCodeErrorResponseHandler,\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return { images: [new Uint8Array(response)], warnings };\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/fireworks-image-model.ts","../src/fireworks-provider.ts","../src/version.ts"],"sourcesContent":["import { ImageModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createBinaryResponseHandler,\n createStatusCodeErrorResponseHandler,\n FetchFunction,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { FireworksImageModelId } from './fireworks-image-options';\n\ninterface FireworksImageModelBackendConfig {\n urlFormat: 'workflows' | 'workflows_edit' | 'image_generation';\n supportsSize?: boolean;\n supportsEditing?: boolean;\n}\n\nconst modelToBackendConfig: Partial<\n Record<FireworksImageModelId, FireworksImageModelBackendConfig>\n> = {\n 'accounts/fireworks/models/flux-1-dev-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/flux-1-schnell-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/flux-kontext-pro': {\n urlFormat: 'workflows_edit',\n supportsEditing: true,\n },\n 'accounts/fireworks/models/flux-kontext-max': {\n urlFormat: 'workflows_edit',\n supportsEditing: true,\n },\n 'accounts/fireworks/models/playground-v2-5-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/japanese-stable-diffusion-xl': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/playground-v2-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/stable-diffusion-xl-1024-v1-0': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/SSD-1B': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n};\n\nfunction getUrlForModel(\n baseUrl: string,\n modelId: FireworksImageModelId,\n hasInputImage: boolean,\n): string {\n const config = modelToBackendConfig[modelId];\n\n switch (config?.urlFormat) {\n case 'image_generation':\n return `${baseUrl}/image_generation/${modelId}`;\n case 'workflows_edit':\n // Kontext models: use base URL for editing (no suffix)\n return `${baseUrl}/workflows/${modelId}`;\n case 'workflows':\n default:\n // Standard FLUX models: use text_to_image for generation,\n // but if input_image provided, some models may support editing\n if (hasInputImage && config?.supportsEditing) {\n return `${baseUrl}/workflows/${modelId}`;\n }\n return `${baseUrl}/workflows/${modelId}/text_to_image`;\n }\n}\n\ninterface FireworksImageModelConfig {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class FireworksImageModel implements ImageModelV3 {\n readonly specificationVersion = 'v3';\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: FireworksImageModelId,\n private config: FireworksImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask,\n }: Parameters<ImageModelV3['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV3['doGenerate']>>\n > {\n const warnings: Array<SharedV3Warning> = [];\n\n const backendConfig = modelToBackendConfig[this.modelId];\n if (!backendConfig?.supportsSize && size != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'size',\n details:\n 'This model does not support the `size` option. Use `aspectRatio` instead.',\n });\n }\n\n // Use supportsSize as a proxy for whether the model does not support\n // aspectRatio. This invariant holds for the current set of models.\n if (backendConfig?.supportsSize && aspectRatio != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'aspectRatio',\n details: 'This model does not support the `aspectRatio` option.',\n });\n }\n\n // Handle files for image editing\n const hasInputImage = files != null && files.length > 0;\n let inputImage: string | undefined;\n\n if (hasInputImage) {\n inputImage = convertImageModelFileToDataUri(files[0]);\n\n if (files.length > 1) {\n warnings.push({\n type: 'other',\n message:\n 'Fireworks only supports a single input image. Additional images are ignored.',\n });\n }\n }\n\n // Warn about mask - Fireworks Kontext models don't support explicit masks\n if (mask != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'mask',\n details:\n 'Fireworks Kontext models do not support explicit masks. Use the prompt to describe the areas to edit.',\n });\n }\n\n const splitSize = size?.split('x');\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { value: response, responseHeaders } = await postJsonToApi({\n url: getUrlForModel(this.config.baseURL, this.modelId, hasInputImage),\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n prompt,\n aspect_ratio: aspectRatio,\n seed,\n samples: n,\n ...(inputImage && { input_image: inputImage }),\n ...(splitSize && { width: splitSize[0], height: splitSize[1] }),\n ...(providerOptions.fireworks ?? {}),\n },\n failedResponseHandler: createStatusCodeErrorResponseHandler(),\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n images: [response],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n","import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n EmbeddingModelV3,\n ImageModelV3,\n LanguageModelV3,\n ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { FireworksChatModelId } from './fireworks-chat-options';\nimport { FireworksCompletionModelId } from './fireworks-completion-options';\nimport { FireworksEmbeddingModelId } from './fireworks-embedding-options';\nimport { FireworksImageModel } from './fireworks-image-model';\nimport { FireworksImageModelId } from './fireworks-image-options';\nimport { VERSION } from './version';\n\nexport type FireworksErrorData = z.infer<typeof fireworksErrorSchema>;\n\nconst fireworksErrorSchema = z.object({\n error: z.string(),\n});\n\nconst fireworksErrorStructure: ProviderErrorStructure<FireworksErrorData> = {\n errorSchema: fireworksErrorSchema,\n errorToMessage: data => data.error,\n};\n\nexport interface FireworksProviderSettings {\n /**\nFireworks API key. Default value is taken from the `FIREWORKS_API_KEY`\nenvironment variable.\n*/\n apiKey?: string;\n /**\nBase URL for the API calls.\n*/\n baseURL?: string;\n /**\nCustom headers to include in the requests.\n*/\n headers?: Record<string, string>;\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n*/\n fetch?: FetchFunction;\n}\n\nexport interface FireworksProvider extends ProviderV3 {\n /**\nCreates a model for text generation.\n*/\n (modelId: FireworksChatModelId): LanguageModelV3;\n\n /**\nCreates a chat model for text generation.\n*/\n chatModel(modelId: FireworksChatModelId): LanguageModelV3;\n\n /**\nCreates a completion model for text generation.\n*/\n completionModel(modelId: FireworksCompletionModelId): LanguageModelV3;\n\n /**\nCreates a chat model for text generation.\n*/\n languageModel(modelId: FireworksChatModelId): LanguageModelV3;\n\n /**\nCreates a text embedding model for text generation.\n*/\n embeddingModel(modelId: FireworksEmbeddingModelId): EmbeddingModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: FireworksEmbeddingModelId): EmbeddingModelV3;\n\n /**\nCreates a model for image generation.\n*/\n image(modelId: FireworksImageModelId): ImageModelV3;\n\n /**\nCreates a model for image generation.\n*/\n imageModel(modelId: FireworksImageModelId): ImageModelV3;\n}\n\nconst defaultBaseURL = 'https://api.fireworks.ai/inference/v1';\n\nexport function createFireworks(\n options: FireworksProviderSettings = {},\n): FireworksProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'FIREWORKS_API_KEY',\n description: 'Fireworks API key',\n })}`,\n ...options.headers,\n },\n `ai-sdk/fireworks/${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: `fireworks.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createChatModel = (modelId: FireworksChatModelId) => {\n return new OpenAICompatibleChatLanguageModel(modelId, {\n ...getCommonModelConfig('chat'),\n errorStructure: fireworksErrorStructure,\n });\n };\n\n const createCompletionModel = (modelId: FireworksCompletionModelId) =>\n new OpenAICompatibleCompletionLanguageModel(modelId, {\n ...getCommonModelConfig('completion'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createEmbeddingModel = (modelId: FireworksEmbeddingModelId) =>\n new OpenAICompatibleEmbeddingModel(modelId, {\n ...getCommonModelConfig('embedding'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createImageModel = (modelId: FireworksImageModelId) =>\n new FireworksImageModel(modelId, {\n ...getCommonModelConfig('image'),\n baseURL: baseURL ?? defaultBaseURL,\n });\n\n const provider = (modelId: FireworksChatModelId) => createChatModel(modelId);\n\n provider.specificationVersion = 'v3' as const;\n provider.completionModel = createCompletionModel;\n provider.chatModel = createChatModel;\n provider.languageModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n return provider;\n}\n\nexport const fireworks = createFireworks();\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":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/fireworks",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-fd764a60-20260114143805",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"files": [
|
|
10
10
|
"dist/**/*",
|
|
11
|
-
"CHANGELOG.md"
|
|
11
|
+
"CHANGELOG.md",
|
|
12
|
+
"README.md"
|
|
12
13
|
],
|
|
13
14
|
"exports": {
|
|
14
15
|
"./package.json": "./package.json",
|
|
@@ -19,19 +20,20 @@
|
|
|
19
20
|
}
|
|
20
21
|
},
|
|
21
22
|
"dependencies": {
|
|
22
|
-
"@ai-sdk/openai-compatible": "0.0.
|
|
23
|
-
"@ai-sdk/provider": "
|
|
24
|
-
"@ai-sdk/provider-utils": "
|
|
23
|
+
"@ai-sdk/openai-compatible": "0.0.0-fd764a60-20260114143805",
|
|
24
|
+
"@ai-sdk/provider": "0.0.0-fd764a60-20260114143805",
|
|
25
|
+
"@ai-sdk/provider-utils": "0.0.0-fd764a60-20260114143805"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
27
|
-
"@types/node": "
|
|
28
|
+
"@types/node": "20.17.24",
|
|
28
29
|
"tsup": "^8",
|
|
29
|
-
"typescript": "5.
|
|
30
|
-
"zod": "3.
|
|
30
|
+
"typescript": "5.8.3",
|
|
31
|
+
"zod": "3.25.76",
|
|
32
|
+
"@ai-sdk/test-server": "1.0.1",
|
|
31
33
|
"@vercel/ai-tsconfig": "0.0.0"
|
|
32
34
|
},
|
|
33
35
|
"peerDependencies": {
|
|
34
|
-
"zod": "^3.
|
|
36
|
+
"zod": "^3.25.76 || ^4.1.8"
|
|
35
37
|
},
|
|
36
38
|
"engines": {
|
|
37
39
|
"node": ">=18"
|
|
@@ -39,7 +41,7 @@
|
|
|
39
41
|
"publishConfig": {
|
|
40
42
|
"access": "public"
|
|
41
43
|
},
|
|
42
|
-
"homepage": "https://sdk.
|
|
44
|
+
"homepage": "https://ai-sdk.dev/docs",
|
|
43
45
|
"repository": {
|
|
44
46
|
"type": "git",
|
|
45
47
|
"url": "git+https://github.com/vercel/ai.git"
|
|
@@ -51,13 +53,15 @@
|
|
|
51
53
|
"ai"
|
|
52
54
|
],
|
|
53
55
|
"scripts": {
|
|
54
|
-
"build": "tsup",
|
|
55
|
-
"build:watch": "tsup --watch",
|
|
56
|
-
"clean": "
|
|
56
|
+
"build": "pnpm clean && tsup --tsconfig tsconfig.build.json",
|
|
57
|
+
"build:watch": "pnpm clean && tsup --watch",
|
|
58
|
+
"clean": "del-cli dist *.tsbuildinfo",
|
|
57
59
|
"lint": "eslint \"./**/*.ts*\"",
|
|
58
|
-
"type-check": "tsc --
|
|
60
|
+
"type-check": "tsc --build",
|
|
59
61
|
"prettier-check": "prettier --check \"./**/*.ts*\"",
|
|
60
62
|
"test": "pnpm test:node && pnpm test:edge",
|
|
63
|
+
"test:update": "pnpm test:node -u",
|
|
64
|
+
"test:watch": "vitest --config vitest.node.config.js",
|
|
61
65
|
"test:edge": "vitest --config vitest.edge.config.js --run",
|
|
62
66
|
"test:node": "vitest --config vitest.node.config.js --run"
|
|
63
67
|
}
|