@ai-sdk/gladia 3.0.0-beta.3 → 3.0.0-beta.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/gladia-provider.ts","../src/gladia-transcription-model.ts","../src/gladia-error.ts","../src/version.ts"],"sourcesContent":["export { createGladia, gladia } from './gladia-provider';\nexport type { GladiaProvider, GladiaProviderSettings } from './gladia-provider';\nexport type { GladiaTranscriptionModelOptions } from './gladia-transcription-model';\nexport { VERSION } from './version';\n","import {\n TranscriptionModelV3,\n ProviderV3,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { GladiaTranscriptionModel } from './gladia-transcription-model';\nimport { VERSION } from './version';\n\nexport interface GladiaProvider extends ProviderV3 {\n (): {\n transcription: GladiaTranscriptionModel;\n };\n\n /**\n * Creates a model for transcription.\n */\n transcription(): TranscriptionModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface GladiaProviderSettings {\n /**\n * API key for authenticating requests.\n */\n apiKey?: 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 requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\n/**\n * Create a Gladia provider instance.\n */\nexport function createGladia(\n options: GladiaProviderSettings = {},\n): GladiaProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n 'x-gladia-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'GLADIA_API_KEY',\n description: 'Gladia',\n }),\n ...options.headers,\n },\n `ai-sdk/gladia/${VERSION}`,\n );\n\n const createTranscriptionModel = () =>\n new GladiaTranscriptionModel('default', {\n provider: `gladia.transcription`,\n url: ({ path }) => `https://api.gladia.io${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function () {\n return {\n transcription: createTranscriptionModel(),\n };\n };\n\n provider.specificationVersion = 'v3' as const;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n\n // Required ProviderV3 methods that are not supported\n provider.languageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n message: 'Gladia does not provide language models',\n });\n };\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n message: 'Gladia does not provide embedding models',\n });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'imageModel',\n message: 'Gladia does not provide image models',\n });\n };\n\n return provider as GladiaProvider;\n}\n\n/**\n * Default Gladia provider instance.\n */\nexport const gladia = createGladia();\n","import {\n AISDKError,\n TranscriptionModelV3,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n createJsonResponseHandler,\n mediaTypeToExtension,\n delay,\n getFromApi,\n parseProviderOptions,\n postFormDataToApi,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { GladiaConfig } from './gladia-config';\nimport { gladiaFailedResponseHandler } from './gladia-error';\nimport { GladiaTranscriptionInitiateAPITypes } from './gladia-api-types';\n\n// https://docs.gladia.io/api-reference/v2/pre-recorded/init\nconst gladiaTranscriptionModelOptionsSchema = z.object({\n /**\n * Optional context prompt to guide the transcription.\n */\n contextPrompt: z.string().nullish(),\n\n /**\n * Custom vocabulary to improve transcription accuracy.\n * Can be a boolean or an array of custom terms.\n */\n customVocabulary: z.union([z.boolean(), z.array(z.any())]).nullish(),\n\n /**\n * Configuration for custom vocabulary.\n */\n customVocabularyConfig: z\n .object({\n /**\n * Array of vocabulary terms or objects with pronunciation details.\n */\n vocabulary: z.array(\n z.union([\n z.string(),\n z.object({\n /**\n * The vocabulary term.\n */\n value: z.string(),\n /**\n * Intensity of the term in recognition (optional).\n */\n intensity: z.number().nullish(),\n /**\n * Alternative pronunciations for the term (optional).\n */\n pronunciations: z.array(z.string()).nullish(),\n /**\n * Language of the term (optional).\n */\n language: z.string().nullish(),\n }),\n ]),\n ),\n /**\n * Default intensity for all vocabulary terms.\n */\n defaultIntensity: z.number().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to automatically detect the language of the audio.\n */\n detectLanguage: z.boolean().nullish(),\n\n /**\n * Whether to enable code switching (multiple languages in the same audio).\n */\n enableCodeSwitching: z.boolean().nullish(),\n\n /**\n * Configuration for code switching.\n */\n codeSwitchingConfig: z\n .object({\n /**\n * Languages to consider for code switching.\n */\n languages: z.array(z.string()).nullish(),\n })\n .nullish(),\n\n /**\n * Specific language for transcription.\n */\n language: z.string().nullish(),\n\n /**\n * Whether to enable callback when transcription is complete.\n */\n callback: z.boolean().nullish(),\n\n /**\n * Configuration for callback.\n */\n callbackConfig: z\n .object({\n /**\n * URL to send the callback to.\n */\n url: z.string(),\n /**\n * HTTP method for the callback.\n */\n method: z.enum(['POST', 'PUT']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate subtitles.\n */\n subtitles: z.boolean().nullish(),\n\n /**\n * Configuration for subtitles generation.\n */\n subtitlesConfig: z\n .object({\n /**\n * Subtitle file formats to generate.\n */\n formats: z.array(z.enum(['srt', 'vtt'])).nullish(),\n /**\n * Minimum duration for subtitle segments.\n */\n minimumDuration: z.number().nullish(),\n /**\n * Maximum duration for subtitle segments.\n */\n maximumDuration: z.number().nullish(),\n /**\n * Maximum characters per row in subtitles.\n */\n maximumCharactersPerRow: z.number().nullish(),\n /**\n * Maximum rows per caption in subtitles.\n */\n maximumRowsPerCaption: z.number().nullish(),\n /**\n * Style of subtitles.\n */\n style: z.enum(['default', 'compliance']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable speaker diarization (speaker identification).\n */\n diarization: z.boolean().nullish(),\n\n /**\n * Configuration for diarization.\n */\n diarizationConfig: z\n .object({\n /**\n * Exact number of speakers to identify.\n */\n numberOfSpeakers: z.number().nullish(),\n /**\n * Minimum number of speakers to identify.\n */\n minSpeakers: z.number().nullish(),\n /**\n * Maximum number of speakers to identify.\n */\n maxSpeakers: z.number().nullish(),\n /**\n * Whether to use enhanced diarization.\n */\n enhanced: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to translate the transcription.\n */\n translation: z.boolean().nullish(),\n\n /**\n * Configuration for translation.\n */\n translationConfig: z\n .object({\n /**\n * Target languages for translation.\n */\n targetLanguages: z.array(z.string()),\n /**\n * Translation model to use.\n */\n model: z.enum(['base', 'enhanced']).nullish(),\n /**\n * Whether to match original utterances in translation.\n */\n matchOriginalUtterances: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate a summary of the transcription.\n */\n summarization: z.boolean().nullish(),\n\n /**\n * Configuration for summarization.\n */\n summarizationConfig: z\n .object({\n /**\n * Type of summary to generate.\n */\n type: z.enum(['general', 'bullet_points', 'concise']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable content moderation.\n */\n moderation: z.boolean().nullish(),\n\n /**\n * Whether to enable named entity recognition.\n */\n namedEntityRecognition: z.boolean().nullish(),\n\n /**\n * Whether to enable automatic chapter creation.\n */\n chapterization: z.boolean().nullish(),\n\n /**\n * Whether to ensure consistent naming of entities.\n */\n nameConsistency: z.boolean().nullish(),\n\n /**\n * Whether to enable custom spelling.\n */\n customSpelling: z.boolean().nullish(),\n\n /**\n * Configuration for custom spelling.\n */\n customSpellingConfig: z\n .object({\n /**\n * Dictionary of custom spellings.\n */\n spellingDictionary: z.record(z.string(), z.array(z.string())),\n })\n .nullish(),\n\n /**\n * Whether to extract structured data from the transcription.\n */\n structuredDataExtraction: z.boolean().nullish(),\n\n /**\n * Configuration for structured data extraction.\n */\n structuredDataExtractionConfig: z\n .object({\n /**\n * Classes of data to extract.\n */\n classes: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Whether to perform sentiment analysis on the transcription.\n */\n sentimentAnalysis: z.boolean().nullish(),\n\n /**\n * Whether to send audio to a language model for processing.\n */\n audioToLlm: z.boolean().nullish(),\n\n /**\n * Configuration for audio to language model processing.\n */\n audioToLlmConfig: z\n .object({\n /**\n * Prompts to send to the language model.\n */\n prompts: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Custom metadata to include with the transcription.\n */\n customMetadata: z.record(z.string(), z.any()).nullish(),\n\n /**\n * Whether to include sentence-level segmentation.\n */\n sentences: z.boolean().nullish(),\n\n /**\n * Whether to enable display mode.\n */\n displayMode: z.boolean().nullish(),\n\n /**\n * Whether to enhance punctuation in the transcription.\n */\n punctuationEnhanced: z.boolean().nullish(),\n});\n\nexport type GladiaTranscriptionModelOptions = z.infer<\n typeof gladiaTranscriptionModelOptionsSchema\n>;\n\ninterface GladiaTranscriptionModelConfig extends GladiaConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class GladiaTranscriptionModel implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: 'default',\n private readonly config: GladiaTranscriptionModelConfig,\n ) {}\n\n private async getArgs({\n providerOptions,\n }: Parameters<TranscriptionModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const gladiaOptions = await parseProviderOptions({\n provider: 'gladia',\n providerOptions,\n schema: gladiaTranscriptionModelOptionsSchema,\n });\n\n const body: Omit<GladiaTranscriptionInitiateAPITypes, 'audio_url'> = {};\n\n // Add provider-specific options\n if (gladiaOptions) {\n body.context_prompt = gladiaOptions.contextPrompt ?? undefined;\n body.custom_vocabulary = gladiaOptions.customVocabulary ?? undefined;\n body.detect_language = gladiaOptions.detectLanguage ?? undefined;\n body.enable_code_switching =\n gladiaOptions.enableCodeSwitching ?? undefined;\n body.language = gladiaOptions.language ?? undefined;\n body.callback = gladiaOptions.callback ?? undefined;\n body.subtitles = gladiaOptions.subtitles ?? undefined;\n body.diarization = gladiaOptions.diarization ?? undefined;\n body.translation = gladiaOptions.translation ?? undefined;\n body.summarization = gladiaOptions.summarization ?? undefined;\n body.moderation = gladiaOptions.moderation ?? undefined;\n body.named_entity_recognition =\n gladiaOptions.namedEntityRecognition ?? undefined;\n body.chapterization = gladiaOptions.chapterization ?? undefined;\n body.name_consistency = gladiaOptions.nameConsistency ?? undefined;\n body.custom_spelling = gladiaOptions.customSpelling ?? undefined;\n body.structured_data_extraction =\n gladiaOptions.structuredDataExtraction ?? undefined;\n body.structured_data_extraction_config =\n gladiaOptions.structuredDataExtractionConfig ?? undefined;\n body.sentiment_analysis = gladiaOptions.sentimentAnalysis ?? undefined;\n body.audio_to_llm = gladiaOptions.audioToLlm ?? undefined;\n body.audio_to_llm_config = gladiaOptions.audioToLlmConfig ?? undefined;\n body.custom_metadata = gladiaOptions.customMetadata ?? undefined;\n body.sentences = gladiaOptions.sentences ?? undefined;\n body.display_mode = gladiaOptions.displayMode ?? undefined;\n body.punctuation_enhanced =\n gladiaOptions.punctuationEnhanced ?? undefined;\n\n if (gladiaOptions.customVocabularyConfig) {\n body.custom_vocabulary_config = {\n vocabulary: gladiaOptions.customVocabularyConfig.vocabulary.map(\n item => {\n if (typeof item === 'string') return item;\n return {\n value: item.value,\n intensity: item.intensity ?? undefined,\n pronunciations: item.pronunciations ?? undefined,\n language: item.language ?? undefined,\n };\n },\n ),\n default_intensity:\n gladiaOptions.customVocabularyConfig.defaultIntensity ?? undefined,\n };\n }\n\n // Handle code switching config\n if (gladiaOptions.codeSwitchingConfig) {\n body.code_switching_config = {\n languages: gladiaOptions.codeSwitchingConfig.languages ?? undefined,\n };\n }\n\n // Handle callback config\n if (gladiaOptions.callbackConfig) {\n body.callback_config = {\n url: gladiaOptions.callbackConfig.url,\n method: gladiaOptions.callbackConfig.method ?? undefined,\n };\n }\n\n // Handle subtitles config\n if (gladiaOptions.subtitlesConfig) {\n body.subtitles_config = {\n formats: gladiaOptions.subtitlesConfig.formats ?? undefined,\n minimum_duration:\n gladiaOptions.subtitlesConfig.minimumDuration ?? undefined,\n maximum_duration:\n gladiaOptions.subtitlesConfig.maximumDuration ?? undefined,\n maximum_characters_per_row:\n gladiaOptions.subtitlesConfig.maximumCharactersPerRow ?? undefined,\n maximum_rows_per_caption:\n gladiaOptions.subtitlesConfig.maximumRowsPerCaption ?? undefined,\n style: gladiaOptions.subtitlesConfig.style ?? undefined,\n };\n }\n\n // Handle diarization config\n if (gladiaOptions.diarizationConfig) {\n body.diarization_config = {\n number_of_speakers:\n gladiaOptions.diarizationConfig.numberOfSpeakers ?? undefined,\n min_speakers:\n gladiaOptions.diarizationConfig.minSpeakers ?? undefined,\n max_speakers:\n gladiaOptions.diarizationConfig.maxSpeakers ?? undefined,\n enhanced: gladiaOptions.diarizationConfig.enhanced ?? undefined,\n };\n }\n\n // Handle translation config\n if (gladiaOptions.translationConfig) {\n body.translation_config = {\n target_languages: gladiaOptions.translationConfig.targetLanguages,\n model: gladiaOptions.translationConfig.model ?? undefined,\n match_original_utterances:\n gladiaOptions.translationConfig.matchOriginalUtterances ??\n undefined,\n };\n }\n\n // Handle summarization config\n if (gladiaOptions.summarizationConfig) {\n body.summarization_config = {\n type: gladiaOptions.summarizationConfig.type ?? undefined,\n };\n }\n\n // Handle custom spelling config\n if (gladiaOptions.customSpellingConfig) {\n body.custom_spelling_config = {\n spelling_dictionary:\n gladiaOptions.customSpellingConfig.spellingDictionary,\n };\n }\n }\n\n return {\n body,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<TranscriptionModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n // Create form data with base fields\n const formData = new FormData();\n const blob =\n options.audio instanceof Uint8Array\n ? new Blob([options.audio])\n : new Blob([convertBase64ToUint8Array(options.audio)]);\n\n const fileExtension = mediaTypeToExtension(options.mediaType);\n formData.append(\n 'audio',\n new File([blob], 'audio', { type: options.mediaType }),\n `audio.${fileExtension}`,\n );\n\n const { value: uploadResponse } = await postFormDataToApi({\n url: this.config.url({\n path: '/v2/upload',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n formData,\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaUploadResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const { body, warnings } = await this.getArgs(options);\n\n const { value: transcriptionInitResponse } = await postJsonToApi({\n url: this.config.url({\n path: '/v2/pre-recorded',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: {\n ...body,\n audio_url: uploadResponse.audio_url,\n },\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionInitializeResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n // Poll the result URL until the transcription is done or an error occurs\n const resultUrl = transcriptionInitResponse.result_url;\n let transcriptionResult;\n let transcriptionResultHeaders;\n const timeoutMs = 60 * 1000; // 60 seconds timeout\n const startTime = Date.now();\n const pollingInterval = 1000;\n\n while (true) {\n // Check if we've exceeded the timeout\n if (Date.now() - startTime > timeoutMs) {\n throw new AISDKError({\n message: 'Transcription job polling timed out',\n name: 'TranscriptionJobPollingTimedOut',\n cause: transcriptionResult,\n });\n }\n\n const response = await getFromApi({\n url: resultUrl,\n headers: combineHeaders(this.config.headers(), options.headers),\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionResultResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n transcriptionResult = response.value;\n transcriptionResultHeaders = response.responseHeaders;\n\n if (transcriptionResult.status === 'done') {\n break;\n }\n\n if (transcriptionResult.status === 'error') {\n throw new AISDKError({\n message: 'Transcription job failed',\n name: 'TranscriptionJobFailed',\n cause: transcriptionResult,\n });\n }\n\n // Wait for the configured polling interval before checking again\n await delay(pollingInterval);\n }\n\n if (!transcriptionResult.result) {\n throw new AISDKError({\n message: 'Transcription result is empty',\n name: 'TranscriptionResultEmpty',\n cause: transcriptionResult,\n });\n }\n\n // Process the successful result\n return {\n text: transcriptionResult.result.transcription.full_transcript,\n durationInSeconds: transcriptionResult.result.metadata.audio_duration,\n language: transcriptionResult.result.transcription.languages.at(0),\n segments: transcriptionResult.result.transcription.utterances.map(\n utterance => ({\n text: utterance.text,\n startSecond: utterance.start,\n endSecond: utterance.end,\n }),\n ),\n response: {\n timestamp: currentDate,\n modelId: 'default',\n headers: transcriptionResultHeaders,\n },\n providerMetadata: {\n gladia: transcriptionResult,\n },\n warnings,\n };\n }\n}\n\nconst gladiaUploadResponseSchema = z.object({\n audio_url: z.string(),\n});\n\nconst gladiaTranscriptionInitializeResponseSchema = z.object({\n result_url: z.string(),\n});\n\nconst gladiaTranscriptionResultResponseSchema = z.object({\n status: z.enum(['queued', 'processing', 'done', 'error']),\n result: z\n .object({\n metadata: z.object({\n audio_duration: z.number(),\n }),\n transcription: z.object({\n full_transcript: z.string(),\n languages: z.array(z.string()),\n utterances: z.array(\n z.object({\n start: z.number(),\n end: z.number(),\n text: z.string(),\n }),\n ),\n }),\n })\n .nullish(),\n});\n","import { z } from 'zod/v4';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const gladiaErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n code: z.number(),\n }),\n});\n\nexport type GladiaErrorData = z.infer<typeof gladiaErrorDataSchema>;\n\nexport const gladiaFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: gladiaErrorDataSchema,\n errorToMessage: data => data.error.message,\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","_a","_b","_c"]}
1
+ {"version":3,"sources":["../src/gladia-provider.ts","../src/gladia-transcription-model.ts","../src/gladia-error.ts","../src/version.ts"],"sourcesContent":["import {\n NoSuchModelError,\n type TranscriptionModelV4,\n type ProviderV4,\n} from '@ai-sdk/provider';\nimport {\n loadApiKey,\n withUserAgentSuffix,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { GladiaTranscriptionModel } from './gladia-transcription-model';\nimport { VERSION } from './version';\n\nexport interface GladiaProvider extends ProviderV4 {\n (): {\n transcription: GladiaTranscriptionModel;\n };\n\n /**\n * Creates a model for transcription.\n */\n transcription(): TranscriptionModelV4;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface GladiaProviderSettings {\n /**\n * API key for authenticating requests.\n */\n apiKey?: 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 requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\n/**\n * Create a Gladia provider instance.\n */\nexport function createGladia(\n options: GladiaProviderSettings = {},\n): GladiaProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n 'x-gladia-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'GLADIA_API_KEY',\n description: 'Gladia',\n }),\n ...options.headers,\n },\n `ai-sdk/gladia/${VERSION}`,\n );\n\n const createTranscriptionModel = () =>\n new GladiaTranscriptionModel('default', {\n provider: `gladia.transcription`,\n url: ({ path }) => `https://api.gladia.io${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function () {\n return {\n transcription: createTranscriptionModel(),\n };\n };\n\n provider.specificationVersion = 'v4' as const;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n\n // Required ProviderV4 methods that are not supported\n provider.languageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n message: 'Gladia does not provide language models',\n });\n };\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n message: 'Gladia does not provide embedding models',\n });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'imageModel',\n message: 'Gladia does not provide image models',\n });\n };\n\n return provider as GladiaProvider;\n}\n\n/**\n * Default Gladia provider instance.\n */\nexport const gladia = createGladia();\n","import {\n AISDKError,\n type TranscriptionModelV4,\n type SharedV4Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n createJsonResponseHandler,\n mediaTypeToExtension,\n delay,\n getFromApi,\n parseProviderOptions,\n postFormDataToApi,\n postJsonToApi,\n serializeModelOptions,\n WORKFLOW_SERIALIZE,\n WORKFLOW_DESERIALIZE,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { GladiaConfig } from './gladia-config';\nimport { gladiaFailedResponseHandler } from './gladia-error';\nimport type { GladiaTranscriptionInitiateAPITypes } from './gladia-api-types';\n\n// https://docs.gladia.io/api-reference/v2/pre-recorded/init\nconst gladiaTranscriptionModelOptionsSchema = z.object({\n /**\n * Optional context prompt to guide the transcription.\n */\n contextPrompt: z.string().nullish(),\n\n /**\n * Custom vocabulary to improve transcription accuracy.\n * Can be a boolean or an array of custom terms.\n */\n customVocabulary: z.union([z.boolean(), z.array(z.any())]).nullish(),\n\n /**\n * Configuration for custom vocabulary.\n */\n customVocabularyConfig: z\n .object({\n /**\n * Array of vocabulary terms or objects with pronunciation details.\n */\n vocabulary: z.array(\n z.union([\n z.string(),\n z.object({\n /**\n * The vocabulary term.\n */\n value: z.string(),\n /**\n * Intensity of the term in recognition (optional).\n */\n intensity: z.number().nullish(),\n /**\n * Alternative pronunciations for the term (optional).\n */\n pronunciations: z.array(z.string()).nullish(),\n /**\n * Language of the term (optional).\n */\n language: z.string().nullish(),\n }),\n ]),\n ),\n /**\n * Default intensity for all vocabulary terms.\n */\n defaultIntensity: z.number().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to automatically detect the language of the audio.\n */\n detectLanguage: z.boolean().nullish(),\n\n /**\n * Whether to enable code switching (multiple languages in the same audio).\n */\n enableCodeSwitching: z.boolean().nullish(),\n\n /**\n * Configuration for code switching.\n */\n codeSwitchingConfig: z\n .object({\n /**\n * Languages to consider for code switching.\n */\n languages: z.array(z.string()).nullish(),\n })\n .nullish(),\n\n /**\n * Specific language for transcription.\n */\n language: z.string().nullish(),\n\n /**\n * Whether to enable callback when transcription is complete.\n */\n callback: z.boolean().nullish(),\n\n /**\n * Configuration for callback.\n */\n callbackConfig: z\n .object({\n /**\n * URL to send the callback to.\n */\n url: z.string(),\n /**\n * HTTP method for the callback.\n */\n method: z.enum(['POST', 'PUT']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate subtitles.\n */\n subtitles: z.boolean().nullish(),\n\n /**\n * Configuration for subtitles generation.\n */\n subtitlesConfig: z\n .object({\n /**\n * Subtitle file formats to generate.\n */\n formats: z.array(z.enum(['srt', 'vtt'])).nullish(),\n /**\n * Minimum duration for subtitle segments.\n */\n minimumDuration: z.number().nullish(),\n /**\n * Maximum duration for subtitle segments.\n */\n maximumDuration: z.number().nullish(),\n /**\n * Maximum characters per row in subtitles.\n */\n maximumCharactersPerRow: z.number().nullish(),\n /**\n * Maximum rows per caption in subtitles.\n */\n maximumRowsPerCaption: z.number().nullish(),\n /**\n * Style of subtitles.\n */\n style: z.enum(['default', 'compliance']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable speaker diarization (speaker identification).\n */\n diarization: z.boolean().nullish(),\n\n /**\n * Configuration for diarization.\n */\n diarizationConfig: z\n .object({\n /**\n * Exact number of speakers to identify.\n */\n numberOfSpeakers: z.number().nullish(),\n /**\n * Minimum number of speakers to identify.\n */\n minSpeakers: z.number().nullish(),\n /**\n * Maximum number of speakers to identify.\n */\n maxSpeakers: z.number().nullish(),\n /**\n * Whether to use enhanced diarization.\n */\n enhanced: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to translate the transcription.\n */\n translation: z.boolean().nullish(),\n\n /**\n * Configuration for translation.\n */\n translationConfig: z\n .object({\n /**\n * Target languages for translation.\n */\n targetLanguages: z.array(z.string()),\n /**\n * Translation model to use.\n */\n model: z.enum(['base', 'enhanced']).nullish(),\n /**\n * Whether to match original utterances in translation.\n */\n matchOriginalUtterances: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate a summary of the transcription.\n */\n summarization: z.boolean().nullish(),\n\n /**\n * Configuration for summarization.\n */\n summarizationConfig: z\n .object({\n /**\n * Type of summary to generate.\n */\n type: z.enum(['general', 'bullet_points', 'concise']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable content moderation.\n */\n moderation: z.boolean().nullish(),\n\n /**\n * Whether to enable named entity recognition.\n */\n namedEntityRecognition: z.boolean().nullish(),\n\n /**\n * Whether to enable automatic chapter creation.\n */\n chapterization: z.boolean().nullish(),\n\n /**\n * Whether to ensure consistent naming of entities.\n */\n nameConsistency: z.boolean().nullish(),\n\n /**\n * Whether to enable custom spelling.\n */\n customSpelling: z.boolean().nullish(),\n\n /**\n * Configuration for custom spelling.\n */\n customSpellingConfig: z\n .object({\n /**\n * Dictionary of custom spellings.\n */\n spellingDictionary: z.record(z.string(), z.array(z.string())),\n })\n .nullish(),\n\n /**\n * Whether to extract structured data from the transcription.\n */\n structuredDataExtraction: z.boolean().nullish(),\n\n /**\n * Configuration for structured data extraction.\n */\n structuredDataExtractionConfig: z\n .object({\n /**\n * Classes of data to extract.\n */\n classes: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Whether to perform sentiment analysis on the transcription.\n */\n sentimentAnalysis: z.boolean().nullish(),\n\n /**\n * Whether to send audio to a language model for processing.\n */\n audioToLlm: z.boolean().nullish(),\n\n /**\n * Configuration for audio to language model processing.\n */\n audioToLlmConfig: z\n .object({\n /**\n * Prompts to send to the language model.\n */\n prompts: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Custom metadata to include with the transcription.\n */\n customMetadata: z.record(z.string(), z.any()).nullish(),\n\n /**\n * Whether to include sentence-level segmentation.\n */\n sentences: z.boolean().nullish(),\n\n /**\n * Whether to enable display mode.\n */\n displayMode: z.boolean().nullish(),\n\n /**\n * Whether to enhance punctuation in the transcription.\n */\n punctuationEnhanced: z.boolean().nullish(),\n});\n\nexport type GladiaTranscriptionModelOptions = z.infer<\n typeof gladiaTranscriptionModelOptionsSchema\n>;\n\ninterface GladiaTranscriptionModelConfig extends GladiaConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class GladiaTranscriptionModel implements TranscriptionModelV4 {\n readonly specificationVersion = 'v4';\n\n get provider(): string {\n return this.config.provider;\n }\n\n static [WORKFLOW_SERIALIZE](model: GladiaTranscriptionModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: 'default';\n config: GladiaTranscriptionModelConfig;\n }) {\n return new GladiaTranscriptionModel(options.modelId, options.config);\n }\n\n constructor(\n readonly modelId: string,\n private readonly config: GladiaTranscriptionModelConfig,\n ) {}\n\n private async getArgs({\n providerOptions,\n }: Parameters<TranscriptionModelV4['doGenerate']>[0]) {\n const warnings: SharedV4Warning[] = [];\n\n // Parse provider options\n const gladiaOptions = await parseProviderOptions({\n provider: 'gladia',\n providerOptions,\n schema: gladiaTranscriptionModelOptionsSchema,\n });\n\n const body: Omit<GladiaTranscriptionInitiateAPITypes, 'audio_url'> = {};\n\n // Add provider-specific options\n if (gladiaOptions) {\n body.context_prompt = gladiaOptions.contextPrompt ?? undefined;\n body.custom_vocabulary = gladiaOptions.customVocabulary ?? undefined;\n body.detect_language = gladiaOptions.detectLanguage ?? undefined;\n body.enable_code_switching =\n gladiaOptions.enableCodeSwitching ?? undefined;\n body.language = gladiaOptions.language ?? undefined;\n body.callback = gladiaOptions.callback ?? undefined;\n body.subtitles = gladiaOptions.subtitles ?? undefined;\n body.diarization = gladiaOptions.diarization ?? undefined;\n body.translation = gladiaOptions.translation ?? undefined;\n body.summarization = gladiaOptions.summarization ?? undefined;\n body.moderation = gladiaOptions.moderation ?? undefined;\n body.named_entity_recognition =\n gladiaOptions.namedEntityRecognition ?? undefined;\n body.chapterization = gladiaOptions.chapterization ?? undefined;\n body.name_consistency = gladiaOptions.nameConsistency ?? undefined;\n body.custom_spelling = gladiaOptions.customSpelling ?? undefined;\n body.structured_data_extraction =\n gladiaOptions.structuredDataExtraction ?? undefined;\n body.structured_data_extraction_config =\n gladiaOptions.structuredDataExtractionConfig ?? undefined;\n body.sentiment_analysis = gladiaOptions.sentimentAnalysis ?? undefined;\n body.audio_to_llm = gladiaOptions.audioToLlm ?? undefined;\n body.audio_to_llm_config = gladiaOptions.audioToLlmConfig ?? undefined;\n body.custom_metadata = gladiaOptions.customMetadata ?? undefined;\n body.sentences = gladiaOptions.sentences ?? undefined;\n body.display_mode = gladiaOptions.displayMode ?? undefined;\n body.punctuation_enhanced =\n gladiaOptions.punctuationEnhanced ?? undefined;\n\n if (gladiaOptions.customVocabularyConfig) {\n body.custom_vocabulary_config = {\n vocabulary: gladiaOptions.customVocabularyConfig.vocabulary.map(\n item => {\n if (typeof item === 'string') return item;\n return {\n value: item.value,\n intensity: item.intensity ?? undefined,\n pronunciations: item.pronunciations ?? undefined,\n language: item.language ?? undefined,\n };\n },\n ),\n default_intensity:\n gladiaOptions.customVocabularyConfig.defaultIntensity ?? undefined,\n };\n }\n\n // Handle code switching config\n if (gladiaOptions.codeSwitchingConfig) {\n body.code_switching_config = {\n languages: gladiaOptions.codeSwitchingConfig.languages ?? undefined,\n };\n }\n\n // Handle callback config\n if (gladiaOptions.callbackConfig) {\n body.callback_config = {\n url: gladiaOptions.callbackConfig.url,\n method: gladiaOptions.callbackConfig.method ?? undefined,\n };\n }\n\n // Handle subtitles config\n if (gladiaOptions.subtitlesConfig) {\n body.subtitles_config = {\n formats: gladiaOptions.subtitlesConfig.formats ?? undefined,\n minimum_duration:\n gladiaOptions.subtitlesConfig.minimumDuration ?? undefined,\n maximum_duration:\n gladiaOptions.subtitlesConfig.maximumDuration ?? undefined,\n maximum_characters_per_row:\n gladiaOptions.subtitlesConfig.maximumCharactersPerRow ?? undefined,\n maximum_rows_per_caption:\n gladiaOptions.subtitlesConfig.maximumRowsPerCaption ?? undefined,\n style: gladiaOptions.subtitlesConfig.style ?? undefined,\n };\n }\n\n // Handle diarization config\n if (gladiaOptions.diarizationConfig) {\n body.diarization_config = {\n number_of_speakers:\n gladiaOptions.diarizationConfig.numberOfSpeakers ?? undefined,\n min_speakers:\n gladiaOptions.diarizationConfig.minSpeakers ?? undefined,\n max_speakers:\n gladiaOptions.diarizationConfig.maxSpeakers ?? undefined,\n enhanced: gladiaOptions.diarizationConfig.enhanced ?? undefined,\n };\n }\n\n // Handle translation config\n if (gladiaOptions.translationConfig) {\n body.translation_config = {\n target_languages: gladiaOptions.translationConfig.targetLanguages,\n model: gladiaOptions.translationConfig.model ?? undefined,\n match_original_utterances:\n gladiaOptions.translationConfig.matchOriginalUtterances ??\n undefined,\n };\n }\n\n // Handle summarization config\n if (gladiaOptions.summarizationConfig) {\n body.summarization_config = {\n type: gladiaOptions.summarizationConfig.type ?? undefined,\n };\n }\n\n // Handle custom spelling config\n if (gladiaOptions.customSpellingConfig) {\n body.custom_spelling_config = {\n spelling_dictionary:\n gladiaOptions.customSpellingConfig.spellingDictionary,\n };\n }\n }\n\n return {\n body,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<TranscriptionModelV4['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV4['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n // Create form data with base fields\n const formData = new FormData();\n const blob =\n options.audio instanceof Uint8Array\n ? new Blob([options.audio])\n : new Blob([convertBase64ToUint8Array(options.audio)]);\n\n const fileExtension = mediaTypeToExtension(options.mediaType);\n formData.append(\n 'audio',\n new File([blob], 'audio', { type: options.mediaType }),\n `audio.${fileExtension}`,\n );\n\n const { value: uploadResponse } = await postFormDataToApi({\n url: this.config.url({\n path: '/v2/upload',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers?.(), options.headers),\n formData,\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaUploadResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const { body, warnings } = await this.getArgs(options);\n\n const { value: transcriptionInitResponse } = await postJsonToApi({\n url: this.config.url({\n path: '/v2/pre-recorded',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers?.(), options.headers),\n body: {\n ...body,\n audio_url: uploadResponse.audio_url,\n },\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionInitializeResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n // Poll the result URL until the transcription is done or an error occurs\n const resultUrl = transcriptionInitResponse.result_url;\n let transcriptionResult;\n let transcriptionResultHeaders;\n const timeoutMs = 60 * 1000; // 60 seconds timeout\n const startTime = Date.now();\n const pollingInterval = 1000;\n\n while (true) {\n // Check if we've exceeded the timeout\n if (Date.now() - startTime > timeoutMs) {\n throw new AISDKError({\n message: 'Transcription job polling timed out',\n name: 'TranscriptionJobPollingTimedOut',\n cause: transcriptionResult,\n });\n }\n\n const response = await getFromApi({\n url: resultUrl,\n headers: combineHeaders(this.config.headers?.(), options.headers),\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionResultResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n transcriptionResult = response.value;\n transcriptionResultHeaders = response.responseHeaders;\n\n if (transcriptionResult.status === 'done') {\n break;\n }\n\n if (transcriptionResult.status === 'error') {\n throw new AISDKError({\n message: 'Transcription job failed',\n name: 'TranscriptionJobFailed',\n cause: transcriptionResult,\n });\n }\n\n // Wait for the configured polling interval before checking again\n await delay(pollingInterval);\n }\n\n if (!transcriptionResult.result) {\n throw new AISDKError({\n message: 'Transcription result is empty',\n name: 'TranscriptionResultEmpty',\n cause: transcriptionResult,\n });\n }\n\n // Process the successful result\n return {\n text: transcriptionResult.result.transcription.full_transcript,\n durationInSeconds: transcriptionResult.result.metadata.audio_duration,\n language: transcriptionResult.result.transcription.languages.at(0),\n segments: transcriptionResult.result.transcription.utterances.map(\n utterance => ({\n text: utterance.text,\n startSecond: utterance.start,\n endSecond: utterance.end,\n }),\n ),\n response: {\n timestamp: currentDate,\n modelId: 'default',\n headers: transcriptionResultHeaders,\n },\n providerMetadata: {\n gladia: transcriptionResult,\n },\n warnings,\n };\n }\n}\n\nconst gladiaUploadResponseSchema = z.object({\n audio_url: z.string(),\n});\n\nconst gladiaTranscriptionInitializeResponseSchema = z.object({\n result_url: z.string(),\n});\n\nconst gladiaTranscriptionResultResponseSchema = z.object({\n status: z.enum(['queued', 'processing', 'done', 'error']),\n result: z\n .object({\n metadata: z.object({\n audio_duration: z.number(),\n }),\n transcription: z.object({\n full_transcript: z.string(),\n languages: z.array(z.string()),\n utterances: z.array(\n z.object({\n start: z.number(),\n end: z.number(),\n text: z.string(),\n }),\n ),\n }),\n })\n .nullish(),\n});\n","import { z } from 'zod/v4';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const gladiaErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n code: z.number(),\n }),\n});\n\nexport type GladiaErrorData = z.infer<typeof gladiaErrorDataSchema>;\n\nexport const gladiaFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: gladiaErrorDataSchema,\n errorToMessage: data => data.error.message,\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","_a","_b","_c"]}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@ai-sdk/gladia",
3
- "version": "3.0.0-beta.3",
3
+ "version": "3.0.0-beta.30",
4
+ "type": "module",
4
5
  "license": "Apache-2.0",
5
6
  "sideEffects": false,
6
7
  "main": "./dist/index.js",
7
- "module": "./dist/index.mjs",
8
8
  "types": "./dist/index.d.ts",
9
9
  "files": [
10
10
  "dist/**/*",
@@ -24,20 +24,20 @@
24
24
  "./package.json": "./package.json",
25
25
  ".": {
26
26
  "types": "./dist/index.d.ts",
27
- "import": "./dist/index.mjs",
28
- "require": "./dist/index.js"
27
+ "import": "./dist/index.js",
28
+ "default": "./dist/index.js"
29
29
  }
30
30
  },
31
31
  "dependencies": {
32
- "@ai-sdk/provider": "4.0.0-beta.2",
33
- "@ai-sdk/provider-utils": "5.0.0-beta.3"
32
+ "@ai-sdk/provider": "4.0.0-beta.14",
33
+ "@ai-sdk/provider-utils": "5.0.0-beta.29"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/node": "20.17.24",
37
37
  "tsup": "^8",
38
38
  "typescript": "5.6.3",
39
39
  "zod": "3.25.76",
40
- "@ai-sdk/test-server": "2.0.0-beta.0",
40
+ "@ai-sdk/test-server": "2.0.0-beta.3",
41
41
  "@vercel/ai-tsconfig": "0.0.0"
42
42
  },
43
43
  "peerDependencies": {
@@ -47,12 +47,14 @@
47
47
  "node": ">=18"
48
48
  },
49
49
  "publishConfig": {
50
- "access": "public"
50
+ "access": "public",
51
+ "provenance": true
51
52
  },
52
53
  "homepage": "https://ai-sdk.dev/docs",
53
54
  "repository": {
54
55
  "type": "git",
55
- "url": "git+https://github.com/vercel/ai.git"
56
+ "url": "https://github.com/vercel/ai",
57
+ "directory": "packages/gladia"
56
58
  },
57
59
  "bugs": {
58
60
  "url": "https://github.com/vercel/ai/issues"
@@ -64,9 +66,7 @@
64
66
  "build": "tsup --tsconfig tsconfig.build.json",
65
67
  "build:watch": "tsup --tsconfig tsconfig.build.json --watch",
66
68
  "clean": "del-cli dist docs",
67
- "lint": "eslint \"./**/*.ts*\"",
68
69
  "type-check": "tsc --noEmit",
69
- "prettier-check": "prettier --check \"./**/*.ts*\"",
70
70
  "test": "pnpm test:node && pnpm test:edge",
71
71
  "test:watch": "vitest --config vitest.node.config.js",
72
72
  "test:edge": "vitest --config vitest.edge.config.js --run",
@@ -1,9 +1,9 @@
1
- import { FetchFunction } from '@ai-sdk/provider-utils';
1
+ import type { FetchFunction } from '@ai-sdk/provider-utils';
2
2
 
3
3
  export type GladiaConfig = {
4
4
  provider: string;
5
5
  url: (options: { modelId: string; path: string }) => string;
6
- headers: () => Record<string, string | undefined>;
6
+ headers?: () => Record<string, string | undefined>;
7
7
  fetch?: FetchFunction;
8
8
  generateId?: () => string;
9
9
  };
@@ -1,17 +1,17 @@
1
1
  import {
2
- TranscriptionModelV3,
3
- ProviderV3,
4
2
  NoSuchModelError,
3
+ type TranscriptionModelV4,
4
+ type ProviderV4,
5
5
  } from '@ai-sdk/provider';
6
6
  import {
7
- FetchFunction,
8
7
  loadApiKey,
9
8
  withUserAgentSuffix,
9
+ type FetchFunction,
10
10
  } from '@ai-sdk/provider-utils';
11
11
  import { GladiaTranscriptionModel } from './gladia-transcription-model';
12
12
  import { VERSION } from './version';
13
13
 
14
- export interface GladiaProvider extends ProviderV3 {
14
+ export interface GladiaProvider extends ProviderV4 {
15
15
  (): {
16
16
  transcription: GladiaTranscriptionModel;
17
17
  };
@@ -19,7 +19,7 @@ export interface GladiaProvider extends ProviderV3 {
19
19
  /**
20
20
  * Creates a model for transcription.
21
21
  */
22
- transcription(): TranscriptionModelV3;
22
+ transcription(): TranscriptionModelV4;
23
23
 
24
24
  /**
25
25
  * @deprecated Use `embeddingModel` instead.
@@ -78,11 +78,11 @@ export function createGladia(
78
78
  };
79
79
  };
80
80
 
81
- provider.specificationVersion = 'v3' as const;
81
+ provider.specificationVersion = 'v4' as const;
82
82
  provider.transcription = createTranscriptionModel;
83
83
  provider.transcriptionModel = createTranscriptionModel;
84
84
 
85
- // Required ProviderV3 methods that are not supported
85
+ // Required ProviderV4 methods that are not supported
86
86
  provider.languageModel = (modelId: string) => {
87
87
  throw new NoSuchModelError({
88
88
  modelId,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  AISDKError,
3
- TranscriptionModelV3,
4
- SharedV3Warning,
3
+ type TranscriptionModelV4,
4
+ type SharedV4Warning,
5
5
  } from '@ai-sdk/provider';
6
6
  import {
7
7
  combineHeaders,
@@ -13,11 +13,14 @@ import {
13
13
  parseProviderOptions,
14
14
  postFormDataToApi,
15
15
  postJsonToApi,
16
+ serializeModelOptions,
17
+ WORKFLOW_SERIALIZE,
18
+ WORKFLOW_DESERIALIZE,
16
19
  } from '@ai-sdk/provider-utils';
17
20
  import { z } from 'zod/v4';
18
- import { GladiaConfig } from './gladia-config';
21
+ import type { GladiaConfig } from './gladia-config';
19
22
  import { gladiaFailedResponseHandler } from './gladia-error';
20
- import { GladiaTranscriptionInitiateAPITypes } from './gladia-api-types';
23
+ import type { GladiaTranscriptionInitiateAPITypes } from './gladia-api-types';
21
24
 
22
25
  // https://docs.gladia.io/api-reference/v2/pre-recorded/init
23
26
  const gladiaTranscriptionModelOptionsSchema = z.object({
@@ -333,22 +336,36 @@ interface GladiaTranscriptionModelConfig extends GladiaConfig {
333
336
  };
334
337
  }
335
338
 
336
- export class GladiaTranscriptionModel implements TranscriptionModelV3 {
337
- readonly specificationVersion = 'v3';
339
+ export class GladiaTranscriptionModel implements TranscriptionModelV4 {
340
+ readonly specificationVersion = 'v4';
338
341
 
339
342
  get provider(): string {
340
343
  return this.config.provider;
341
344
  }
342
345
 
346
+ static [WORKFLOW_SERIALIZE](model: GladiaTranscriptionModel) {
347
+ return serializeModelOptions({
348
+ modelId: model.modelId,
349
+ config: model.config,
350
+ });
351
+ }
352
+
353
+ static [WORKFLOW_DESERIALIZE](options: {
354
+ modelId: 'default';
355
+ config: GladiaTranscriptionModelConfig;
356
+ }) {
357
+ return new GladiaTranscriptionModel(options.modelId, options.config);
358
+ }
359
+
343
360
  constructor(
344
- readonly modelId: 'default',
361
+ readonly modelId: string,
345
362
  private readonly config: GladiaTranscriptionModelConfig,
346
363
  ) {}
347
364
 
348
365
  private async getArgs({
349
366
  providerOptions,
350
- }: Parameters<TranscriptionModelV3['doGenerate']>[0]) {
351
- const warnings: SharedV3Warning[] = [];
367
+ }: Parameters<TranscriptionModelV4['doGenerate']>[0]) {
368
+ const warnings: SharedV4Warning[] = [];
352
369
 
353
370
  // Parse provider options
354
371
  const gladiaOptions = await parseProviderOptions({
@@ -487,8 +504,8 @@ export class GladiaTranscriptionModel implements TranscriptionModelV3 {
487
504
  }
488
505
 
489
506
  async doGenerate(
490
- options: Parameters<TranscriptionModelV3['doGenerate']>[0],
491
- ): Promise<Awaited<ReturnType<TranscriptionModelV3['doGenerate']>>> {
507
+ options: Parameters<TranscriptionModelV4['doGenerate']>[0],
508
+ ): Promise<Awaited<ReturnType<TranscriptionModelV4['doGenerate']>>> {
492
509
  const currentDate = this.config._internal?.currentDate?.() ?? new Date();
493
510
 
494
511
  // Create form data with base fields
@@ -510,7 +527,7 @@ export class GladiaTranscriptionModel implements TranscriptionModelV3 {
510
527
  path: '/v2/upload',
511
528
  modelId: 'default',
512
529
  }),
513
- headers: combineHeaders(this.config.headers(), options.headers),
530
+ headers: combineHeaders(this.config.headers?.(), options.headers),
514
531
  formData,
515
532
  failedResponseHandler: gladiaFailedResponseHandler,
516
533
  successfulResponseHandler: createJsonResponseHandler(
@@ -527,7 +544,7 @@ export class GladiaTranscriptionModel implements TranscriptionModelV3 {
527
544
  path: '/v2/pre-recorded',
528
545
  modelId: 'default',
529
546
  }),
530
- headers: combineHeaders(this.config.headers(), options.headers),
547
+ headers: combineHeaders(this.config.headers?.(), options.headers),
531
548
  body: {
532
549
  ...body,
533
550
  audio_url: uploadResponse.audio_url,
@@ -560,7 +577,7 @@ export class GladiaTranscriptionModel implements TranscriptionModelV3 {
560
577
 
561
578
  const response = await getFromApi({
562
579
  url: resultUrl,
563
- headers: combineHeaders(this.config.headers(), options.headers),
580
+ headers: combineHeaders(this.config.headers?.(), options.headers),
564
581
  failedResponseHandler: gladiaFailedResponseHandler,
565
582
  successfulResponseHandler: createJsonResponseHandler(
566
583
  gladiaTranscriptionResultResponseSchema,
package/dist/index.d.mts DELETED
@@ -1,158 +0,0 @@
1
- import { TranscriptionModelV3, ProviderV3 } from '@ai-sdk/provider';
2
- import { FetchFunction } from '@ai-sdk/provider-utils';
3
- import { z } from 'zod/v4';
4
-
5
- type GladiaConfig = {
6
- provider: string;
7
- url: (options: {
8
- modelId: string;
9
- path: string;
10
- }) => string;
11
- headers: () => Record<string, string | undefined>;
12
- fetch?: FetchFunction;
13
- generateId?: () => string;
14
- };
15
-
16
- declare const gladiaTranscriptionModelOptionsSchema: z.ZodObject<{
17
- contextPrompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
18
- customVocabulary: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodAny>]>>>;
19
- customVocabularyConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
20
- vocabulary: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
21
- value: z.ZodString;
22
- intensity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
23
- pronunciations: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
24
- language: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
- }, z.core.$strip>]>>;
26
- defaultIntensity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27
- }, z.core.$strip>>>;
28
- detectLanguage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
29
- enableCodeSwitching: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
30
- codeSwitchingConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
31
- languages: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
32
- }, z.core.$strip>>>;
33
- language: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
- callback: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
35
- callbackConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
36
- url: z.ZodString;
37
- method: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
38
- POST: "POST";
39
- PUT: "PUT";
40
- }>>>;
41
- }, z.core.$strip>>>;
42
- subtitles: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
43
- subtitlesConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
44
- formats: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodEnum<{
45
- srt: "srt";
46
- vtt: "vtt";
47
- }>>>>;
48
- minimumDuration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
49
- maximumDuration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
50
- maximumCharactersPerRow: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
51
- maximumRowsPerCaption: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
52
- style: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
53
- default: "default";
54
- compliance: "compliance";
55
- }>>>;
56
- }, z.core.$strip>>>;
57
- diarization: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
58
- diarizationConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
59
- numberOfSpeakers: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
60
- minSpeakers: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
61
- maxSpeakers: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
62
- enhanced: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
63
- }, z.core.$strip>>>;
64
- translation: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
65
- translationConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
66
- targetLanguages: z.ZodArray<z.ZodString>;
67
- model: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
68
- base: "base";
69
- enhanced: "enhanced";
70
- }>>>;
71
- matchOriginalUtterances: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
72
- }, z.core.$strip>>>;
73
- summarization: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
74
- summarizationConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
75
- type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
76
- general: "general";
77
- bullet_points: "bullet_points";
78
- concise: "concise";
79
- }>>>;
80
- }, z.core.$strip>>>;
81
- moderation: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
82
- namedEntityRecognition: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
83
- chapterization: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
84
- nameConsistency: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
85
- customSpelling: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
86
- customSpellingConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
87
- spellingDictionary: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
88
- }, z.core.$strip>>>;
89
- structuredDataExtraction: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
90
- structuredDataExtractionConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
91
- classes: z.ZodArray<z.ZodString>;
92
- }, z.core.$strip>>>;
93
- sentimentAnalysis: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
94
- audioToLlm: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
95
- audioToLlmConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
96
- prompts: z.ZodArray<z.ZodString>;
97
- }, z.core.$strip>>>;
98
- customMetadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodAny>>>;
99
- sentences: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
100
- displayMode: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
101
- punctuationEnhanced: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
102
- }, z.core.$strip>;
103
- type GladiaTranscriptionModelOptions = z.infer<typeof gladiaTranscriptionModelOptionsSchema>;
104
- interface GladiaTranscriptionModelConfig extends GladiaConfig {
105
- _internal?: {
106
- currentDate?: () => Date;
107
- };
108
- }
109
- declare class GladiaTranscriptionModel implements TranscriptionModelV3 {
110
- readonly modelId: 'default';
111
- private readonly config;
112
- readonly specificationVersion = "v3";
113
- get provider(): string;
114
- constructor(modelId: 'default', config: GladiaTranscriptionModelConfig);
115
- private getArgs;
116
- doGenerate(options: Parameters<TranscriptionModelV3['doGenerate']>[0]): Promise<Awaited<ReturnType<TranscriptionModelV3['doGenerate']>>>;
117
- }
118
-
119
- interface GladiaProvider extends ProviderV3 {
120
- (): {
121
- transcription: GladiaTranscriptionModel;
122
- };
123
- /**
124
- * Creates a model for transcription.
125
- */
126
- transcription(): TranscriptionModelV3;
127
- /**
128
- * @deprecated Use `embeddingModel` instead.
129
- */
130
- textEmbeddingModel(modelId: string): never;
131
- }
132
- interface GladiaProviderSettings {
133
- /**
134
- * API key for authenticating requests.
135
- */
136
- apiKey?: string;
137
- /**
138
- * Custom headers to include in the requests.
139
- */
140
- headers?: Record<string, string>;
141
- /**
142
- * Custom fetch implementation. You can use it as a middleware to intercept requests,
143
- * or to provide a custom fetch implementation for e.g. testing.
144
- */
145
- fetch?: FetchFunction;
146
- }
147
- /**
148
- * Create a Gladia provider instance.
149
- */
150
- declare function createGladia(options?: GladiaProviderSettings): GladiaProvider;
151
- /**
152
- * Default Gladia provider instance.
153
- */
154
- declare const gladia: GladiaProvider;
155
-
156
- declare const VERSION: string;
157
-
158
- export { type GladiaProvider, type GladiaProviderSettings, type GladiaTranscriptionModelOptions, VERSION, createGladia, gladia };