@framers/agentos 0.11.0 → 0.11.2
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/README.md +1 -1
- package/dist/api/model.d.ts +32 -5
- package/dist/api/model.d.ts.map +1 -1
- package/dist/api/model.js +73 -8
- package/dist/api/model.js.map +1 -1
- package/dist/api/runtime/strategies/shared.d.ts.map +1 -1
- package/dist/api/runtime/strategies/shared.js +21 -4
- package/dist/api/runtime/strategies/shared.js.map +1 -1
- package/dist/cognition/rag/multimodal/createMultimodalIndexerFromResolver.d.ts +5 -3
- package/dist/cognition/rag/multimodal/createMultimodalIndexerFromResolver.d.ts.map +1 -1
- package/dist/cognition/rag/multimodal/createMultimodalIndexerFromResolver.js +5 -3
- package/dist/cognition/rag/multimodal/createMultimodalIndexerFromResolver.js.map +1 -1
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js +1 -1
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js.map +1 -1
- package/dist/core/llm/providers/structuredOutputFormat.d.ts.map +1 -1
- package/dist/core/llm/providers/structuredOutputFormat.js +65 -17
- package/dist/core/llm/providers/structuredOutputFormat.js.map +1 -1
- package/dist/io/hearing/providers/DeepgramBatchSTTProvider.d.ts +13 -5
- package/dist/io/hearing/providers/DeepgramBatchSTTProvider.d.ts.map +1 -1
- package/dist/io/hearing/providers/DeepgramBatchSTTProvider.js +4 -3
- package/dist/io/hearing/providers/DeepgramBatchSTTProvider.js.map +1 -1
- package/dist/io/hearing/providers/OpenAIWhisperSpeechToTextProvider.d.ts +40 -14
- package/dist/io/hearing/providers/OpenAIWhisperSpeechToTextProvider.d.ts.map +1 -1
- package/dist/io/hearing/providers/OpenAIWhisperSpeechToTextProvider.js +108 -18
- package/dist/io/hearing/providers/OpenAIWhisperSpeechToTextProvider.js.map +1 -1
- package/dist/io/media/images/imageToBuffer.d.ts +10 -4
- package/dist/io/media/images/imageToBuffer.d.ts.map +1 -1
- package/dist/io/media/images/imageToBuffer.js +62 -5
- package/dist/io/media/images/imageToBuffer.js.map +1 -1
- package/dist/io/media/video/VideoAnalyzer.d.ts.map +1 -1
- package/dist/io/media/video/VideoAnalyzer.js +4 -1
- package/dist/io/media/video/VideoAnalyzer.js.map +1 -1
- package/dist/io/speech/SpeechProviderResolver.d.ts +11 -9
- package/dist/io/speech/SpeechProviderResolver.d.ts.map +1 -1
- package/dist/io/speech/SpeechProviderResolver.js +18 -12
- package/dist/io/speech/SpeechProviderResolver.js.map +1 -1
- package/dist/io/speech/SpeechRuntime.d.ts.map +1 -1
- package/dist/io/speech/SpeechRuntime.js +9 -1
- package/dist/io/speech/SpeechRuntime.js.map +1 -1
- package/dist/io/speech/providerCatalog.d.ts.map +1 -1
- package/dist/io/speech/providerCatalog.js +6 -2
- package/dist/io/speech/providerCatalog.js.map +1 -1
- package/dist/io/speech/providers/OpenAITextToSpeechProvider.d.ts +5 -0
- package/dist/io/speech/providers/OpenAITextToSpeechProvider.d.ts.map +1 -1
- package/dist/io/speech/providers/OpenAITextToSpeechProvider.js.map +1 -1
- package/dist/io/voice-pipeline/providers/CartesiaBatchTTS.d.ts +11 -3
- package/dist/io/voice-pipeline/providers/CartesiaBatchTTS.d.ts.map +1 -1
- package/dist/io/voice-pipeline/providers/CartesiaBatchTTS.js +11 -3
- package/dist/io/voice-pipeline/providers/CartesiaBatchTTS.js.map +1 -1
- package/dist/io/voice-pipeline/providers/CartesiaStreamingTTS.d.ts +1 -1
- package/dist/io/voice-pipeline/providers/CartesiaStreamingTTS.d.ts.map +1 -1
- package/dist/io/voice-pipeline/providers/CartesiaStreamingTTS.js +2 -2
- package/dist/io/voice-pipeline/providers/CartesiaStreamingTTS.js.map +1 -1
- package/dist/io/voice-pipeline/providers/DeepgramPreRecordedBatchSTT.d.ts +8 -0
- package/dist/io/voice-pipeline/providers/DeepgramPreRecordedBatchSTT.d.ts.map +1 -1
- package/dist/io/voice-pipeline/providers/DeepgramPreRecordedBatchSTT.js +3 -0
- package/dist/io/voice-pipeline/providers/DeepgramPreRecordedBatchSTT.js.map +1 -1
- package/dist/io/voice-pipeline/providers/DeepgramStreamingSTT.d.ts +11 -3
- package/dist/io/voice-pipeline/providers/DeepgramStreamingSTT.d.ts.map +1 -1
- package/dist/io/voice-pipeline/providers/DeepgramStreamingSTT.js +22 -3
- package/dist/io/voice-pipeline/providers/DeepgramStreamingSTT.js.map +1 -1
- package/dist/io/voice-pipeline/providers/ElevenLabsStreamingSTT.d.ts +3 -2
- package/dist/io/voice-pipeline/providers/ElevenLabsStreamingSTT.d.ts.map +1 -1
- package/dist/io/voice-pipeline/providers/ElevenLabsStreamingSTT.js +7 -4
- package/dist/io/voice-pipeline/providers/ElevenLabsStreamingSTT.js.map +1 -1
- package/dist/io/voice-pipeline/providers/OpenAIWhisperBatchSTT.d.ts +5 -3
- package/dist/io/voice-pipeline/providers/OpenAIWhisperBatchSTT.d.ts.map +1 -1
- package/dist/io/voice-pipeline/providers/OpenAIWhisperBatchSTT.js +24 -6
- package/dist/io/voice-pipeline/providers/OpenAIWhisperBatchSTT.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,64 @@
|
|
|
1
1
|
import { ApiKeyPool } from '../../../core/providers/ApiKeyPool.js';
|
|
2
|
+
/** The model OpenAI recommends for transcribing recorded speech. */
|
|
3
|
+
const DEFAULT_TRANSCRIPTION_MODEL = 'gpt-transcribe';
|
|
4
|
+
/** The OpenAI model that serves segment timestamps (`verbose_json`), `srt` and `vtt`. */
|
|
5
|
+
const TIMESTAMP_MODEL = 'whisper-1';
|
|
6
|
+
/** Response formats that carry timestamps. `pickModel` decides which model serves them. */
|
|
7
|
+
const TIMESTAMP_FORMATS = new Set([
|
|
8
|
+
'verbose_json',
|
|
9
|
+
'srt',
|
|
10
|
+
'vtt',
|
|
11
|
+
]);
|
|
12
|
+
/** `whisper-1` keeps this provider's `verbose_json` default; the newer models answer in `json`. */
|
|
13
|
+
function isWhisperModel(model) {
|
|
14
|
+
return model.startsWith('whisper');
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Whether a configured model can answer a timestamped call itself. OpenAI's
|
|
18
|
+
* `gpt-` transcription models cannot: the API reference limits the
|
|
19
|
+
* `gpt-4o-transcribe` models to `json` (`json`, `text` and `diarized_json`
|
|
20
|
+
* for the diarize model), `gpt-transcribe` returns text and languages with no
|
|
21
|
+
* segments, and OpenAI's guide sends callers who need timestamps to
|
|
22
|
+
* `whisper-1`. Any other model, such as one a whisper-compatible server
|
|
23
|
+
* serves under `baseUrl`, is trusted with the format.
|
|
24
|
+
*/
|
|
25
|
+
function servesTimestampFormats(model) {
|
|
26
|
+
return !model.startsWith('gpt-');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Picks the model for one call. A model named on the call is used as given.
|
|
30
|
+
* A call for `verbose_json`, `srt` or `vtt` runs on `whisper-1` unless the
|
|
31
|
+
* configured model serves that format itself. Every other call runs on the
|
|
32
|
+
* configured model, or on `gpt-transcribe` when none is configured. An empty
|
|
33
|
+
* model id counts as unset.
|
|
34
|
+
*/
|
|
35
|
+
function pickModel(callModel, configuredModel, requestedFormat) {
|
|
36
|
+
if (callModel)
|
|
37
|
+
return callModel;
|
|
38
|
+
const wantsTimestamps = requestedFormat !== undefined && TIMESTAMP_FORMATS.has(requestedFormat);
|
|
39
|
+
if (wantsTimestamps && !(configuredModel && servesTimestampFormats(configuredModel))) {
|
|
40
|
+
return TIMESTAMP_MODEL;
|
|
41
|
+
}
|
|
42
|
+
return configuredModel || DEFAULT_TRANSCRIPTION_MODEL;
|
|
43
|
+
}
|
|
44
|
+
/** `gpt-transcribe` takes language hints as a `languages` list in place of the singular `language` field. */
|
|
45
|
+
function takesLanguageList(model) {
|
|
46
|
+
return model === 'gpt-transcribe' || model.startsWith('gpt-transcribe-');
|
|
47
|
+
}
|
|
48
|
+
/** Reads the billed audio seconds from a `usage` block of type `duration`. */
|
|
49
|
+
function usageSeconds(usage) {
|
|
50
|
+
if (typeof usage !== 'object' || usage === null)
|
|
51
|
+
return undefined;
|
|
52
|
+
const value = usage;
|
|
53
|
+
return value.type === 'duration' && typeof value.seconds === 'number' ? value.seconds : undefined;
|
|
54
|
+
}
|
|
55
|
+
/** Reads the first code from the `languages` list that `gpt-transcribe` returns. */
|
|
56
|
+
function firstDetectedLanguage(languages) {
|
|
57
|
+
if (!Array.isArray(languages))
|
|
58
|
+
return undefined;
|
|
59
|
+
const first = languages[0];
|
|
60
|
+
return first && typeof first.code === 'string' ? first.code : undefined;
|
|
61
|
+
}
|
|
2
62
|
/**
|
|
3
63
|
* Normalizes raw segment data from the OpenAI Whisper `verbose_json` response
|
|
4
64
|
* into strongly-typed {@link SpeechTranscriptionSegment} objects.
|
|
@@ -62,23 +122,34 @@ function normalizeSegments(input) {
|
|
|
62
122
|
});
|
|
63
123
|
}
|
|
64
124
|
/**
|
|
65
|
-
* Speech-to-text provider that uses the OpenAI
|
|
125
|
+
* Speech-to-text provider that uses the OpenAI transcription API.
|
|
66
126
|
*
|
|
67
127
|
* ## API Contract
|
|
68
128
|
*
|
|
69
129
|
* - **Endpoint:** `POST {baseUrl}/audio/transcriptions`
|
|
70
130
|
* - **Authentication:** `Authorization: Bearer <apiKey>`
|
|
71
131
|
* - **Content-Type:** `multipart/form-data` (FormData with file blob)
|
|
72
|
-
* - **Response format:** Controlled by the `response_format` field
|
|
73
|
-
*
|
|
132
|
+
* - **Response format:** Controlled by the `response_format` field. When the
|
|
133
|
+
* caller names none, `whisper-1` is asked for `verbose_json` (segments,
|
|
134
|
+
* language and duration) and the other models for `json`.
|
|
135
|
+
*
|
|
136
|
+
* ## Models
|
|
137
|
+
*
|
|
138
|
+
* - `gpt-transcribe` (default): the model OpenAI recommends for recorded
|
|
139
|
+
* speech. It returns the text and the detected `languages`, and it takes
|
|
140
|
+
* language hints as a `languages` list.
|
|
141
|
+
* - `whisper-1`: removed from the API on 2027-02-26. It serves segment
|
|
142
|
+
* timestamps, `srt` and `vtt`, so a call that asks for one of those formats
|
|
143
|
+
* runs on it unless the call names a model or the configured model serves
|
|
144
|
+
* the format itself. A configured `gpt-` model does not.
|
|
74
145
|
*
|
|
75
146
|
* ## Supported Response Formats
|
|
76
147
|
*
|
|
77
|
-
* - `verbose_json
|
|
78
|
-
* - `json
|
|
79
|
-
* - `text
|
|
80
|
-
* - `srt
|
|
81
|
-
* - `vtt
|
|
148
|
+
* - `verbose_json`: full JSON with segments, duration and language (`whisper-1`)
|
|
149
|
+
* - `json`: JSON with the text (the newer models also return `languages`)
|
|
150
|
+
* - `text`: plain text, no JSON
|
|
151
|
+
* - `srt`: SubRip subtitles (`whisper-1`)
|
|
152
|
+
* - `vtt`: WebVTT subtitles (`whisper-1`)
|
|
82
153
|
*
|
|
83
154
|
* When `text`, `srt`, or `vtt` format is used, the response is returned as
|
|
84
155
|
* plain text and segments are not available.
|
|
@@ -90,11 +161,16 @@ function normalizeSegments(input) {
|
|
|
90
161
|
* ```ts
|
|
91
162
|
* const provider = new OpenAIWhisperSpeechToTextProvider({
|
|
92
163
|
* apiKey: process.env.OPENAI_API_KEY!,
|
|
93
|
-
* model: 'whisper-1',
|
|
94
164
|
* });
|
|
165
|
+
* // Runs on gpt-transcribe and answers in json.
|
|
95
166
|
* const result = await provider.transcribe(
|
|
96
167
|
* { data: audioBuffer, mimeType: 'audio/wav', fileName: 'recording.wav' },
|
|
97
|
-
* { language: 'en'
|
|
168
|
+
* { language: 'en' },
|
|
169
|
+
* );
|
|
170
|
+
* // Segment timestamps come from whisper-1.
|
|
171
|
+
* const timed = await provider.transcribe(
|
|
172
|
+
* { data: audioBuffer, mimeType: 'audio/wav', fileName: 'recording.wav' },
|
|
173
|
+
* { responseFormat: 'verbose_json' },
|
|
98
174
|
* );
|
|
99
175
|
* ```
|
|
100
176
|
*/
|
|
@@ -147,17 +223,24 @@ export class OpenAIWhisperSpeechToTextProvider {
|
|
|
147
223
|
*/
|
|
148
224
|
async transcribe(audio, options = {}) {
|
|
149
225
|
const form = new FormData();
|
|
150
|
-
const
|
|
151
|
-
const model = options.model
|
|
226
|
+
const requestedFormat = options.responseFormat;
|
|
227
|
+
const model = pickModel(options.model, this.config.model, requestedFormat);
|
|
228
|
+
const responseFormat = requestedFormat ?? (isWhisperModel(model) ? 'verbose_json' : 'json');
|
|
152
229
|
// Generate a filename with the correct extension for Whisper's format detection
|
|
153
230
|
const fileName = audio.fileName ?? `speech.${audio.format ?? 'wav'}`;
|
|
154
231
|
// Build the multipart form payload — Whisper requires a file upload
|
|
155
232
|
form.append('file', new Blob([Uint8Array.from(audio.data)], { type: audio.mimeType ?? 'audio/wav' }), fileName);
|
|
156
233
|
form.append('model', model);
|
|
157
234
|
form.append('response_format', responseFormat);
|
|
158
|
-
// Optional fields
|
|
159
|
-
|
|
160
|
-
|
|
235
|
+
// Optional fields are sent only when set, to avoid API warnings.
|
|
236
|
+
// gpt-transcribe reads its language hint from `languages`; OpenAI asks
|
|
237
|
+
// callers not to send both fields.
|
|
238
|
+
if (options.language) {
|
|
239
|
+
if (takesLanguageList(model))
|
|
240
|
+
form.append('languages[]', options.language);
|
|
241
|
+
else
|
|
242
|
+
form.append('language', options.language);
|
|
243
|
+
}
|
|
161
244
|
if (options.prompt)
|
|
162
245
|
form.append('prompt', options.prompt);
|
|
163
246
|
if (typeof options.temperature === 'number') {
|
|
@@ -191,12 +274,19 @@ export class OpenAIWhisperSpeechToTextProvider {
|
|
|
191
274
|
},
|
|
192
275
|
};
|
|
193
276
|
}
|
|
194
|
-
// JSON responses (verbose_json or json)
|
|
277
|
+
// JSON responses (verbose_json or json) are parsed and normalized. Only
|
|
278
|
+
// verbose_json carries `duration` and `language`; the json answer of the
|
|
279
|
+
// newer models reports the audio length under `usage` and the detected
|
|
280
|
+
// languages as a `languages` list.
|
|
195
281
|
const payload = (await response.json());
|
|
196
|
-
const durationSeconds = typeof payload.duration === 'number'
|
|
282
|
+
const durationSeconds = typeof payload.duration === 'number'
|
|
283
|
+
? payload.duration
|
|
284
|
+
: (usageSeconds(payload.usage) ?? audio.durationSeconds);
|
|
197
285
|
return {
|
|
198
286
|
text: typeof payload.text === 'string' ? payload.text : '',
|
|
199
|
-
language: typeof payload.language === 'string'
|
|
287
|
+
language: typeof payload.language === 'string'
|
|
288
|
+
? payload.language
|
|
289
|
+
: (firstDetectedLanguage(payload.languages) ?? options.language),
|
|
200
290
|
durationSeconds,
|
|
201
291
|
cost: 0,
|
|
202
292
|
segments: normalizeSegments(payload.segments),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIWhisperSpeechToTextProvider.js","sourceRoot":"","sources":["../../../../src/io/hearing/providers/OpenAIWhisperSpeechToTextProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenAIWhisperSpeechToTextProvider.js","sourceRoot":"","sources":["../../../../src/io/hearing/providers/OpenAIWhisperSpeechToTextProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,12 +5,18 @@
|
|
|
5
5
|
* - **`Buffer`** — returned as-is.
|
|
6
6
|
* - **Base64 data URL** — e.g. `data:image/png;base64,iVBOR...`. The base64
|
|
7
7
|
* payload is extracted and decoded.
|
|
8
|
-
* - **Raw base64 string** —
|
|
9
|
-
* path is
|
|
8
|
+
* - **Raw base64 string** — decoded. A string that does not look like a URL
|
|
9
|
+
* or a file path is decoded directly. One that looks like a path is read as
|
|
10
|
+
* a file first, and decoded when no file exists there and it is base64
|
|
11
|
+
* (standard or URL-safe) whose bytes start with a PNG, JPEG, GIF, WebP, TIFF,
|
|
12
|
+
* AVIF or HEIC signature: standard base64 uses `/` (RFC 4648, Table 1), so a
|
|
13
|
+
* JPEG's base64 begins with `/9j/`. A missing path is still an error.
|
|
10
14
|
* - **`file://` URL** — resolved to a local filesystem path and read.
|
|
11
15
|
* - **HTTP/HTTPS URL** — fetched via `globalThis.fetch` and buffered.
|
|
12
|
-
* - **Local file path** —
|
|
13
|
-
*
|
|
16
|
+
* - **Local file path** — a string that contains `/` or `\`, or ends in a
|
|
17
|
+
* file extension, is read with `fs.readFile`. A string from an
|
|
18
|
+
* untrusted caller can name any file the process can read, so pass such
|
|
19
|
+
* input as a `Buffer` or a data URL.
|
|
14
20
|
*
|
|
15
21
|
* @param input - The image in any supported format.
|
|
16
22
|
* @returns A `Buffer` containing the raw image bytes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageToBuffer.d.ts","sourceRoot":"","sources":["../../../../src/io/media/images/imageToBuffer.ts"],"names":[],"mappings":"AAYA
|
|
1
|
+
{"version":3,"file":"imageToBuffer.d.ts","sourceRoot":"","sources":["../../../../src/io/media/images/imageToBuffer.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4D3E;AA+CD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAI3D"}
|
|
@@ -16,12 +16,18 @@ import * as fs from 'node:fs/promises';
|
|
|
16
16
|
* - **`Buffer`** — returned as-is.
|
|
17
17
|
* - **Base64 data URL** — e.g. `data:image/png;base64,iVBOR...`. The base64
|
|
18
18
|
* payload is extracted and decoded.
|
|
19
|
-
* - **Raw base64 string** —
|
|
20
|
-
* path is
|
|
19
|
+
* - **Raw base64 string** — decoded. A string that does not look like a URL
|
|
20
|
+
* or a file path is decoded directly. One that looks like a path is read as
|
|
21
|
+
* a file first, and decoded when no file exists there and it is base64
|
|
22
|
+
* (standard or URL-safe) whose bytes start with a PNG, JPEG, GIF, WebP, TIFF,
|
|
23
|
+
* AVIF or HEIC signature: standard base64 uses `/` (RFC 4648, Table 1), so a
|
|
24
|
+
* JPEG's base64 begins with `/9j/`. A missing path is still an error.
|
|
21
25
|
* - **`file://` URL** — resolved to a local filesystem path and read.
|
|
22
26
|
* - **HTTP/HTTPS URL** — fetched via `globalThis.fetch` and buffered.
|
|
23
|
-
* - **Local file path** —
|
|
24
|
-
*
|
|
27
|
+
* - **Local file path** — a string that contains `/` or `\`, or ends in a
|
|
28
|
+
* file extension, is read with `fs.readFile`. A string from an
|
|
29
|
+
* untrusted caller can name any file the process can read, so pass such
|
|
30
|
+
* input as a `Buffer` or a data URL.
|
|
25
31
|
*
|
|
26
32
|
* @param input - The image in any supported format.
|
|
27
33
|
* @returns A `Buffer` containing the raw image bytes.
|
|
@@ -72,11 +78,62 @@ export async function imageToBuffer(input) {
|
|
|
72
78
|
// treat it as a filesystem path. Otherwise assume raw base64.
|
|
73
79
|
const looksLikePath = trimmed.includes('/') || trimmed.includes('\\') || /\.\w{2,5}$/.test(trimmed);
|
|
74
80
|
if (looksLikePath) {
|
|
75
|
-
|
|
81
|
+
try {
|
|
82
|
+
return await fs.readFile(trimmed);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
// Standard base64 uses `/` (RFC 4648, Table 1), so raw base64 looks like a
|
|
86
|
+
// path. When no file exists there and the string decodes to image bytes,
|
|
87
|
+
// it is the image; a missing path that does not stays an error.
|
|
88
|
+
const decoded = isMissingFileError(error) ? decodeBase64Image(trimmed) : null;
|
|
89
|
+
if (decoded) {
|
|
90
|
+
return decoded;
|
|
91
|
+
}
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
76
94
|
}
|
|
77
95
|
// Fallback: raw base64 string (no data URL prefix).
|
|
78
96
|
return Buffer.from(trimmed, 'base64');
|
|
79
97
|
}
|
|
98
|
+
/** The standard and URL-safe base64 alphabets of RFC 4648, with optional padding. */
|
|
99
|
+
const BASE64_PATTERN = /^[A-Za-z0-9+/_-]+={0,2}$/;
|
|
100
|
+
/**
|
|
101
|
+
* Decodes `value` when it is base64 whose bytes start with an image signature.
|
|
102
|
+
*
|
|
103
|
+
* @param value - A string `fs.readFile` found no file at.
|
|
104
|
+
* @returns The decoded bytes, or `null` when `value` is not base64 or its bytes
|
|
105
|
+
* do not start with a PNG, JPEG, GIF, WebP, TIFF, AVIF or HEIC signature.
|
|
106
|
+
*/
|
|
107
|
+
function decodeBase64Image(value) {
|
|
108
|
+
const compact = value.replace(/\s+/g, '');
|
|
109
|
+
if (!BASE64_PATTERN.test(compact)) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
const bytes = Buffer.from(compact, 'base64');
|
|
113
|
+
return hasImageSignature(bytes) ? bytes : null;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* True when `bytes` start with the signature of PNG, JPEG, GIF, WebP, TIFF, or
|
|
117
|
+
* an ISO media file such as AVIF or HEIC (`ftyp` at offset 4).
|
|
118
|
+
*/
|
|
119
|
+
function hasImageSignature(bytes) {
|
|
120
|
+
const startsWith = (...signature) => signature.every((byte, i) => bytes[i] === byte);
|
|
121
|
+
return (startsWith(0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a) || // PNG
|
|
122
|
+
startsWith(0xff, 0xd8, 0xff) || // JPEG
|
|
123
|
+
startsWith(0x47, 0x49, 0x46, 0x38) || // GIF8
|
|
124
|
+
(startsWith(0x52, 0x49, 0x46, 0x46) && bytes.subarray(8, 12).toString('latin1') === 'WEBP') ||
|
|
125
|
+
startsWith(0x49, 0x49, 0x2a, 0x00) || // TIFF, little-endian
|
|
126
|
+
startsWith(0x4d, 0x4d, 0x00, 0x2a) || // TIFF, big-endian
|
|
127
|
+
bytes.subarray(4, 8).toString('latin1') === 'ftyp');
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* True for the errors `fs.readFile` gives when nothing exists at the path,
|
|
131
|
+
* which are the errors a base64 string read as a path gives.
|
|
132
|
+
*/
|
|
133
|
+
function isMissingFileError(error) {
|
|
134
|
+
const code = error?.code;
|
|
135
|
+
return code === 'ENOENT' || code === 'ENOTDIR' || code === 'ENAMETOOLONG';
|
|
136
|
+
}
|
|
80
137
|
/**
|
|
81
138
|
* Converts a Node.js `Buffer` into a DOM-compatible `BlobPart`.
|
|
82
139
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageToBuffer.js","sourceRoot":"","sources":["../../../../src/io/media/images/imageToBuffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC
|
|
1
|
+
{"version":3,"file":"imageToBuffer.js","sourceRoot":"","sources":["../../../../src/io/media/images/imageToBuffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoAnalyzer.d.ts","sourceRoot":"","sources":["../../../../src/io/media/video/VideoAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAeH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EAGlB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAQlE;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;OAIG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAEnC;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,gDAAgD;IAChD,OAAO,CAAC,eAAe,CAAC,CAAiB;IAEzC,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAuB;IAErD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAE/C,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAM9C;;;;;;;;;OASG;gBACS,IAAI,CAAC,EAAE,iBAAiB;IAWpC;;;;;;;;;OASG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAyCxE;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"VideoAnalyzer.d.ts","sourceRoot":"","sources":["../../../../src/io/media/video/VideoAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAeH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EAGlB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAQlE;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;OAIG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAEnC;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,gDAAgD;IAChD,OAAO,CAAC,eAAe,CAAC,CAAiB;IAEzC,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAuB;IAErD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAE/C,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAM9C;;;;;;;;;OASG;gBACS,IAAI,CAAC,EAAE,iBAAiB;IAWpC;;;;;;;;;OASG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAyCxE;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+M3E;;;;;;;OAOG;YACW,uBAAuB;IAYrC;;;;;;;;;OASG;YACW,cAAc;IAkB5B;;;;;;;;;;OAUG;YACW,cAAc;IAmC5B;;;;;;;;;;;OAWG;YACW,aAAa;IA+B3B;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;;;;;;;;;;OAYG;YACW,aAAa;IAyB3B;;;;;;;;;;OAUG;YACW,gBAAgB;IAkD9B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;;;OAKG;YACW,cAAc;IAQ5B;;;;;;;OAOG;YACW,qBAAqB;IAQnC;;;;;OAKG;YACW,iBAAiB;IAe/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;CAWtB"}
|
|
@@ -247,7 +247,10 @@ export class VideoAnalyzer {
|
|
|
247
247
|
const audioBuffer = await this._extractAudio(videoPath, audioPath);
|
|
248
248
|
if (audioBuffer && audioBuffer.length > 0) {
|
|
249
249
|
this._emitProgress(request.onProgress, 'transcribing', 30, 'Transcribing audio');
|
|
250
|
-
|
|
250
|
+
// Per-scene transcripts need segment timestamps. The OpenAI
|
|
251
|
+
// provider returns them only for verbose_json (served by
|
|
252
|
+
// whisper-1); the other providers ignore the field.
|
|
253
|
+
const sttResult = await this._sttProvider.transcribe({ data: audioBuffer, mimeType: 'audio/wav', sampleRate: 16000 }, { responseFormat: 'verbose_json' });
|
|
251
254
|
fullTranscript = sttResult.text;
|
|
252
255
|
// Map transcript segments to scenes by time range
|
|
253
256
|
if (sttResult.segments && sttResult.segments.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoAnalyzer.js","sourceRoot":"","sources":["../../../../src/io/media/video/VideoAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VideoAnalyzer.js","sourceRoot":"","sources":["../../../../src/io/media/video/VideoAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -133,7 +133,7 @@ export declare class SpeechProviderResolver extends EventEmitter {
|
|
|
133
133
|
* @param requirements - Optional filtering criteria (streaming, local, features,
|
|
134
134
|
* preferredIds).
|
|
135
135
|
* @returns The resolved STT provider, possibly wrapped in a FallbackSTTProxy.
|
|
136
|
-
* @throws {Error} When no configured STT provider matches the requirements.
|
|
136
|
+
* @throws {Error} When no configured STT provider with an instance matches the requirements.
|
|
137
137
|
*
|
|
138
138
|
* @see {@link FallbackSTTProxy} for fallback chain behaviour
|
|
139
139
|
* @see {@link ProviderRequirements} for available filter options
|
|
@@ -161,7 +161,7 @@ export declare class SpeechProviderResolver extends EventEmitter {
|
|
|
161
161
|
* @param requirements - Optional filtering criteria (streaming, local, features,
|
|
162
162
|
* preferredIds).
|
|
163
163
|
* @returns The resolved TTS provider, possibly wrapped in a FallbackTTSProxy.
|
|
164
|
-
* @throws {Error} When no configured TTS provider matches the requirements.
|
|
164
|
+
* @throws {Error} When no configured TTS provider with an instance matches the requirements.
|
|
165
165
|
*
|
|
166
166
|
* @see {@link FallbackTTSProxy} for fallback chain behaviour
|
|
167
167
|
* @see {@link ProviderRequirements} for available filter options
|
|
@@ -181,7 +181,7 @@ export declare class SpeechProviderResolver extends EventEmitter {
|
|
|
181
181
|
* would cause state inconsistency.
|
|
182
182
|
*
|
|
183
183
|
* @returns The resolved VAD provider instance.
|
|
184
|
-
* @throws {Error} When no VAD provider is registered
|
|
184
|
+
* @throws {Error} When no configured VAD provider with an instance is registered.
|
|
185
185
|
*
|
|
186
186
|
* @example
|
|
187
187
|
* ```ts
|
|
@@ -241,12 +241,12 @@ export declare class SpeechProviderResolver extends EventEmitter {
|
|
|
241
241
|
* **Path A — Preferred IDs provided:**
|
|
242
242
|
* When `requirements.preferredIds` is set, iterate through the IDs in the
|
|
243
243
|
* caller's specified order. For each ID, look up the registration and include
|
|
244
|
-
* it only if it matches the kind, is configured,
|
|
245
|
-
* requirements. This preserves the caller's explicit ordering preference.
|
|
244
|
+
* it only if it matches the kind, is configured, holds a provider instance,
|
|
245
|
+
* and satisfies all other requirements. This preserves the caller's explicit ordering preference.
|
|
246
246
|
*
|
|
247
247
|
* **Path B — No preferred IDs:**
|
|
248
|
-
* Return all configured providers of the requested kind that
|
|
249
|
-
* requirements, sorted by ascending priority (lower = better). This is the
|
|
248
|
+
* Return all configured providers of the requested kind that hold an
|
|
249
|
+
* instance and match the requirements, sorted by ascending priority (lower = better). This is the
|
|
250
250
|
* default path for most callers.
|
|
251
251
|
*
|
|
252
252
|
* @param kind - The provider kind to resolve ('stt', 'tts', etc.).
|
|
@@ -291,8 +291,10 @@ export declare class SpeechProviderResolver extends EventEmitter {
|
|
|
291
291
|
* implemented backends (e.g. NVIDIA NeMo, Bark).
|
|
292
292
|
*
|
|
293
293
|
* Core providers are registered with `priority: 100` and `source: 'core'`.
|
|
294
|
-
*
|
|
295
|
-
*
|
|
294
|
+
* A core entry has no instance (`provider` is `null`): it records the id and
|
|
295
|
+
* whether its keys are set. `SpeechRuntime` registers the instances it builds
|
|
296
|
+
* under the same ids, and an id that already holds an instance is skipped, so
|
|
297
|
+
* a refresh keeps it. The resolve methods skip entries without an instance.
|
|
296
298
|
*
|
|
297
299
|
* @example
|
|
298
300
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpeechProviderResolver.d.ts","sourceRoot":"","sources":["../../../src/io/speech/SpeechProviderResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;IA2BpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IA3BtB;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAA2C;IAEhE;;;;;;;;;;;;;;;;;OAiBG;gBAEgB,MAAM,CAAC,EAAE,oBAAoB,YAAA,EAC7B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe;IAKxE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,GAAG,EAAE,oBAAoB,GAAG,IAAI;IAKzC;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,EAAE;IAM/D;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,UAAU,CAAC,YAAY,CAAC,EAAE,oBAAoB,GAAG,oBAAoB;IAiBrE;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,UAAU,CAAC,YAAY,CAAC,EAAE,oBAAoB,GAAG,oBAAoB;IAgBrE;;;;;;;;;;;;;;;OAeG;IACH,UAAU,IAAI,iBAAiB;IAQ/B;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,IAAI,gBAAgB,GAAG,IAAI;IAS1C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,OAAO,CAAC,gBAAgB,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"SpeechProviderResolver.d.ts","sourceRoot":"","sources":["../../../src/io/speech/SpeechProviderResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;IA2BpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IA3BtB;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAA2C;IAEhE;;;;;;;;;;;;;;;;;OAiBG;gBAEgB,MAAM,CAAC,EAAE,oBAAoB,YAAA,EAC7B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe;IAKxE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,GAAG,EAAE,oBAAoB,GAAG,IAAI;IAKzC;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,EAAE;IAM/D;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,UAAU,CAAC,YAAY,CAAC,EAAE,oBAAoB,GAAG,oBAAoB;IAiBrE;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,UAAU,CAAC,YAAY,CAAC,EAAE,oBAAoB,GAAG,oBAAoB;IAgBrE;;;;;;;;;;;;;;;OAeG;IACH,UAAU,IAAI,iBAAiB;IAQ/B;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,IAAI,gBAAgB,GAAG,IAAI;IAS1C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,OAAO,CAAC,gBAAgB,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,aAAa;IA4BrB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,qBAAqB;IAsD7B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,0BAA0B;IA6ClC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,wBAAwB;CAcjC"}
|
|
@@ -143,7 +143,7 @@ export class SpeechProviderResolver extends EventEmitter {
|
|
|
143
143
|
* @param requirements - Optional filtering criteria (streaming, local, features,
|
|
144
144
|
* preferredIds).
|
|
145
145
|
* @returns The resolved STT provider, possibly wrapped in a FallbackSTTProxy.
|
|
146
|
-
* @throws {Error} When no configured STT provider matches the requirements.
|
|
146
|
+
* @throws {Error} When no configured STT provider with an instance matches the requirements.
|
|
147
147
|
*
|
|
148
148
|
* @see {@link FallbackSTTProxy} for fallback chain behaviour
|
|
149
149
|
* @see {@link ProviderRequirements} for available filter options
|
|
@@ -182,7 +182,7 @@ export class SpeechProviderResolver extends EventEmitter {
|
|
|
182
182
|
* @param requirements - Optional filtering criteria (streaming, local, features,
|
|
183
183
|
* preferredIds).
|
|
184
184
|
* @returns The resolved TTS provider, possibly wrapped in a FallbackTTSProxy.
|
|
185
|
-
* @throws {Error} When no configured TTS provider matches the requirements.
|
|
185
|
+
* @throws {Error} When no configured TTS provider with an instance matches the requirements.
|
|
186
186
|
*
|
|
187
187
|
* @see {@link FallbackTTSProxy} for fallback chain behaviour
|
|
188
188
|
* @see {@link ProviderRequirements} for available filter options
|
|
@@ -212,7 +212,7 @@ export class SpeechProviderResolver extends EventEmitter {
|
|
|
212
212
|
* would cause state inconsistency.
|
|
213
213
|
*
|
|
214
214
|
* @returns The resolved VAD provider instance.
|
|
215
|
-
* @throws {Error} When no VAD provider is registered
|
|
215
|
+
* @throws {Error} When no configured VAD provider with an instance is registered.
|
|
216
216
|
*
|
|
217
217
|
* @example
|
|
218
218
|
* ```ts
|
|
@@ -221,7 +221,7 @@ export class SpeechProviderResolver extends EventEmitter {
|
|
|
221
221
|
* ```
|
|
222
222
|
*/
|
|
223
223
|
resolveVAD() {
|
|
224
|
-
const vads = this.listProviders('vad').filter((r) => r.isConfigured);
|
|
224
|
+
const vads = this.listProviders('vad').filter((r) => r.isConfigured && r.provider != null);
|
|
225
225
|
if (vads.length === 0) {
|
|
226
226
|
throw new Error('No VAD provider registered');
|
|
227
227
|
}
|
|
@@ -293,12 +293,12 @@ export class SpeechProviderResolver extends EventEmitter {
|
|
|
293
293
|
* **Path A — Preferred IDs provided:**
|
|
294
294
|
* When `requirements.preferredIds` is set, iterate through the IDs in the
|
|
295
295
|
* caller's specified order. For each ID, look up the registration and include
|
|
296
|
-
* it only if it matches the kind, is configured,
|
|
297
|
-
* requirements. This preserves the caller's explicit ordering preference.
|
|
296
|
+
* it only if it matches the kind, is configured, holds a provider instance,
|
|
297
|
+
* and satisfies all other requirements. This preserves the caller's explicit ordering preference.
|
|
298
298
|
*
|
|
299
299
|
* **Path B — No preferred IDs:**
|
|
300
|
-
* Return all configured providers of the requested kind that
|
|
301
|
-
* requirements, sorted by ascending priority (lower = better). This is the
|
|
300
|
+
* Return all configured providers of the requested kind that hold an
|
|
301
|
+
* instance and match the requirements, sorted by ascending priority (lower = better). This is the
|
|
302
302
|
* default path for most callers.
|
|
303
303
|
*
|
|
304
304
|
* @param kind - The provider kind to resolve ('stt', 'tts', etc.).
|
|
@@ -320,6 +320,7 @@ export class SpeechProviderResolver extends EventEmitter {
|
|
|
320
320
|
if (reg &&
|
|
321
321
|
reg.kind === kind &&
|
|
322
322
|
reg.isConfigured &&
|
|
323
|
+
reg.provider != null &&
|
|
323
324
|
this.matchesRequirements(reg, requirements)) {
|
|
324
325
|
results.push(reg);
|
|
325
326
|
}
|
|
@@ -328,7 +329,7 @@ export class SpeechProviderResolver extends EventEmitter {
|
|
|
328
329
|
}
|
|
329
330
|
// Path B: all matching providers sorted by priority
|
|
330
331
|
return this.listProviders(kind)
|
|
331
|
-
.filter((r) => r.isConfigured)
|
|
332
|
+
.filter((r) => r.isConfigured && r.provider != null)
|
|
332
333
|
.filter((r) => this.matchesRequirements(r, requirements));
|
|
333
334
|
}
|
|
334
335
|
/**
|
|
@@ -378,8 +379,10 @@ export class SpeechProviderResolver extends EventEmitter {
|
|
|
378
379
|
* implemented backends (e.g. NVIDIA NeMo, Bark).
|
|
379
380
|
*
|
|
380
381
|
* Core providers are registered with `priority: 100` and `source: 'core'`.
|
|
381
|
-
*
|
|
382
|
-
*
|
|
382
|
+
* A core entry has no instance (`provider` is `null`): it records the id and
|
|
383
|
+
* whether its keys are set. `SpeechRuntime` registers the instances it builds
|
|
384
|
+
* under the same ids, and an id that already holds an instance is skipped, so
|
|
385
|
+
* a refresh keeps it. The resolve methods skip entries without an instance.
|
|
383
386
|
*
|
|
384
387
|
* @example
|
|
385
388
|
* ```ts
|
|
@@ -414,6 +417,9 @@ export class SpeechProviderResolver extends EventEmitter {
|
|
|
414
417
|
{ id: 'agentos-adaptive-vad', kind: 'vad', envVars: [] },
|
|
415
418
|
];
|
|
416
419
|
for (const def of coreProviders) {
|
|
420
|
+
// Keep an instance that SpeechRuntime or an extension registered under this id.
|
|
421
|
+
if (this.registrations.get(def.id)?.provider)
|
|
422
|
+
continue;
|
|
417
423
|
const catalogEntry = findSpeechProviderCatalogEntry(def.id);
|
|
418
424
|
// Skip providers not found in the catalog (should not happen, but defensive)
|
|
419
425
|
if (!catalogEntry)
|
|
@@ -427,7 +433,7 @@ export class SpeechProviderResolver extends EventEmitter {
|
|
|
427
433
|
this.register({
|
|
428
434
|
id: def.id,
|
|
429
435
|
kind: def.kind,
|
|
430
|
-
provider: null, //
|
|
436
|
+
provider: null, // No instance: SpeechRuntime or an extension registers one under this id.
|
|
431
437
|
catalogEntry,
|
|
432
438
|
isConfigured,
|
|
433
439
|
priority: 100,
|