@llmrtc/llmrtc-provider-openai 1.0.0 → 1.1.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/CHANGELOG.md ADDED
@@ -0,0 +1,45 @@
1
+ # @llmrtc/llmrtc-provider-openai
2
+
3
+ ## 1.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - b35b4e1: Fix streaming TTS failing with "response.body?.getReader is not a function"
8
+ when the OpenAI SDK returns a Node Readable body (Node < 18 or apps loading
9
+ the SDK's Node shims). The provider now handles web ReadableStream bodies,
10
+ async-iterable Node stream bodies, and buffered fallback. Previously the
11
+ error was caught upstream and every turn silently fell back to
12
+ non-streaming TTS, adding seconds of latency.
13
+
14
+ ## 1.1.0
15
+
16
+ ### Minor Changes
17
+
18
+ - 8ff3ea3: Correctness release: make the advertised behavior actually work end to end.
19
+ - Core: system prompt is always sent and pinned outside the history window;
20
+ runTurnStream accepts an AbortSignal (barge-in); onLLMEnd has real
21
+ guardrail semantics; concurrent turns serialize correctly; clearHistory
22
+ transitions clear conversation history; PlaybookHooks are wired; tool
23
+ executor abort/ordering fixes; deep tool-argument validation.
24
+ - Providers: multi-turn tool calling now works across OpenAI, Anthropic,
25
+ Gemini, Bedrock, OpenRouter, LMStudio, and Ollama (history replay,
26
+ parallel tool results, streaming accumulation); malformed tool arguments
27
+ are flagged instead of silently becoming {}; Bedrock defaults to an
28
+ invocable inference profile; Ollama NDJSON streaming is buffered
29
+ correctly; ElevenLabs format mapping fixed; Whisper uploads are named by
30
+ their actual container.
31
+ - Backend: turns serialize per connection and barge-in aborts the in-flight
32
+ turn in any phase; session reconnection binds the recovered history;
33
+ Metered TURN credentials refresh on a TTL; start()/stop() lifecycle
34
+ fixes; real-time audio pacing.
35
+ - Web client: vision frames are delivered in time to reach the turn;
36
+ session resume follows the protocol and actually restores history;
37
+ close()/failure releases the microphone and camera; frame capture works
38
+ outside Chromium; non-WebRTC fallback (sendAudio/ttsChunk) is usable.
39
+ - Packaging: packages resolve under require(), clean checkouts build first
40
+ try, and npm tarballs ship the NOTICE file.
41
+
42
+ ### Patch Changes
43
+
44
+ - Updated dependencies [8ff3ea3]
45
+ - @llmrtc/llmrtc-core@1.1.0
package/NOTICE ADDED
@@ -0,0 +1,7 @@
1
+ LLMRTC
2
+ Copyright 2025 Next Path Software Consulting Inc., dba Metered
3
+
4
+ This product includes software developed by Next Path Software Consulting Inc., dba Metered.
5
+
6
+ Project home: https://www.llmrtc.org/
7
+ Company: https://www.metered.ca/
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { LLMChunk, LLMProvider, LLMRequest, LLMResult, STTProvider, STTResult, TTSProvider, TTSConfig, TTSResult } from '@llmrtc/llmrtc-core';
1
+ import { LLMChunk, LLMProvider, LLMRequest, LLMResult, STTProvider, STTConfig, STTResult, TTSProvider, TTSConfig, TTSResult } from '@llmrtc/llmrtc-core';
2
2
  export interface OpenAILLMConfig {
3
3
  apiKey: string;
4
4
  baseURL?: string;
@@ -25,7 +25,7 @@ export declare class OpenAIWhisperProvider implements STTProvider {
25
25
  private model;
26
26
  private language?;
27
27
  constructor(config: OpenAIWhisperConfig);
28
- transcribe(audio: Buffer): Promise<STTResult>;
28
+ transcribe(audio: Buffer, config?: STTConfig): Promise<STTResult>;
29
29
  }
30
30
  export type OpenAITTSVoice = 'alloy' | 'echo' | 'fable' | 'onyx' | 'nova' | 'shimmer';
31
31
  export type OpenAITTSFormat = 'mp3' | 'opus' | 'aac' | 'flac' | 'wav' | 'pcm';
@@ -59,6 +59,8 @@ export interface OpenAITTSConfig {
59
59
  export declare class OpenAITTSProvider implements TTSProvider {
60
60
  private readonly config;
61
61
  readonly name = "openai-tts";
62
+ /** OpenAI PCM output is 24kHz, 16-bit signed LE, mono */
63
+ readonly pcmSampleRate = 24000;
62
64
  private client;
63
65
  private model;
64
66
  private voice;
package/dist/index.js CHANGED
@@ -119,17 +119,41 @@ export class OpenAIWhisperProvider {
119
119
  this.model = config.model ?? 'whisper-1';
120
120
  this.language = config.language;
121
121
  }
122
- async transcribe(audio) {
122
+ async transcribe(audio, config) {
123
+ // The transcription endpoint keys decoding off the filename extension,
124
+ // so sniff the actual container instead of assuming one
125
+ const { filename, mimeType } = sniffAudioContainer(audio);
123
126
  // Use OpenAI SDK's toFile helper for cross-platform compatibility
124
- const file = await toFile(audio, 'audio.webm', { type: 'audio/webm' });
127
+ const file = await toFile(audio, filename, { type: mimeType });
125
128
  const res = await this.client.audio.transcriptions.create({
126
129
  file: file,
127
- model: this.model,
128
- language: this.language
130
+ model: config?.model ?? this.model,
131
+ language: config?.language ?? this.language
129
132
  });
130
133
  return { text: res.text ?? '', isFinal: true, raw: res };
131
134
  }
132
135
  }
136
+ /**
137
+ * Detect the audio container from magic bytes so the upload filename
138
+ * matches the actual data. Defaults to webm (the common browser capture
139
+ * format) when unknown.
140
+ */
141
+ function sniffAudioContainer(audio) {
142
+ if (audio.length >= 12 && audio.toString('ascii', 0, 4) === 'RIFF' && audio.toString('ascii', 8, 12) === 'WAVE') {
143
+ return { filename: 'audio.wav', mimeType: 'audio/wav' };
144
+ }
145
+ if (audio.length >= 4 && audio.readUInt32BE(0) === 0x1a45dfa3) {
146
+ return { filename: 'audio.webm', mimeType: 'audio/webm' };
147
+ }
148
+ if (audio.length >= 4 && audio.toString('ascii', 0, 4) === 'OggS') {
149
+ return { filename: 'audio.ogg', mimeType: 'audio/ogg' };
150
+ }
151
+ if (audio.length >= 3 &&
152
+ (audio.toString('ascii', 0, 3) === 'ID3' || (audio[0] === 0xff && (audio[1] & 0xe0) === 0xe0))) {
153
+ return { filename: 'audio.mp3', mimeType: 'audio/mpeg' };
154
+ }
155
+ return { filename: 'audio.webm', mimeType: 'audio/webm' };
156
+ }
133
157
  function mapMessages(messages) {
134
158
  return messages.map((m) => {
135
159
  // Handle tool result messages
@@ -196,6 +220,13 @@ export class OpenAITTSProvider {
196
220
  writable: true,
197
221
  value: 'openai-tts'
198
222
  });
223
+ /** OpenAI PCM output is 24kHz, 16-bit signed LE, mono */
224
+ Object.defineProperty(this, "pcmSampleRate", {
225
+ enumerable: true,
226
+ configurable: true,
227
+ writable: true,
228
+ value: 24000
229
+ });
199
230
  Object.defineProperty(this, "client", {
200
231
  enumerable: true,
201
232
  configurable: true,
@@ -229,7 +260,7 @@ export class OpenAITTSProvider {
229
260
  const voice = overrideConfig?.voice ?? this.voice;
230
261
  const format = mapFormat(overrideConfig?.format);
231
262
  const response = await this.client.audio.speech.create({
232
- model: this.model,
263
+ model: overrideConfig?.model ?? this.model,
233
264
  voice,
234
265
  input: text,
235
266
  response_format: format,
@@ -253,26 +284,37 @@ export class OpenAITTSProvider {
253
284
  const voice = overrideConfig?.voice ?? this.voice;
254
285
  const format = mapFormat(overrideConfig?.format);
255
286
  const response = await this.client.audio.speech.create({
256
- model: this.model,
287
+ model: overrideConfig?.model ?? this.model,
257
288
  voice,
258
289
  input: text,
259
290
  response_format: format,
260
291
  speed: this.speed
261
292
  });
262
- // Response is a Response-like object with body stream
263
- const reader = response.body?.getReader();
264
- if (!reader) {
265
- // Fallback: return the whole buffer if streaming not available
266
- const buffer = Buffer.from(await response.arrayBuffer());
267
- yield buffer;
293
+ // The SDK's response body is a web ReadableStream when a global fetch
294
+ // is available, but a Node Readable when the SDK runs with its Node
295
+ // shims (e.g. Node < 18 or an app importing 'openai/shims/node').
296
+ // Handle both instead of assuming getReader() exists.
297
+ const body = response.body;
298
+ if (body && typeof body.getReader === 'function') {
299
+ const reader = body.getReader();
300
+ while (true) {
301
+ const { done, value } = await reader.read();
302
+ if (done)
303
+ break;
304
+ yield Buffer.from(value);
305
+ }
268
306
  return;
269
307
  }
270
- while (true) {
271
- const { done, value } = await reader.read();
272
- if (done)
273
- break;
274
- yield Buffer.from(value);
308
+ if (body &&
309
+ typeof body[Symbol.asyncIterator] === 'function') {
310
+ for await (const chunk of body) {
311
+ yield Buffer.from(chunk);
312
+ }
313
+ return;
275
314
  }
315
+ // Fallback: return the whole buffer if streaming is not available
316
+ const buffer = Buffer.from(await response.arrayBuffer());
317
+ yield buffer;
276
318
  }
277
319
  }
278
320
  /**
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ export function parseToolCallsFromOpenAI(toolCalls) {
51
51
  return toolCalls.map(call => ({
52
52
  callId: call.id,
53
53
  name: call.function.name,
54
- arguments: safeParseJSON(call.function.arguments),
54
+ ...parseArguments(call.function.arguments),
55
55
  }));
56
56
  }
57
57
  /**
@@ -82,24 +82,34 @@ export function processToolCallDelta(accumulators, delta) {
82
82
  */
83
83
  export function finalizeToolCalls(accumulators) {
84
84
  const calls = [];
85
- for (const [_, acc] of Array.from(accumulators.entries()).sort(([a], [b]) => a - b)) {
85
+ for (const [index, acc] of Array.from(accumulators.entries()).sort(([a], [b]) => a - b)) {
86
86
  calls.push({
87
- callId: acc.id,
87
+ // Some OpenAI-compatible backends omit ids on streamed tool calls;
88
+ // generate one so tool results can still be correlated in history
89
+ callId: acc.id || `call_${index}_${Date.now()}`,
88
90
  name: acc.name,
89
- arguments: safeParseJSON(acc.arguments),
91
+ ...parseArguments(acc.arguments),
90
92
  });
91
93
  }
92
94
  return calls;
93
95
  }
94
96
  /**
95
- * Safely parse JSON, returning empty object on failure
97
+ * Parse the model's arguments JSON. Empty input means "no arguments";
98
+ * unparseable input is flagged so executors can fail the call instead of
99
+ * running the tool with silently-empty arguments.
96
100
  */
97
- function safeParseJSON(str) {
101
+ function parseArguments(str) {
102
+ if (!str || !str.trim()) {
103
+ return { arguments: {} };
104
+ }
98
105
  try {
99
- return JSON.parse(str);
106
+ return { arguments: JSON.parse(str) };
100
107
  }
101
- catch {
102
- return {};
108
+ catch (err) {
109
+ return {
110
+ arguments: {},
111
+ parseError: err instanceof Error ? err.message : String(err),
112
+ };
103
113
  }
104
114
  }
105
115
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tool-adapter.js","sourceRoot":"","sources":["../src/tool-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-adapter.js","sourceRoot":"","sources":["../src/tool-adapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llmrtc/llmrtc-provider-openai",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "description": "OpenAI/compatible LLM + Whisper adapters for @llmrtc/LLMRTC",
5
5
  "homepage": "https://www.llmrtc.org",
6
6
  "license": "Apache-2.0",
@@ -22,7 +22,9 @@
22
22
  "files": [
23
23
  "dist",
24
24
  "README.md",
25
- "LICENSE"
25
+ "LICENSE",
26
+ "NOTICE",
27
+ "CHANGELOG.md"
26
28
  ],
27
29
  "scripts": {
28
30
  "build": "tsc -b",
@@ -30,8 +32,19 @@
30
32
  "prepublishOnly": "npm run build"
31
33
  },
32
34
  "dependencies": {
33
- "@llmrtc/llmrtc-core": "^1.0.0",
34
- "openai": "^4.72.0",
35
- "zod": "^3.23.8"
35
+ "@llmrtc/llmrtc-core": "^1.1.0",
36
+ "openai": "^4.72.0"
37
+ },
38
+ "exports": {
39
+ ".": {
40
+ "types": "./dist/index.d.ts",
41
+ "import": "./dist/index.js",
42
+ "default": "./dist/index.js"
43
+ },
44
+ "./package.json": "./package.json"
45
+ },
46
+ "sideEffects": false,
47
+ "engines": {
48
+ "node": ">=20"
36
49
  }
37
50
  }