dvgateway-adapters 1.9.7 → 1.9.12

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.
Files changed (53) hide show
  1. package/dist/index.d.ts +5 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/llm/anthropic.d.ts +32 -15
  6. package/dist/llm/anthropic.d.ts.map +1 -1
  7. package/dist/llm/anthropic.js +56 -14
  8. package/dist/llm/anthropic.js.map +1 -1
  9. package/dist/llm/index.d.ts +1 -1
  10. package/dist/llm/index.d.ts.map +1 -1
  11. package/dist/llm/index.js +1 -1
  12. package/dist/llm/index.js.map +1 -1
  13. package/dist/llm/openai-llm.d.ts +2 -3
  14. package/dist/llm/openai-llm.d.ts.map +1 -1
  15. package/dist/llm/openai-llm.js +2 -3
  16. package/dist/llm/openai-llm.js.map +1 -1
  17. package/dist/llm/sampling.test.d.ts +2 -0
  18. package/dist/llm/sampling.test.d.ts.map +1 -0
  19. package/dist/llm/sampling.test.js +106 -0
  20. package/dist/llm/sampling.test.js.map +1 -0
  21. package/dist/realtime/gemini-live.d.ts +33 -2
  22. package/dist/realtime/gemini-live.d.ts.map +1 -1
  23. package/dist/realtime/gemini-live.js +42 -1
  24. package/dist/realtime/gemini-live.js.map +1 -1
  25. package/dist/realtime/gemini-live.test.js +33 -1
  26. package/dist/realtime/gemini-live.test.js.map +1 -1
  27. package/dist/realtime/gpt-live.d.ts +250 -0
  28. package/dist/realtime/gpt-live.d.ts.map +1 -0
  29. package/dist/realtime/gpt-live.js +628 -0
  30. package/dist/realtime/gpt-live.js.map +1 -0
  31. package/dist/realtime/gpt-live.test.d.ts +2 -0
  32. package/dist/realtime/gpt-live.test.d.ts.map +1 -0
  33. package/dist/realtime/gpt-live.test.js +292 -0
  34. package/dist/realtime/gpt-live.test.js.map +1 -0
  35. package/dist/realtime/index.d.ts +4 -0
  36. package/dist/realtime/index.d.ts.map +1 -1
  37. package/dist/realtime/index.js +2 -0
  38. package/dist/realtime/index.js.map +1 -1
  39. package/dist/realtime/openai-realtime.d.ts +2 -2
  40. package/dist/realtime/openai-realtime.js +2 -2
  41. package/dist/realtime/speech-segments.d.ts +43 -0
  42. package/dist/realtime/speech-segments.d.ts.map +1 -0
  43. package/dist/realtime/speech-segments.js +90 -0
  44. package/dist/realtime/speech-segments.js.map +1 -0
  45. package/dist/realtime/speech-segments.test.d.ts +2 -0
  46. package/dist/realtime/speech-segments.test.d.ts.map +1 -0
  47. package/dist/realtime/speech-segments.test.js +71 -0
  48. package/dist/realtime/speech-segments.test.js.map +1 -0
  49. package/dist/tts/elevenlabs.d.ts +3 -3
  50. package/dist/tts/elevenlabs.js +2 -2
  51. package/dist/tts/openai-tts.d.ts +3 -3
  52. package/dist/tts/openai-tts.js +1 -1
  53. package/package.json +3 -2
package/dist/index.d.ts CHANGED
@@ -38,12 +38,16 @@ export { GeminiTtsAdapter, GEMINI_TTS_VOICES } from './tts/gemini-tts.js';
38
38
  export type { GeminiTtsAdapterOptions, GeminiTtsVoice, GeminiTtsModel, } from './tts/gemini-tts.js';
39
39
  export { CosyVoiceAdapter, COSYVOICE_VOICES } from './tts/cosyvoice-tts.js';
40
40
  export type { CosyVoiceAdapterOptions, CosyVoiceVoice, CosyVoiceModel, } from './tts/cosyvoice-tts.js';
41
- export { AnthropicAdapter } from './llm/anthropic.js';
41
+ export { AnthropicAdapter, acceptsSamplingParams } from './llm/anthropic.js';
42
42
  export type { AnthropicAdapterOptions } from './llm/anthropic.js';
43
43
  export { OpenAILlmAdapter } from './llm/openai-llm.js';
44
44
  export type { OpenAILlmAdapterOptions } from './llm/openai-llm.js';
45
45
  export { WebhookAdapter } from './llm/webhook.js';
46
46
  export type { WebhookAdapterOptions } from './llm/webhook.js';
47
47
  export { OpenAIRealtimeAdapter } from './realtime/openai-realtime.js';
48
+ export { GptLiveAdapter, buildGptLiveInstructions } from './realtime/gpt-live.js';
49
+ export { createSpeechSegmentInjector } from './realtime/speech-segments.js';
50
+ export type { SpeechSegmentInject, SpeechSegmentInjector, SpeechSegmentInjectorOptions } from './realtime/speech-segments.js';
51
+ export type { GptLiveAdapterOptions, GptLiveDelegation, GptLiveDelegationOptions, GptLiveUsage, GptLiveUnspokenResult, } from './realtime/gpt-live.js';
48
52
  export type { OpenAIRealtimeAdapterOptions, OpenAIRealtimeVoice, OpenAIRealtimeTurnDetectionMode, OpenAIRealtimeTurnDetectionOptions, RealtimeSpeechAdapter, } from './realtime/openai-realtime.js';
49
53
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAmB,mBAAmB,CAAC;AACjE,YAAY,EAAE,sBAAsB,EAAE,MAAO,mBAAmB,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAe,wBAAwB,CAAC;AACtE,YAAY,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGzE,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,UAAU,GACX,MAA4C,eAAe,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAA4C,eAAe,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAClF,YAAY,EAAE,wBAAwB,EAAE,MAAoB,qBAAqB,CAAC;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AACvE,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAgD,qBAAqB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AACvE,YAAY,EACV,uBAAuB,EACvB,WAAW,GACZ,MAAgD,qBAAqB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAgD,qBAAqB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAgD,wBAAwB,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,MAAsB,oBAAoB,CAAC;AACtE,YAAY,EAAE,uBAAuB,EAAE,MAAU,oBAAoB,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAU,qBAAqB,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAwB,kBAAkB,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAY,kBAAkB,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,MAAiB,+BAA+B,CAAC;AACjF,YAAY,EACV,4BAA4B,EAC5B,mBAAmB,EACnB,+BAA+B,EAC/B,kCAAkC,EAClC,qBAAqB,GACtB,MAAgD,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAmB,mBAAmB,CAAC;AACjE,YAAY,EAAE,sBAAsB,EAAE,MAAO,mBAAmB,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAe,wBAAwB,CAAC;AACtE,YAAY,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGzE,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,UAAU,GACX,MAA4C,eAAe,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAA4C,eAAe,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAClF,YAAY,EAAE,wBAAwB,EAAE,MAAoB,qBAAqB,CAAC;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AACvE,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAgD,qBAAqB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AACvE,YAAY,EACV,uBAAuB,EACvB,WAAW,GACZ,MAAgD,qBAAqB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAgD,qBAAqB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAgD,wBAAwB,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,YAAY,EAAE,uBAAuB,EAAE,MAAU,oBAAoB,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAU,qBAAqB,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAwB,kBAAkB,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAY,kBAAkB,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,MAAiB,+BAA+B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC9H,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACZ,qBAAqB,GACtB,MAAgD,wBAAwB,CAAC;AAC1E,YAAY,EACV,4BAA4B,EAC5B,mBAAmB,EACnB,+BAA+B,EAC/B,kCAAkC,EAClC,qBAAqB,GACtB,MAAgD,+BAA+B,CAAC"}
package/dist/index.js CHANGED
@@ -33,9 +33,11 @@ export { CachedTtsAdapter } from './tts/cached-tts.js';
33
33
  export { GeminiTtsAdapter, GEMINI_TTS_VOICES } from './tts/gemini-tts.js';
34
34
  export { CosyVoiceAdapter, COSYVOICE_VOICES } from './tts/cosyvoice-tts.js';
35
35
  // ── LLM (Language Model) ─────────────────────────────────────────────────────
36
- export { AnthropicAdapter } from './llm/anthropic.js';
36
+ export { AnthropicAdapter, acceptsSamplingParams } from './llm/anthropic.js';
37
37
  export { OpenAILlmAdapter } from './llm/openai-llm.js';
38
38
  export { WebhookAdapter } from './llm/webhook.js';
39
39
  // ── Realtime Speech-to-Speech ─────────────────────────────────────────────────
40
40
  export { OpenAIRealtimeAdapter } from './realtime/openai-realtime.js';
41
+ export { GptLiveAdapter, buildGptLiveInstructions } from './realtime/gpt-live.js';
42
+ export { createSpeechSegmentInjector } from './realtime/speech-segments.js';
41
43
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,iFAAiF;AACjF,OAAO,EAAE,eAAe,EAAE,MAAmB,mBAAmB,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAe,wBAAwB,CAAC;AAStE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAA4C,eAAe,CAAC;AAE7D,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAGlF,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AAOvE,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AAMvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO1E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO5E,gFAAgF;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAsB,oBAAoB,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAwB,kBAAkB,CAAC;AAGpE,iFAAiF;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAiB,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,iFAAiF;AACjF,OAAO,EAAE,eAAe,EAAE,MAAmB,mBAAmB,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAe,wBAAwB,CAAC;AAStE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAA4C,eAAe,CAAC;AAE7D,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAGlF,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AAOvE,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AAMvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO1E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO5E,gFAAgF;AAChF,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EAAE,gBAAgB,EAAE,MAAsB,qBAAqB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAwB,kBAAkB,CAAC;AAGpE,iFAAiF;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAiB,+BAA+B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC"}
@@ -4,19 +4,21 @@
4
4
  * Integrates with the Anthropic Messages API for streaming LLM responses.
5
5
  * Implements the LlmAdapter interface — returns streaming tokens as AsyncIterable.
6
6
  *
7
- * Model Reference (2026-03):
8
- * claude-opus-4-6 — Most capable, best reasoning and instruction following
9
- * claude-sonnet-4-6 — Best balance of speed and quality (recommended for voice)
10
- * claude-haiku-4-5-20251001 — Fastest, lowest cost (best latency for voice bots)
7
+ * Model Reference:
8
+ * claude-opus-4-6 — Most capable of the 4.6 generation
9
+ * claude-sonnet-4-6 — Balance of speed and quality (default of this adapter)
10
+ * claude-haiku-5-5 — Fastest, lowest cost (best latency for voice bots)
11
11
  *
12
- * Latency targets (voice pipeline, TTFT = time to first token):
13
- * claude-haiku-4-5 — ~80ms TTFT (optimal for real-time voice)
14
- * claude-sonnet-4-6 — ~120ms TTFT (recommended for complex voice agents)
15
- * claude-opus-4-6 — ~200ms TTFT (use only for high-complexity tasks)
12
+ * Sampling parameters (SDK 1.9.12+):
13
+ * Claude Haiku 5.5, Sonnet 5.x, Opus 4.7 and later, and Fable reject a non-default
14
+ * `temperature` / `top_p` with HTTP 400. For those models this adapter sends neither
15
+ * (see `acceptsSamplingParams`) and warns once if you set one. Claude 4.x models that
16
+ * still accept sampling reject `temperature` and `top_p` together, so when `topP` is
17
+ * set the default temperature is not sent.
18
+ * ⚠️ Claude Haiku 5.5 thinks by default and its thinking tokens count toward
19
+ * `maxTokens`; only text deltas are yielded.
16
20
  *
17
- * Extended Thinking:
18
- * claude-sonnet-4-6 and claude-opus-4-6 support extended thinking (budget_tokens).
19
- * Not recommended for real-time voice (adds significant latency).
21
+ * Latency figures are not measured by this project — benchmark on your own traffic.
20
22
  *
21
23
  * Uses the official @anthropic-ai/sdk for correct streaming and error handling.
22
24
  *
@@ -29,10 +31,10 @@ export interface AnthropicAdapterOptions {
29
31
  /**
30
32
  * Model ID (default: "claude-sonnet-4-6" — best voice balance)
31
33
  *
32
- * Available models (2026-03):
33
- * claude-opus-4-6 — Most capable (complex reasoning)
34
- * claude-sonnet-4-6 — Balanced speed/quality (recommended for voice)
35
- * claude-haiku-4-5-20251001 — Fastest (lowest latency, cost-effective)
34
+ * Examples:
35
+ * claude-opus-4-6 — Most capable of the 4.6 generation (complex reasoning)
36
+ * claude-sonnet-4-6 — Balanced speed/quality (adapter default)
37
+ * claude-haiku-5-5 — Fastest (lowest latency, cost-effective)
36
38
  */
37
39
  model?: string;
38
40
  /** System prompt injected as the first message */
@@ -64,9 +66,24 @@ export interface AnthropicAdapterOptions {
64
66
  */
65
67
  baseUrl?: string;
66
68
  }
69
+ /**
70
+ * Whether a model accepts `temperature` / `top_p`.
71
+ *
72
+ * Claude Haiku 5.5, Sonnet 5.x, Opus 4.7 and later, Fable and Mythos return HTTP 400 for
73
+ * non-default sampling values. Only the Claude generations known to accept them return
74
+ * true (3.x, 4.0/4.1, 4.5, 4.6); any other `claude-*` ID — including future ones — returns
75
+ * false, because sending a rejected parameter fails every request while omitting it only
76
+ * falls back to the model's default sampling. Non-Claude IDs (e.g. a local model behind an
77
+ * Anthropic-compatible `baseUrl`) return true so their requests stay as before.
78
+ *
79
+ * @since SDK 1.9.12
80
+ */
81
+ export declare function acceptsSamplingParams(model: string): boolean;
67
82
  export declare class AnthropicAdapter implements LlmAdapter {
68
83
  private readonly client;
69
84
  private readonly opts;
85
+ private readonly temperatureExplicit;
86
+ private readonly samplingWarned;
70
87
  readonly systemPrompt: string;
71
88
  constructor(opts: AnthropicAdapterOptions);
72
89
  chat(messages: Message[], opts?: LlmOptions): AsyncIterable<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;IAGzD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,IAAI,EAAE,uBAAuB;IAwBlC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;CAuC3E"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQ5D;AAID,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;IACzD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAGpD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,IAAI,EAAE,uBAAuB;IAyBlC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;CAuD3E"}
@@ -4,19 +4,21 @@
4
4
  * Integrates with the Anthropic Messages API for streaming LLM responses.
5
5
  * Implements the LlmAdapter interface — returns streaming tokens as AsyncIterable.
6
6
  *
7
- * Model Reference (2026-03):
8
- * claude-opus-4-6 — Most capable, best reasoning and instruction following
9
- * claude-sonnet-4-6 — Best balance of speed and quality (recommended for voice)
10
- * claude-haiku-4-5-20251001 — Fastest, lowest cost (best latency for voice bots)
7
+ * Model Reference:
8
+ * claude-opus-4-6 — Most capable of the 4.6 generation
9
+ * claude-sonnet-4-6 — Balance of speed and quality (default of this adapter)
10
+ * claude-haiku-5-5 — Fastest, lowest cost (best latency for voice bots)
11
11
  *
12
- * Latency targets (voice pipeline, TTFT = time to first token):
13
- * claude-haiku-4-5 — ~80ms TTFT (optimal for real-time voice)
14
- * claude-sonnet-4-6 — ~120ms TTFT (recommended for complex voice agents)
15
- * claude-opus-4-6 — ~200ms TTFT (use only for high-complexity tasks)
12
+ * Sampling parameters (SDK 1.9.12+):
13
+ * Claude Haiku 5.5, Sonnet 5.x, Opus 4.7 and later, and Fable reject a non-default
14
+ * `temperature` / `top_p` with HTTP 400. For those models this adapter sends neither
15
+ * (see `acceptsSamplingParams`) and warns once if you set one. Claude 4.x models that
16
+ * still accept sampling reject `temperature` and `top_p` together, so when `topP` is
17
+ * set the default temperature is not sent.
18
+ * ⚠️ Claude Haiku 5.5 thinks by default and its thinking tokens count toward
19
+ * `maxTokens`; only text deltas are yielded.
16
20
  *
17
- * Extended Thinking:
18
- * claude-sonnet-4-6 and claude-opus-4-6 support extended thinking (budget_tokens).
19
- * Not recommended for real-time voice (adds significant latency).
21
+ * Latency figures are not measured by this project — benchmark on your own traffic.
20
22
  *
21
23
  * Uses the official @anthropic-ai/sdk for correct streaming and error handling.
22
24
  *
@@ -24,9 +26,32 @@
24
26
  * SDK: https://github.com/anthropics/anthropic-sdk-node
25
27
  */
26
28
  import Anthropic from '@anthropic-ai/sdk';
29
+ /**
30
+ * Whether a model accepts `temperature` / `top_p`.
31
+ *
32
+ * Claude Haiku 5.5, Sonnet 5.x, Opus 4.7 and later, Fable and Mythos return HTTP 400 for
33
+ * non-default sampling values. Only the Claude generations known to accept them return
34
+ * true (3.x, 4.0/4.1, 4.5, 4.6); any other `claude-*` ID — including future ones — returns
35
+ * false, because sending a rejected parameter fails every request while omitting it only
36
+ * falls back to the model's default sampling. Non-Claude IDs (e.g. a local model behind an
37
+ * Anthropic-compatible `baseUrl`) return true so their requests stay as before.
38
+ *
39
+ * @since SDK 1.9.12
40
+ */
41
+ export function acceptsSamplingParams(model) {
42
+ const m = model.trim().toLowerCase();
43
+ if (!m.startsWith('claude-'))
44
+ return true;
45
+ return (/^claude-(?:3|instant)/.test(m) ||
46
+ /^claude-(?:opus|sonnet|haiku)-4-(?:0|1|5|6)(?:$|[-@])/.test(m) ||
47
+ /^claude-(?:opus|sonnet)-4-\d{8}(?:$|[-@])/.test(m));
48
+ }
49
+ const DEFAULT_TEMPERATURE = 0.7;
27
50
  export class AnthropicAdapter {
28
51
  client;
29
52
  opts;
53
+ temperatureExplicit;
54
+ samplingWarned = new Set();
30
55
  // Expose systemPrompt for pipeline builder to read
31
56
  systemPrompt;
32
57
  constructor(opts) {
@@ -34,13 +59,14 @@ export class AnthropicAdapter {
34
59
  model: opts.model ?? 'claude-sonnet-4-6',
35
60
  systemPrompt: opts.systemPrompt ?? 'You are a helpful voice assistant. Keep answers concise and conversational, suitable for text-to-speech.',
36
61
  maxTokens: opts.maxTokens ?? 1024,
37
- temperature: opts.temperature ?? 0.7,
62
+ temperature: opts.temperature ?? DEFAULT_TEMPERATURE,
38
63
  topP: opts.topP ?? undefined,
39
64
  stopSequences: opts.stopSequences ?? [],
40
65
  baseUrl: opts.baseUrl ?? '',
41
66
  apiKey: opts.apiKey,
42
67
  };
43
68
  this.systemPrompt = this.opts.systemPrompt;
69
+ this.temperatureExplicit = opts.temperature !== undefined;
44
70
  this.client = new Anthropic({
45
71
  apiKey: opts.apiKey,
46
72
  // baseUrl 이 비면 키 자체를 넘기지 않는다(공식 엔드포인트 유지).
@@ -53,8 +79,24 @@ export class AnthropicAdapter {
53
79
  async *chat(messages, opts) {
54
80
  const model = opts?.model ?? this.opts.model;
55
81
  const maxTokens = opts?.maxTokens ?? this.opts.maxTokens;
56
- const temperature = opts?.temperature ?? this.opts.temperature;
57
82
  const systemPrompt = opts?.systemPrompt ?? this.opts.systemPrompt;
83
+ // Sampling: see acceptsSamplingParams. A value the caller set explicitly is dropped
84
+ // only with a warning (once per model) so the change is visible.
85
+ const temperatureExplicit = opts?.temperature !== undefined || this.temperatureExplicit;
86
+ let temperature = opts?.temperature ?? this.opts.temperature;
87
+ let topP = this.opts.topP;
88
+ if (!acceptsSamplingParams(model)) {
89
+ if ((temperatureExplicit || topP !== undefined) && !this.samplingWarned.has(model)) {
90
+ this.samplingWarned.add(model);
91
+ console.warn(`[AnthropicAdapter] ${model} rejects temperature/top_p — not sending them`);
92
+ }
93
+ temperature = undefined;
94
+ topP = undefined;
95
+ }
96
+ else if (topP !== undefined && !temperatureExplicit) {
97
+ // Claude 4.x rejects temperature and top_p together — send only the one the caller chose.
98
+ temperature = undefined;
99
+ }
58
100
  // Separate system messages from conversation
59
101
  const userMessages = messages.filter((m) => m.role !== 'system');
60
102
  const systemContent = messages.find((m) => m.role === 'system')?.content ?? systemPrompt;
@@ -70,7 +112,7 @@ export class AnthropicAdapter {
70
112
  system: systemContent,
71
113
  messages: anthropicMessages,
72
114
  ...(temperature !== undefined && { temperature }),
73
- ...(this.opts.topP !== undefined && { top_p: this.opts.topP }),
115
+ ...(topP !== undefined && { top_p: topP }),
74
116
  ...(this.opts.stopSequences.length > 0 && { stop_sequences: this.opts.stopSequences }),
75
117
  };
76
118
  // Use streaming API — yields tokens as they arrive (low TTFT)
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,SAAS,MAAM,mBAAmB,CAAC;AA4C1C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,CACL,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,uDAAuD,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,2CAA2C,CAAC,IAAI,CAAC,CAAC,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,OAAO,gBAAgB;IACV,MAAM,CAAY;IAClB,IAAI,CAAoC;IACxC,mBAAmB,CAAU;IAC7B,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpD,mDAAmD;IAC1C,YAAY,CAAS;IAE9B,YAAY,IAA6B;QACvC,IAAI,CAAC,IAAI,GAAG;YACV,KAAK,EAAY,IAAI,CAAC,KAAK,IAAa,mBAAmB;YAC3D,YAAY,EAAK,IAAI,CAAC,YAAY,IAAM,0GAA0G;YAClJ,SAAS,EAAQ,IAAI,CAAC,SAAS,IAAS,IAAI;YAC5C,WAAW,EAAM,IAAI,CAAC,WAAW,IAAO,mBAAmB;YAC3D,IAAI,EAAa,IAAI,CAAC,IAAI,IAAc,SAA8B;YACtE,aAAa,EAAI,IAAI,CAAC,aAAa,IAAK,EAAE;YAC1C,OAAO,EAAU,IAAI,CAAC,OAAO,IAAW,EAAE;YAC1C,MAAM,EAAW,IAAI,CAAC,MAAM;SAC7B,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC;QAE1D,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,MAAM,EAAG,IAAI,CAAC,MAAM;YACpB,2CAA2C;YAC3C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,cAAc,EAAE;gBACd,mBAAmB,EAAE,YAAY;aAClC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,QAAmB,EAAE,IAAiB;QAChD,MAAM,KAAK,GAAW,IAAI,EAAE,KAAK,IAAW,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5D,MAAM,SAAS,GAAO,IAAI,EAAE,SAAS,IAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAChE,MAAM,YAAY,GAAI,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAEnE,oFAAoF;QACpF,iEAAiE;QACjE,MAAM,mBAAmB,GAAG,IAAI,EAAE,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC;QACxF,IAAI,WAAW,GAAuB,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACjF,IAAI,IAAI,GAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,mBAAmB,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,+CAA+C,CAAC,CAAC;YAC3F,CAAC;YACD,WAAW,GAAG,SAAS,CAAC;YACxB,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACtD,0FAA0F;YAC1F,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;QAED,6CAA6C;QAC7C,MAAM,YAAY,GAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,OAAO,IAAI,YAAY,CAAC;QAEzF,sCAAsC;QACtC,MAAM,iBAAiB,GAA6B,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3E,IAAI,EAAK,CAAC,CAAC,IAA4B;YACvC,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC,CAAC;QAEJ,uBAAuB;QACvB,MAAM,MAAM,GAAkC;YAC5C,KAAK;YACL,UAAU,EAAE,SAAS;YACrB,MAAM,EAAM,aAAa;YACzB,QAAQ,EAAI,iBAAiB;YAC7B,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;YACjD,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC1C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;SACvF,CAAC;QAEF,8DAA8D;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IACE,KAAK,CAAC,IAAI,KAAK,qBAAqB;gBACpC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EACjC,CAAC;gBACD,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- export { AnthropicAdapter } from './anthropic.js';
1
+ export { AnthropicAdapter, acceptsSamplingParams } from './anthropic.js';
2
2
  export type { AnthropicAdapterOptions } from './anthropic.js';
3
3
  export { OpenAILlmAdapter } from './openai-llm.js';
4
4
  export type { OpenAILlmAdapterOptions } from './openai-llm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/llm/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // LLM (Language Model) adapters
2
- export { AnthropicAdapter } from './anthropic.js';
2
+ export { AnthropicAdapter, acceptsSamplingParams } from './anthropic.js';
3
3
  export { OpenAILlmAdapter } from './openai-llm.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -11,9 +11,8 @@
11
11
  * o3-mini — Reasoning model; not recommended for real-time voice (high latency)
12
12
  * o1-mini — Reasoning model; not recommended for real-time voice (high latency)
13
13
  *
14
- * Latency targets (voice pipeline, TTFT = time to first token):
15
- * gpt-4o-mini — ~100ms TTFT (recommended for real-time voice)
16
- * gpt-4o — ~150ms TTFT
14
+ * For real-time voice, gpt-4o-mini is the usual choice. Latency (time to first token)
15
+ * is not measured by this project — benchmark on your own traffic.
17
16
  *
18
17
  * API Reference: https://platform.openai.com/docs/api-reference/chat
19
18
  * SDK: https://github.com/openai/openai-node
@@ -1 +1 @@
1
- {"version":3,"file":"openai-llm.d.ts","sourceRoot":"","sources":["../../src/llm/openai-llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;IAEzD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,IAAI,EAAE,uBAAuB;IAoBlC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;CA8B3E"}
1
+ {"version":3,"file":"openai-llm.d.ts","sourceRoot":"","sources":["../../src/llm/openai-llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;IAEzD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,IAAI,EAAE,uBAAuB;IAoBlC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;CA8B3E"}
@@ -11,9 +11,8 @@
11
11
  * o3-mini — Reasoning model; not recommended for real-time voice (high latency)
12
12
  * o1-mini — Reasoning model; not recommended for real-time voice (high latency)
13
13
  *
14
- * Latency targets (voice pipeline, TTFT = time to first token):
15
- * gpt-4o-mini — ~100ms TTFT (recommended for real-time voice)
16
- * gpt-4o — ~150ms TTFT
14
+ * For real-time voice, gpt-4o-mini is the usual choice. Latency (time to first token)
15
+ * is not measured by this project — benchmark on your own traffic.
17
16
  *
18
17
  * API Reference: https://platform.openai.com/docs/api-reference/chat
19
18
  * SDK: https://github.com/openai/openai-node
@@ -1 +1 @@
1
- {"version":3,"file":"openai-llm.js","sourceRoot":"","sources":["../../src/llm/openai-llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAyC5B,MAAM,OAAO,gBAAgB;IACV,MAAM,CAAS;IACf,IAAI,CAAoC;IAEhD,YAAY,CAAS;IAE9B,YAAY,IAA6B;QACvC,IAAI,CAAC,IAAI,GAAG;YACV,KAAK,EAAc,IAAI,CAAC,KAAK,IAAgB,aAAa;YAC1D,YAAY,EAAO,IAAI,CAAC,YAAY,IAAS,6EAA6E;YAC1H,SAAS,EAAU,IAAI,CAAC,SAAS,IAAY,IAAI;YACjD,WAAW,EAAQ,IAAI,CAAC,WAAW,IAAU,GAAG;YAChD,eAAe,EAAI,IAAI,CAAC,eAAe,IAAM,GAAG;YAChD,gBAAgB,EAAG,IAAI,CAAC,gBAAgB,IAAK,GAAG;YAChD,OAAO,EAAY,IAAI,CAAC,OAAO,IAAc,EAAE;YAC/C,MAAM,EAAa,IAAI,CAAC,MAAM;SAC/B,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3C,2CAA2C;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,QAAmB,EAAE,IAAiB;QAChD,MAAM,KAAK,GAAS,IAAI,EAAE,KAAK,IAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACzD,MAAM,SAAS,GAAK,IAAI,EAAE,SAAS,IAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAC/D,MAAM,MAAM,GAAQ,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,OAAO;eACjE,IAAI,EAAE,YAAY;eAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAE5B,MAAM,YAAY,GAA6C;YAC7D,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;YACnC,GAAG,QAAQ;iBACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAC9E,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACvD,KAAK;YACL,UAAU,EAAS,SAAS;YAC5B,WAAW;YACX,gBAAgB,EAAG,IAAI,CAAC,IAAI,CAAC,eAAe;YAC5C,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAC7C,QAAQ,EAAW,YAAY;YAC/B,MAAM,EAAa,IAAI;SACxB,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;YAC/C,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"openai-llm.js","sourceRoot":"","sources":["../../src/llm/openai-llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAyC5B,MAAM,OAAO,gBAAgB;IACV,MAAM,CAAS;IACf,IAAI,CAAoC;IAEhD,YAAY,CAAS;IAE9B,YAAY,IAA6B;QACvC,IAAI,CAAC,IAAI,GAAG;YACV,KAAK,EAAc,IAAI,CAAC,KAAK,IAAgB,aAAa;YAC1D,YAAY,EAAO,IAAI,CAAC,YAAY,IAAS,6EAA6E;YAC1H,SAAS,EAAU,IAAI,CAAC,SAAS,IAAY,IAAI;YACjD,WAAW,EAAQ,IAAI,CAAC,WAAW,IAAU,GAAG;YAChD,eAAe,EAAI,IAAI,CAAC,eAAe,IAAM,GAAG;YAChD,gBAAgB,EAAG,IAAI,CAAC,gBAAgB,IAAK,GAAG;YAChD,OAAO,EAAY,IAAI,CAAC,OAAO,IAAc,EAAE;YAC/C,MAAM,EAAa,IAAI,CAAC,MAAM;SAC/B,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3C,2CAA2C;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,QAAmB,EAAE,IAAiB;QAChD,MAAM,KAAK,GAAS,IAAI,EAAE,KAAK,IAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACzD,MAAM,SAAS,GAAK,IAAI,EAAE,SAAS,IAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAC/D,MAAM,MAAM,GAAQ,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,OAAO;eACjE,IAAI,EAAE,YAAY;eAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAE5B,MAAM,YAAY,GAA6C;YAC7D,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;YACnC,GAAG,QAAQ;iBACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAC9E,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACvD,KAAK;YACL,UAAU,EAAS,SAAS;YAC5B,WAAW;YACX,gBAAgB,EAAG,IAAI,CAAC,IAAI,CAAC,eAAe;YAC5C,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAC7C,QAAQ,EAAW,YAAY;YAC/B,MAAM,EAAa,IAAI;SACxB,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;YAC/C,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sampling.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampling.test.d.ts","sourceRoot":"","sources":["../../src/llm/sampling.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Sampling parameters sent by AnthropicAdapter (SDK 1.9.12).
3
+ *
4
+ * Claude Haiku 5.5, Sonnet 5.x, Opus 4.7+ and Fable return HTTP 400 for a non-default
5
+ * temperature/top_p, and the adapter used to send temperature 0.7 on every request —
6
+ * so pointing it at claude-haiku-5-5 failed every call. Claude 4.x also rejects
7
+ * temperature and top_p together. No network: the vendor client is replaced by a stub
8
+ * that records the request params.
9
+ */
10
+ import { AnthropicAdapter, acceptsSamplingParams } from './anthropic.js';
11
+ // Same table as packages/dvgateway-python/tests/unit/test_anthropic_sampling.py — keep in sync.
12
+ const ACCEPTS = [
13
+ ['claude-sonnet-4-6', true],
14
+ ['claude-opus-4-6', true],
15
+ ['claude-haiku-4-5', true],
16
+ ['claude-haiku-4-5-20251001', true],
17
+ ['claude-sonnet-4-5-20250929', true],
18
+ ['claude-opus-4-1', true],
19
+ ['claude-sonnet-4-20250514', true],
20
+ ['claude-3-5-haiku-20241022', true],
21
+ ['claude-haiku-5-5', false],
22
+ ['claude-sonnet-5-5', false],
23
+ ['claude-sonnet-5', false],
24
+ ['claude-opus-5-5', false],
25
+ ['claude-opus-4-7', false],
26
+ ['claude-opus-4-8', false],
27
+ ['claude-fable-5-1', false],
28
+ ['claude-opus-4-10', false], // a future 4.x must not match the "4-1" family
29
+ ['llama-3-local', true], // non-Claude model behind a compatible baseUrl: unchanged
30
+ ];
31
+ function stubbed(adapter, events) {
32
+ const seen = [];
33
+ adapter.client = {
34
+ messages: {
35
+ stream(params) {
36
+ seen.push(params);
37
+ return (async function* () {
38
+ for (const e of events)
39
+ yield e;
40
+ })();
41
+ },
42
+ },
43
+ };
44
+ return seen;
45
+ }
46
+ const TEXT = [
47
+ { type: 'content_block_delta', delta: { type: 'thinking_delta', thinking: '' } },
48
+ { type: 'content_block_delta', delta: { type: 'text_delta', text: '안녕하세요' } },
49
+ ];
50
+ async function collect(it) {
51
+ let s = '';
52
+ for await (const t of it)
53
+ s += t;
54
+ return s;
55
+ }
56
+ describe('acceptsSamplingParams', () => {
57
+ it.each(ACCEPTS)('%s → %s', (model, want) => {
58
+ expect(acceptsSamplingParams(model)).toBe(want);
59
+ });
60
+ });
61
+ describe('AnthropicAdapter sampling params', () => {
62
+ let warn;
63
+ beforeEach(() => {
64
+ warn = jest.spyOn(console, 'warn').mockImplementation(() => undefined);
65
+ });
66
+ afterEach(() => warn.mockRestore());
67
+ it('claude-haiku-5-5: no temperature/top_p, no warning when nothing was set, text only', async () => {
68
+ const a = new AnthropicAdapter({ apiKey: 'k', model: 'claude-haiku-5-5' });
69
+ const seen = stubbed(a, TEXT);
70
+ expect(await collect(a.chat([{ role: 'user', content: 'hi' }]))).toBe('안녕하세요');
71
+ expect(seen[0]).not.toHaveProperty('temperature');
72
+ expect(seen[0]).not.toHaveProperty('top_p');
73
+ expect(warn).not.toHaveBeenCalled();
74
+ });
75
+ it('explicit temperature on a rejecting model is dropped with one warning per model', async () => {
76
+ const a = new AnthropicAdapter({ apiKey: 'k', model: 'claude-haiku-5-5', temperature: 0.2 });
77
+ const seen = stubbed(a, TEXT);
78
+ await collect(a.chat([{ role: 'user', content: 'a' }]));
79
+ await collect(a.chat([{ role: 'user', content: 'b' }]));
80
+ expect(seen.every((p) => !('temperature' in p))).toBe(true);
81
+ expect(warn).toHaveBeenCalledTimes(1);
82
+ });
83
+ it('per-call model override is judged per call', async () => {
84
+ const a = new AnthropicAdapter({ apiKey: 'k' }); // default claude-sonnet-4-6
85
+ const seen = stubbed(a, TEXT);
86
+ await collect(a.chat([{ role: 'user', content: 'a' }]));
87
+ await collect(a.chat([{ role: 'user', content: 'b' }], { model: 'claude-opus-5-5' }));
88
+ expect(seen[0]?.temperature).toBe(0.7);
89
+ expect(seen[1]).not.toHaveProperty('temperature');
90
+ });
91
+ it('legacy model keeps the default temperature (unchanged behaviour)', async () => {
92
+ const a = new AnthropicAdapter({ apiKey: 'k', model: 'claude-haiku-4-5-20251001' });
93
+ const seen = stubbed(a, TEXT);
94
+ await collect(a.chat([{ role: 'user', content: 'a' }]));
95
+ expect(seen[0]?.temperature).toBe(0.7);
96
+ expect(seen[0]).not.toHaveProperty('top_p');
97
+ });
98
+ it('topP alone: default temperature is not sent with it (Claude 4.x rejects both)', async () => {
99
+ const a = new AnthropicAdapter({ apiKey: 'k', topP: 0.9 });
100
+ const seen = stubbed(a, TEXT);
101
+ await collect(a.chat([{ role: 'user', content: 'a' }]));
102
+ expect(seen[0]?.top_p).toBe(0.9);
103
+ expect(seen[0]).not.toHaveProperty('temperature');
104
+ });
105
+ });
106
+ //# sourceMappingURL=sampling.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampling.test.js","sourceRoot":"","sources":["../../src/llm/sampling.test.ts"],"names":[],"mappings":"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"}
@@ -48,8 +48,32 @@ import type { RealtimeSpeechAdapter, RealtimeSpeechActivityEvent, RealtimeToolCa
48
48
  * Reference: https://ai.google.dev/gemini-api/docs/live-api/capabilities
49
49
  */
50
50
  export type GeminiLiveVoice = 'Puck' | 'Charon' | 'Kore' | 'Fenrir' | 'Aoede' | 'Leda' | 'Orus' | 'Zephyr';
51
- /** Gemini Live API model identifiers (as of 2026-04). */
52
- export type GeminiLiveModel = 'gemini-live-2.5-flash-preview' | 'gemini-2.5-flash-native-audio' | 'gemini-2.0-flash-live-001';
51
+ /**
52
+ * Gemini Live API model identifiers (as of 2026-10).
53
+ *
54
+ * `gemini-3.8-live` (@since SDK 1.9.8) — GA 2026-09-24 on the Gemini Enterprise Agent Platform (Vertex).
55
+ * Regions: **`us-central1` and the `us` / `eu` multi-regions only** — there is no Asia region, so a
56
+ * Korean call's audio is processed in the US/EU (latency + data residency). Affective dialogue and
57
+ * proactive audio are always on (do not pass the 2.5 flags — this adapter never did), thinking is not
58
+ * supported, and `customVocabulary` biases input transcription.
59
+ * Docs: https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/guides/gemini-3-8-live
60
+ * ⚠️ AI Studio (`endpoint: "ai-studio"`) availability for 3.8 is not documented on that page — use `vertex`.
61
+ */
62
+ export type GeminiLiveModel = 'gemini-3.8-live' | 'gemini-live-2.5-flash-native-audio' | 'gemini-live-2.5-flash-preview' | 'gemini-2.5-flash-native-audio' | 'gemini-2.0-flash-live-001';
63
+ /** Vertex locations that serve `gemini-3.8-live` (model page, 2026-10-02). */
64
+ export declare const GEMINI_38_LIVE_LOCATIONS: readonly ["us-central1", "us", "eu"];
65
+ /**
66
+ * Build `input_audio_transcription` for the Live setup (@since SDK 1.9.8).
67
+ * `custom_vocabulary` is only documented for `gemini-3.8-live`; it is sent only when non-empty so
68
+ * older models never see an unknown field (an unknown setup field closes the socket with 1011).
69
+ */
70
+ export declare function buildInputAudioTranscription(inputTranscription: boolean, customVocabulary: readonly string[] | undefined): Record<string, unknown> | undefined;
71
+ /**
72
+ * Warnings for a `gemini-3.8-live` configuration that the docs say will not work (@since SDK 1.9.8).
73
+ * Returns human-readable messages; empty when nothing looks wrong. Never throws — the docs are the
74
+ * source and they change, so this only warns.
75
+ */
76
+ export declare function geminiLiveConfigWarnings(model: string, endpoint: GeminiLiveEndpoint, location: string, customVocabulary: readonly string[] | undefined): string[];
53
77
  export type GeminiLiveEndpoint = 'ai-studio' | 'vertex';
54
78
  export type GeminiLiveTurnDetectionMode = 'server_vad' | 'none';
55
79
  export interface GeminiLiveTurnDetectionOptions {
@@ -159,6 +183,12 @@ export interface GeminiLiveAdapterOptions {
159
183
  * Emits TranscriptResult events with speaker="customer".
160
184
  */
161
185
  inputTranscription?: boolean;
186
+ /**
187
+ * Domain words to bias input transcription — product names, SKUs, place names
188
+ * (`input_audio_transcription.custom_vocabulary` · **gemini-3.8-live only** · @since SDK 1.9.8).
189
+ * Turns input transcription on when non-empty.
190
+ */
191
+ customVocabulary?: string[];
162
192
  /**
163
193
  * Enable output (assistant) audio transcription (default: true).
164
194
  * Emits TranscriptResult events with speaker="agent".
@@ -340,6 +370,7 @@ export declare class GeminiLiveAdapter implements RealtimeSpeechAdapter {
340
370
  /** Per-session runtime diagnostics — fed by heartbeat + event logs. */
341
371
  private readonly sessionDiag;
342
372
  private stopped;
373
+ private readonly customVocabulary;
343
374
  constructor(opts: GeminiLiveAdapterOptions);
344
375
  onAudioOutput(handler: (chunk: Buffer, linkedId: string) => void): void;
345
376
  onTranscript(handler: (result: TranscriptResult) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-live.d.ts","sourceRoot":"","sources":["../../src/realtime/gemini-live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-live.d.ts","sourceRoot":"","sources":["../../src/realtime/gemini-live.ts"],"names":[],"mappings":"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"}