@ai-sdk/bytedance 1.0.37 → 1.0.39
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 +15 -0
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @ai-sdk/bytedance
|
|
2
2
|
|
|
3
|
+
## 1.0.39
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 8690004: Expose the returned last frame URL in video generation provider metadata.
|
|
8
|
+
- Updated dependencies [cc23556]
|
|
9
|
+
- @ai-sdk/provider-utils@4.0.50
|
|
10
|
+
|
|
11
|
+
## 1.0.38
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [9a521b9]
|
|
16
|
+
- @ai-sdk/provider-utils@4.0.49
|
|
17
|
+
|
|
3
18
|
## 1.0.37
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -338,7 +338,7 @@ var ByteDanceVideoModel = class {
|
|
|
338
338
|
return this.config.provider;
|
|
339
339
|
}
|
|
340
340
|
async doGenerate(options) {
|
|
341
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
341
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
342
342
|
const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
|
|
343
343
|
const warnings = [];
|
|
344
344
|
const byteDanceOptions = await (0, import_provider_utils3.parseProviderOptions)({
|
|
@@ -532,7 +532,8 @@ var ByteDanceVideoModel = class {
|
|
|
532
532
|
providerMetadata: {
|
|
533
533
|
bytedance: {
|
|
534
534
|
taskId,
|
|
535
|
-
usage: response.usage
|
|
535
|
+
usage: response.usage,
|
|
536
|
+
...((_h = response.content) == null ? void 0 : _h.last_frame_url) != null ? { lastFrameUrl: response.content.last_frame_url } : {}
|
|
536
537
|
}
|
|
537
538
|
}
|
|
538
539
|
};
|
|
@@ -546,7 +547,8 @@ var byteDanceStatusResponseSchema = import_v43.z.object({
|
|
|
546
547
|
model: import_v43.z.string().nullish(),
|
|
547
548
|
status: import_v43.z.string(),
|
|
548
549
|
content: import_v43.z.object({
|
|
549
|
-
video_url: import_v43.z.string().nullish()
|
|
550
|
+
video_url: import_v43.z.string().nullish(),
|
|
551
|
+
last_frame_url: import_v43.z.string().nullish()
|
|
550
552
|
}).nullish(),
|
|
551
553
|
usage: import_v43.z.object({
|
|
552
554
|
completion_tokens: import_v43.z.number().nullish()
|
|
@@ -610,7 +612,7 @@ function createByteDance(options = {}) {
|
|
|
610
612
|
var byteDance = createByteDance();
|
|
611
613
|
|
|
612
614
|
// src/version.ts
|
|
613
|
-
var VERSION = true ? "1.0.
|
|
615
|
+
var VERSION = true ? "1.0.39" : "0.0.0-test";
|
|
614
616
|
// Annotate the CommonJS export names for ESM import in node:
|
|
615
617
|
0 && (module.exports = {
|
|
616
618
|
ByteDanceImageModel,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/bytedance-provider.ts","../src/bytedance-image-model.ts","../src/bytedance-image-model-options.ts","../src/bytedance-video-model.ts","../src/version.ts"],"sourcesContent":["export type {\n ByteDanceProvider,\n ByteDanceProviderSettings,\n} from './bytedance-provider';\nexport { byteDance, createByteDance } from './bytedance-provider';\nexport { ByteDanceImageModel } from './bytedance-image-model';\nexport type { ByteDanceImageModelOptions } from './bytedance-image-model-options';\nexport type { ByteDanceImageModelId } from './bytedance-image-settings';\nexport type { ByteDanceVideoProviderOptions } from './bytedance-video-model';\nexport type { ByteDanceVideoModelId } from './bytedance-video-settings';\nexport { VERSION } from './version';\n","import {\n type Experimental_VideoModelV3,\n type ImageModelV3,\n NoSuchModelError,\n type ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n type FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { ByteDanceImageModel } from './bytedance-image-model';\nimport type { ByteDanceImageModelId } from './bytedance-image-settings';\nimport { ByteDanceVideoModel } from './bytedance-video-model';\nimport type { ByteDanceVideoModelId } from './bytedance-video-settings';\n\nexport interface ByteDanceProviderSettings {\n /**\n * ByteDance Ark API key. Default value is taken from the `ARK_API_KEY`\n * environment variable.\n */\n apiKey?: string;\n\n /**\n * Base URL for the API calls.\n * Default: https://ark.ap-southeast.bytepluses.com/api/v3\n */\n baseURL?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept\n * requests, or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ByteDanceProvider extends ProviderV3 {\n /**\n * Creates a model for video generation.\n */\n video(modelId: ByteDanceVideoModelId): Experimental_VideoModelV3;\n\n /**\n * Creates a model for video generation.\n */\n videoModel(modelId: ByteDanceVideoModelId): Experimental_VideoModelV3;\n\n /**\n * Creates a model for image generation.\n */\n image(modelId: ByteDanceImageModelId): ImageModelV3;\n\n /**\n * Creates a model for image generation.\n */\n imageModel(modelId: ByteDanceImageModelId): ImageModelV3;\n}\n\nconst defaultBaseURL = 'https://ark.ap-southeast.bytepluses.com/api/v3';\n\n/**\n * Create a ByteDance provider instance.\n */\nexport function createByteDance(\n options: ByteDanceProviderSettings = {},\n): ByteDanceProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'ARK_API_KEY',\n description: 'ByteDance ModelArk',\n })}`,\n 'Content-Type': 'application/json',\n ...options.headers,\n });\n\n const createVideoModel = (modelId: ByteDanceVideoModelId) =>\n new ByteDanceVideoModel(modelId, {\n provider: 'bytedance.video',\n baseURL: baseURL ?? defaultBaseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createImageModel = (modelId: ByteDanceImageModelId) =>\n new ByteDanceImageModel(modelId, {\n provider: 'bytedance.image',\n baseURL: baseURL ?? defaultBaseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n return {\n specificationVersion: 'v3' as const,\n embeddingModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n },\n languageModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n },\n image: createImageModel,\n imageModel: createImageModel,\n video: createVideoModel,\n videoModel: createVideoModel,\n };\n}\n\n/**\n * Default ByteDance provider instance.\n */\nexport const byteDance = createByteDance();\n","import type {\n ImageModelV3,\n ImageModelV3CallOptions,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { ByteDanceConfig } from './bytedance-config';\nimport {\n byteDanceImageModelOptionsSchema,\n type ByteDanceImageModelOptions,\n} from './bytedance-image-model-options';\nimport type { ByteDanceImageModelId } from './bytedance-image-settings';\n\nconst HANDLED_PROVIDER_OPTIONS = new Set([\n 'watermark',\n 'outputFormat',\n 'size',\n 'sequentialImageGeneration',\n 'maxImages',\n 'optimizePromptMode',\n]);\n\ninterface ByteDanceImageModelConfig extends ByteDanceConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ByteDanceImageModel implements ImageModelV3 {\n readonly specificationVersion = 'v3';\n // The API has no output-count parameter, so a single call returns one image;\n // `generateImage` fans `n` out into `n` calls. Batches of related images are\n // available via the `sequentialImageGeneration` provider option instead.\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ByteDanceImageModelId,\n private readonly config: ByteDanceImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask,\n }: ImageModelV3CallOptions): Promise<\n Awaited<ReturnType<ImageModelV3['doGenerate']>>\n > {\n const warnings: Array<SharedV3Warning> = [];\n\n if (aspectRatio != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'aspectRatio',\n details:\n 'ByteDance does not support aspectRatio. Use `size` (e.g. \"2048x2048\" ' +\n 'or a resolution level like \"2K\" via providerOptions) instead.',\n });\n }\n\n if (seed != null) {\n warnings.push({ type: 'unsupported', feature: 'seed' });\n }\n\n if (mask != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'mask',\n details:\n 'ByteDance Seedream does not support a separate mask. Provide edit ' +\n 'instructions in the prompt, optionally with markings on the input image.',\n });\n }\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n const byteDanceOptions = (await parseProviderOptions({\n provider: 'bytedance',\n providerOptions,\n schema: byteDanceImageModelOptionsSchema,\n })) as ByteDanceImageModelOptions | undefined;\n\n const image =\n files != null && files.length > 0\n ? files.length === 1\n ? convertImageModelFileToDataUri(files[0])\n : files.map(convertImageModelFileToDataUri)\n : undefined;\n\n const body: Record<string, unknown> = {\n model: this.modelId,\n prompt,\n };\n\n if (image != null) {\n body.image = image;\n }\n\n if (size != null) {\n body.size = size;\n }\n\n if (byteDanceOptions != null) {\n if (byteDanceOptions.watermark != null) {\n body.watermark = byteDanceOptions.watermark;\n }\n if (byteDanceOptions.outputFormat != null) {\n body.output_format = byteDanceOptions.outputFormat;\n }\n // A resolution level (e.g. \"2K\") overrides the top-level pixel size.\n if (byteDanceOptions.size != null) {\n body.size = byteDanceOptions.size;\n }\n if (byteDanceOptions.sequentialImageGeneration != null) {\n body.sequential_image_generation =\n byteDanceOptions.sequentialImageGeneration;\n }\n if (byteDanceOptions.maxImages != null) {\n body.sequential_image_generation_options = {\n max_images: byteDanceOptions.maxImages,\n };\n }\n if (byteDanceOptions.optimizePromptMode != null) {\n body.optimize_prompt_options = {\n mode: byteDanceOptions.optimizePromptMode,\n };\n }\n // Pass through any additional options not explicitly handled above.\n for (const [key, value] of Object.entries(byteDanceOptions)) {\n if (!HANDLED_PROVIDER_OPTIONS.has(key)) {\n body[key] = value;\n }\n }\n }\n\n // Always request base64 so the SDK receives the image bytes; this is not\n // user-overridable.\n body.response_format = 'b64_json';\n\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/images/generations`,\n headers: combineHeaders(await resolve(this.config.headers), headers),\n body,\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceImageResponseSchema,\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// Minimal schema focused on what the implementation needs. This limits\n// breakages when the API adds fields and keeps parsing efficient.\nconst byteDanceImageResponseSchema = z.object({\n data: z.array(z.object({ b64_json: z.string() })),\n});\n\nconst byteDanceErrorSchema = z.object({\n error: z\n .object({\n message: z.string(),\n code: z.string().nullish(),\n })\n .nullish(),\n message: z.string().nullish(),\n});\n\nconst byteDanceFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: byteDanceErrorSchema,\n errorToMessage: data =>\n data.error?.message ?? data.message ?? 'Unknown error',\n});\n","import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type ByteDanceImageModelOptions = {\n /**\n * Whether to add an \"AI generated\" watermark to the bottom-right corner of\n * the output image.\n */\n watermark?: boolean | null;\n\n /**\n * Format of the generated image file. Supported by `seedream-5-0` and\n * `dola-seedream-5-0-pro`; `seedream-4-5` / `seedream-4-0` always return\n * `jpeg`.\n */\n outputFormat?: 'png' | 'jpeg' | null;\n\n /**\n * A resolution level (e.g. `1K`, `2K`, `3K`, `4K`) as an alternative to\n * passing pixel dimensions via the top-level `size` parameter. When set, this\n * overrides the top-level `size`. Available levels vary by model.\n */\n size?: string | null;\n\n /**\n * Set to `'auto'` to generate a batch of related images (e.g. storyboards or\n * brand visuals). Defaults to `'disabled'` (single image).\n */\n sequentialImageGeneration?: 'auto' | 'disabled' | null;\n\n /**\n * Maximum number of images to generate when `sequentialImageGeneration` is\n * `'auto'`. The number of input reference images plus generated images must\n * not exceed the model's limit.\n */\n maxImages?: number | null;\n\n /**\n * Prompt optimization mode. `seedream-4-0` supports both `'standard'` and\n * `'fast'`; other models support `'standard'` only.\n */\n optimizePromptMode?: 'standard' | 'fast' | null;\n\n [key: string]: unknown;\n};\n\nexport const byteDanceImageModelOptionsSchema = lazySchema(() =>\n zodSchema(\n z.looseObject({\n watermark: z.boolean().nullish(),\n outputFormat: z.enum(['png', 'jpeg']).nullish(),\n size: z.string().nullish(),\n sequentialImageGeneration: z.enum(['auto', 'disabled']).nullish(),\n maxImages: z.number().int().positive().nullish(),\n optimizePromptMode: z.enum(['standard', 'fast']).nullish(),\n }),\n ),\n);\n","import {\n AISDKError,\n type Experimental_VideoModelV3,\n type Experimental_VideoModelV3File,\n type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n delay,\n getFromApi,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { ByteDanceConfig } from './bytedance-config';\nimport type { ByteDanceVideoModelId } from './bytedance-video-settings';\n\nexport type ByteDanceVideoProviderOptions = {\n watermark?: boolean | null;\n generateAudio?: boolean | null;\n cameraFixed?: boolean | null;\n returnLastFrame?: boolean | null;\n serviceTier?: 'default' | 'flex' | null;\n draft?: boolean | null;\n lastFrameImage?: string | null;\n referenceImages?: string[] | null;\n referenceVideos?: string[] | null;\n referenceAudio?: string[] | null;\n pollIntervalMs?: number | null;\n pollTimeoutMs?: number | null;\n [key: string]: unknown;\n};\n\nconst HANDLED_PROVIDER_OPTIONS = new Set([\n 'watermark',\n 'generateAudio',\n 'cameraFixed',\n 'returnLastFrame',\n 'serviceTier',\n 'draft',\n 'lastFrameImage',\n 'referenceImages',\n 'referenceVideos',\n 'referenceAudio',\n 'pollIntervalMs',\n 'pollTimeoutMs',\n]);\n\nexport const byteDanceVideoProviderOptionsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n watermark: z.boolean().nullish(),\n generateAudio: z.boolean().nullish(),\n cameraFixed: z.boolean().nullish(),\n returnLastFrame: z.boolean().nullish(),\n serviceTier: z.enum(['default', 'flex']).nullish(),\n draft: z.boolean().nullish(),\n lastFrameImage: z.string().nullish(),\n referenceImages: z.array(z.string()).nullish(),\n referenceVideos: z.array(z.string()).nullish(),\n referenceAudio: z.array(z.string()).nullish(),\n pollIntervalMs: z.number().positive().nullish(),\n pollTimeoutMs: z.number().positive().nullish(),\n })\n .passthrough(),\n ),\n);\n\nconst RESOLUTION_MAP: Record<string, string> = {\n '864x496': '480p',\n '496x864': '480p',\n '752x560': '480p',\n '560x752': '480p',\n '640x640': '480p',\n '992x432': '480p',\n '432x992': '480p',\n '864x480': '480p',\n '480x864': '480p',\n '736x544': '480p',\n '544x736': '480p',\n '960x416': '480p',\n '416x960': '480p',\n '832x480': '480p',\n '480x832': '480p',\n '624x624': '480p',\n '1280x720': '720p',\n '720x1280': '720p',\n '1112x834': '720p',\n '834x1112': '720p',\n '960x960': '720p',\n '1470x630': '720p',\n '630x1470': '720p',\n '1248x704': '720p',\n '704x1248': '720p',\n '1120x832': '720p',\n '832x1120': '720p',\n '1504x640': '720p',\n '640x1504': '720p',\n '1920x1080': '1080p',\n '1080x1920': '1080p',\n '1664x1248': '1080p',\n '1248x1664': '1080p',\n '1440x1440': '1080p',\n '2206x946': '1080p',\n '946x2206': '1080p',\n '1920x1088': '1080p',\n '1088x1920': '1080p',\n '2176x928': '1080p',\n '928x2176': '1080p',\n};\n\ninterface ByteDanceVideoModelConfig extends ByteDanceConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nfunction getFirstFrameImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n): Experimental_VideoModelV3File | undefined {\n return options.frameImages?.find(frame => frame.frameType === 'first_frame')\n ?.image;\n}\n\nfunction resolveStartImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n): Experimental_VideoModelV3File | undefined {\n return getFirstFrameImage(options) ?? options.image;\n}\n\nfunction getTopLevelMediaType(mediaType: string): string {\n const slashIndex = mediaType.indexOf('/');\n return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\n\nconst isVideoFile = (f: Experimental_VideoModelV3File) =>\n f.mediaType != null && getTopLevelMediaType(f.mediaType) === 'video';\n\nfunction resolveReferenceContent(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n byteDanceOptions: ByteDanceVideoProviderOptions | undefined,\n warnings: SharedV3Warning[],\n): Array<Record<string, unknown>> {\n if (options.frameImages != null && options.frameImages.length > 0) {\n return [];\n }\n\n const inputReferences = options.inputReferences;\n\n if (inputReferences != null && inputReferences.length > 0) {\n return inputReferences.map(reference => {\n if (reference.type === 'url' && reference.mediaType == null) {\n warnings.push({\n type: 'unsupported',\n feature: 'inputReferences',\n details:\n 'ByteDance requires an explicit mediaType to route URL references as ' +\n 'video or image. Pass { data: url, mediaType: \"video/mp4\" } for video ' +\n 'references. The reference was treated as an image.',\n });\n }\n\n const url = convertImageModelFileToDataUri(reference);\n return isVideoFile(reference)\n ? { type: 'video_url', video_url: { url }, role: 'reference_video' }\n : { type: 'image_url', image_url: { url }, role: 'reference_image' };\n });\n }\n\n const content: Array<Record<string, unknown>> = [];\n\n for (const imageUrl of byteDanceOptions?.referenceImages ?? []) {\n content.push({\n type: 'image_url',\n image_url: { url: imageUrl },\n role: 'reference_image',\n });\n }\n\n for (const videoUrl of byteDanceOptions?.referenceVideos ?? []) {\n content.push({\n type: 'video_url',\n video_url: { url: videoUrl },\n role: 'reference_video',\n });\n }\n\n return content;\n}\n\nfunction resolveLastFrameImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n byteDanceOptions: ByteDanceVideoProviderOptions | undefined,\n): string | undefined {\n const lastFrame = options.frameImages?.find(\n frame => frame.frameType === 'last_frame',\n )?.image;\n\n if (lastFrame != null) {\n return convertImageModelFileToDataUri(lastFrame);\n }\n\n return byteDanceOptions?.lastFrameImage ?? undefined;\n}\n\nexport class ByteDanceVideoModel implements Experimental_VideoModelV3 {\n readonly specificationVersion = 'v3';\n readonly maxVideosPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ByteDanceVideoModelId,\n private readonly config: ByteDanceVideoModelConfig,\n ) {}\n\n async doGenerate(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<Experimental_VideoModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const warnings: SharedV3Warning[] = [];\n\n const byteDanceOptions = (await parseProviderOptions({\n provider: 'bytedance',\n providerOptions: options.providerOptions,\n schema: byteDanceVideoProviderOptionsSchema,\n })) as ByteDanceVideoProviderOptions | undefined;\n\n // Warn about unsupported standard options\n if (options.fps) {\n warnings.push({\n type: 'unsupported',\n feature: 'fps',\n details:\n 'ByteDance video models do not support custom FPS. Frame rate is fixed at 24 fps.',\n });\n }\n\n if (options.n != null && options.n > 1) {\n warnings.push({\n type: 'unsupported',\n feature: 'n',\n details:\n 'ByteDance video models do not support generating multiple videos per call. ' +\n 'Only 1 video will be generated.',\n });\n }\n\n const content: Array<Record<string, unknown>> = [];\n\n if (options.prompt != null) {\n content.push({\n type: 'text',\n text: options.prompt,\n });\n }\n\n const startImage = resolveStartImage(options);\n const lastFrameImageUrl = resolveLastFrameImage(options, byteDanceOptions);\n const referenceContent = resolveReferenceContent(\n options,\n byteDanceOptions,\n warnings,\n );\n\n if (startImage != null) {\n content.push({\n type: 'image_url',\n image_url: { url: convertImageModelFileToDataUri(startImage) },\n ...(lastFrameImageUrl != null ? { role: 'first_frame' } : {}),\n });\n }\n\n // Add last frame image if provided\n if (lastFrameImageUrl != null) {\n content.push({\n type: 'image_url',\n image_url: { url: lastFrameImageUrl },\n role: 'last_frame',\n });\n }\n\n for (const entry of referenceContent) {\n content.push(entry);\n }\n\n // Add reference audio if provided\n if (\n byteDanceOptions?.referenceAudio != null &&\n byteDanceOptions.referenceAudio.length > 0\n ) {\n for (const audioUrl of byteDanceOptions.referenceAudio) {\n content.push({\n type: 'audio_url',\n audio_url: { url: audioUrl },\n role: 'reference_audio',\n });\n }\n }\n\n const body: Record<string, unknown> = {\n model: this.modelId,\n content,\n };\n\n if (options.aspectRatio) {\n body.ratio = options.aspectRatio;\n }\n\n if (options.duration) {\n body.duration = options.duration;\n }\n\n if (options.seed) {\n body.seed = options.seed;\n }\n\n if (options.resolution) {\n const mapped = RESOLUTION_MAP[options.resolution];\n if (mapped) {\n body.resolution = mapped;\n } else {\n body.resolution = options.resolution;\n }\n }\n\n const generateAudio =\n options.generateAudio ?? byteDanceOptions?.generateAudio;\n if (generateAudio != null) {\n body.generate_audio = generateAudio;\n }\n\n if (byteDanceOptions != null) {\n if (byteDanceOptions.watermark != null) {\n body.watermark = byteDanceOptions.watermark;\n }\n if (byteDanceOptions.cameraFixed != null) {\n body.camera_fixed = byteDanceOptions.cameraFixed;\n }\n if (byteDanceOptions.returnLastFrame != null) {\n body.return_last_frame = byteDanceOptions.returnLastFrame;\n }\n if (byteDanceOptions.serviceTier != null) {\n body.service_tier = byteDanceOptions.serviceTier;\n }\n if (byteDanceOptions.draft != null) {\n body.draft = byteDanceOptions.draft;\n }\n // Pass through any additional options not explicitly handled\n for (const [key, value] of Object.entries(byteDanceOptions)) {\n if (!HANDLED_PROVIDER_OPTIONS.has(key)) {\n body[key] = value;\n }\n }\n }\n\n const createUrl = `${this.config.baseURL}/contents/generations/tasks`;\n\n const { value: createResponse } = await postJsonToApi({\n url: createUrl,\n headers: combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n ),\n body,\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceTaskResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const taskId = createResponse.id;\n\n if (!taskId) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_ERROR',\n message: 'No task ID returned from API',\n });\n }\n\n const pollIntervalMs = byteDanceOptions?.pollIntervalMs ?? 3000;\n const pollTimeoutMs = byteDanceOptions?.pollTimeoutMs ?? 300000;\n\n const startTime = Date.now();\n let response: ByteDanceResponse;\n let responseHeaders: Record<string, string> | undefined;\n\n while (true) {\n const statusUrl = `${this.config.baseURL}/contents/generations/tasks/${taskId}`;\n\n const { value: statusResponse, responseHeaders: statusHeaders } =\n await getFromApi({\n url: statusUrl,\n headers: combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n ),\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceStatusResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n if (statusResponse.status === 'succeeded') {\n response = statusResponse;\n responseHeaders = statusHeaders;\n break;\n }\n\n if (statusResponse.status === 'failed') {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_FAILED',\n message: `Video generation failed: ${JSON.stringify(statusResponse)}`,\n });\n }\n\n if (Date.now() - startTime > pollTimeoutMs) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_TIMEOUT',\n message: `Video generation timed out after ${pollTimeoutMs}ms`,\n });\n }\n\n await delay(pollIntervalMs, { abortSignal: options.abortSignal });\n }\n\n const videoUrl = response.content?.video_url;\n if (!videoUrl) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_ERROR',\n message: 'No video URL in response',\n });\n }\n\n return {\n videos: [\n {\n type: 'url',\n url: videoUrl,\n mediaType: 'video/mp4',\n },\n ],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n providerMetadata: {\n bytedance: {\n taskId,\n usage: response.usage,\n },\n },\n };\n }\n}\n\nconst byteDanceTaskResponseSchema = z.object({\n id: z.string().nullish(),\n});\n\ntype ByteDanceResponse = z.infer<typeof byteDanceStatusResponseSchema>;\n\nconst byteDanceStatusResponseSchema = z.object({\n id: z.string().nullish(),\n model: z.string().nullish(),\n status: z.string(),\n content: z\n .object({\n video_url: z.string().nullish(),\n })\n .nullish(),\n usage: z\n .object({\n completion_tokens: z.number().nullish(),\n })\n .nullish(),\n});\n\nconst byteDanceErrorSchema = z.object({\n error: z\n .object({\n message: z.string(),\n code: z.string().nullish(),\n })\n .nullish(),\n message: z.string().nullish(),\n});\n\nconst byteDanceFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: byteDanceErrorSchema,\n errorToMessage: data =>\n data.error?.message ?? data.message ?? 'Unknown error',\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","import_provider_utils","import_provider_utils","import_v4","import_provider_utils","import_v4","HANDLED_PROVIDER_OPTIONS","byteDanceFailedResponseHandler","byteDanceErrorSchema"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/bytedance-provider.ts","../src/bytedance-image-model.ts","../src/bytedance-image-model-options.ts","../src/bytedance-video-model.ts","../src/version.ts"],"sourcesContent":["export type {\n ByteDanceProvider,\n ByteDanceProviderSettings,\n} from './bytedance-provider';\nexport { byteDance, createByteDance } from './bytedance-provider';\nexport { ByteDanceImageModel } from './bytedance-image-model';\nexport type { ByteDanceImageModelOptions } from './bytedance-image-model-options';\nexport type { ByteDanceImageModelId } from './bytedance-image-settings';\nexport type { ByteDanceVideoProviderOptions } from './bytedance-video-model';\nexport type { ByteDanceVideoModelId } from './bytedance-video-settings';\nexport { VERSION } from './version';\n","import {\n type Experimental_VideoModelV3,\n type ImageModelV3,\n NoSuchModelError,\n type ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n type FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { ByteDanceImageModel } from './bytedance-image-model';\nimport type { ByteDanceImageModelId } from './bytedance-image-settings';\nimport { ByteDanceVideoModel } from './bytedance-video-model';\nimport type { ByteDanceVideoModelId } from './bytedance-video-settings';\n\nexport interface ByteDanceProviderSettings {\n /**\n * ByteDance Ark API key. Default value is taken from the `ARK_API_KEY`\n * environment variable.\n */\n apiKey?: string;\n\n /**\n * Base URL for the API calls.\n * Default: https://ark.ap-southeast.bytepluses.com/api/v3\n */\n baseURL?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept\n * requests, or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ByteDanceProvider extends ProviderV3 {\n /**\n * Creates a model for video generation.\n */\n video(modelId: ByteDanceVideoModelId): Experimental_VideoModelV3;\n\n /**\n * Creates a model for video generation.\n */\n videoModel(modelId: ByteDanceVideoModelId): Experimental_VideoModelV3;\n\n /**\n * Creates a model for image generation.\n */\n image(modelId: ByteDanceImageModelId): ImageModelV3;\n\n /**\n * Creates a model for image generation.\n */\n imageModel(modelId: ByteDanceImageModelId): ImageModelV3;\n}\n\nconst defaultBaseURL = 'https://ark.ap-southeast.bytepluses.com/api/v3';\n\n/**\n * Create a ByteDance provider instance.\n */\nexport function createByteDance(\n options: ByteDanceProviderSettings = {},\n): ByteDanceProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'ARK_API_KEY',\n description: 'ByteDance ModelArk',\n })}`,\n 'Content-Type': 'application/json',\n ...options.headers,\n });\n\n const createVideoModel = (modelId: ByteDanceVideoModelId) =>\n new ByteDanceVideoModel(modelId, {\n provider: 'bytedance.video',\n baseURL: baseURL ?? defaultBaseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createImageModel = (modelId: ByteDanceImageModelId) =>\n new ByteDanceImageModel(modelId, {\n provider: 'bytedance.image',\n baseURL: baseURL ?? defaultBaseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n return {\n specificationVersion: 'v3' as const,\n embeddingModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n },\n languageModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n },\n image: createImageModel,\n imageModel: createImageModel,\n video: createVideoModel,\n videoModel: createVideoModel,\n };\n}\n\n/**\n * Default ByteDance provider instance.\n */\nexport const byteDance = createByteDance();\n","import type {\n ImageModelV3,\n ImageModelV3CallOptions,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { ByteDanceConfig } from './bytedance-config';\nimport {\n byteDanceImageModelOptionsSchema,\n type ByteDanceImageModelOptions,\n} from './bytedance-image-model-options';\nimport type { ByteDanceImageModelId } from './bytedance-image-settings';\n\nconst HANDLED_PROVIDER_OPTIONS = new Set([\n 'watermark',\n 'outputFormat',\n 'size',\n 'sequentialImageGeneration',\n 'maxImages',\n 'optimizePromptMode',\n]);\n\ninterface ByteDanceImageModelConfig extends ByteDanceConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ByteDanceImageModel implements ImageModelV3 {\n readonly specificationVersion = 'v3';\n // The API has no output-count parameter, so a single call returns one image;\n // `generateImage` fans `n` out into `n` calls. Batches of related images are\n // available via the `sequentialImageGeneration` provider option instead.\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ByteDanceImageModelId,\n private readonly config: ByteDanceImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask,\n }: ImageModelV3CallOptions): Promise<\n Awaited<ReturnType<ImageModelV3['doGenerate']>>\n > {\n const warnings: Array<SharedV3Warning> = [];\n\n if (aspectRatio != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'aspectRatio',\n details:\n 'ByteDance does not support aspectRatio. Use `size` (e.g. \"2048x2048\" ' +\n 'or a resolution level like \"2K\" via providerOptions) instead.',\n });\n }\n\n if (seed != null) {\n warnings.push({ type: 'unsupported', feature: 'seed' });\n }\n\n if (mask != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'mask',\n details:\n 'ByteDance Seedream does not support a separate mask. Provide edit ' +\n 'instructions in the prompt, optionally with markings on the input image.',\n });\n }\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n const byteDanceOptions = (await parseProviderOptions({\n provider: 'bytedance',\n providerOptions,\n schema: byteDanceImageModelOptionsSchema,\n })) as ByteDanceImageModelOptions | undefined;\n\n const image =\n files != null && files.length > 0\n ? files.length === 1\n ? convertImageModelFileToDataUri(files[0])\n : files.map(convertImageModelFileToDataUri)\n : undefined;\n\n const body: Record<string, unknown> = {\n model: this.modelId,\n prompt,\n };\n\n if (image != null) {\n body.image = image;\n }\n\n if (size != null) {\n body.size = size;\n }\n\n if (byteDanceOptions != null) {\n if (byteDanceOptions.watermark != null) {\n body.watermark = byteDanceOptions.watermark;\n }\n if (byteDanceOptions.outputFormat != null) {\n body.output_format = byteDanceOptions.outputFormat;\n }\n // A resolution level (e.g. \"2K\") overrides the top-level pixel size.\n if (byteDanceOptions.size != null) {\n body.size = byteDanceOptions.size;\n }\n if (byteDanceOptions.sequentialImageGeneration != null) {\n body.sequential_image_generation =\n byteDanceOptions.sequentialImageGeneration;\n }\n if (byteDanceOptions.maxImages != null) {\n body.sequential_image_generation_options = {\n max_images: byteDanceOptions.maxImages,\n };\n }\n if (byteDanceOptions.optimizePromptMode != null) {\n body.optimize_prompt_options = {\n mode: byteDanceOptions.optimizePromptMode,\n };\n }\n // Pass through any additional options not explicitly handled above.\n for (const [key, value] of Object.entries(byteDanceOptions)) {\n if (!HANDLED_PROVIDER_OPTIONS.has(key)) {\n body[key] = value;\n }\n }\n }\n\n // Always request base64 so the SDK receives the image bytes; this is not\n // user-overridable.\n body.response_format = 'b64_json';\n\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/images/generations`,\n headers: combineHeaders(await resolve(this.config.headers), headers),\n body,\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceImageResponseSchema,\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// Minimal schema focused on what the implementation needs. This limits\n// breakages when the API adds fields and keeps parsing efficient.\nconst byteDanceImageResponseSchema = z.object({\n data: z.array(z.object({ b64_json: z.string() })),\n});\n\nconst byteDanceErrorSchema = z.object({\n error: z\n .object({\n message: z.string(),\n code: z.string().nullish(),\n })\n .nullish(),\n message: z.string().nullish(),\n});\n\nconst byteDanceFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: byteDanceErrorSchema,\n errorToMessage: data =>\n data.error?.message ?? data.message ?? 'Unknown error',\n});\n","import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type ByteDanceImageModelOptions = {\n /**\n * Whether to add an \"AI generated\" watermark to the bottom-right corner of\n * the output image.\n */\n watermark?: boolean | null;\n\n /**\n * Format of the generated image file. Supported by `seedream-5-0` and\n * `dola-seedream-5-0-pro`; `seedream-4-5` / `seedream-4-0` always return\n * `jpeg`.\n */\n outputFormat?: 'png' | 'jpeg' | null;\n\n /**\n * A resolution level (e.g. `1K`, `2K`, `3K`, `4K`) as an alternative to\n * passing pixel dimensions via the top-level `size` parameter. When set, this\n * overrides the top-level `size`. Available levels vary by model.\n */\n size?: string | null;\n\n /**\n * Set to `'auto'` to generate a batch of related images (e.g. storyboards or\n * brand visuals). Defaults to `'disabled'` (single image).\n */\n sequentialImageGeneration?: 'auto' | 'disabled' | null;\n\n /**\n * Maximum number of images to generate when `sequentialImageGeneration` is\n * `'auto'`. The number of input reference images plus generated images must\n * not exceed the model's limit.\n */\n maxImages?: number | null;\n\n /**\n * Prompt optimization mode. `seedream-4-0` supports both `'standard'` and\n * `'fast'`; other models support `'standard'` only.\n */\n optimizePromptMode?: 'standard' | 'fast' | null;\n\n [key: string]: unknown;\n};\n\nexport const byteDanceImageModelOptionsSchema = lazySchema(() =>\n zodSchema(\n z.looseObject({\n watermark: z.boolean().nullish(),\n outputFormat: z.enum(['png', 'jpeg']).nullish(),\n size: z.string().nullish(),\n sequentialImageGeneration: z.enum(['auto', 'disabled']).nullish(),\n maxImages: z.number().int().positive().nullish(),\n optimizePromptMode: z.enum(['standard', 'fast']).nullish(),\n }),\n ),\n);\n","import {\n AISDKError,\n type Experimental_VideoModelV3,\n type Experimental_VideoModelV3File,\n type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n delay,\n getFromApi,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { ByteDanceConfig } from './bytedance-config';\nimport type { ByteDanceVideoModelId } from './bytedance-video-settings';\n\nexport type ByteDanceVideoProviderOptions = {\n watermark?: boolean | null;\n generateAudio?: boolean | null;\n cameraFixed?: boolean | null;\n returnLastFrame?: boolean | null;\n serviceTier?: 'default' | 'flex' | null;\n draft?: boolean | null;\n lastFrameImage?: string | null;\n referenceImages?: string[] | null;\n referenceVideos?: string[] | null;\n referenceAudio?: string[] | null;\n pollIntervalMs?: number | null;\n pollTimeoutMs?: number | null;\n [key: string]: unknown;\n};\n\nconst HANDLED_PROVIDER_OPTIONS = new Set([\n 'watermark',\n 'generateAudio',\n 'cameraFixed',\n 'returnLastFrame',\n 'serviceTier',\n 'draft',\n 'lastFrameImage',\n 'referenceImages',\n 'referenceVideos',\n 'referenceAudio',\n 'pollIntervalMs',\n 'pollTimeoutMs',\n]);\n\nexport const byteDanceVideoProviderOptionsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n watermark: z.boolean().nullish(),\n generateAudio: z.boolean().nullish(),\n cameraFixed: z.boolean().nullish(),\n returnLastFrame: z.boolean().nullish(),\n serviceTier: z.enum(['default', 'flex']).nullish(),\n draft: z.boolean().nullish(),\n lastFrameImage: z.string().nullish(),\n referenceImages: z.array(z.string()).nullish(),\n referenceVideos: z.array(z.string()).nullish(),\n referenceAudio: z.array(z.string()).nullish(),\n pollIntervalMs: z.number().positive().nullish(),\n pollTimeoutMs: z.number().positive().nullish(),\n })\n .passthrough(),\n ),\n);\n\nconst RESOLUTION_MAP: Record<string, string> = {\n '864x496': '480p',\n '496x864': '480p',\n '752x560': '480p',\n '560x752': '480p',\n '640x640': '480p',\n '992x432': '480p',\n '432x992': '480p',\n '864x480': '480p',\n '480x864': '480p',\n '736x544': '480p',\n '544x736': '480p',\n '960x416': '480p',\n '416x960': '480p',\n '832x480': '480p',\n '480x832': '480p',\n '624x624': '480p',\n '1280x720': '720p',\n '720x1280': '720p',\n '1112x834': '720p',\n '834x1112': '720p',\n '960x960': '720p',\n '1470x630': '720p',\n '630x1470': '720p',\n '1248x704': '720p',\n '704x1248': '720p',\n '1120x832': '720p',\n '832x1120': '720p',\n '1504x640': '720p',\n '640x1504': '720p',\n '1920x1080': '1080p',\n '1080x1920': '1080p',\n '1664x1248': '1080p',\n '1248x1664': '1080p',\n '1440x1440': '1080p',\n '2206x946': '1080p',\n '946x2206': '1080p',\n '1920x1088': '1080p',\n '1088x1920': '1080p',\n '2176x928': '1080p',\n '928x2176': '1080p',\n};\n\ninterface ByteDanceVideoModelConfig extends ByteDanceConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nfunction getFirstFrameImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n): Experimental_VideoModelV3File | undefined {\n return options.frameImages?.find(frame => frame.frameType === 'first_frame')\n ?.image;\n}\n\nfunction resolveStartImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n): Experimental_VideoModelV3File | undefined {\n return getFirstFrameImage(options) ?? options.image;\n}\n\nfunction getTopLevelMediaType(mediaType: string): string {\n const slashIndex = mediaType.indexOf('/');\n return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\n\nconst isVideoFile = (f: Experimental_VideoModelV3File) =>\n f.mediaType != null && getTopLevelMediaType(f.mediaType) === 'video';\n\nfunction resolveReferenceContent(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n byteDanceOptions: ByteDanceVideoProviderOptions | undefined,\n warnings: SharedV3Warning[],\n): Array<Record<string, unknown>> {\n if (options.frameImages != null && options.frameImages.length > 0) {\n return [];\n }\n\n const inputReferences = options.inputReferences;\n\n if (inputReferences != null && inputReferences.length > 0) {\n return inputReferences.map(reference => {\n if (reference.type === 'url' && reference.mediaType == null) {\n warnings.push({\n type: 'unsupported',\n feature: 'inputReferences',\n details:\n 'ByteDance requires an explicit mediaType to route URL references as ' +\n 'video or image. Pass { data: url, mediaType: \"video/mp4\" } for video ' +\n 'references. The reference was treated as an image.',\n });\n }\n\n const url = convertImageModelFileToDataUri(reference);\n return isVideoFile(reference)\n ? { type: 'video_url', video_url: { url }, role: 'reference_video' }\n : { type: 'image_url', image_url: { url }, role: 'reference_image' };\n });\n }\n\n const content: Array<Record<string, unknown>> = [];\n\n for (const imageUrl of byteDanceOptions?.referenceImages ?? []) {\n content.push({\n type: 'image_url',\n image_url: { url: imageUrl },\n role: 'reference_image',\n });\n }\n\n for (const videoUrl of byteDanceOptions?.referenceVideos ?? []) {\n content.push({\n type: 'video_url',\n video_url: { url: videoUrl },\n role: 'reference_video',\n });\n }\n\n return content;\n}\n\nfunction resolveLastFrameImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n byteDanceOptions: ByteDanceVideoProviderOptions | undefined,\n): string | undefined {\n const lastFrame = options.frameImages?.find(\n frame => frame.frameType === 'last_frame',\n )?.image;\n\n if (lastFrame != null) {\n return convertImageModelFileToDataUri(lastFrame);\n }\n\n return byteDanceOptions?.lastFrameImage ?? undefined;\n}\n\nexport class ByteDanceVideoModel implements Experimental_VideoModelV3 {\n readonly specificationVersion = 'v3';\n readonly maxVideosPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ByteDanceVideoModelId,\n private readonly config: ByteDanceVideoModelConfig,\n ) {}\n\n async doGenerate(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<Experimental_VideoModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const warnings: SharedV3Warning[] = [];\n\n const byteDanceOptions = (await parseProviderOptions({\n provider: 'bytedance',\n providerOptions: options.providerOptions,\n schema: byteDanceVideoProviderOptionsSchema,\n })) as ByteDanceVideoProviderOptions | undefined;\n\n // Warn about unsupported standard options\n if (options.fps) {\n warnings.push({\n type: 'unsupported',\n feature: 'fps',\n details:\n 'ByteDance video models do not support custom FPS. Frame rate is fixed at 24 fps.',\n });\n }\n\n if (options.n != null && options.n > 1) {\n warnings.push({\n type: 'unsupported',\n feature: 'n',\n details:\n 'ByteDance video models do not support generating multiple videos per call. ' +\n 'Only 1 video will be generated.',\n });\n }\n\n const content: Array<Record<string, unknown>> = [];\n\n if (options.prompt != null) {\n content.push({\n type: 'text',\n text: options.prompt,\n });\n }\n\n const startImage = resolveStartImage(options);\n const lastFrameImageUrl = resolveLastFrameImage(options, byteDanceOptions);\n const referenceContent = resolveReferenceContent(\n options,\n byteDanceOptions,\n warnings,\n );\n\n if (startImage != null) {\n content.push({\n type: 'image_url',\n image_url: { url: convertImageModelFileToDataUri(startImage) },\n ...(lastFrameImageUrl != null ? { role: 'first_frame' } : {}),\n });\n }\n\n // Add last frame image if provided\n if (lastFrameImageUrl != null) {\n content.push({\n type: 'image_url',\n image_url: { url: lastFrameImageUrl },\n role: 'last_frame',\n });\n }\n\n for (const entry of referenceContent) {\n content.push(entry);\n }\n\n // Add reference audio if provided\n if (\n byteDanceOptions?.referenceAudio != null &&\n byteDanceOptions.referenceAudio.length > 0\n ) {\n for (const audioUrl of byteDanceOptions.referenceAudio) {\n content.push({\n type: 'audio_url',\n audio_url: { url: audioUrl },\n role: 'reference_audio',\n });\n }\n }\n\n const body: Record<string, unknown> = {\n model: this.modelId,\n content,\n };\n\n if (options.aspectRatio) {\n body.ratio = options.aspectRatio;\n }\n\n if (options.duration) {\n body.duration = options.duration;\n }\n\n if (options.seed) {\n body.seed = options.seed;\n }\n\n if (options.resolution) {\n const mapped = RESOLUTION_MAP[options.resolution];\n if (mapped) {\n body.resolution = mapped;\n } else {\n body.resolution = options.resolution;\n }\n }\n\n const generateAudio =\n options.generateAudio ?? byteDanceOptions?.generateAudio;\n if (generateAudio != null) {\n body.generate_audio = generateAudio;\n }\n\n if (byteDanceOptions != null) {\n if (byteDanceOptions.watermark != null) {\n body.watermark = byteDanceOptions.watermark;\n }\n if (byteDanceOptions.cameraFixed != null) {\n body.camera_fixed = byteDanceOptions.cameraFixed;\n }\n if (byteDanceOptions.returnLastFrame != null) {\n body.return_last_frame = byteDanceOptions.returnLastFrame;\n }\n if (byteDanceOptions.serviceTier != null) {\n body.service_tier = byteDanceOptions.serviceTier;\n }\n if (byteDanceOptions.draft != null) {\n body.draft = byteDanceOptions.draft;\n }\n // Pass through any additional options not explicitly handled\n for (const [key, value] of Object.entries(byteDanceOptions)) {\n if (!HANDLED_PROVIDER_OPTIONS.has(key)) {\n body[key] = value;\n }\n }\n }\n\n const createUrl = `${this.config.baseURL}/contents/generations/tasks`;\n\n const { value: createResponse } = await postJsonToApi({\n url: createUrl,\n headers: combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n ),\n body,\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceTaskResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const taskId = createResponse.id;\n\n if (!taskId) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_ERROR',\n message: 'No task ID returned from API',\n });\n }\n\n const pollIntervalMs = byteDanceOptions?.pollIntervalMs ?? 3000;\n const pollTimeoutMs = byteDanceOptions?.pollTimeoutMs ?? 300000;\n\n const startTime = Date.now();\n let response: ByteDanceResponse;\n let responseHeaders: Record<string, string> | undefined;\n\n while (true) {\n const statusUrl = `${this.config.baseURL}/contents/generations/tasks/${taskId}`;\n\n const { value: statusResponse, responseHeaders: statusHeaders } =\n await getFromApi({\n url: statusUrl,\n headers: combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n ),\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceStatusResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n if (statusResponse.status === 'succeeded') {\n response = statusResponse;\n responseHeaders = statusHeaders;\n break;\n }\n\n if (statusResponse.status === 'failed') {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_FAILED',\n message: `Video generation failed: ${JSON.stringify(statusResponse)}`,\n });\n }\n\n if (Date.now() - startTime > pollTimeoutMs) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_TIMEOUT',\n message: `Video generation timed out after ${pollTimeoutMs}ms`,\n });\n }\n\n await delay(pollIntervalMs, { abortSignal: options.abortSignal });\n }\n\n const videoUrl = response.content?.video_url;\n if (!videoUrl) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_ERROR',\n message: 'No video URL in response',\n });\n }\n\n return {\n videos: [\n {\n type: 'url',\n url: videoUrl,\n mediaType: 'video/mp4',\n },\n ],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n providerMetadata: {\n bytedance: {\n taskId,\n usage: response.usage,\n ...(response.content?.last_frame_url != null\n ? { lastFrameUrl: response.content.last_frame_url }\n : {}),\n },\n },\n };\n }\n}\n\nconst byteDanceTaskResponseSchema = z.object({\n id: z.string().nullish(),\n});\n\ntype ByteDanceResponse = z.infer<typeof byteDanceStatusResponseSchema>;\n\nconst byteDanceStatusResponseSchema = z.object({\n id: z.string().nullish(),\n model: z.string().nullish(),\n status: z.string(),\n content: z\n .object({\n video_url: z.string().nullish(),\n last_frame_url: z.string().nullish(),\n })\n .nullish(),\n usage: z\n .object({\n completion_tokens: z.number().nullish(),\n })\n .nullish(),\n});\n\nconst byteDanceErrorSchema = z.object({\n error: z\n .object({\n message: z.string(),\n code: z.string().nullish(),\n })\n .nullish(),\n message: z.string().nullish(),\n});\n\nconst byteDanceFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: byteDanceErrorSchema,\n errorToMessage: data =>\n data.error?.message ?? data.message ?? 'Unknown error',\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;AAAA;;;ACAA,IAAAA,mBAKO;AACP,IAAAC,yBAIO;;;ACLP,IAAAC,yBAQO;AACP,IAAAC,aAAkB;;;ACdlB,4BAAsC;AACtC,gBAAkB;AA6CX,IAAM,uCAAmC;AAAA,EAAW,UACzD;AAAA,IACE,YAAE,YAAY;AAAA,MACZ,WAAW,YAAE,QAAQ,EAAE,QAAQ;AAAA,MAC/B,cAAc,YAAE,KAAK,CAAC,OAAO,MAAM,CAAC,EAAE,QAAQ;AAAA,MAC9C,MAAM,YAAE,OAAO,EAAE,QAAQ;AAAA,MACzB,2BAA2B,YAAE,KAAK,CAAC,QAAQ,UAAU,CAAC,EAAE,QAAQ;AAAA,MAChE,WAAW,YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ;AAAA,MAC/C,oBAAoB,YAAE,KAAK,CAAC,YAAY,MAAM,CAAC,EAAE,QAAQ;AAAA,IAC3D,CAAC;AAAA,EACH;AACF;;;ADnCA,IAAM,2BAA2B,oBAAI,IAAI;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAQM,IAAM,sBAAN,MAAkD;AAAA,EAWvD,YACW,SACQ,QACjB;AAFS;AACQ;AAZnB,SAAS,uBAAuB;AAIhC;AAAA;AAAA;AAAA,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;AAjEJ;AAkEI,UAAM,WAAmC,CAAC;AAE1C,QAAI,eAAe,MAAM;AACvB,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SACE;AAAA,MAEJ,CAAC;AAAA,IACH;AAEA,QAAI,QAAQ,MAAM;AAChB,eAAS,KAAK,EAAE,MAAM,eAAe,SAAS,OAAO,CAAC;AAAA,IACxD;AAEA,QAAI,QAAQ,MAAM;AAChB,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SACE;AAAA,MAEJ,CAAC;AAAA,IACH;AAEA,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AAEvE,UAAM,mBAAoB,UAAM,6CAAqB;AAAA,MACnD,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAED,UAAM,QACJ,SAAS,QAAQ,MAAM,SAAS,IAC5B,MAAM,WAAW,QACf,uDAA+B,MAAM,CAAC,CAAC,IACvC,MAAM,IAAI,qDAA8B,IAC1C;AAEN,UAAM,OAAgC;AAAA,MACpC,OAAO,KAAK;AAAA,MACZ;AAAA,IACF;AAEA,QAAI,SAAS,MAAM;AACjB,WAAK,QAAQ;AAAA,IACf;AAEA,QAAI,QAAQ,MAAM;AAChB,WAAK,OAAO;AAAA,IACd;AAEA,QAAI,oBAAoB,MAAM;AAC5B,UAAI,iBAAiB,aAAa,MAAM;AACtC,aAAK,YAAY,iBAAiB;AAAA,MACpC;AACA,UAAI,iBAAiB,gBAAgB,MAAM;AACzC,aAAK,gBAAgB,iBAAiB;AAAA,MACxC;AAEA,UAAI,iBAAiB,QAAQ,MAAM;AACjC,aAAK,OAAO,iBAAiB;AAAA,MAC/B;AACA,UAAI,iBAAiB,6BAA6B,MAAM;AACtD,aAAK,8BACH,iBAAiB;AAAA,MACrB;AACA,UAAI,iBAAiB,aAAa,MAAM;AACtC,aAAK,sCAAsC;AAAA,UACzC,YAAY,iBAAiB;AAAA,QAC/B;AAAA,MACF;AACA,UAAI,iBAAiB,sBAAsB,MAAM;AAC/C,aAAK,0BAA0B;AAAA,UAC7B,MAAM,iBAAiB;AAAA,QACzB;AAAA,MACF;AAEA,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,gBAAgB,GAAG;AAC3D,YAAI,CAAC,yBAAyB,IAAI,GAAG,GAAG;AACtC,eAAK,GAAG,IAAI;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAIA,SAAK,kBAAkB;AAEvB,UAAM,EAAE,OAAO,UAAU,gBAAgB,IAAI,UAAM,sCAAc;AAAA,MAC/D,KAAK,GAAG,KAAK,OAAO,OAAO;AAAA,MAC3B,aAAS,uCAAe,UAAM,gCAAQ,KAAK,OAAO,OAAO,GAAG,OAAO;AAAA,MACnE;AAAA,MACA,uBAAuB;AAAA,MACvB,+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,+BAA+B,aAAE,OAAO;AAAA,EAC5C,MAAM,aAAE,MAAM,aAAE,OAAO,EAAE,UAAU,aAAE,OAAO,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,IAAM,uBAAuB,aAAE,OAAO;AAAA,EACpC,OAAO,aACJ,OAAO;AAAA,IACN,SAAS,aAAE,OAAO;AAAA,IAClB,MAAM,aAAE,OAAO,EAAE,QAAQ;AAAA,EAC3B,CAAC,EACA,QAAQ;AAAA,EACX,SAAS,aAAE,OAAO,EAAE,QAAQ;AAC9B,CAAC;AAED,IAAM,qCAAiC,uDAA+B;AAAA,EACpE,aAAa;AAAA,EACb,gBAAgB,UAAK;AAvMvB;AAwMI,kCAAK,UAAL,mBAAY,YAAZ,YAAuB,KAAK,YAA5B,YAAuC;AAAA;AAC3C,CAAC;;;AEzMD,sBAKO;AACP,IAAAC,yBAYO;AACP,IAAAC,aAAkB;AAoBlB,IAAMC,4BAA2B,oBAAI,IAAI;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,0CAAsC;AAAA,EAAW,UAC5D;AAAA,IACE,aACG,OAAO;AAAA,MACN,WAAW,aAAE,QAAQ,EAAE,QAAQ;AAAA,MAC/B,eAAe,aAAE,QAAQ,EAAE,QAAQ;AAAA,MACnC,aAAa,aAAE,QAAQ,EAAE,QAAQ;AAAA,MACjC,iBAAiB,aAAE,QAAQ,EAAE,QAAQ;AAAA,MACrC,aAAa,aAAE,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,QAAQ;AAAA,MACjD,OAAO,aAAE,QAAQ,EAAE,QAAQ;AAAA,MAC3B,gBAAgB,aAAE,OAAO,EAAE,QAAQ;AAAA,MACnC,iBAAiB,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,QAAQ;AAAA,MAC7C,iBAAiB,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,QAAQ;AAAA,MAC7C,gBAAgB,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,QAAQ;AAAA,MAC5C,gBAAgB,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;AAAA,MAC9C,eAAe,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;AAAA,IAC/C,CAAC,EACA,YAAY;AAAA,EACjB;AACF;AAEA,IAAM,iBAAyC;AAAA,EAC7C,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,YAAY;AACd;AAQA,SAAS,mBACP,SAC2C;AA9H7C;AA+HE,UAAO,mBAAQ,gBAAR,mBAAqB,KAAK,WAAS,MAAM,cAAc,mBAAvD,mBACH;AACN;AAEA,SAAS,kBACP,SAC2C;AArI7C;AAsIE,UAAO,wBAAmB,OAAO,MAA1B,YAA+B,QAAQ;AAChD;AAEA,SAAS,qBAAqB,WAA2B;AACvD,QAAM,aAAa,UAAU,QAAQ,GAAG;AACxC,SAAO,eAAe,KAAK,YAAY,UAAU,UAAU,GAAG,UAAU;AAC1E;AAEA,IAAM,cAAc,CAAC,MACnB,EAAE,aAAa,QAAQ,qBAAqB,EAAE,SAAS,MAAM;AAE/D,SAAS,wBACP,SACA,kBACA,UACgC;AArJlC;AAsJE,MAAI,QAAQ,eAAe,QAAQ,QAAQ,YAAY,SAAS,GAAG;AACjE,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,kBAAkB,QAAQ;AAEhC,MAAI,mBAAmB,QAAQ,gBAAgB,SAAS,GAAG;AACzD,WAAO,gBAAgB,IAAI,eAAa;AACtC,UAAI,UAAU,SAAS,SAAS,UAAU,aAAa,MAAM;AAC3D,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SACE;AAAA,QAGJ,CAAC;AAAA,MACH;AAEA,YAAM,UAAM,uDAA+B,SAAS;AACpD,aAAO,YAAY,SAAS,IACxB,EAAE,MAAM,aAAa,WAAW,EAAE,IAAI,GAAG,MAAM,kBAAkB,IACjE,EAAE,MAAM,aAAa,WAAW,EAAE,IAAI,GAAG,MAAM,kBAAkB;AAAA,IACvE,CAAC;AAAA,EACH;AAEA,QAAM,UAA0C,CAAC;AAEjD,aAAW,aAAY,0DAAkB,oBAAlB,YAAqC,CAAC,GAAG;AAC9D,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,SAAS;AAAA,MAC3B,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAEA,aAAW,aAAY,0DAAkB,oBAAlB,YAAqC,CAAC,GAAG;AAC9D,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,SAAS;AAAA,MAC3B,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAEA,SAAS,sBACP,SACA,kBACoB;AAxMtB;AAyME,QAAM,aAAY,mBAAQ,gBAAR,mBAAqB;AAAA,IACrC,WAAS,MAAM,cAAc;AAAA,QADb,mBAEf;AAEH,MAAI,aAAa,MAAM;AACrB,eAAO,uDAA+B,SAAS;AAAA,EACjD;AAEA,UAAO,0DAAkB,mBAAlB,YAAoC;AAC7C;AAEO,IAAM,sBAAN,MAA+D;AAAA,EAQpE,YACW,SACQ,QACjB;AAFS;AACQ;AATnB,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAAA,EASzB;AAAA,EAPH,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAM,WACJ,SACuE;AAnO3E;AAoOI,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AACvE,UAAM,WAA8B,CAAC;AAErC,UAAM,mBAAoB,UAAM,6CAAqB;AAAA,MACnD,UAAU;AAAA,MACV,iBAAiB,QAAQ;AAAA,MACzB,QAAQ;AAAA,IACV,CAAC;AAGD,QAAI,QAAQ,KAAK;AACf,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAEA,QAAI,QAAQ,KAAK,QAAQ,QAAQ,IAAI,GAAG;AACtC,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SACE;AAAA,MAEJ,CAAC;AAAA,IACH;AAEA,UAAM,UAA0C,CAAC;AAEjD,QAAI,QAAQ,UAAU,MAAM;AAC1B,cAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,MAAM,QAAQ;AAAA,MAChB,CAAC;AAAA,IACH;AAEA,UAAM,aAAa,kBAAkB,OAAO;AAC5C,UAAM,oBAAoB,sBAAsB,SAAS,gBAAgB;AACzE,UAAM,mBAAmB;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,QAAI,cAAc,MAAM;AACtB,cAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,WAAW,EAAE,SAAK,uDAA+B,UAAU,EAAE;AAAA,QAC7D,GAAI,qBAAqB,OAAO,EAAE,MAAM,cAAc,IAAI,CAAC;AAAA,MAC7D,CAAC;AAAA,IACH;AAGA,QAAI,qBAAqB,MAAM;AAC7B,cAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,WAAW,EAAE,KAAK,kBAAkB;AAAA,QACpC,MAAM;AAAA,MACR,CAAC;AAAA,IACH;AAEA,eAAW,SAAS,kBAAkB;AACpC,cAAQ,KAAK,KAAK;AAAA,IACpB;AAGA,SACE,qDAAkB,mBAAkB,QACpC,iBAAiB,eAAe,SAAS,GACzC;AACA,iBAAW,YAAY,iBAAiB,gBAAgB;AACtD,gBAAQ,KAAK;AAAA,UACX,MAAM;AAAA,UACN,WAAW,EAAE,KAAK,SAAS;AAAA,UAC3B,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF;AAEA,UAAM,OAAgC;AAAA,MACpC,OAAO,KAAK;AAAA,MACZ;AAAA,IACF;AAEA,QAAI,QAAQ,aAAa;AACvB,WAAK,QAAQ,QAAQ;AAAA,IACvB;AAEA,QAAI,QAAQ,UAAU;AACpB,WAAK,WAAW,QAAQ;AAAA,IAC1B;AAEA,QAAI,QAAQ,MAAM;AAChB,WAAK,OAAO,QAAQ;AAAA,IACtB;AAEA,QAAI,QAAQ,YAAY;AACtB,YAAM,SAAS,eAAe,QAAQ,UAAU;AAChD,UAAI,QAAQ;AACV,aAAK,aAAa;AAAA,MACpB,OAAO;AACL,aAAK,aAAa,QAAQ;AAAA,MAC5B;AAAA,IACF;AAEA,UAAM,iBACJ,aAAQ,kBAAR,YAAyB,qDAAkB;AAC7C,QAAI,iBAAiB,MAAM;AACzB,WAAK,iBAAiB;AAAA,IACxB;AAEA,QAAI,oBAAoB,MAAM;AAC5B,UAAI,iBAAiB,aAAa,MAAM;AACtC,aAAK,YAAY,iBAAiB;AAAA,MACpC;AACA,UAAI,iBAAiB,eAAe,MAAM;AACxC,aAAK,eAAe,iBAAiB;AAAA,MACvC;AACA,UAAI,iBAAiB,mBAAmB,MAAM;AAC5C,aAAK,oBAAoB,iBAAiB;AAAA,MAC5C;AACA,UAAI,iBAAiB,eAAe,MAAM;AACxC,aAAK,eAAe,iBAAiB;AAAA,MACvC;AACA,UAAI,iBAAiB,SAAS,MAAM;AAClC,aAAK,QAAQ,iBAAiB;AAAA,MAChC;AAEA,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,gBAAgB,GAAG;AAC3D,YAAI,CAACA,0BAAyB,IAAI,GAAG,GAAG;AACtC,eAAK,GAAG,IAAI;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAEA,UAAM,YAAY,GAAG,KAAK,OAAO,OAAO;AAExC,UAAM,EAAE,OAAO,eAAe,IAAI,UAAM,sCAAc;AAAA,MACpD,KAAK;AAAA,MACL,aAAS;AAAA,QACP,UAAM,gCAAQ,KAAK,OAAO,OAAO;AAAA,QACjC,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,MACA,uBAAuBC;AAAA,MACvB,+BAA2B;AAAA,QACzB;AAAA,MACF;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,UAAM,SAAS,eAAe;AAE9B,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,2BAAW;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,UAAM,kBAAiB,0DAAkB,mBAAlB,YAAoC;AAC3D,UAAM,iBAAgB,0DAAkB,kBAAlB,YAAmC;AAEzD,UAAM,YAAY,KAAK,IAAI;AAC3B,QAAI;AACJ,QAAI;AAEJ,WAAO,MAAM;AACX,YAAM,YAAY,GAAG,KAAK,OAAO,OAAO,+BAA+B,MAAM;AAE7E,YAAM,EAAE,OAAO,gBAAgB,iBAAiB,cAAc,IAC5D,UAAM,mCAAW;AAAA,QACf,KAAK;AAAA,QACL,aAAS;AAAA,UACP,UAAM,gCAAQ,KAAK,OAAO,OAAO;AAAA,UACjC,QAAQ;AAAA,QACV;AAAA,QACA,uBAAuBA;AAAA,QACvB,+BAA2B;AAAA,UACzB;AAAA,QACF;AAAA,QACA,aAAa,QAAQ;AAAA,QACrB,OAAO,KAAK,OAAO;AAAA,MACrB,CAAC;AAEH,UAAI,eAAe,WAAW,aAAa;AACzC,mBAAW;AACX,0BAAkB;AAClB;AAAA,MACF;AAEA,UAAI,eAAe,WAAW,UAAU;AACtC,cAAM,IAAI,2BAAW;AAAA,UACnB,MAAM;AAAA,UACN,SAAS,4BAA4B,KAAK,UAAU,cAAc,CAAC;AAAA,QACrE,CAAC;AAAA,MACH;AAEA,UAAI,KAAK,IAAI,IAAI,YAAY,eAAe;AAC1C,cAAM,IAAI,2BAAW;AAAA,UACnB,MAAM;AAAA,UACN,SAAS,oCAAoC,aAAa;AAAA,QAC5D,CAAC;AAAA,MACH;AAEA,gBAAM,8BAAM,gBAAgB,EAAE,aAAa,QAAQ,YAAY,CAAC;AAAA,IAClE;AAEA,UAAM,YAAW,cAAS,YAAT,mBAAkB;AACnC,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,2BAAW;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,MACL,QAAQ;AAAA,QACN;AAAA,UACE,MAAM;AAAA,UACN,KAAK;AAAA,UACL,WAAW;AAAA,QACb;AAAA,MACF;AAAA,MACA;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,SAAS;AAAA,MACX;AAAA,MACA,kBAAkB;AAAA,QAChB,WAAW;AAAA,UACT;AAAA,UACA,OAAO,SAAS;AAAA,UAChB,KAAI,cAAS,YAAT,mBAAkB,mBAAkB,OACpC,EAAE,cAAc,SAAS,QAAQ,eAAe,IAChD,CAAC;AAAA,QACP;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,8BAA8B,aAAE,OAAO;AAAA,EAC3C,IAAI,aAAE,OAAO,EAAE,QAAQ;AACzB,CAAC;AAID,IAAM,gCAAgC,aAAE,OAAO;AAAA,EAC7C,IAAI,aAAE,OAAO,EAAE,QAAQ;AAAA,EACvB,OAAO,aAAE,OAAO,EAAE,QAAQ;AAAA,EAC1B,QAAQ,aAAE,OAAO;AAAA,EACjB,SAAS,aACN,OAAO;AAAA,IACN,WAAW,aAAE,OAAO,EAAE,QAAQ;AAAA,IAC9B,gBAAgB,aAAE,OAAO,EAAE,QAAQ;AAAA,EACrC,CAAC,EACA,QAAQ;AAAA,EACX,OAAO,aACJ,OAAO;AAAA,IACN,mBAAmB,aAAE,OAAO,EAAE,QAAQ;AAAA,EACxC,CAAC,EACA,QAAQ;AACb,CAAC;AAED,IAAMC,wBAAuB,aAAE,OAAO;AAAA,EACpC,OAAO,aACJ,OAAO;AAAA,IACN,SAAS,aAAE,OAAO;AAAA,IAClB,MAAM,aAAE,OAAO,EAAE,QAAQ;AAAA,EAC3B,CAAC,EACA,QAAQ;AAAA,EACX,SAAS,aAAE,OAAO,EAAE,QAAQ;AAC9B,CAAC;AAED,IAAMD,sCAAiC,uDAA+B;AAAA,EACpE,aAAaC;AAAA,EACb,gBAAgB,UAAK;AA7fvB;AA8fI,kCAAK,UAAL,mBAAY,YAAZ,YAAuB,KAAK,YAA5B,YAAuC;AAAA;AAC3C,CAAC;;;AHhcD,IAAM,iBAAiB;AAKhB,SAAS,gBACd,UAAqC,CAAC,GACnB;AAtErB;AAuEE,QAAM,cAAU,8CAAqB,aAAQ,YAAR,YAAmB,cAAc;AAEtE,QAAM,aAAa,OAAO;AAAA,IACxB,eAAe,cAAU,mCAAW;AAAA,MAClC,QAAQ,QAAQ;AAAA,MAChB,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC,CAAC;AAAA,IACF,gBAAgB;AAAA,IAChB,GAAG,QAAQ;AAAA,EACb;AAEA,QAAM,mBAAmB,CAAC,YACxB,IAAI,oBAAoB,SAAS;AAAA,IAC/B,UAAU;AAAA,IACV,SAAS,4BAAW;AAAA,IACpB,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,mBAAmB,CAAC,YACxB,IAAI,oBAAoB,SAAS;AAAA,IAC/B,UAAU;AAAA,IACV,SAAS,4BAAW;AAAA,IACpB,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,SAAO;AAAA,IACL,sBAAsB;AAAA,IACtB,gBAAgB,CAAC,YAAoB;AACnC,YAAM,IAAI,kCAAiB,EAAE,SAAS,WAAW,iBAAiB,CAAC;AAAA,IACrE;AAAA,IACA,eAAe,CAAC,YAAoB;AAClC,YAAM,IAAI,kCAAiB,EAAE,SAAS,WAAW,gBAAgB,CAAC;AAAA,IACpE;AAAA,IACA,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AACF;AAKO,IAAM,YAAY,gBAAgB;;;AInHlC,IAAM,UACX,OACI,WACA;","names":["import_provider","import_provider_utils","import_provider_utils","import_v4","import_provider_utils","import_v4","HANDLED_PROVIDER_OPTIONS","byteDanceFailedResponseHandler","byteDanceErrorSchema"]}
|
package/dist/index.mjs
CHANGED
|
@@ -336,7 +336,7 @@ var ByteDanceVideoModel = class {
|
|
|
336
336
|
return this.config.provider;
|
|
337
337
|
}
|
|
338
338
|
async doGenerate(options) {
|
|
339
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
339
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
340
340
|
const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
|
|
341
341
|
const warnings = [];
|
|
342
342
|
const byteDanceOptions = await parseProviderOptions2({
|
|
@@ -530,7 +530,8 @@ var ByteDanceVideoModel = class {
|
|
|
530
530
|
providerMetadata: {
|
|
531
531
|
bytedance: {
|
|
532
532
|
taskId,
|
|
533
|
-
usage: response.usage
|
|
533
|
+
usage: response.usage,
|
|
534
|
+
...((_h = response.content) == null ? void 0 : _h.last_frame_url) != null ? { lastFrameUrl: response.content.last_frame_url } : {}
|
|
534
535
|
}
|
|
535
536
|
}
|
|
536
537
|
};
|
|
@@ -544,7 +545,8 @@ var byteDanceStatusResponseSchema = z3.object({
|
|
|
544
545
|
model: z3.string().nullish(),
|
|
545
546
|
status: z3.string(),
|
|
546
547
|
content: z3.object({
|
|
547
|
-
video_url: z3.string().nullish()
|
|
548
|
+
video_url: z3.string().nullish(),
|
|
549
|
+
last_frame_url: z3.string().nullish()
|
|
548
550
|
}).nullish(),
|
|
549
551
|
usage: z3.object({
|
|
550
552
|
completion_tokens: z3.number().nullish()
|
|
@@ -608,7 +610,7 @@ function createByteDance(options = {}) {
|
|
|
608
610
|
var byteDance = createByteDance();
|
|
609
611
|
|
|
610
612
|
// src/version.ts
|
|
611
|
-
var VERSION = true ? "1.0.
|
|
613
|
+
var VERSION = true ? "1.0.39" : "0.0.0-test";
|
|
612
614
|
export {
|
|
613
615
|
ByteDanceImageModel,
|
|
614
616
|
VERSION,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bytedance-provider.ts","../src/bytedance-image-model.ts","../src/bytedance-image-model-options.ts","../src/bytedance-video-model.ts","../src/version.ts"],"sourcesContent":["import {\n type Experimental_VideoModelV3,\n type ImageModelV3,\n NoSuchModelError,\n type ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n type FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { ByteDanceImageModel } from './bytedance-image-model';\nimport type { ByteDanceImageModelId } from './bytedance-image-settings';\nimport { ByteDanceVideoModel } from './bytedance-video-model';\nimport type { ByteDanceVideoModelId } from './bytedance-video-settings';\n\nexport interface ByteDanceProviderSettings {\n /**\n * ByteDance Ark API key. Default value is taken from the `ARK_API_KEY`\n * environment variable.\n */\n apiKey?: string;\n\n /**\n * Base URL for the API calls.\n * Default: https://ark.ap-southeast.bytepluses.com/api/v3\n */\n baseURL?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept\n * requests, or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ByteDanceProvider extends ProviderV3 {\n /**\n * Creates a model for video generation.\n */\n video(modelId: ByteDanceVideoModelId): Experimental_VideoModelV3;\n\n /**\n * Creates a model for video generation.\n */\n videoModel(modelId: ByteDanceVideoModelId): Experimental_VideoModelV3;\n\n /**\n * Creates a model for image generation.\n */\n image(modelId: ByteDanceImageModelId): ImageModelV3;\n\n /**\n * Creates a model for image generation.\n */\n imageModel(modelId: ByteDanceImageModelId): ImageModelV3;\n}\n\nconst defaultBaseURL = 'https://ark.ap-southeast.bytepluses.com/api/v3';\n\n/**\n * Create a ByteDance provider instance.\n */\nexport function createByteDance(\n options: ByteDanceProviderSettings = {},\n): ByteDanceProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'ARK_API_KEY',\n description: 'ByteDance ModelArk',\n })}`,\n 'Content-Type': 'application/json',\n ...options.headers,\n });\n\n const createVideoModel = (modelId: ByteDanceVideoModelId) =>\n new ByteDanceVideoModel(modelId, {\n provider: 'bytedance.video',\n baseURL: baseURL ?? defaultBaseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createImageModel = (modelId: ByteDanceImageModelId) =>\n new ByteDanceImageModel(modelId, {\n provider: 'bytedance.image',\n baseURL: baseURL ?? defaultBaseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n return {\n specificationVersion: 'v3' as const,\n embeddingModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n },\n languageModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n },\n image: createImageModel,\n imageModel: createImageModel,\n video: createVideoModel,\n videoModel: createVideoModel,\n };\n}\n\n/**\n * Default ByteDance provider instance.\n */\nexport const byteDance = createByteDance();\n","import type {\n ImageModelV3,\n ImageModelV3CallOptions,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { ByteDanceConfig } from './bytedance-config';\nimport {\n byteDanceImageModelOptionsSchema,\n type ByteDanceImageModelOptions,\n} from './bytedance-image-model-options';\nimport type { ByteDanceImageModelId } from './bytedance-image-settings';\n\nconst HANDLED_PROVIDER_OPTIONS = new Set([\n 'watermark',\n 'outputFormat',\n 'size',\n 'sequentialImageGeneration',\n 'maxImages',\n 'optimizePromptMode',\n]);\n\ninterface ByteDanceImageModelConfig extends ByteDanceConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ByteDanceImageModel implements ImageModelV3 {\n readonly specificationVersion = 'v3';\n // The API has no output-count parameter, so a single call returns one image;\n // `generateImage` fans `n` out into `n` calls. Batches of related images are\n // available via the `sequentialImageGeneration` provider option instead.\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ByteDanceImageModelId,\n private readonly config: ByteDanceImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask,\n }: ImageModelV3CallOptions): Promise<\n Awaited<ReturnType<ImageModelV3['doGenerate']>>\n > {\n const warnings: Array<SharedV3Warning> = [];\n\n if (aspectRatio != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'aspectRatio',\n details:\n 'ByteDance does not support aspectRatio. Use `size` (e.g. \"2048x2048\" ' +\n 'or a resolution level like \"2K\" via providerOptions) instead.',\n });\n }\n\n if (seed != null) {\n warnings.push({ type: 'unsupported', feature: 'seed' });\n }\n\n if (mask != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'mask',\n details:\n 'ByteDance Seedream does not support a separate mask. Provide edit ' +\n 'instructions in the prompt, optionally with markings on the input image.',\n });\n }\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n const byteDanceOptions = (await parseProviderOptions({\n provider: 'bytedance',\n providerOptions,\n schema: byteDanceImageModelOptionsSchema,\n })) as ByteDanceImageModelOptions | undefined;\n\n const image =\n files != null && files.length > 0\n ? files.length === 1\n ? convertImageModelFileToDataUri(files[0])\n : files.map(convertImageModelFileToDataUri)\n : undefined;\n\n const body: Record<string, unknown> = {\n model: this.modelId,\n prompt,\n };\n\n if (image != null) {\n body.image = image;\n }\n\n if (size != null) {\n body.size = size;\n }\n\n if (byteDanceOptions != null) {\n if (byteDanceOptions.watermark != null) {\n body.watermark = byteDanceOptions.watermark;\n }\n if (byteDanceOptions.outputFormat != null) {\n body.output_format = byteDanceOptions.outputFormat;\n }\n // A resolution level (e.g. \"2K\") overrides the top-level pixel size.\n if (byteDanceOptions.size != null) {\n body.size = byteDanceOptions.size;\n }\n if (byteDanceOptions.sequentialImageGeneration != null) {\n body.sequential_image_generation =\n byteDanceOptions.sequentialImageGeneration;\n }\n if (byteDanceOptions.maxImages != null) {\n body.sequential_image_generation_options = {\n max_images: byteDanceOptions.maxImages,\n };\n }\n if (byteDanceOptions.optimizePromptMode != null) {\n body.optimize_prompt_options = {\n mode: byteDanceOptions.optimizePromptMode,\n };\n }\n // Pass through any additional options not explicitly handled above.\n for (const [key, value] of Object.entries(byteDanceOptions)) {\n if (!HANDLED_PROVIDER_OPTIONS.has(key)) {\n body[key] = value;\n }\n }\n }\n\n // Always request base64 so the SDK receives the image bytes; this is not\n // user-overridable.\n body.response_format = 'b64_json';\n\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/images/generations`,\n headers: combineHeaders(await resolve(this.config.headers), headers),\n body,\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceImageResponseSchema,\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// Minimal schema focused on what the implementation needs. This limits\n// breakages when the API adds fields and keeps parsing efficient.\nconst byteDanceImageResponseSchema = z.object({\n data: z.array(z.object({ b64_json: z.string() })),\n});\n\nconst byteDanceErrorSchema = z.object({\n error: z\n .object({\n message: z.string(),\n code: z.string().nullish(),\n })\n .nullish(),\n message: z.string().nullish(),\n});\n\nconst byteDanceFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: byteDanceErrorSchema,\n errorToMessage: data =>\n data.error?.message ?? data.message ?? 'Unknown error',\n});\n","import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type ByteDanceImageModelOptions = {\n /**\n * Whether to add an \"AI generated\" watermark to the bottom-right corner of\n * the output image.\n */\n watermark?: boolean | null;\n\n /**\n * Format of the generated image file. Supported by `seedream-5-0` and\n * `dola-seedream-5-0-pro`; `seedream-4-5` / `seedream-4-0` always return\n * `jpeg`.\n */\n outputFormat?: 'png' | 'jpeg' | null;\n\n /**\n * A resolution level (e.g. `1K`, `2K`, `3K`, `4K`) as an alternative to\n * passing pixel dimensions via the top-level `size` parameter. When set, this\n * overrides the top-level `size`. Available levels vary by model.\n */\n size?: string | null;\n\n /**\n * Set to `'auto'` to generate a batch of related images (e.g. storyboards or\n * brand visuals). Defaults to `'disabled'` (single image).\n */\n sequentialImageGeneration?: 'auto' | 'disabled' | null;\n\n /**\n * Maximum number of images to generate when `sequentialImageGeneration` is\n * `'auto'`. The number of input reference images plus generated images must\n * not exceed the model's limit.\n */\n maxImages?: number | null;\n\n /**\n * Prompt optimization mode. `seedream-4-0` supports both `'standard'` and\n * `'fast'`; other models support `'standard'` only.\n */\n optimizePromptMode?: 'standard' | 'fast' | null;\n\n [key: string]: unknown;\n};\n\nexport const byteDanceImageModelOptionsSchema = lazySchema(() =>\n zodSchema(\n z.looseObject({\n watermark: z.boolean().nullish(),\n outputFormat: z.enum(['png', 'jpeg']).nullish(),\n size: z.string().nullish(),\n sequentialImageGeneration: z.enum(['auto', 'disabled']).nullish(),\n maxImages: z.number().int().positive().nullish(),\n optimizePromptMode: z.enum(['standard', 'fast']).nullish(),\n }),\n ),\n);\n","import {\n AISDKError,\n type Experimental_VideoModelV3,\n type Experimental_VideoModelV3File,\n type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n delay,\n getFromApi,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { ByteDanceConfig } from './bytedance-config';\nimport type { ByteDanceVideoModelId } from './bytedance-video-settings';\n\nexport type ByteDanceVideoProviderOptions = {\n watermark?: boolean | null;\n generateAudio?: boolean | null;\n cameraFixed?: boolean | null;\n returnLastFrame?: boolean | null;\n serviceTier?: 'default' | 'flex' | null;\n draft?: boolean | null;\n lastFrameImage?: string | null;\n referenceImages?: string[] | null;\n referenceVideos?: string[] | null;\n referenceAudio?: string[] | null;\n pollIntervalMs?: number | null;\n pollTimeoutMs?: number | null;\n [key: string]: unknown;\n};\n\nconst HANDLED_PROVIDER_OPTIONS = new Set([\n 'watermark',\n 'generateAudio',\n 'cameraFixed',\n 'returnLastFrame',\n 'serviceTier',\n 'draft',\n 'lastFrameImage',\n 'referenceImages',\n 'referenceVideos',\n 'referenceAudio',\n 'pollIntervalMs',\n 'pollTimeoutMs',\n]);\n\nexport const byteDanceVideoProviderOptionsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n watermark: z.boolean().nullish(),\n generateAudio: z.boolean().nullish(),\n cameraFixed: z.boolean().nullish(),\n returnLastFrame: z.boolean().nullish(),\n serviceTier: z.enum(['default', 'flex']).nullish(),\n draft: z.boolean().nullish(),\n lastFrameImage: z.string().nullish(),\n referenceImages: z.array(z.string()).nullish(),\n referenceVideos: z.array(z.string()).nullish(),\n referenceAudio: z.array(z.string()).nullish(),\n pollIntervalMs: z.number().positive().nullish(),\n pollTimeoutMs: z.number().positive().nullish(),\n })\n .passthrough(),\n ),\n);\n\nconst RESOLUTION_MAP: Record<string, string> = {\n '864x496': '480p',\n '496x864': '480p',\n '752x560': '480p',\n '560x752': '480p',\n '640x640': '480p',\n '992x432': '480p',\n '432x992': '480p',\n '864x480': '480p',\n '480x864': '480p',\n '736x544': '480p',\n '544x736': '480p',\n '960x416': '480p',\n '416x960': '480p',\n '832x480': '480p',\n '480x832': '480p',\n '624x624': '480p',\n '1280x720': '720p',\n '720x1280': '720p',\n '1112x834': '720p',\n '834x1112': '720p',\n '960x960': '720p',\n '1470x630': '720p',\n '630x1470': '720p',\n '1248x704': '720p',\n '704x1248': '720p',\n '1120x832': '720p',\n '832x1120': '720p',\n '1504x640': '720p',\n '640x1504': '720p',\n '1920x1080': '1080p',\n '1080x1920': '1080p',\n '1664x1248': '1080p',\n '1248x1664': '1080p',\n '1440x1440': '1080p',\n '2206x946': '1080p',\n '946x2206': '1080p',\n '1920x1088': '1080p',\n '1088x1920': '1080p',\n '2176x928': '1080p',\n '928x2176': '1080p',\n};\n\ninterface ByteDanceVideoModelConfig extends ByteDanceConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nfunction getFirstFrameImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n): Experimental_VideoModelV3File | undefined {\n return options.frameImages?.find(frame => frame.frameType === 'first_frame')\n ?.image;\n}\n\nfunction resolveStartImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n): Experimental_VideoModelV3File | undefined {\n return getFirstFrameImage(options) ?? options.image;\n}\n\nfunction getTopLevelMediaType(mediaType: string): string {\n const slashIndex = mediaType.indexOf('/');\n return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\n\nconst isVideoFile = (f: Experimental_VideoModelV3File) =>\n f.mediaType != null && getTopLevelMediaType(f.mediaType) === 'video';\n\nfunction resolveReferenceContent(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n byteDanceOptions: ByteDanceVideoProviderOptions | undefined,\n warnings: SharedV3Warning[],\n): Array<Record<string, unknown>> {\n if (options.frameImages != null && options.frameImages.length > 0) {\n return [];\n }\n\n const inputReferences = options.inputReferences;\n\n if (inputReferences != null && inputReferences.length > 0) {\n return inputReferences.map(reference => {\n if (reference.type === 'url' && reference.mediaType == null) {\n warnings.push({\n type: 'unsupported',\n feature: 'inputReferences',\n details:\n 'ByteDance requires an explicit mediaType to route URL references as ' +\n 'video or image. Pass { data: url, mediaType: \"video/mp4\" } for video ' +\n 'references. The reference was treated as an image.',\n });\n }\n\n const url = convertImageModelFileToDataUri(reference);\n return isVideoFile(reference)\n ? { type: 'video_url', video_url: { url }, role: 'reference_video' }\n : { type: 'image_url', image_url: { url }, role: 'reference_image' };\n });\n }\n\n const content: Array<Record<string, unknown>> = [];\n\n for (const imageUrl of byteDanceOptions?.referenceImages ?? []) {\n content.push({\n type: 'image_url',\n image_url: { url: imageUrl },\n role: 'reference_image',\n });\n }\n\n for (const videoUrl of byteDanceOptions?.referenceVideos ?? []) {\n content.push({\n type: 'video_url',\n video_url: { url: videoUrl },\n role: 'reference_video',\n });\n }\n\n return content;\n}\n\nfunction resolveLastFrameImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n byteDanceOptions: ByteDanceVideoProviderOptions | undefined,\n): string | undefined {\n const lastFrame = options.frameImages?.find(\n frame => frame.frameType === 'last_frame',\n )?.image;\n\n if (lastFrame != null) {\n return convertImageModelFileToDataUri(lastFrame);\n }\n\n return byteDanceOptions?.lastFrameImage ?? undefined;\n}\n\nexport class ByteDanceVideoModel implements Experimental_VideoModelV3 {\n readonly specificationVersion = 'v3';\n readonly maxVideosPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ByteDanceVideoModelId,\n private readonly config: ByteDanceVideoModelConfig,\n ) {}\n\n async doGenerate(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<Experimental_VideoModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const warnings: SharedV3Warning[] = [];\n\n const byteDanceOptions = (await parseProviderOptions({\n provider: 'bytedance',\n providerOptions: options.providerOptions,\n schema: byteDanceVideoProviderOptionsSchema,\n })) as ByteDanceVideoProviderOptions | undefined;\n\n // Warn about unsupported standard options\n if (options.fps) {\n warnings.push({\n type: 'unsupported',\n feature: 'fps',\n details:\n 'ByteDance video models do not support custom FPS. Frame rate is fixed at 24 fps.',\n });\n }\n\n if (options.n != null && options.n > 1) {\n warnings.push({\n type: 'unsupported',\n feature: 'n',\n details:\n 'ByteDance video models do not support generating multiple videos per call. ' +\n 'Only 1 video will be generated.',\n });\n }\n\n const content: Array<Record<string, unknown>> = [];\n\n if (options.prompt != null) {\n content.push({\n type: 'text',\n text: options.prompt,\n });\n }\n\n const startImage = resolveStartImage(options);\n const lastFrameImageUrl = resolveLastFrameImage(options, byteDanceOptions);\n const referenceContent = resolveReferenceContent(\n options,\n byteDanceOptions,\n warnings,\n );\n\n if (startImage != null) {\n content.push({\n type: 'image_url',\n image_url: { url: convertImageModelFileToDataUri(startImage) },\n ...(lastFrameImageUrl != null ? { role: 'first_frame' } : {}),\n });\n }\n\n // Add last frame image if provided\n if (lastFrameImageUrl != null) {\n content.push({\n type: 'image_url',\n image_url: { url: lastFrameImageUrl },\n role: 'last_frame',\n });\n }\n\n for (const entry of referenceContent) {\n content.push(entry);\n }\n\n // Add reference audio if provided\n if (\n byteDanceOptions?.referenceAudio != null &&\n byteDanceOptions.referenceAudio.length > 0\n ) {\n for (const audioUrl of byteDanceOptions.referenceAudio) {\n content.push({\n type: 'audio_url',\n audio_url: { url: audioUrl },\n role: 'reference_audio',\n });\n }\n }\n\n const body: Record<string, unknown> = {\n model: this.modelId,\n content,\n };\n\n if (options.aspectRatio) {\n body.ratio = options.aspectRatio;\n }\n\n if (options.duration) {\n body.duration = options.duration;\n }\n\n if (options.seed) {\n body.seed = options.seed;\n }\n\n if (options.resolution) {\n const mapped = RESOLUTION_MAP[options.resolution];\n if (mapped) {\n body.resolution = mapped;\n } else {\n body.resolution = options.resolution;\n }\n }\n\n const generateAudio =\n options.generateAudio ?? byteDanceOptions?.generateAudio;\n if (generateAudio != null) {\n body.generate_audio = generateAudio;\n }\n\n if (byteDanceOptions != null) {\n if (byteDanceOptions.watermark != null) {\n body.watermark = byteDanceOptions.watermark;\n }\n if (byteDanceOptions.cameraFixed != null) {\n body.camera_fixed = byteDanceOptions.cameraFixed;\n }\n if (byteDanceOptions.returnLastFrame != null) {\n body.return_last_frame = byteDanceOptions.returnLastFrame;\n }\n if (byteDanceOptions.serviceTier != null) {\n body.service_tier = byteDanceOptions.serviceTier;\n }\n if (byteDanceOptions.draft != null) {\n body.draft = byteDanceOptions.draft;\n }\n // Pass through any additional options not explicitly handled\n for (const [key, value] of Object.entries(byteDanceOptions)) {\n if (!HANDLED_PROVIDER_OPTIONS.has(key)) {\n body[key] = value;\n }\n }\n }\n\n const createUrl = `${this.config.baseURL}/contents/generations/tasks`;\n\n const { value: createResponse } = await postJsonToApi({\n url: createUrl,\n headers: combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n ),\n body,\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceTaskResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const taskId = createResponse.id;\n\n if (!taskId) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_ERROR',\n message: 'No task ID returned from API',\n });\n }\n\n const pollIntervalMs = byteDanceOptions?.pollIntervalMs ?? 3000;\n const pollTimeoutMs = byteDanceOptions?.pollTimeoutMs ?? 300000;\n\n const startTime = Date.now();\n let response: ByteDanceResponse;\n let responseHeaders: Record<string, string> | undefined;\n\n while (true) {\n const statusUrl = `${this.config.baseURL}/contents/generations/tasks/${taskId}`;\n\n const { value: statusResponse, responseHeaders: statusHeaders } =\n await getFromApi({\n url: statusUrl,\n headers: combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n ),\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceStatusResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n if (statusResponse.status === 'succeeded') {\n response = statusResponse;\n responseHeaders = statusHeaders;\n break;\n }\n\n if (statusResponse.status === 'failed') {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_FAILED',\n message: `Video generation failed: ${JSON.stringify(statusResponse)}`,\n });\n }\n\n if (Date.now() - startTime > pollTimeoutMs) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_TIMEOUT',\n message: `Video generation timed out after ${pollTimeoutMs}ms`,\n });\n }\n\n await delay(pollIntervalMs, { abortSignal: options.abortSignal });\n }\n\n const videoUrl = response.content?.video_url;\n if (!videoUrl) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_ERROR',\n message: 'No video URL in response',\n });\n }\n\n return {\n videos: [\n {\n type: 'url',\n url: videoUrl,\n mediaType: 'video/mp4',\n },\n ],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n providerMetadata: {\n bytedance: {\n taskId,\n usage: response.usage,\n },\n },\n };\n }\n}\n\nconst byteDanceTaskResponseSchema = z.object({\n id: z.string().nullish(),\n});\n\ntype ByteDanceResponse = z.infer<typeof byteDanceStatusResponseSchema>;\n\nconst byteDanceStatusResponseSchema = z.object({\n id: z.string().nullish(),\n model: z.string().nullish(),\n status: z.string(),\n content: z\n .object({\n video_url: z.string().nullish(),\n })\n .nullish(),\n usage: z\n .object({\n completion_tokens: z.number().nullish(),\n })\n .nullish(),\n});\n\nconst byteDanceErrorSchema = z.object({\n error: z\n .object({\n message: z.string(),\n code: z.string().nullish(),\n })\n .nullish(),\n message: z.string().nullish(),\n});\n\nconst byteDanceFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: byteDanceErrorSchema,\n errorToMessage: data =>\n data.error?.message ?? data.message ?? 'Unknown error',\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":["z","z","combineHeaders","convertImageModelFileToDataUri","createJsonErrorResponseHandler","createJsonResponseHandler","lazySchema","parseProviderOptions","postJsonToApi","resolve","zodSchema","z","HANDLED_PROVIDER_OPTIONS","byteDanceFailedResponseHandler","byteDanceErrorSchema"]}
|
|
1
|
+
{"version":3,"sources":["../src/bytedance-provider.ts","../src/bytedance-image-model.ts","../src/bytedance-image-model-options.ts","../src/bytedance-video-model.ts","../src/version.ts"],"sourcesContent":["import {\n type Experimental_VideoModelV3,\n type ImageModelV3,\n NoSuchModelError,\n type ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n type FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { ByteDanceImageModel } from './bytedance-image-model';\nimport type { ByteDanceImageModelId } from './bytedance-image-settings';\nimport { ByteDanceVideoModel } from './bytedance-video-model';\nimport type { ByteDanceVideoModelId } from './bytedance-video-settings';\n\nexport interface ByteDanceProviderSettings {\n /**\n * ByteDance Ark API key. Default value is taken from the `ARK_API_KEY`\n * environment variable.\n */\n apiKey?: string;\n\n /**\n * Base URL for the API calls.\n * Default: https://ark.ap-southeast.bytepluses.com/api/v3\n */\n baseURL?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept\n * requests, or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ByteDanceProvider extends ProviderV3 {\n /**\n * Creates a model for video generation.\n */\n video(modelId: ByteDanceVideoModelId): Experimental_VideoModelV3;\n\n /**\n * Creates a model for video generation.\n */\n videoModel(modelId: ByteDanceVideoModelId): Experimental_VideoModelV3;\n\n /**\n * Creates a model for image generation.\n */\n image(modelId: ByteDanceImageModelId): ImageModelV3;\n\n /**\n * Creates a model for image generation.\n */\n imageModel(modelId: ByteDanceImageModelId): ImageModelV3;\n}\n\nconst defaultBaseURL = 'https://ark.ap-southeast.bytepluses.com/api/v3';\n\n/**\n * Create a ByteDance provider instance.\n */\nexport function createByteDance(\n options: ByteDanceProviderSettings = {},\n): ByteDanceProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'ARK_API_KEY',\n description: 'ByteDance ModelArk',\n })}`,\n 'Content-Type': 'application/json',\n ...options.headers,\n });\n\n const createVideoModel = (modelId: ByteDanceVideoModelId) =>\n new ByteDanceVideoModel(modelId, {\n provider: 'bytedance.video',\n baseURL: baseURL ?? defaultBaseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createImageModel = (modelId: ByteDanceImageModelId) =>\n new ByteDanceImageModel(modelId, {\n provider: 'bytedance.image',\n baseURL: baseURL ?? defaultBaseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n return {\n specificationVersion: 'v3' as const,\n embeddingModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n },\n languageModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n },\n image: createImageModel,\n imageModel: createImageModel,\n video: createVideoModel,\n videoModel: createVideoModel,\n };\n}\n\n/**\n * Default ByteDance provider instance.\n */\nexport const byteDance = createByteDance();\n","import type {\n ImageModelV3,\n ImageModelV3CallOptions,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { ByteDanceConfig } from './bytedance-config';\nimport {\n byteDanceImageModelOptionsSchema,\n type ByteDanceImageModelOptions,\n} from './bytedance-image-model-options';\nimport type { ByteDanceImageModelId } from './bytedance-image-settings';\n\nconst HANDLED_PROVIDER_OPTIONS = new Set([\n 'watermark',\n 'outputFormat',\n 'size',\n 'sequentialImageGeneration',\n 'maxImages',\n 'optimizePromptMode',\n]);\n\ninterface ByteDanceImageModelConfig extends ByteDanceConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ByteDanceImageModel implements ImageModelV3 {\n readonly specificationVersion = 'v3';\n // The API has no output-count parameter, so a single call returns one image;\n // `generateImage` fans `n` out into `n` calls. Batches of related images are\n // available via the `sequentialImageGeneration` provider option instead.\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ByteDanceImageModelId,\n private readonly config: ByteDanceImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask,\n }: ImageModelV3CallOptions): Promise<\n Awaited<ReturnType<ImageModelV3['doGenerate']>>\n > {\n const warnings: Array<SharedV3Warning> = [];\n\n if (aspectRatio != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'aspectRatio',\n details:\n 'ByteDance does not support aspectRatio. Use `size` (e.g. \"2048x2048\" ' +\n 'or a resolution level like \"2K\" via providerOptions) instead.',\n });\n }\n\n if (seed != null) {\n warnings.push({ type: 'unsupported', feature: 'seed' });\n }\n\n if (mask != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'mask',\n details:\n 'ByteDance Seedream does not support a separate mask. Provide edit ' +\n 'instructions in the prompt, optionally with markings on the input image.',\n });\n }\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n const byteDanceOptions = (await parseProviderOptions({\n provider: 'bytedance',\n providerOptions,\n schema: byteDanceImageModelOptionsSchema,\n })) as ByteDanceImageModelOptions | undefined;\n\n const image =\n files != null && files.length > 0\n ? files.length === 1\n ? convertImageModelFileToDataUri(files[0])\n : files.map(convertImageModelFileToDataUri)\n : undefined;\n\n const body: Record<string, unknown> = {\n model: this.modelId,\n prompt,\n };\n\n if (image != null) {\n body.image = image;\n }\n\n if (size != null) {\n body.size = size;\n }\n\n if (byteDanceOptions != null) {\n if (byteDanceOptions.watermark != null) {\n body.watermark = byteDanceOptions.watermark;\n }\n if (byteDanceOptions.outputFormat != null) {\n body.output_format = byteDanceOptions.outputFormat;\n }\n // A resolution level (e.g. \"2K\") overrides the top-level pixel size.\n if (byteDanceOptions.size != null) {\n body.size = byteDanceOptions.size;\n }\n if (byteDanceOptions.sequentialImageGeneration != null) {\n body.sequential_image_generation =\n byteDanceOptions.sequentialImageGeneration;\n }\n if (byteDanceOptions.maxImages != null) {\n body.sequential_image_generation_options = {\n max_images: byteDanceOptions.maxImages,\n };\n }\n if (byteDanceOptions.optimizePromptMode != null) {\n body.optimize_prompt_options = {\n mode: byteDanceOptions.optimizePromptMode,\n };\n }\n // Pass through any additional options not explicitly handled above.\n for (const [key, value] of Object.entries(byteDanceOptions)) {\n if (!HANDLED_PROVIDER_OPTIONS.has(key)) {\n body[key] = value;\n }\n }\n }\n\n // Always request base64 so the SDK receives the image bytes; this is not\n // user-overridable.\n body.response_format = 'b64_json';\n\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/images/generations`,\n headers: combineHeaders(await resolve(this.config.headers), headers),\n body,\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceImageResponseSchema,\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// Minimal schema focused on what the implementation needs. This limits\n// breakages when the API adds fields and keeps parsing efficient.\nconst byteDanceImageResponseSchema = z.object({\n data: z.array(z.object({ b64_json: z.string() })),\n});\n\nconst byteDanceErrorSchema = z.object({\n error: z\n .object({\n message: z.string(),\n code: z.string().nullish(),\n })\n .nullish(),\n message: z.string().nullish(),\n});\n\nconst byteDanceFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: byteDanceErrorSchema,\n errorToMessage: data =>\n data.error?.message ?? data.message ?? 'Unknown error',\n});\n","import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type ByteDanceImageModelOptions = {\n /**\n * Whether to add an \"AI generated\" watermark to the bottom-right corner of\n * the output image.\n */\n watermark?: boolean | null;\n\n /**\n * Format of the generated image file. Supported by `seedream-5-0` and\n * `dola-seedream-5-0-pro`; `seedream-4-5` / `seedream-4-0` always return\n * `jpeg`.\n */\n outputFormat?: 'png' | 'jpeg' | null;\n\n /**\n * A resolution level (e.g. `1K`, `2K`, `3K`, `4K`) as an alternative to\n * passing pixel dimensions via the top-level `size` parameter. When set, this\n * overrides the top-level `size`. Available levels vary by model.\n */\n size?: string | null;\n\n /**\n * Set to `'auto'` to generate a batch of related images (e.g. storyboards or\n * brand visuals). Defaults to `'disabled'` (single image).\n */\n sequentialImageGeneration?: 'auto' | 'disabled' | null;\n\n /**\n * Maximum number of images to generate when `sequentialImageGeneration` is\n * `'auto'`. The number of input reference images plus generated images must\n * not exceed the model's limit.\n */\n maxImages?: number | null;\n\n /**\n * Prompt optimization mode. `seedream-4-0` supports both `'standard'` and\n * `'fast'`; other models support `'standard'` only.\n */\n optimizePromptMode?: 'standard' | 'fast' | null;\n\n [key: string]: unknown;\n};\n\nexport const byteDanceImageModelOptionsSchema = lazySchema(() =>\n zodSchema(\n z.looseObject({\n watermark: z.boolean().nullish(),\n outputFormat: z.enum(['png', 'jpeg']).nullish(),\n size: z.string().nullish(),\n sequentialImageGeneration: z.enum(['auto', 'disabled']).nullish(),\n maxImages: z.number().int().positive().nullish(),\n optimizePromptMode: z.enum(['standard', 'fast']).nullish(),\n }),\n ),\n);\n","import {\n AISDKError,\n type Experimental_VideoModelV3,\n type Experimental_VideoModelV3File,\n type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n delay,\n getFromApi,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { ByteDanceConfig } from './bytedance-config';\nimport type { ByteDanceVideoModelId } from './bytedance-video-settings';\n\nexport type ByteDanceVideoProviderOptions = {\n watermark?: boolean | null;\n generateAudio?: boolean | null;\n cameraFixed?: boolean | null;\n returnLastFrame?: boolean | null;\n serviceTier?: 'default' | 'flex' | null;\n draft?: boolean | null;\n lastFrameImage?: string | null;\n referenceImages?: string[] | null;\n referenceVideos?: string[] | null;\n referenceAudio?: string[] | null;\n pollIntervalMs?: number | null;\n pollTimeoutMs?: number | null;\n [key: string]: unknown;\n};\n\nconst HANDLED_PROVIDER_OPTIONS = new Set([\n 'watermark',\n 'generateAudio',\n 'cameraFixed',\n 'returnLastFrame',\n 'serviceTier',\n 'draft',\n 'lastFrameImage',\n 'referenceImages',\n 'referenceVideos',\n 'referenceAudio',\n 'pollIntervalMs',\n 'pollTimeoutMs',\n]);\n\nexport const byteDanceVideoProviderOptionsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n watermark: z.boolean().nullish(),\n generateAudio: z.boolean().nullish(),\n cameraFixed: z.boolean().nullish(),\n returnLastFrame: z.boolean().nullish(),\n serviceTier: z.enum(['default', 'flex']).nullish(),\n draft: z.boolean().nullish(),\n lastFrameImage: z.string().nullish(),\n referenceImages: z.array(z.string()).nullish(),\n referenceVideos: z.array(z.string()).nullish(),\n referenceAudio: z.array(z.string()).nullish(),\n pollIntervalMs: z.number().positive().nullish(),\n pollTimeoutMs: z.number().positive().nullish(),\n })\n .passthrough(),\n ),\n);\n\nconst RESOLUTION_MAP: Record<string, string> = {\n '864x496': '480p',\n '496x864': '480p',\n '752x560': '480p',\n '560x752': '480p',\n '640x640': '480p',\n '992x432': '480p',\n '432x992': '480p',\n '864x480': '480p',\n '480x864': '480p',\n '736x544': '480p',\n '544x736': '480p',\n '960x416': '480p',\n '416x960': '480p',\n '832x480': '480p',\n '480x832': '480p',\n '624x624': '480p',\n '1280x720': '720p',\n '720x1280': '720p',\n '1112x834': '720p',\n '834x1112': '720p',\n '960x960': '720p',\n '1470x630': '720p',\n '630x1470': '720p',\n '1248x704': '720p',\n '704x1248': '720p',\n '1120x832': '720p',\n '832x1120': '720p',\n '1504x640': '720p',\n '640x1504': '720p',\n '1920x1080': '1080p',\n '1080x1920': '1080p',\n '1664x1248': '1080p',\n '1248x1664': '1080p',\n '1440x1440': '1080p',\n '2206x946': '1080p',\n '946x2206': '1080p',\n '1920x1088': '1080p',\n '1088x1920': '1080p',\n '2176x928': '1080p',\n '928x2176': '1080p',\n};\n\ninterface ByteDanceVideoModelConfig extends ByteDanceConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nfunction getFirstFrameImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n): Experimental_VideoModelV3File | undefined {\n return options.frameImages?.find(frame => frame.frameType === 'first_frame')\n ?.image;\n}\n\nfunction resolveStartImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n): Experimental_VideoModelV3File | undefined {\n return getFirstFrameImage(options) ?? options.image;\n}\n\nfunction getTopLevelMediaType(mediaType: string): string {\n const slashIndex = mediaType.indexOf('/');\n return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\n\nconst isVideoFile = (f: Experimental_VideoModelV3File) =>\n f.mediaType != null && getTopLevelMediaType(f.mediaType) === 'video';\n\nfunction resolveReferenceContent(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n byteDanceOptions: ByteDanceVideoProviderOptions | undefined,\n warnings: SharedV3Warning[],\n): Array<Record<string, unknown>> {\n if (options.frameImages != null && options.frameImages.length > 0) {\n return [];\n }\n\n const inputReferences = options.inputReferences;\n\n if (inputReferences != null && inputReferences.length > 0) {\n return inputReferences.map(reference => {\n if (reference.type === 'url' && reference.mediaType == null) {\n warnings.push({\n type: 'unsupported',\n feature: 'inputReferences',\n details:\n 'ByteDance requires an explicit mediaType to route URL references as ' +\n 'video or image. Pass { data: url, mediaType: \"video/mp4\" } for video ' +\n 'references. The reference was treated as an image.',\n });\n }\n\n const url = convertImageModelFileToDataUri(reference);\n return isVideoFile(reference)\n ? { type: 'video_url', video_url: { url }, role: 'reference_video' }\n : { type: 'image_url', image_url: { url }, role: 'reference_image' };\n });\n }\n\n const content: Array<Record<string, unknown>> = [];\n\n for (const imageUrl of byteDanceOptions?.referenceImages ?? []) {\n content.push({\n type: 'image_url',\n image_url: { url: imageUrl },\n role: 'reference_image',\n });\n }\n\n for (const videoUrl of byteDanceOptions?.referenceVideos ?? []) {\n content.push({\n type: 'video_url',\n video_url: { url: videoUrl },\n role: 'reference_video',\n });\n }\n\n return content;\n}\n\nfunction resolveLastFrameImage(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n byteDanceOptions: ByteDanceVideoProviderOptions | undefined,\n): string | undefined {\n const lastFrame = options.frameImages?.find(\n frame => frame.frameType === 'last_frame',\n )?.image;\n\n if (lastFrame != null) {\n return convertImageModelFileToDataUri(lastFrame);\n }\n\n return byteDanceOptions?.lastFrameImage ?? undefined;\n}\n\nexport class ByteDanceVideoModel implements Experimental_VideoModelV3 {\n readonly specificationVersion = 'v3';\n readonly maxVideosPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ByteDanceVideoModelId,\n private readonly config: ByteDanceVideoModelConfig,\n ) {}\n\n async doGenerate(\n options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<Experimental_VideoModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const warnings: SharedV3Warning[] = [];\n\n const byteDanceOptions = (await parseProviderOptions({\n provider: 'bytedance',\n providerOptions: options.providerOptions,\n schema: byteDanceVideoProviderOptionsSchema,\n })) as ByteDanceVideoProviderOptions | undefined;\n\n // Warn about unsupported standard options\n if (options.fps) {\n warnings.push({\n type: 'unsupported',\n feature: 'fps',\n details:\n 'ByteDance video models do not support custom FPS. Frame rate is fixed at 24 fps.',\n });\n }\n\n if (options.n != null && options.n > 1) {\n warnings.push({\n type: 'unsupported',\n feature: 'n',\n details:\n 'ByteDance video models do not support generating multiple videos per call. ' +\n 'Only 1 video will be generated.',\n });\n }\n\n const content: Array<Record<string, unknown>> = [];\n\n if (options.prompt != null) {\n content.push({\n type: 'text',\n text: options.prompt,\n });\n }\n\n const startImage = resolveStartImage(options);\n const lastFrameImageUrl = resolveLastFrameImage(options, byteDanceOptions);\n const referenceContent = resolveReferenceContent(\n options,\n byteDanceOptions,\n warnings,\n );\n\n if (startImage != null) {\n content.push({\n type: 'image_url',\n image_url: { url: convertImageModelFileToDataUri(startImage) },\n ...(lastFrameImageUrl != null ? { role: 'first_frame' } : {}),\n });\n }\n\n // Add last frame image if provided\n if (lastFrameImageUrl != null) {\n content.push({\n type: 'image_url',\n image_url: { url: lastFrameImageUrl },\n role: 'last_frame',\n });\n }\n\n for (const entry of referenceContent) {\n content.push(entry);\n }\n\n // Add reference audio if provided\n if (\n byteDanceOptions?.referenceAudio != null &&\n byteDanceOptions.referenceAudio.length > 0\n ) {\n for (const audioUrl of byteDanceOptions.referenceAudio) {\n content.push({\n type: 'audio_url',\n audio_url: { url: audioUrl },\n role: 'reference_audio',\n });\n }\n }\n\n const body: Record<string, unknown> = {\n model: this.modelId,\n content,\n };\n\n if (options.aspectRatio) {\n body.ratio = options.aspectRatio;\n }\n\n if (options.duration) {\n body.duration = options.duration;\n }\n\n if (options.seed) {\n body.seed = options.seed;\n }\n\n if (options.resolution) {\n const mapped = RESOLUTION_MAP[options.resolution];\n if (mapped) {\n body.resolution = mapped;\n } else {\n body.resolution = options.resolution;\n }\n }\n\n const generateAudio =\n options.generateAudio ?? byteDanceOptions?.generateAudio;\n if (generateAudio != null) {\n body.generate_audio = generateAudio;\n }\n\n if (byteDanceOptions != null) {\n if (byteDanceOptions.watermark != null) {\n body.watermark = byteDanceOptions.watermark;\n }\n if (byteDanceOptions.cameraFixed != null) {\n body.camera_fixed = byteDanceOptions.cameraFixed;\n }\n if (byteDanceOptions.returnLastFrame != null) {\n body.return_last_frame = byteDanceOptions.returnLastFrame;\n }\n if (byteDanceOptions.serviceTier != null) {\n body.service_tier = byteDanceOptions.serviceTier;\n }\n if (byteDanceOptions.draft != null) {\n body.draft = byteDanceOptions.draft;\n }\n // Pass through any additional options not explicitly handled\n for (const [key, value] of Object.entries(byteDanceOptions)) {\n if (!HANDLED_PROVIDER_OPTIONS.has(key)) {\n body[key] = value;\n }\n }\n }\n\n const createUrl = `${this.config.baseURL}/contents/generations/tasks`;\n\n const { value: createResponse } = await postJsonToApi({\n url: createUrl,\n headers: combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n ),\n body,\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceTaskResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const taskId = createResponse.id;\n\n if (!taskId) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_ERROR',\n message: 'No task ID returned from API',\n });\n }\n\n const pollIntervalMs = byteDanceOptions?.pollIntervalMs ?? 3000;\n const pollTimeoutMs = byteDanceOptions?.pollTimeoutMs ?? 300000;\n\n const startTime = Date.now();\n let response: ByteDanceResponse;\n let responseHeaders: Record<string, string> | undefined;\n\n while (true) {\n const statusUrl = `${this.config.baseURL}/contents/generations/tasks/${taskId}`;\n\n const { value: statusResponse, responseHeaders: statusHeaders } =\n await getFromApi({\n url: statusUrl,\n headers: combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n ),\n failedResponseHandler: byteDanceFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n byteDanceStatusResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n if (statusResponse.status === 'succeeded') {\n response = statusResponse;\n responseHeaders = statusHeaders;\n break;\n }\n\n if (statusResponse.status === 'failed') {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_FAILED',\n message: `Video generation failed: ${JSON.stringify(statusResponse)}`,\n });\n }\n\n if (Date.now() - startTime > pollTimeoutMs) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_TIMEOUT',\n message: `Video generation timed out after ${pollTimeoutMs}ms`,\n });\n }\n\n await delay(pollIntervalMs, { abortSignal: options.abortSignal });\n }\n\n const videoUrl = response.content?.video_url;\n if (!videoUrl) {\n throw new AISDKError({\n name: 'BYTEDANCE_VIDEO_GENERATION_ERROR',\n message: 'No video URL in response',\n });\n }\n\n return {\n videos: [\n {\n type: 'url',\n url: videoUrl,\n mediaType: 'video/mp4',\n },\n ],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n providerMetadata: {\n bytedance: {\n taskId,\n usage: response.usage,\n ...(response.content?.last_frame_url != null\n ? { lastFrameUrl: response.content.last_frame_url }\n : {}),\n },\n },\n };\n }\n}\n\nconst byteDanceTaskResponseSchema = z.object({\n id: z.string().nullish(),\n});\n\ntype ByteDanceResponse = z.infer<typeof byteDanceStatusResponseSchema>;\n\nconst byteDanceStatusResponseSchema = z.object({\n id: z.string().nullish(),\n model: z.string().nullish(),\n status: z.string(),\n content: z\n .object({\n video_url: z.string().nullish(),\n last_frame_url: z.string().nullish(),\n })\n .nullish(),\n usage: z\n .object({\n completion_tokens: z.number().nullish(),\n })\n .nullish(),\n});\n\nconst byteDanceErrorSchema = z.object({\n error: z\n .object({\n message: z.string(),\n code: z.string().nullish(),\n })\n .nullish(),\n message: z.string().nullish(),\n});\n\nconst byteDanceFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: byteDanceErrorSchema,\n errorToMessage: data =>\n data.error?.message ?? data.message ?? 'Unknown error',\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":["z","z","combineHeaders","convertImageModelFileToDataUri","createJsonErrorResponseHandler","createJsonResponseHandler","lazySchema","parseProviderOptions","postJsonToApi","resolve","zodSchema","z","HANDLED_PROVIDER_OPTIONS","byteDanceFailedResponseHandler","byteDanceErrorSchema"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/bytedance",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.39",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@ai-sdk/provider": "3.0.15",
|
|
24
|
-
"@ai-sdk/provider-utils": "4.0.
|
|
24
|
+
"@ai-sdk/provider-utils": "4.0.50"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "20.17.24",
|