universal-llm-client 4.5.0 → 4.5.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.
Files changed (174) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +2 -0
  3. package/dist/ai-model.d.ts +0 -1
  4. package/dist/ai-model.js +0 -1
  5. package/dist/auditor.d.ts +0 -1
  6. package/dist/auditor.js +0 -1
  7. package/dist/client.d.ts +0 -1
  8. package/dist/client.js +0 -1
  9. package/dist/gemma-channel.d.ts +0 -1
  10. package/dist/gemma-channel.js +0 -1
  11. package/dist/gemma-diffusion.d.ts +0 -1
  12. package/dist/gemma-diffusion.js +0 -1
  13. package/dist/http.d.ts +0 -1
  14. package/dist/http.js +0 -1
  15. package/dist/index.d.ts +0 -1
  16. package/dist/index.js +0 -1
  17. package/dist/interfaces.d.ts +0 -1
  18. package/dist/interfaces.js +0 -1
  19. package/dist/mcp.d.ts +0 -1
  20. package/dist/mcp.js +0 -1
  21. package/dist/providers/anthropic.d.ts +0 -1
  22. package/dist/providers/anthropic.js +0 -1
  23. package/dist/providers/google.d.ts +0 -1
  24. package/dist/providers/google.js +0 -1
  25. package/dist/providers/index.d.ts +0 -1
  26. package/dist/providers/index.js +0 -1
  27. package/dist/providers/ollama.d.ts +0 -1
  28. package/dist/providers/ollama.js +0 -1
  29. package/dist/providers/openai.d.ts +2 -1
  30. package/dist/providers/openai.js +303 -74
  31. package/dist/router.d.ts +0 -1
  32. package/dist/router.js +0 -1
  33. package/dist/stream-decoder.d.ts +0 -1
  34. package/dist/stream-decoder.js +0 -1
  35. package/dist/structured-output.d.ts +0 -1
  36. package/dist/structured-output.js +0 -1
  37. package/dist/thinking.d.ts +0 -1
  38. package/dist/thinking.js +0 -1
  39. package/dist/tools.d.ts +0 -1
  40. package/dist/tools.js +0 -1
  41. package/dist/zod-adapter.d.ts +0 -1
  42. package/dist/zod-adapter.js +0 -1
  43. package/package.json +1 -2
  44. package/dist/ai-model.d.ts.map +0 -1
  45. package/dist/ai-model.js.map +0 -1
  46. package/dist/auditor.d.ts.map +0 -1
  47. package/dist/auditor.js.map +0 -1
  48. package/dist/client.d.ts.map +0 -1
  49. package/dist/client.js.map +0 -1
  50. package/dist/gemma-channel.d.ts.map +0 -1
  51. package/dist/gemma-channel.js.map +0 -1
  52. package/dist/gemma-diffusion.d.ts.map +0 -1
  53. package/dist/gemma-diffusion.js.map +0 -1
  54. package/dist/http.d.ts.map +0 -1
  55. package/dist/http.js.map +0 -1
  56. package/dist/index.d.ts.map +0 -1
  57. package/dist/index.js.map +0 -1
  58. package/dist/interfaces.d.ts.map +0 -1
  59. package/dist/interfaces.js.map +0 -1
  60. package/dist/mcp.d.ts.map +0 -1
  61. package/dist/mcp.js.map +0 -1
  62. package/dist/providers/anthropic.d.ts.map +0 -1
  63. package/dist/providers/anthropic.js.map +0 -1
  64. package/dist/providers/google.d.ts.map +0 -1
  65. package/dist/providers/google.js.map +0 -1
  66. package/dist/providers/index.d.ts.map +0 -1
  67. package/dist/providers/index.js.map +0 -1
  68. package/dist/providers/ollama.d.ts.map +0 -1
  69. package/dist/providers/ollama.js.map +0 -1
  70. package/dist/providers/openai.d.ts.map +0 -1
  71. package/dist/providers/openai.js.map +0 -1
  72. package/dist/router.d.ts.map +0 -1
  73. package/dist/router.js.map +0 -1
  74. package/dist/stream-decoder.d.ts.map +0 -1
  75. package/dist/stream-decoder.js.map +0 -1
  76. package/dist/structured-output.d.ts.map +0 -1
  77. package/dist/structured-output.js.map +0 -1
  78. package/dist/thinking.d.ts.map +0 -1
  79. package/dist/thinking.js.map +0 -1
  80. package/dist/tools.d.ts.map +0 -1
  81. package/dist/tools.js.map +0 -1
  82. package/dist/zod-adapter.d.ts.map +0 -1
  83. package/dist/zod-adapter.js.map +0 -1
  84. package/src/ai-model.ts +0 -400
  85. package/src/auditor.ts +0 -213
  86. package/src/client.ts +0 -402
  87. package/src/debug/debug-google-streaming.ts +0 -97
  88. package/src/debug/debug-tool-execution.ts +0 -86
  89. package/src/debug/test-lmstudio-tools.ts +0 -155
  90. package/src/demos/README.md +0 -47
  91. package/src/demos/basic/universal-llm-examples.ts +0 -161
  92. package/src/demos/diffusion-gemma/.env +0 -29
  93. package/src/demos/diffusion-gemma/.env.example +0 -27
  94. package/src/demos/diffusion-gemma/CLAUDE.md +0 -95
  95. package/src/demos/diffusion-gemma/README.md +0 -59
  96. package/src/demos/diffusion-gemma/canvas.ts +0 -1606
  97. package/src/demos/diffusion-gemma/docker-compose.yml +0 -29
  98. package/src/demos/diffusion-gemma/probe-stream.ts +0 -51
  99. package/src/demos/diffusion-gemma/probe-tools.ts +0 -55
  100. package/src/demos/diffusion-gemma/server.ts +0 -1205
  101. package/src/demos/diffusion-gemma/start-vllm.sh +0 -98
  102. package/src/demos/mcp/astrid-memory-demo.ts +0 -295
  103. package/src/demos/mcp/astrid-persona-memory.ts +0 -357
  104. package/src/demos/mcp/mcp-mongodb-demo.ts +0 -275
  105. package/src/demos/mcp/simple-astrid-memory.ts +0 -148
  106. package/src/demos/mcp/simple-mcp-demo.ts +0 -68
  107. package/src/demos/mcp/working-mcp-demo.ts +0 -62
  108. package/src/demos/model-alias-demo.ts +0 -0
  109. package/src/demos/tools/RAG_MEMORY_INTEGRATION.md +0 -267
  110. package/src/demos/tools/astrid-memory-demo.ts +0 -270
  111. package/src/demos/tools/astrid-production-memory-clean.ts +0 -785
  112. package/src/demos/tools/astrid-production-memory.ts +0 -558
  113. package/src/demos/tools/basic-translation-test.ts +0 -66
  114. package/src/demos/tools/chromadb-similarity-tuning.ts +0 -390
  115. package/src/demos/tools/clean-multilingual-conversation.ts +0 -209
  116. package/src/demos/tools/clean-translation-test.ts +0 -119
  117. package/src/demos/tools/clean-universal-multilingual-test.ts +0 -131
  118. package/src/demos/tools/complete-rag-demo.ts +0 -369
  119. package/src/demos/tools/complete-tool-demo.ts +0 -132
  120. package/src/demos/tools/demo-tool-calling.ts +0 -124
  121. package/src/demos/tools/dynamic-language-switching-test.ts +0 -251
  122. package/src/demos/tools/hybrid-thinking-test.ts +0 -154
  123. package/src/demos/tools/memory-integration-test.ts +0 -420
  124. package/src/demos/tools/multilingual-memory-system.ts +0 -802
  125. package/src/demos/tools/ondemand-translation-demo.ts +0 -655
  126. package/src/demos/tools/production-tool-demo.ts +0 -245
  127. package/src/demos/tools/revolutionary-multilingual-test.ts +0 -151
  128. package/src/demos/tools/rigorous-language-analysis.ts +0 -218
  129. package/src/demos/tools/test-universal-memory-system.ts +0 -126
  130. package/src/demos/tools/translation-integration-guide.ts +0 -346
  131. package/src/demos/tools/universal-memory-system.ts +0 -560
  132. package/src/gemma-channel.ts +0 -47
  133. package/src/gemma-diffusion.ts +0 -167
  134. package/src/http.ts +0 -261
  135. package/src/index.ts +0 -180
  136. package/src/interfaces.ts +0 -843
  137. package/src/mcp.ts +0 -345
  138. package/src/providers/anthropic.ts +0 -796
  139. package/src/providers/google.ts +0 -840
  140. package/src/providers/index.ts +0 -8
  141. package/src/providers/ollama.ts +0 -503
  142. package/src/providers/openai.ts +0 -587
  143. package/src/router.ts +0 -785
  144. package/src/stream-decoder.ts +0 -535
  145. package/src/structured-output.ts +0 -759
  146. package/src/test-scripts/test-advanced-tools.ts +0 -310
  147. package/src/test-scripts/test-google-deep-research.ts +0 -33
  148. package/src/test-scripts/test-google-streaming-enhanced.ts +0 -147
  149. package/src/test-scripts/test-google-streaming.ts +0 -63
  150. package/src/test-scripts/test-google-system-prompt-comprehensive.ts +0 -189
  151. package/src/test-scripts/test-google-thinking.ts +0 -46
  152. package/src/test-scripts/test-mcp-config.ts +0 -28
  153. package/src/test-scripts/test-mcp-connection.ts +0 -29
  154. package/src/test-scripts/test-system-message-positions.ts +0 -163
  155. package/src/test-scripts/test-system-prompt-improvement-demo.ts +0 -83
  156. package/src/test-scripts/test-tool-calling.ts +0 -231
  157. package/src/test-scripts/test-vllm-qwen36.ts +0 -256
  158. package/src/tests/ai-model.test.ts +0 -1614
  159. package/src/tests/auditor.test.ts +0 -224
  160. package/src/tests/gemma-diffusion.test.ts +0 -115
  161. package/src/tests/http.test.ts +0 -200
  162. package/src/tests/interfaces.test.ts +0 -117
  163. package/src/tests/providers/anthropic.test.ts +0 -118
  164. package/src/tests/providers/google.test.ts +0 -841
  165. package/src/tests/providers/ollama.test.ts +0 -1034
  166. package/src/tests/providers/openai.test.ts +0 -1511
  167. package/src/tests/router.test.ts +0 -254
  168. package/src/tests/stream-decoder.test.ts +0 -263
  169. package/src/tests/structured-output.test.ts +0 -1450
  170. package/src/tests/thinking.test.ts +0 -65
  171. package/src/tests/tools.test.ts +0 -175
  172. package/src/thinking.ts +0 -73
  173. package/src/tools.ts +0 -246
  174. package/src/zod-adapter.ts +0 -72
@@ -10,7 +10,201 @@ import { httpRequest, httpStream, parseSSE, buildHeaders } from '../http.js';
10
10
  import { StandardChatDecoder } from '../stream-decoder.js';
11
11
  import { normalizeJsonSchema, getJsonSchemaFromConfig, } from '../structured-output.js';
12
12
  import { isGemmaDiffusionModel, parseGemmaDiffusionOutput } from '../gemma-diffusion.js';
13
+ const VLLM_AUTO_TOOL_CHOICE_HINT = 'vLLM rejected automatic tool choice. Retrying with text-level tool calling. To use native tool_calls, start vLLM with --enable-auto-tool-choice and --tool-call-parser <parser>.';
14
+ function normalizeMessagesForOpenAICompat(messages) {
15
+ let sawNonSystem = false;
16
+ return messages.map(message => {
17
+ if (message.role !== 'system') {
18
+ sawNonSystem = true;
19
+ return {
20
+ ...message,
21
+ content: message.content ?? '',
22
+ };
23
+ }
24
+ if (!sawNonSystem) {
25
+ return {
26
+ ...message,
27
+ content: message.content ?? '',
28
+ };
29
+ }
30
+ return {
31
+ ...message,
32
+ role: 'user',
33
+ content: `[SYSTEM MESSAGE]\n${stringifyMessageContent(message.content)}`,
34
+ };
35
+ });
36
+ }
37
+ function stringifyMessageContent(content) {
38
+ if (typeof content === 'string')
39
+ return content;
40
+ return content
41
+ .map(part => {
42
+ if (part.type === 'text')
43
+ return part.text;
44
+ if (part.type === 'image_url')
45
+ return `[Image: ${part.image_url.url}]`;
46
+ if (part.type === 'audio')
47
+ return `[Audio: ${part.audio.mimeType}]`;
48
+ return '';
49
+ })
50
+ .filter(Boolean)
51
+ .join('\n');
52
+ }
53
+ function hasToolDefinitions(body) {
54
+ const tools = body['tools'];
55
+ return Array.isArray(tools) && tools.length > 0;
56
+ }
57
+ function isVllmAutoToolChoiceError(value) {
58
+ const text = value instanceof Error
59
+ ? value.message
60
+ : typeof value === 'string'
61
+ ? value
62
+ : JSON.stringify(value ?? '');
63
+ const normalized = text.toLowerCase();
64
+ return (normalized.includes('auto')
65
+ && normalized.includes('tool choice requires --enable-auto-tool-choice')
66
+ && normalized.includes('--tool-call-parser'));
67
+ }
68
+ async function requestWithVllmToolFallback(url, request, tools, onFallback) {
69
+ try {
70
+ return await httpRequest(url, {
71
+ method: 'POST',
72
+ headers: request.headers,
73
+ body: request.body,
74
+ timeout: request.timeout,
75
+ });
76
+ }
77
+ catch (error) {
78
+ if (tools?.length
79
+ && hasToolDefinitions(request.body)
80
+ && isVllmAutoToolChoiceError(error)) {
81
+ onFallback();
82
+ return httpRequest(url, {
83
+ method: 'POST',
84
+ headers: request.headers,
85
+ body: withoutNativeTools(request.body, tools),
86
+ timeout: request.timeout,
87
+ });
88
+ }
89
+ throw error;
90
+ }
91
+ }
92
+ function parseJsonObject(text) {
93
+ try {
94
+ const parsed = JSON.parse(text);
95
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
96
+ return parsed;
97
+ }
98
+ }
99
+ catch {
100
+ /* not JSON */
101
+ }
102
+ return null;
103
+ }
104
+ function parseTextToolCallBody(content) {
105
+ const body = content.trim();
106
+ if (!body)
107
+ return [];
108
+ try {
109
+ const parsed = JSON.parse(body);
110
+ const rawCalls = Array.isArray(parsed) ? parsed : [parsed];
111
+ const calls = [];
112
+ for (const rawCall of rawCalls) {
113
+ if (!rawCall || typeof rawCall !== 'object')
114
+ continue;
115
+ const record = rawCall;
116
+ const name = record['name'];
117
+ if (typeof name !== 'string' || !name)
118
+ continue;
119
+ const args = record['arguments'] ?? record['parameters'] ?? record['args'] ?? {};
120
+ calls.push({
121
+ name,
122
+ arguments: typeof args === 'string' ? JSON.stringify(parseJsonObject(args) ?? {}) : JSON.stringify(args ?? {}),
123
+ });
124
+ }
125
+ if (calls.length > 0)
126
+ return calls;
127
+ }
128
+ catch {
129
+ /* not structured JSON */
130
+ }
131
+ const functionCallMatch = /^([@A-Za-z_][@A-Za-z0-9_.:-]*)\s*\(([\s\S]*)\)\s*$/u.exec(body);
132
+ if (functionCallMatch) {
133
+ const rawArgs = functionCallMatch[2].trim();
134
+ const args = rawArgs ? parseJsonObject(rawArgs) : {};
135
+ if (args) {
136
+ return [{ name: functionCallMatch[1], arguments: JSON.stringify(args) }];
137
+ }
138
+ }
139
+ const calls = [];
140
+ const funcPattern = /<function=([@A-Za-z_][@A-Za-z0-9_.:-]*)>([\s\S]*?)<\/function>/g;
141
+ let fMatch;
142
+ while ((fMatch = funcPattern.exec(body)) !== null) {
143
+ const args = {};
144
+ const paramPattern = /<parameter=([A-Za-z_][A-Za-z0-9_-]*)>([\s\S]*?)<\/parameter>/g;
145
+ let pMatch;
146
+ while ((pMatch = paramPattern.exec(fMatch[2] ?? '')) !== null) {
147
+ args[pMatch[1]] = pMatch[2].trim();
148
+ }
149
+ calls.push({ name: fMatch[1], arguments: JSON.stringify(args) });
150
+ }
151
+ return calls;
152
+ }
153
+ function recoverToolCallsFromText(content, knownToolNames, generateId) {
154
+ if (!content || content.length < 10)
155
+ return null;
156
+ const calls = [];
157
+ let cleanContent = content;
158
+ const isKnownTool = (name) => knownToolNames.has(name);
159
+ const toolCallPattern = /<tool_call>([\s\S]*?)<\/tool_call>/g;
160
+ let tcMatch;
161
+ while ((tcMatch = toolCallPattern.exec(content)) !== null) {
162
+ const parsedCalls = parseTextToolCallBody(tcMatch[1]);
163
+ let matched = false;
164
+ for (const parsed of parsedCalls) {
165
+ if (!isKnownTool(parsed.name))
166
+ continue;
167
+ matched = true;
168
+ calls.push({
169
+ id: generateId(),
170
+ type: 'function',
171
+ function: { name: parsed.name, arguments: parsed.arguments },
172
+ });
173
+ }
174
+ if (matched)
175
+ cleanContent = cleanContent.replace(tcMatch[0], '');
176
+ }
177
+ if (calls.length === 0)
178
+ return null;
179
+ return { calls, cleanContent: cleanContent.trim() };
180
+ }
181
+ function toolFallbackInstruction(tools) {
182
+ const toolLines = tools.map(tool => {
183
+ const fn = tool.function;
184
+ return `- ${fn.name}: ${fn.description}\n parameters JSON schema: ${JSON.stringify(fn.parameters)}`;
185
+ });
186
+ return {
187
+ role: 'system',
188
+ content: 'The server does not support native OpenAI tool parsing for this request. '
189
+ + 'Use this text tool protocol instead.\n\n'
190
+ + 'When you need a tool, respond with exactly one or more tool calls and no prose:\n'
191
+ + '<tool_call>tool_name({"argument":"value"})</tool_call>\n\n'
192
+ + 'After tool results are provided, answer the user normally. Available tools:\n'
193
+ + toolLines.join('\n'),
194
+ };
195
+ }
196
+ function withTextToolFallbackMessages(messages, tools) {
197
+ return [toolFallbackInstruction(tools), ...messages];
198
+ }
199
+ function withoutNativeTools(body, tools) {
200
+ const fallbackBody = { ...body };
201
+ delete fallbackBody['tools'];
202
+ delete fallbackBody['tool_choice'];
203
+ fallbackBody['messages'] = withTextToolFallbackMessages(body['messages'] ?? [], tools);
204
+ return fallbackBody;
205
+ }
13
206
  export class OpenAICompatibleClient extends BaseLLMClient {
207
+ warnedVllmToolFallback = false;
14
208
  /**
15
209
  * DiffusionGemma on trimmed vLLM builds has no server-side reasoning or
16
210
  * tool-call parser — the native channel protocol is handled client-side
@@ -60,13 +254,19 @@ export class OpenAICompatibleClient extends BaseLLMClient {
60
254
  }
61
255
  super({ ...options, url: base }, auditor);
62
256
  }
257
+ warnVllmToolFallback() {
258
+ if (this.warnedVllmToolFallback)
259
+ return;
260
+ this.warnedVllmToolFallback = true;
261
+ console.warn(`[OpenAI] ${VLLM_AUTO_TOOL_CHOICE_HINT}`);
262
+ }
63
263
  // ========================================================================
64
264
  // Chat
65
265
  // ========================================================================
66
266
  async chat(messages, options) {
67
267
  // Structured output and tools can now be used together.\n // The provider sends both response_format and tools in the request.\n // The Router handles skipping validation when the response contains tool calls.
68
268
  const url = this.buildUrl('/chat/completions');
69
- const tools = options?.tools ?? (Object.keys(this.toolRegistry).length > 0 ? this.getToolDefinitions() : undefined);
269
+ const tools = options?.tools;
70
270
  const body = {
71
271
  model: this.options.model,
72
272
  messages: this.convertMessages(messages),
@@ -100,12 +300,11 @@ export class OpenAICompatibleClient extends BaseLLMClient {
100
300
  provider: 'openai',
101
301
  model: this.options.model,
102
302
  });
103
- const response = await httpRequest(url, {
104
- method: 'POST',
303
+ const response = await requestWithVllmToolFallback(url, {
105
304
  headers: buildHeaders(this.options),
106
305
  body,
107
306
  timeout: this.options.timeout ?? 30000,
108
- });
307
+ }, tools, () => this.warnVllmToolFallback());
109
308
  const data = response.data;
110
309
  const choice = data.choices[0];
111
310
  if (!choice) {
@@ -152,6 +351,14 @@ export class OpenAICompatibleClient extends BaseLLMClient {
152
351
  }));
153
352
  }
154
353
  }
354
+ if (!toolCalls?.length && tools?.length && content) {
355
+ const knownToolNames = new Set(tools.map(tool => tool.function.name));
356
+ const recovered = recoverToolCallsFromText(content, knownToolNames, () => this.generateToolCallId());
357
+ if (recovered) {
358
+ toolCalls = recovered.calls;
359
+ content = recovered.cleanContent;
360
+ }
361
+ }
155
362
  const result = {
156
363
  message: {
157
364
  role: 'assistant',
@@ -177,7 +384,7 @@ export class OpenAICompatibleClient extends BaseLLMClient {
177
384
  // ========================================================================
178
385
  async *chatStream(messages, options) {
179
386
  const url = this.buildUrl('/chat/completions');
180
- const tools = options?.tools ?? (Object.keys(this.toolRegistry).length > 0 ? this.getToolDefinitions() : undefined);
387
+ const tools = options?.tools;
181
388
  const body = {
182
389
  model: this.options.model,
183
390
  messages: this.convertMessages(messages),
@@ -208,81 +415,100 @@ export class OpenAICompatibleClient extends BaseLLMClient {
208
415
  const decoder = new StandardChatDecoder(this.gemmaNative ? e => decoderEvents.push(e) : () => { });
209
416
  // Track accumulated tool calls across chunks
210
417
  const toolCallAccum = new Map();
211
- const stream = httpStream(url, {
212
- method: 'POST',
213
- headers: buildHeaders(this.options),
214
- body,
215
- timeout: this.options.timeout ?? 120000,
216
- });
418
+ let activeBody = body;
419
+ let retriedWithTextTools = false;
217
420
  let usage;
218
421
  // Accumulates reasoning deltas from servers that stream a dedicated
219
422
  // `reasoning` / `reasoning_content` field (vLLM, DeepSeek-R1, etc.).
220
423
  let reasoningBuffer = '';
221
- for await (const { data } of parseSSE(stream)) {
424
+ while (true) {
425
+ const stream = httpStream(url, {
426
+ method: 'POST',
427
+ headers: buildHeaders(this.options),
428
+ body: activeBody,
429
+ timeout: this.options.timeout ?? 120000,
430
+ });
222
431
  try {
223
- const parsed = JSON.parse(data);
224
- if (parsed.usage) {
225
- usage = {
226
- inputTokens: parsed.usage.prompt_tokens,
227
- outputTokens: parsed.usage.completion_tokens,
228
- totalTokens: parsed.usage.total_tokens,
229
- cachedTokens: parsed.usage.prompt_tokens_details?.cached_tokens,
230
- };
231
- }
232
- const delta = parsed.choices?.[0]?.delta;
233
- if (!delta)
234
- continue;
235
- // Surface server-side reasoning deltas as thinking events.
236
- const reasoningDelta = delta.reasoning ?? delta.reasoning_content;
237
- if (reasoningDelta) {
238
- reasoningBuffer += reasoningDelta;
239
- yield { type: 'thinking', content: reasoningDelta };
240
- }
241
- if (delta.content) {
242
- decoder.push(delta.content);
243
- if (this.gemmaNative) {
244
- while (decoderEvents.length)
245
- yield decoderEvents.shift();
246
- }
247
- else {
248
- yield { type: 'text', content: delta.content };
249
- }
250
- }
251
- // Accumulate streamed tool calls
252
- if (delta.tool_calls) {
253
- for (const tc of delta.tool_calls) {
254
- const existing = toolCallAccum.get(tc.index);
255
- if (!existing) {
256
- toolCallAccum.set(tc.index, {
257
- id: tc.id || this.generateToolCallId(),
258
- type: 'function',
259
- function: {
260
- name: tc.function?.name || '',
261
- arguments: tc.function?.arguments || '',
262
- },
263
- });
432
+ for await (const { data } of parseSSE(stream)) {
433
+ try {
434
+ const parsed = JSON.parse(data);
435
+ if (parsed.usage) {
436
+ usage = {
437
+ inputTokens: parsed.usage.prompt_tokens,
438
+ outputTokens: parsed.usage.completion_tokens,
439
+ totalTokens: parsed.usage.total_tokens,
440
+ cachedTokens: parsed.usage.prompt_tokens_details?.cached_tokens,
441
+ };
442
+ }
443
+ const delta = parsed.choices?.[0]?.delta;
444
+ if (!delta)
445
+ continue;
446
+ // Surface server-side reasoning deltas as thinking events.
447
+ const reasoningDelta = delta.reasoning ?? delta.reasoning_content;
448
+ if (reasoningDelta) {
449
+ reasoningBuffer += reasoningDelta;
450
+ yield { type: 'thinking', content: reasoningDelta };
451
+ }
452
+ if (delta.content) {
453
+ decoder.push(delta.content);
454
+ if (this.gemmaNative) {
455
+ while (decoderEvents.length)
456
+ yield decoderEvents.shift();
457
+ }
458
+ else {
459
+ yield { type: 'text', content: delta.content };
460
+ }
264
461
  }
265
- else {
266
- if (tc.function?.arguments) {
267
- existing.function.arguments += tc.function.arguments;
462
+ // Accumulate streamed tool calls
463
+ if (delta.tool_calls) {
464
+ for (const tc of delta.tool_calls) {
465
+ const existing = toolCallAccum.get(tc.index);
466
+ if (!existing) {
467
+ toolCallAccum.set(tc.index, {
468
+ id: tc.id || this.generateToolCallId(),
469
+ type: 'function',
470
+ function: {
471
+ name: tc.function?.name || '',
472
+ arguments: tc.function?.arguments || '',
473
+ },
474
+ });
475
+ }
476
+ else {
477
+ if (tc.function?.arguments) {
478
+ existing.function.arguments += tc.function.arguments;
479
+ }
480
+ if (tc.function?.name) {
481
+ existing.function.name += tc.function.name;
482
+ }
483
+ }
268
484
  }
269
- if (tc.function?.name) {
270
- existing.function.name += tc.function.name;
485
+ }
486
+ // Emit tool calls when stream finishes
487
+ if (parsed.choices?.[0]?.finish_reason === 'tool_calls' || parsed.choices?.[0]?.finish_reason === 'stop') {
488
+ if (toolCallAccum.size > 0) {
489
+ const calls = Array.from(toolCallAccum.values())
490
+ .map(tc => this.normalizeToolCall(tc));
491
+ yield { type: 'tool_call', calls };
271
492
  }
272
493
  }
273
494
  }
274
- }
275
- // Emit tool calls when stream finishes
276
- if (parsed.choices?.[0]?.finish_reason === 'tool_calls' || parsed.choices?.[0]?.finish_reason === 'stop') {
277
- if (toolCallAccum.size > 0) {
278
- const calls = Array.from(toolCallAccum.values())
279
- .map(tc => this.normalizeToolCall(tc));
280
- yield { type: 'tool_call', calls };
495
+ catch {
496
+ // Skip unparseable SSE data
281
497
  }
282
498
  }
499
+ break;
283
500
  }
284
- catch {
285
- // Skip unparseable SSE data
501
+ catch (error) {
502
+ if (!retriedWithTextTools
503
+ && tools?.length
504
+ && hasToolDefinitions(activeBody)
505
+ && isVllmAutoToolChoiceError(error)) {
506
+ this.warnVllmToolFallback();
507
+ activeBody = withoutNativeTools(activeBody, tools);
508
+ retriedWithTextTools = true;
509
+ continue;
510
+ }
511
+ throw error;
286
512
  }
287
513
  }
288
514
  decoder.flush();
@@ -332,6 +558,15 @@ export class OpenAICompatibleClient extends BaseLLMClient {
332
558
  yield { type: 'tool_call', calls: finalToolCalls };
333
559
  }
334
560
  }
561
+ if (!finalToolCalls?.length && tools?.length && cleanContent) {
562
+ const knownToolNames = new Set(tools.map(tool => tool.function.name));
563
+ const recovered = recoverToolCallsFromText(cleanContent, knownToolNames, () => this.generateToolCallId());
564
+ if (recovered) {
565
+ finalToolCalls = recovered.calls;
566
+ cleanContent = recovered.cleanContent;
567
+ yield { type: 'tool_call', calls: finalToolCalls };
568
+ }
569
+ }
335
570
  return {
336
571
  message: {
337
572
  role: 'assistant',
@@ -400,12 +635,7 @@ export class OpenAICompatibleClient extends BaseLLMClient {
400
635
  // Internals
401
636
  // ========================================================================
402
637
  convertMessages(messages) {
403
- // OpenAI format is our canonical format, minimal conversion needed
404
- return messages.map(msg => ({
405
- ...msg,
406
- // Ensure content is never null/undefined
407
- content: msg.content ?? '',
408
- }));
638
+ return normalizeMessagesForOpenAICompat(messages);
409
639
  }
410
640
  buildRequestParams(options) {
411
641
  const params = {
@@ -478,4 +708,3 @@ export class OpenAICompatibleClient extends BaseLLMClient {
478
708
  };
479
709
  }
480
710
  }
481
- //# sourceMappingURL=openai.js.map
package/dist/router.d.ts CHANGED
@@ -136,4 +136,3 @@ export declare class Router {
136
136
  private recordSuccess;
137
137
  private recordFailure;
138
138
  }
139
- //# sourceMappingURL=router.d.ts.map
package/dist/router.js CHANGED
@@ -580,4 +580,3 @@ export class Router {
580
580
  }
581
581
  }
582
582
  }
583
- //# sourceMappingURL=router.js.map
@@ -148,4 +148,3 @@ export declare function getRegisteredDecoders(): string[];
148
148
  * @throws Error if the decoder type is not registered
149
149
  */
150
150
  export declare function createDecoder(type: DecoderType | string, callback: DecoderCallback, options?: DecoderOptions): StreamDecoder;
151
- //# sourceMappingURL=stream-decoder.d.ts.map
@@ -440,4 +440,3 @@ export function createDecoder(type, callback, options) {
440
440
  }
441
441
  return factory(callback, options);
442
442
  }
443
- //# sourceMappingURL=stream-decoder.js.map
@@ -390,4 +390,3 @@ export interface StreamingStructuredResult<T> {
390
390
  /** The validated partial or complete object */
391
391
  value: T;
392
392
  }
393
- //# sourceMappingURL=structured-output.d.ts.map
@@ -447,4 +447,3 @@ export class StreamingJsonParser {
447
447
  return undefined;
448
448
  }
449
449
  }
450
- //# sourceMappingURL=structured-output.js.map
@@ -33,4 +33,3 @@ export declare function geminiThinkingBudget(level: ThinkingLevel | undefined):
33
33
  * API minimum) and < `maxTokens` (the API requires headroom for the answer).
34
34
  */
35
35
  export declare function anthropicThinkingBudget(level: ThinkingLevel | undefined, maxTokens: number): number;
36
- //# sourceMappingURL=thinking.d.ts.map
package/dist/thinking.js CHANGED
@@ -49,4 +49,3 @@ export function anthropicThinkingBudget(level, maxTokens) {
49
49
  : 2048; // bare `true`
50
50
  return Math.max(1024, Math.min(base, maxTokens - 1024));
51
51
  }
52
- //# sourceMappingURL=thinking.js.map
package/dist/tools.d.ts CHANGED
@@ -75,4 +75,3 @@ export declare function createRandomNumberTool(): {
75
75
  parameters: LLMFunction['parameters'];
76
76
  handler: ToolHandler;
77
77
  };
78
- //# sourceMappingURL=tools.d.ts.map
package/dist/tools.js CHANGED
@@ -204,4 +204,3 @@ export function createRandomNumberTool() {
204
204
  },
205
205
  };
206
206
  }
207
- //# sourceMappingURL=tools.js.map
@@ -41,4 +41,3 @@ export declare function fromZod<T>(schema: z.ZodType<T>, options?: {
41
41
  }): SchemaConfig<T>;
42
42
  export { z } from 'zod';
43
43
  export type { SchemaConfig } from './structured-output.js';
44
- //# sourceMappingURL=zod-adapter.d.ts.map
@@ -58,4 +58,3 @@ export function fromZod(schema, options) {
58
58
  }
59
59
  // Re-export z for convenience (users importing from /zod likely want it)
60
60
  export { z } from 'zod';
61
- //# sourceMappingURL=zod-adapter.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-llm-client",
3
- "version": "4.5.0",
3
+ "version": "4.5.1",
4
4
  "type": "module",
5
5
  "description": "A universal LLM client with transparent provider failover, streaming tool execution, pluggable reasoning, and native observability.",
6
6
  "main": "./dist/index.js",
@@ -41,7 +41,6 @@
41
41
  },
42
42
  "files": [
43
43
  "dist",
44
- "src",
45
44
  "README.md",
46
45
  "CHANGELOG.md",
47
46
  "LICENSE"
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-model.d.ts","sourceRoot":"","sources":["../src/ai-model.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-model.js","sourceRoot":"","sources":["../src/ai-model.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"auditor.d.ts","sourceRoot":"","sources":["../src/auditor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAM3E,MAAM,MAAM,cAAc,GACpB,SAAS,GACT,UAAU,GACV,cAAc,GACd,YAAY,GACZ,WAAW,GACX,aAAa,GACb,OAAO,GACP,OAAO,GACP,UAAU,GACV,oBAAoB,GACpB,qBAAqB,GACrB,6BAA6B,CAAC;AAEpC,MAAM,WAAW,UAAU;IACvB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,IAAI,EAAE,cAAc,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,gEAAgE;IAChE,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACpB,4BAA4B;IAC5B,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,2CAA2C;IAC3C,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAMD;;;GAGG;AACH,qBAAa,WAAY,YAAW,OAAO;IACvC,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;CAGnC;AAED;;;GAGG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC1C,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,MAAgB;IAIpC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAwElC;AAED;;;GAGG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAC3C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAC,CAA0C;gBAE9C,OAAO,GAAE;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAChD;IAKN,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQ/B,8BAA8B;IAC9B,SAAS,IAAI,aAAa,CAAC,UAAU,CAAC;IAItC,mDAAmD;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B,iDAAiD;IACjD,KAAK,IAAI,IAAI;CAGhB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"auditor.js","sourceRoot":"","sources":["../src/auditor.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemma-channel.d.ts","sourceRoot":"","sources":["../src/gemma-channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B;AAKD,eAAO,MAAM,qBAAqB,6CAA8C,CAAC;AAEjF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAyBjF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemma-channel.js","sourceRoot":"","sources":["../src/gemma-channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,mBAAmB,GAAG,uDAAuD,CAAC;AACpF,MAAM,2BAA2B,GAAG,oCAAoC,CAAC;AAEzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAU,CAAC;AAEjF,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAEnE,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,MAAM,OAAO,GAAG,KAAK;SAChB,OAAO,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAe,EAAE,EAAE;QACtD,KAAK,GAAG,IAAI,CAAC;QACb,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,UAAU;YAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,EAAE,CAAC;IACd,CAAC,CAAC;SACD,OAAO,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,OAAe,EAAE,EAAE;QAC9D,KAAK,GAAG,IAAI,CAAC;QACb,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,UAAU;YAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEP,OAAO;QACH,OAAO;QACP,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,KAAK;KACR,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACjD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemma-diffusion.d.ts","sourceRoot":"","sources":["../src/gemma-diffusion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACtD;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5D;AAaD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwEpD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CA2B3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemma-diffusion.js","sourceRoot":"","sources":["../src/gemma-diffusion.ts"],"names":[],"mappings":"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"}