@framers/agentos 0.11.0 → 0.11.1
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/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,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module voice-pipeline/providers/OpenAIWhisperBatchSTT
|
|
3
3
|
*
|
|
4
|
-
* Batch speech-to-text via OpenAI's
|
|
4
|
+
* Batch speech-to-text via OpenAI's transcription endpoint. Implements
|
|
5
5
|
* {@link IBatchSTT} using a multipart upload of the complete audio buffer.
|
|
6
|
+
* The default model is `gpt-transcribe`, which OpenAI recommends for recorded
|
|
7
|
+
* speech; OpenAI removes `whisper-1` from the API on 2027-02-26.
|
|
6
8
|
* Positioned as a fallback behind {@link DeepgramPreRecordedBatchSTT} in a
|
|
7
9
|
* {@link BatchSTTFallback} chain.
|
|
8
10
|
*
|
|
@@ -12,11 +14,11 @@
|
|
|
12
14
|
import type { IBatchSTT, BatchSTTConfig, BatchSTTResult } from '../types.js';
|
|
13
15
|
/** Injectable fetch for tests; defaults to the global. */
|
|
14
16
|
type FetchLike = (input: string, init?: RequestInit) => Promise<Response>;
|
|
15
|
-
/** Configuration for the OpenAI
|
|
17
|
+
/** Configuration for the OpenAI batch STT provider. */
|
|
16
18
|
export interface OpenAIWhisperBatchSTTConfig {
|
|
17
19
|
/** OpenAI API key. */
|
|
18
20
|
apiKey: string;
|
|
19
|
-
/** Model to use. @default '
|
|
21
|
+
/** Model to use. @default 'gpt-transcribe' */
|
|
20
22
|
model?: string;
|
|
21
23
|
/** BCP-47 language hint. @default 'en' */
|
|
22
24
|
language?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIWhisperBatchSTT.d.ts","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/OpenAIWhisperBatchSTT.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"OpenAIWhisperBatchSTT.d.ts","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/OpenAIWhisperBatchSTT.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7E,0DAA0D;AAC1D,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAkB1E,uDAAuD;AACvD,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAKD,qBAAa,qBAAsB,YAAW,SAAS;IACrD,QAAQ,CAAC,UAAU,oBAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,MAAM,EAAE,2BAA2B;IASzC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;CA6ClF"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module voice-pipeline/providers/OpenAIWhisperBatchSTT
|
|
3
3
|
*
|
|
4
|
-
* Batch speech-to-text via OpenAI's
|
|
4
|
+
* Batch speech-to-text via OpenAI's transcription endpoint. Implements
|
|
5
5
|
* {@link IBatchSTT} using a multipart upload of the complete audio buffer.
|
|
6
|
+
* The default model is `gpt-transcribe`, which OpenAI recommends for recorded
|
|
7
|
+
* speech; OpenAI removes `whisper-1` from the API on 2027-02-26.
|
|
6
8
|
* Positioned as a fallback behind {@link DeepgramPreRecordedBatchSTT} in a
|
|
7
9
|
* {@link BatchSTTFallback} chain.
|
|
8
10
|
*
|
|
@@ -10,13 +12,19 @@
|
|
|
10
12
|
* real result, not a provider failure).
|
|
11
13
|
*/
|
|
12
14
|
import { EmptyTranscriptError } from './BatchSTTFallback.js';
|
|
15
|
+
/** The model OpenAI recommends for transcribing recorded speech. */
|
|
16
|
+
const DEFAULT_MODEL = 'gpt-transcribe';
|
|
17
|
+
/** `gpt-transcribe` takes language hints as a `languages` list in place of `language`. */
|
|
18
|
+
function takesLanguageList(model) {
|
|
19
|
+
return model === 'gpt-transcribe' || model.startsWith('gpt-transcribe-');
|
|
20
|
+
}
|
|
13
21
|
const DEFAULT_BASE_URL = 'https://api.openai.com/v1/audio/transcriptions';
|
|
14
22
|
const DEFAULT_TIMEOUT_MS = 60000;
|
|
15
23
|
export class OpenAIWhisperBatchSTT {
|
|
16
24
|
constructor(config) {
|
|
17
25
|
this.providerId = 'openai-whisper';
|
|
18
26
|
this.apiKey = config.apiKey;
|
|
19
|
-
this.model = config.model ??
|
|
27
|
+
this.model = config.model ?? DEFAULT_MODEL;
|
|
20
28
|
this.language = config.language ?? 'en';
|
|
21
29
|
this.baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;
|
|
22
30
|
this.timeoutMs = config.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
@@ -27,9 +35,18 @@ export class OpenAIWhisperBatchSTT {
|
|
|
27
35
|
const ext = mimeType.split('/')[1]?.split(';')[0] ?? 'webm';
|
|
28
36
|
const form = new FormData();
|
|
29
37
|
form.append('file', new Blob([audio], { type: mimeType }), `voice-note.${ext}`);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
form.append('
|
|
38
|
+
const model = config?.model ?? this.model;
|
|
39
|
+
const language = config?.language ?? this.language;
|
|
40
|
+
form.append('model', model);
|
|
41
|
+
// gpt-transcribe reads its language hint from `languages`; OpenAI asks
|
|
42
|
+
// callers not to send both fields.
|
|
43
|
+
if (takesLanguageList(model))
|
|
44
|
+
form.append('languages[]', language);
|
|
45
|
+
else
|
|
46
|
+
form.append('language', language);
|
|
47
|
+
// whisper-1 answers in verbose_json, which carries the duration; the newer
|
|
48
|
+
// models answer in json and report the duration under `usage`.
|
|
49
|
+
form.append('response_format', model.startsWith('whisper') ? 'verbose_json' : 'json');
|
|
33
50
|
const res = await this.fetchImpl(this.baseUrl, {
|
|
34
51
|
method: 'POST',
|
|
35
52
|
headers: { Authorization: `Bearer ${this.apiKey}` },
|
|
@@ -45,7 +62,8 @@ export class OpenAIWhisperBatchSTT {
|
|
|
45
62
|
if (!transcript) {
|
|
46
63
|
throw new EmptyTranscriptError(this.providerId);
|
|
47
64
|
}
|
|
48
|
-
const
|
|
65
|
+
const usageSeconds = data.usage?.type === 'duration' ? data.usage.seconds : undefined;
|
|
66
|
+
const duration = data.duration ?? usageSeconds ?? 0;
|
|
49
67
|
return {
|
|
50
68
|
transcript,
|
|
51
69
|
durationMs: Math.round(duration * 1000),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIWhisperBatchSTT.js","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/OpenAIWhisperBatchSTT.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"OpenAIWhisperBatchSTT.js","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/OpenAIWhisperBatchSTT.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@framers/agentos",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "AgentOS: open-source TypeScript framework for autonomous AI agents. Unified graph orchestration, cognitive memory, runtime tool forging, multi-tier guardrails, voice pipeline, and 11 LLM providers.",
|
|
5
5
|
"homepage": "https://agentos.sh",
|
|
6
6
|
"repository": {
|