ai 7.0.22 → 7.0.25
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 +30 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +178 -167
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.js.map +1 -1
- package/docs/03-ai-sdk-core/36-transcription.mdx +7 -4
- package/docs/06-advanced/11-secure-url-fetching.mdx +117 -0
- package/docs/07-reference/01-ai-sdk-core/11-stream-transcribe.mdx +13 -1
- package/package.json +3 -3
- package/src/embed/embed-many.ts +219 -207
- package/src/telemetry/tracing-channel.ts +1 -0
- package/src/transcribe/stream-transcribe.ts +13 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# ai
|
|
2
2
|
|
|
3
|
+
## 7.0.25
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 7805e4a: Cancelling the `experimental_streamTranscribe` `fullStream` now also aborts a still-pending `doStream` setup, so a model whose `doStream` has not yet resolved is cancelled instead of leaking.
|
|
8
|
+
- f8e82fd: Update the `experimental_streamTranscribe` unsupported-model error message now that gateway string model IDs can support streaming transcription.
|
|
9
|
+
- Updated dependencies [4be62c1]
|
|
10
|
+
- Updated dependencies [f8e82fd]
|
|
11
|
+
- Updated dependencies [7805e4a]
|
|
12
|
+
- Updated dependencies [cd12954]
|
|
13
|
+
- @ai-sdk/provider-utils@5.0.9
|
|
14
|
+
- @ai-sdk/gateway@4.0.19
|
|
15
|
+
|
|
16
|
+
## 7.0.24
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- e193290: Cancel the caller's `audio` stream when `experimental_streamTranscribe` fails before or during streaming. Previously, when the model's `doStream` rejected before a stream existed (e.g. missing API key or other auth failure), the audio stream was never consumed or cancelled, so an upstream producer piping into it would hang forever.
|
|
21
|
+
- Updated dependencies [e193290]
|
|
22
|
+
- @ai-sdk/provider-utils@5.0.8
|
|
23
|
+
- @ai-sdk/gateway@4.0.18
|
|
24
|
+
|
|
25
|
+
## 7.0.23
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- 930f949: feat(ai): wrap embedMany in tracing channel context
|
|
30
|
+
- Updated dependencies [867f80a]
|
|
31
|
+
- @ai-sdk/gateway@4.0.17
|
|
32
|
+
|
|
3
33
|
## 7.0.22
|
|
4
34
|
|
|
5
35
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -4274,7 +4274,7 @@ type RerankingModelCallEndEvent = {
|
|
|
4274
4274
|
};
|
|
4275
4275
|
|
|
4276
4276
|
declare const AI_SDK_TELEMETRY_TRACING_CHANNEL = "ai:telemetry";
|
|
4277
|
-
type TelemetryTracingEventType = 'generateText' | 'streamText' | 'step' | 'languageModelCall' | 'executeTool' | 'embed' | 'rerank';
|
|
4277
|
+
type TelemetryTracingEventType = 'generateText' | 'streamText' | 'step' | 'languageModelCall' | 'executeTool' | 'embed' | 'embedMany' | 'rerank';
|
|
4278
4278
|
type TelemetryTracingChannelMessage<EVENT = unknown> = {
|
|
4279
4279
|
readonly type: TelemetryTracingEventType;
|
|
4280
4280
|
readonly event: EVENT;
|
package/dist/index.js
CHANGED
|
@@ -1089,7 +1089,7 @@ import {
|
|
|
1089
1089
|
} from "@ai-sdk/provider-utils";
|
|
1090
1090
|
|
|
1091
1091
|
// src/version.ts
|
|
1092
|
-
var VERSION = true ? "7.0.
|
|
1092
|
+
var VERSION = true ? "7.0.25" : "0.0.0-test";
|
|
1093
1093
|
|
|
1094
1094
|
// src/util/download/download.ts
|
|
1095
1095
|
var download = async ({
|
|
@@ -11301,7 +11301,7 @@ async function embedMany({
|
|
|
11301
11301
|
experimental_onEnd,
|
|
11302
11302
|
_internal: { generateCallId = originalGenerateCallId5 } = {}
|
|
11303
11303
|
}) {
|
|
11304
|
-
var _a22
|
|
11304
|
+
var _a22;
|
|
11305
11305
|
const model = resolveEmbeddingModel(modelArg);
|
|
11306
11306
|
const { maxRetries, retry } = prepareRetries({
|
|
11307
11307
|
maxRetries: maxRetriesArg,
|
|
@@ -11317,112 +11317,33 @@ async function embedMany({
|
|
|
11317
11317
|
const telemetryDispatcher = createTelemetryDispatcher({
|
|
11318
11318
|
telemetry
|
|
11319
11319
|
});
|
|
11320
|
-
await
|
|
11321
|
-
|
|
11322
|
-
|
|
11323
|
-
|
|
11324
|
-
|
|
11325
|
-
|
|
11326
|
-
|
|
11327
|
-
|
|
11328
|
-
|
|
11329
|
-
|
|
11330
|
-
|
|
11331
|
-
|
|
11332
|
-
|
|
11333
|
-
|
|
11334
|
-
|
|
11335
|
-
|
|
11336
|
-
model.supportsParallelCalls
|
|
11337
|
-
]);
|
|
11338
|
-
if (maxEmbeddingsPerCall == null || maxEmbeddingsPerCall === Infinity) {
|
|
11339
|
-
const { embeddings: embeddings2, usage, warnings: warnings2, response, providerMetadata: providerMetadata2 } = await retry(async () => {
|
|
11340
|
-
var _a23, _b2;
|
|
11341
|
-
const embedCallId = generateCallId();
|
|
11342
|
-
await notify({
|
|
11343
|
-
event: {
|
|
11344
|
-
callId,
|
|
11345
|
-
embedCallId,
|
|
11346
|
-
operationId: "ai.embedMany.doEmbed",
|
|
11347
|
-
provider: model.provider,
|
|
11348
|
-
modelId: model.modelId,
|
|
11349
|
-
values
|
|
11350
|
-
},
|
|
11351
|
-
callbacks: [telemetryDispatcher.onEmbedStart]
|
|
11352
|
-
});
|
|
11353
|
-
const modelResponse = await model.doEmbed({
|
|
11354
|
-
values,
|
|
11355
|
-
abortSignal,
|
|
11356
|
-
headers: headersWithUserAgent,
|
|
11357
|
-
providerOptions
|
|
11358
|
-
});
|
|
11359
|
-
const embeddings3 = modelResponse.embeddings;
|
|
11360
|
-
const usage2 = (_a23 = modelResponse.usage) != null ? _a23 : { tokens: NaN };
|
|
11361
|
-
await notify({
|
|
11362
|
-
event: {
|
|
11363
|
-
callId,
|
|
11364
|
-
embedCallId,
|
|
11365
|
-
operationId: "ai.embedMany.doEmbed",
|
|
11366
|
-
provider: model.provider,
|
|
11367
|
-
modelId: model.modelId,
|
|
11368
|
-
values,
|
|
11369
|
-
embeddings: embeddings3,
|
|
11370
|
-
usage: usage2
|
|
11371
|
-
},
|
|
11372
|
-
callbacks: [telemetryDispatcher.onEmbedEnd]
|
|
11373
|
-
});
|
|
11374
|
-
return {
|
|
11375
|
-
embeddings: embeddings3,
|
|
11376
|
-
usage: usage2,
|
|
11377
|
-
warnings: (_b2 = modelResponse.warnings) != null ? _b2 : [],
|
|
11378
|
-
providerMetadata: modelResponse.providerMetadata,
|
|
11379
|
-
response: modelResponse.response
|
|
11380
|
-
};
|
|
11381
|
-
});
|
|
11382
|
-
logWarnings({
|
|
11383
|
-
warnings: warnings2,
|
|
11384
|
-
provider: model.provider,
|
|
11385
|
-
model: model.modelId
|
|
11386
|
-
});
|
|
11320
|
+
const runInTracingChannelSpan = (_a22 = telemetryDispatcher.runInTracingChannelSpan) != null ? _a22 : async ({ execute }) => await execute();
|
|
11321
|
+
const startEvent = {
|
|
11322
|
+
callId,
|
|
11323
|
+
operationId: "ai.embedMany",
|
|
11324
|
+
provider: model.provider,
|
|
11325
|
+
modelId: model.modelId,
|
|
11326
|
+
value: values,
|
|
11327
|
+
maxRetries,
|
|
11328
|
+
headers: headersWithUserAgent,
|
|
11329
|
+
providerOptions
|
|
11330
|
+
};
|
|
11331
|
+
return await runInTracingChannelSpan({
|
|
11332
|
+
type: "embedMany",
|
|
11333
|
+
event: startEvent,
|
|
11334
|
+
execute: async () => {
|
|
11335
|
+
var _a23, _b;
|
|
11387
11336
|
await notify({
|
|
11388
|
-
event:
|
|
11389
|
-
|
|
11390
|
-
operationId: "ai.embedMany",
|
|
11391
|
-
provider: model.provider,
|
|
11392
|
-
modelId: model.modelId,
|
|
11393
|
-
value: values,
|
|
11394
|
-
embedding: embeddings2,
|
|
11395
|
-
usage,
|
|
11396
|
-
warnings: warnings2,
|
|
11397
|
-
providerMetadata: providerMetadata2,
|
|
11398
|
-
response: [response]
|
|
11399
|
-
},
|
|
11400
|
-
callbacks: [resolvedOnEnd, telemetryDispatcher.onEnd]
|
|
11401
|
-
});
|
|
11402
|
-
return new DefaultEmbedManyResult({
|
|
11403
|
-
values,
|
|
11404
|
-
embeddings: embeddings2,
|
|
11405
|
-
usage,
|
|
11406
|
-
warnings: warnings2,
|
|
11407
|
-
providerMetadata: providerMetadata2,
|
|
11408
|
-
responses: [response]
|
|
11337
|
+
event: startEvent,
|
|
11338
|
+
callbacks: [resolvedOnStart, telemetryDispatcher.onStart]
|
|
11409
11339
|
});
|
|
11410
|
-
|
|
11411
|
-
|
|
11412
|
-
|
|
11413
|
-
|
|
11414
|
-
|
|
11415
|
-
|
|
11416
|
-
|
|
11417
|
-
const parallelChunks = splitArray(
|
|
11418
|
-
valueChunks,
|
|
11419
|
-
supportsParallelCalls ? maxParallelCalls : 1
|
|
11420
|
-
);
|
|
11421
|
-
for (const parallelChunk of parallelChunks) {
|
|
11422
|
-
const results = await Promise.all(
|
|
11423
|
-
parallelChunk.map((chunk) => {
|
|
11424
|
-
return retry(async () => {
|
|
11425
|
-
var _a23, _b2;
|
|
11340
|
+
try {
|
|
11341
|
+
const [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all(
|
|
11342
|
+
[model.maxEmbeddingsPerCall, model.supportsParallelCalls]
|
|
11343
|
+
);
|
|
11344
|
+
if (maxEmbeddingsPerCall == null || maxEmbeddingsPerCall === Infinity) {
|
|
11345
|
+
const { embeddings: embeddings2, usage, warnings: warnings2, response, providerMetadata: providerMetadata2 } = await retry(async () => {
|
|
11346
|
+
var _a24, _b2;
|
|
11426
11347
|
const embedCallId = generateCallId();
|
|
11427
11348
|
await notify({
|
|
11428
11349
|
event: {
|
|
@@ -11431,18 +11352,18 @@ async function embedMany({
|
|
|
11431
11352
|
operationId: "ai.embedMany.doEmbed",
|
|
11432
11353
|
provider: model.provider,
|
|
11433
11354
|
modelId: model.modelId,
|
|
11434
|
-
values
|
|
11355
|
+
values
|
|
11435
11356
|
},
|
|
11436
11357
|
callbacks: [telemetryDispatcher.onEmbedStart]
|
|
11437
11358
|
});
|
|
11438
11359
|
const modelResponse = await model.doEmbed({
|
|
11439
|
-
values
|
|
11360
|
+
values,
|
|
11440
11361
|
abortSignal,
|
|
11441
11362
|
headers: headersWithUserAgent,
|
|
11442
11363
|
providerOptions
|
|
11443
11364
|
});
|
|
11444
|
-
const
|
|
11445
|
-
const
|
|
11365
|
+
const embeddings3 = modelResponse.embeddings;
|
|
11366
|
+
const usage2 = (_a24 = modelResponse.usage) != null ? _a24 : { tokens: NaN };
|
|
11446
11367
|
await notify({
|
|
11447
11368
|
event: {
|
|
11448
11369
|
callId,
|
|
@@ -11450,75 +11371,162 @@ async function embedMany({
|
|
|
11450
11371
|
operationId: "ai.embedMany.doEmbed",
|
|
11451
11372
|
provider: model.provider,
|
|
11452
11373
|
modelId: model.modelId,
|
|
11453
|
-
values
|
|
11454
|
-
embeddings:
|
|
11455
|
-
usage
|
|
11374
|
+
values,
|
|
11375
|
+
embeddings: embeddings3,
|
|
11376
|
+
usage: usage2
|
|
11456
11377
|
},
|
|
11457
11378
|
callbacks: [telemetryDispatcher.onEmbedEnd]
|
|
11458
11379
|
});
|
|
11459
11380
|
return {
|
|
11460
|
-
embeddings:
|
|
11461
|
-
usage,
|
|
11381
|
+
embeddings: embeddings3,
|
|
11382
|
+
usage: usage2,
|
|
11462
11383
|
warnings: (_b2 = modelResponse.warnings) != null ? _b2 : [],
|
|
11463
11384
|
providerMetadata: modelResponse.providerMetadata,
|
|
11464
11385
|
response: modelResponse.response
|
|
11465
11386
|
};
|
|
11466
11387
|
});
|
|
11467
|
-
|
|
11468
|
-
|
|
11469
|
-
|
|
11470
|
-
|
|
11471
|
-
|
|
11472
|
-
|
|
11473
|
-
|
|
11474
|
-
|
|
11475
|
-
|
|
11476
|
-
|
|
11477
|
-
|
|
11478
|
-
|
|
11479
|
-
|
|
11480
|
-
|
|
11481
|
-
|
|
11482
|
-
|
|
11483
|
-
|
|
11484
|
-
|
|
11388
|
+
logWarnings({
|
|
11389
|
+
warnings: warnings2,
|
|
11390
|
+
provider: model.provider,
|
|
11391
|
+
model: model.modelId
|
|
11392
|
+
});
|
|
11393
|
+
await notify({
|
|
11394
|
+
event: {
|
|
11395
|
+
callId,
|
|
11396
|
+
operationId: "ai.embedMany",
|
|
11397
|
+
provider: model.provider,
|
|
11398
|
+
modelId: model.modelId,
|
|
11399
|
+
value: values,
|
|
11400
|
+
embedding: embeddings2,
|
|
11401
|
+
usage,
|
|
11402
|
+
warnings: warnings2,
|
|
11403
|
+
providerMetadata: providerMetadata2,
|
|
11404
|
+
response: [response]
|
|
11405
|
+
},
|
|
11406
|
+
callbacks: [resolvedOnEnd, telemetryDispatcher.onEnd]
|
|
11407
|
+
});
|
|
11408
|
+
return new DefaultEmbedManyResult({
|
|
11409
|
+
values,
|
|
11410
|
+
embeddings: embeddings2,
|
|
11411
|
+
usage,
|
|
11412
|
+
warnings: warnings2,
|
|
11413
|
+
providerMetadata: providerMetadata2,
|
|
11414
|
+
responses: [response]
|
|
11415
|
+
});
|
|
11416
|
+
}
|
|
11417
|
+
const valueChunks = splitArray(values, maxEmbeddingsPerCall);
|
|
11418
|
+
const embeddings = [];
|
|
11419
|
+
const warnings = [];
|
|
11420
|
+
const responses = [];
|
|
11421
|
+
let tokens = 0;
|
|
11422
|
+
let providerMetadata;
|
|
11423
|
+
const parallelChunks = splitArray(
|
|
11424
|
+
valueChunks,
|
|
11425
|
+
supportsParallelCalls ? maxParallelCalls : 1
|
|
11426
|
+
);
|
|
11427
|
+
for (const parallelChunk of parallelChunks) {
|
|
11428
|
+
const results = await Promise.all(
|
|
11429
|
+
parallelChunk.map((chunk) => {
|
|
11430
|
+
return retry(async () => {
|
|
11431
|
+
var _a24, _b2;
|
|
11432
|
+
const embedCallId = generateCallId();
|
|
11433
|
+
await notify({
|
|
11434
|
+
event: {
|
|
11435
|
+
callId,
|
|
11436
|
+
embedCallId,
|
|
11437
|
+
operationId: "ai.embedMany.doEmbed",
|
|
11438
|
+
provider: model.provider,
|
|
11439
|
+
modelId: model.modelId,
|
|
11440
|
+
values: chunk
|
|
11441
|
+
},
|
|
11442
|
+
callbacks: [telemetryDispatcher.onEmbedStart]
|
|
11443
|
+
});
|
|
11444
|
+
const modelResponse = await model.doEmbed({
|
|
11445
|
+
values: chunk,
|
|
11446
|
+
abortSignal,
|
|
11447
|
+
headers: headersWithUserAgent,
|
|
11448
|
+
providerOptions
|
|
11449
|
+
});
|
|
11450
|
+
const chunkEmbeddings = modelResponse.embeddings;
|
|
11451
|
+
const usage = (_a24 = modelResponse.usage) != null ? _a24 : { tokens: NaN };
|
|
11452
|
+
await notify({
|
|
11453
|
+
event: {
|
|
11454
|
+
callId,
|
|
11455
|
+
embedCallId,
|
|
11456
|
+
operationId: "ai.embedMany.doEmbed",
|
|
11457
|
+
provider: model.provider,
|
|
11458
|
+
modelId: model.modelId,
|
|
11459
|
+
values: chunk,
|
|
11460
|
+
embeddings: chunkEmbeddings,
|
|
11461
|
+
usage
|
|
11462
|
+
},
|
|
11463
|
+
callbacks: [telemetryDispatcher.onEmbedEnd]
|
|
11464
|
+
});
|
|
11465
|
+
return {
|
|
11466
|
+
embeddings: chunkEmbeddings,
|
|
11467
|
+
usage,
|
|
11468
|
+
warnings: (_b2 = modelResponse.warnings) != null ? _b2 : [],
|
|
11469
|
+
providerMetadata: modelResponse.providerMetadata,
|
|
11470
|
+
response: modelResponse.response
|
|
11471
|
+
};
|
|
11472
|
+
});
|
|
11473
|
+
})
|
|
11474
|
+
);
|
|
11475
|
+
for (const result of results) {
|
|
11476
|
+
embeddings.push(...result.embeddings);
|
|
11477
|
+
warnings.push(...result.warnings);
|
|
11478
|
+
responses.push(result.response);
|
|
11479
|
+
tokens += result.usage.tokens;
|
|
11480
|
+
if (result.providerMetadata) {
|
|
11481
|
+
if (!providerMetadata) {
|
|
11482
|
+
providerMetadata = { ...result.providerMetadata };
|
|
11483
|
+
} else {
|
|
11484
|
+
for (const [providerName, metadata] of Object.entries(
|
|
11485
|
+
result.providerMetadata
|
|
11486
|
+
)) {
|
|
11487
|
+
providerMetadata[providerName] = {
|
|
11488
|
+
...(_a23 = providerMetadata[providerName]) != null ? _a23 : {},
|
|
11489
|
+
...metadata
|
|
11490
|
+
};
|
|
11491
|
+
}
|
|
11492
|
+
}
|
|
11485
11493
|
}
|
|
11486
11494
|
}
|
|
11487
11495
|
}
|
|
11496
|
+
logWarnings({
|
|
11497
|
+
warnings,
|
|
11498
|
+
provider: model.provider,
|
|
11499
|
+
model: model.modelId
|
|
11500
|
+
});
|
|
11501
|
+
await notify({
|
|
11502
|
+
event: {
|
|
11503
|
+
callId,
|
|
11504
|
+
operationId: "ai.embedMany",
|
|
11505
|
+
provider: model.provider,
|
|
11506
|
+
modelId: model.modelId,
|
|
11507
|
+
value: values,
|
|
11508
|
+
embedding: embeddings,
|
|
11509
|
+
usage: { tokens },
|
|
11510
|
+
warnings,
|
|
11511
|
+
providerMetadata,
|
|
11512
|
+
response: responses
|
|
11513
|
+
},
|
|
11514
|
+
callbacks: [resolvedOnEnd, telemetryDispatcher.onEnd]
|
|
11515
|
+
});
|
|
11516
|
+
return new DefaultEmbedManyResult({
|
|
11517
|
+
values,
|
|
11518
|
+
embeddings,
|
|
11519
|
+
usage: { tokens },
|
|
11520
|
+
warnings,
|
|
11521
|
+
providerMetadata,
|
|
11522
|
+
responses
|
|
11523
|
+
});
|
|
11524
|
+
} catch (error) {
|
|
11525
|
+
await ((_b = telemetryDispatcher.onError) == null ? void 0 : _b.call(telemetryDispatcher, { callId, error }));
|
|
11526
|
+
throw error;
|
|
11488
11527
|
}
|
|
11489
11528
|
}
|
|
11490
|
-
|
|
11491
|
-
warnings,
|
|
11492
|
-
provider: model.provider,
|
|
11493
|
-
model: model.modelId
|
|
11494
|
-
});
|
|
11495
|
-
await notify({
|
|
11496
|
-
event: {
|
|
11497
|
-
callId,
|
|
11498
|
-
operationId: "ai.embedMany",
|
|
11499
|
-
provider: model.provider,
|
|
11500
|
-
modelId: model.modelId,
|
|
11501
|
-
value: values,
|
|
11502
|
-
embedding: embeddings,
|
|
11503
|
-
usage: { tokens },
|
|
11504
|
-
warnings,
|
|
11505
|
-
providerMetadata,
|
|
11506
|
-
response: responses
|
|
11507
|
-
},
|
|
11508
|
-
callbacks: [resolvedOnEnd, telemetryDispatcher.onEnd]
|
|
11509
|
-
});
|
|
11510
|
-
return new DefaultEmbedManyResult({
|
|
11511
|
-
values,
|
|
11512
|
-
embeddings,
|
|
11513
|
-
usage: { tokens },
|
|
11514
|
-
warnings,
|
|
11515
|
-
providerMetadata,
|
|
11516
|
-
responses
|
|
11517
|
-
});
|
|
11518
|
-
} catch (error) {
|
|
11519
|
-
await ((_b = telemetryDispatcher.onError) == null ? void 0 : _b.call(telemetryDispatcher, { callId, error }));
|
|
11520
|
-
throw error;
|
|
11521
|
-
}
|
|
11529
|
+
});
|
|
11522
11530
|
}
|
|
11523
11531
|
var DefaultEmbedManyResult = class {
|
|
11524
11532
|
constructor(options) {
|
|
@@ -15953,7 +15961,7 @@ function streamTranscribe({
|
|
|
15953
15961
|
if (doStream == null) {
|
|
15954
15962
|
throw new UnsupportedFunctionalityError4({
|
|
15955
15963
|
functionality: "streaming transcription",
|
|
15956
|
-
message: `The ${resolvedModel.provider} model "${resolvedModel.modelId}" does not support streaming transcription.` + (typeof model === "string" ? " String model IDs resolve through the global provider (AI Gateway by default)
|
|
15964
|
+
message: `The ${resolvedModel.provider} model "${resolvedModel.modelId}" does not support streaming transcription.` + (typeof model === "string" ? " String model IDs resolve through the global provider (AI Gateway by default). If that provider does not support streaming transcription, pass a provider model instance instead (e.g. openai.transcription('gpt-realtime-whisper')) or upgrade @ai-sdk/gateway to a version with streaming transcription support." : "")
|
|
15957
15965
|
});
|
|
15958
15966
|
}
|
|
15959
15967
|
const headersWithUserAgent = withUserAgentSuffix11(
|
|
@@ -16057,7 +16065,8 @@ function streamTranscribe({
|
|
|
16057
16065
|
audio,
|
|
16058
16066
|
inputAudioFormat,
|
|
16059
16067
|
providerOptions,
|
|
16060
|
-
|
|
16068
|
+
// merged so cancelling fullStream also aborts a still-pending doStream
|
|
16069
|
+
abortSignal: mergeAbortSignals(abortSignal, pipeAbortController.signal),
|
|
16061
16070
|
headers: headersWithUserAgent,
|
|
16062
16071
|
includeRawChunks
|
|
16063
16072
|
});
|
|
@@ -16072,6 +16081,8 @@ function streamTranscribe({
|
|
|
16072
16081
|
})().catch((error) => {
|
|
16073
16082
|
const reason = error != null ? error : new Error("Transcription stream was cancelled or errored.");
|
|
16074
16083
|
rejectPendingPromises(reason);
|
|
16084
|
+
audio.cancel(reason).catch(() => {
|
|
16085
|
+
});
|
|
16075
16086
|
transform.writable.abort(reason).catch(() => {
|
|
16076
16087
|
});
|
|
16077
16088
|
});
|