@ai-sdk/gladia 3.0.0-canary.47 → 3.0.0-canary.49
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 +22 -0
- package/README.md +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/docs/120-gladia.mdx +1 -1
- package/package.json +3 -3
- package/src/gladia-transcription-model.ts +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @ai-sdk/gladia
|
|
2
2
|
|
|
3
|
+
## 3.0.0-canary.49
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- aeda373: fix: only send provider credentials to same-origin response-supplied URLs
|
|
8
|
+
|
|
9
|
+
Several provider clients followed a URL taken from the provider's API response (a polling/status URL or a final media URL such as `polling_url`, `urls.get`, `result_url`, `result.sample`, or `video.uri`) and reused the authenticated headers — or appended `?key=<API_KEY>` — on that request. Because the host of the response-supplied URL was never validated, the long-lived API key was sent to whatever host the response named (a CDN in the benign case, or an attacker-chosen host if the provider response was tampered with), allowing credential exfiltration.
|
|
10
|
+
|
|
11
|
+
A new `isSameOrigin` helper is added to `@ai-sdk/provider-utils`, and the affected fetches in `@ai-sdk/black-forest-labs`, `@ai-sdk/fireworks`, `@ai-sdk/replicate`, `@ai-sdk/gladia`, `@ai-sdk/fal`, and `@ai-sdk/google` now attach credentials only when the followed URL is same-origin with the provider's configured API origin. Requests to a foreign origin are made without the credential.
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [aeda373]
|
|
14
|
+
- Updated dependencies [375fdd7]
|
|
15
|
+
- Updated dependencies [b4507d5]
|
|
16
|
+
- @ai-sdk/provider-utils@5.0.0-canary.48
|
|
17
|
+
|
|
18
|
+
## 3.0.0-canary.48
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies [bae5e2b]
|
|
23
|
+
- @ai-sdk/provider-utils@5.0.0-canary.47
|
|
24
|
+
|
|
3
25
|
## 3.0.0-canary.47
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ import { gladia } from '@ai-sdk/gladia';
|
|
|
33
33
|
|
|
34
34
|
```ts
|
|
35
35
|
import { gladia } from '@ai-sdk/gladia';
|
|
36
|
-
import {
|
|
36
|
+
import { transcribe } from 'ai';
|
|
37
37
|
|
|
38
38
|
const { text } = await transcribe({
|
|
39
39
|
model: gladia.transcription(),
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
mediaTypeToExtension,
|
|
19
19
|
delay,
|
|
20
20
|
getFromApi,
|
|
21
|
+
isSameOrigin,
|
|
21
22
|
parseProviderOptions,
|
|
22
23
|
postFormDataToApi,
|
|
23
24
|
postJsonToApi,
|
|
@@ -463,6 +464,7 @@ var GladiaTranscriptionModel = class _GladiaTranscriptionModel {
|
|
|
463
464
|
fetch: this.config.fetch
|
|
464
465
|
});
|
|
465
466
|
const resultUrl = transcriptionInitResponse.result_url;
|
|
467
|
+
const apiOrigin = this.config.url({ modelId: "default", path: "" });
|
|
466
468
|
let transcriptionResult;
|
|
467
469
|
let transcriptionResultHeaders;
|
|
468
470
|
const timeoutMs = 60 * 1e3;
|
|
@@ -478,7 +480,7 @@ var GladiaTranscriptionModel = class _GladiaTranscriptionModel {
|
|
|
478
480
|
}
|
|
479
481
|
const response = await getFromApi({
|
|
480
482
|
url: resultUrl,
|
|
481
|
-
headers: combineHeaders((_i = (_h = this.config).headers) == null ? void 0 : _i.call(_h), options.headers),
|
|
483
|
+
headers: isSameOrigin(resultUrl, apiOrigin) ? combineHeaders((_i = (_h = this.config).headers) == null ? void 0 : _i.call(_h), options.headers) : void 0,
|
|
482
484
|
failedResponseHandler: gladiaFailedResponseHandler,
|
|
483
485
|
successfulResponseHandler: createJsonResponseHandler(
|
|
484
486
|
gladiaTranscriptionResultResponseSchema
|
|
@@ -557,7 +559,7 @@ var gladiaTranscriptionResultResponseSchema = z3.object({
|
|
|
557
559
|
});
|
|
558
560
|
|
|
559
561
|
// src/version.ts
|
|
560
|
-
var VERSION = true ? "3.0.0-canary.
|
|
562
|
+
var VERSION = true ? "3.0.0-canary.49" : "0.0.0-test";
|
|
561
563
|
|
|
562
564
|
// src/gladia-provider.ts
|
|
563
565
|
function createGladia(options = {}) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/gladia-provider.ts","../src/gladia-transcription-model.ts","../src/gladia-error.ts","../src/gladia-transcription-model-options.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 { gladiaTranscriptionModelOptionsSchema } from './gladia-transcription-model-options';\nimport type { GladiaTranscriptionInitiateAPITypes } from './gladia-api-types';\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","import { z } from 'zod/v4';\n\n// https://docs.gladia.io/api-reference/v2/pre-recorded/init\nexport const 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","// 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","z"]}
|
|
1
|
+
{"version":3,"sources":["../src/gladia-provider.ts","../src/gladia-transcription-model.ts","../src/gladia-error.ts","../src/gladia-transcription-model-options.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 isSameOrigin,\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 { gladiaTranscriptionModelOptionsSchema } from './gladia-transcription-model-options';\nimport type { GladiaTranscriptionInitiateAPITypes } from './gladia-api-types';\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 // The result URL comes from the provider response; only send credentials\n // when it stays on the provider's own origin.\n const resultUrl = transcriptionInitResponse.result_url;\n const apiOrigin = this.config.url({ modelId: 'default', path: '' });\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: isSameOrigin(resultUrl, apiOrigin)\n ? combineHeaders(this.config.headers?.(), options.headers)\n : undefined,\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","import { z } from 'zod/v4';\n\n// https://docs.gladia.io/api-reference/v2/pre-recorded/init\nexport const 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","// 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","z"]}
|
package/docs/120-gladia.mdx
CHANGED
|
@@ -76,7 +76,7 @@ const model = gladia.transcription();
|
|
|
76
76
|
You can also pass additional provider-specific options using the `providerOptions` argument. For example, supplying the `summarize` option will enable summaries for sections of content.
|
|
77
77
|
|
|
78
78
|
```ts highlight="7"
|
|
79
|
-
import {
|
|
79
|
+
import { transcribe } from 'ai';
|
|
80
80
|
import { gladia } from '@ai-sdk/gladia';
|
|
81
81
|
import { type GladiaTranscriptionModelOptions } from '@ai-sdk/gladia';
|
|
82
82
|
import { readFile } from 'fs/promises';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/gladia",
|
|
3
|
-
"version": "3.0.0-canary.
|
|
3
|
+
"version": "3.0.0-canary.49",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@ai-sdk/provider
|
|
33
|
-
"@ai-sdk/provider": "
|
|
32
|
+
"@ai-sdk/provider": "4.0.0-canary.18",
|
|
33
|
+
"@ai-sdk/provider-utils": "5.0.0-canary.48"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/node": "22.19.19",
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
mediaTypeToExtension,
|
|
11
11
|
delay,
|
|
12
12
|
getFromApi,
|
|
13
|
+
isSameOrigin,
|
|
13
14
|
parseProviderOptions,
|
|
14
15
|
postFormDataToApi,
|
|
15
16
|
postJsonToApi,
|
|
@@ -250,8 +251,11 @@ export class GladiaTranscriptionModel implements TranscriptionModelV4 {
|
|
|
250
251
|
fetch: this.config.fetch,
|
|
251
252
|
});
|
|
252
253
|
|
|
253
|
-
// Poll the result URL until the transcription is done or an error occurs
|
|
254
|
+
// Poll the result URL until the transcription is done or an error occurs.
|
|
255
|
+
// The result URL comes from the provider response; only send credentials
|
|
256
|
+
// when it stays on the provider's own origin.
|
|
254
257
|
const resultUrl = transcriptionInitResponse.result_url;
|
|
258
|
+
const apiOrigin = this.config.url({ modelId: 'default', path: '' });
|
|
255
259
|
let transcriptionResult;
|
|
256
260
|
let transcriptionResultHeaders;
|
|
257
261
|
const timeoutMs = 60 * 1000; // 60 seconds timeout
|
|
@@ -270,7 +274,9 @@ export class GladiaTranscriptionModel implements TranscriptionModelV4 {
|
|
|
270
274
|
|
|
271
275
|
const response = await getFromApi({
|
|
272
276
|
url: resultUrl,
|
|
273
|
-
headers:
|
|
277
|
+
headers: isSameOrigin(resultUrl, apiOrigin)
|
|
278
|
+
? combineHeaders(this.config.headers?.(), options.headers)
|
|
279
|
+
: undefined,
|
|
274
280
|
failedResponseHandler: gladiaFailedResponseHandler,
|
|
275
281
|
successfulResponseHandler: createJsonResponseHandler(
|
|
276
282
|
gladiaTranscriptionResultResponseSchema,
|