@aituber-onair/chat 0.35.0 → 0.37.0

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 (91) hide show
  1. package/README.ja.md +6 -6
  2. package/README.md +7 -8
  3. package/dist/cjs/constants/claude.d.ts +1 -0
  4. package/dist/cjs/constants/claude.d.ts.map +1 -1
  5. package/dist/cjs/constants/claude.js +3 -1
  6. package/dist/cjs/constants/claude.js.map +1 -1
  7. package/dist/cjs/constants/gemini.d.ts +0 -7
  8. package/dist/cjs/constants/gemini.d.ts.map +1 -1
  9. package/dist/cjs/constants/gemini.js +1 -10
  10. package/dist/cjs/constants/gemini.js.map +1 -1
  11. package/dist/cjs/services/providers/claude/ClaudeChatService.d.ts +0 -24
  12. package/dist/cjs/services/providers/claude/ClaudeChatService.d.ts.map +1 -1
  13. package/dist/cjs/services/providers/claude/ClaudeChatService.js +3 -113
  14. package/dist/cjs/services/providers/claude/ClaudeChatService.js.map +1 -1
  15. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
  16. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js +1 -0
  17. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
  18. package/dist/cjs/services/providers/claude/claudeMessageConverter.d.ts +6 -0
  19. package/dist/cjs/services/providers/claude/claudeMessageConverter.d.ts.map +1 -0
  20. package/dist/cjs/services/providers/claude/claudeMessageConverter.js +95 -0
  21. package/dist/cjs/services/providers/claude/claudeMessageConverter.js.map +1 -0
  22. package/dist/cjs/services/providers/gemini/GeminiChatService.d.ts +0 -21
  23. package/dist/cjs/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
  24. package/dist/cjs/services/providers/gemini/GeminiChatService.js +14 -254
  25. package/dist/cjs/services/providers/gemini/GeminiChatService.js.map +1 -1
  26. package/dist/cjs/services/providers/gemini/geminiMessageConverter.d.ts +17 -0
  27. package/dist/cjs/services/providers/gemini/geminiMessageConverter.d.ts.map +1 -0
  28. package/dist/cjs/services/providers/gemini/geminiMessageConverter.js +183 -0
  29. package/dist/cjs/services/providers/gemini/geminiMessageConverter.js.map +1 -0
  30. package/dist/cjs/services/providers/gemini/geminiToolAdapter.d.ts +23 -0
  31. package/dist/cjs/services/providers/gemini/geminiToolAdapter.d.ts.map +1 -0
  32. package/dist/cjs/services/providers/gemini/geminiToolAdapter.js +47 -0
  33. package/dist/cjs/services/providers/gemini/geminiToolAdapter.js.map +1 -0
  34. package/dist/cjs/services/providers/openai/OpenAIChatService.d.ts +3 -28
  35. package/dist/cjs/services/providers/openai/OpenAIChatService.d.ts.map +1 -1
  36. package/dist/cjs/services/providers/openai/OpenAIChatService.js +15 -250
  37. package/dist/cjs/services/providers/openai/OpenAIChatService.js.map +1 -1
  38. package/dist/cjs/services/providers/openai/openaiRequestBuilder.d.ts +33 -0
  39. package/dist/cjs/services/providers/openai/openaiRequestBuilder.d.ts.map +1 -0
  40. package/dist/cjs/services/providers/openai/openaiRequestBuilder.js +218 -0
  41. package/dist/cjs/services/providers/openai/openaiRequestBuilder.js.map +1 -0
  42. package/dist/cjs/services/providers/openai/openaiToolBuilder.d.ts +9 -0
  43. package/dist/cjs/services/providers/openai/openaiToolBuilder.d.ts.map +1 -0
  44. package/dist/cjs/services/providers/openai/openaiToolBuilder.js +36 -0
  45. package/dist/cjs/services/providers/openai/openaiToolBuilder.js.map +1 -0
  46. package/dist/esm/constants/claude.d.ts +1 -0
  47. package/dist/esm/constants/claude.d.ts.map +1 -1
  48. package/dist/esm/constants/claude.js +2 -0
  49. package/dist/esm/constants/claude.js.map +1 -1
  50. package/dist/esm/constants/gemini.d.ts +0 -7
  51. package/dist/esm/constants/gemini.d.ts.map +1 -1
  52. package/dist/esm/constants/gemini.js +0 -9
  53. package/dist/esm/constants/gemini.js.map +1 -1
  54. package/dist/esm/services/providers/claude/ClaudeChatService.d.ts +0 -24
  55. package/dist/esm/services/providers/claude/ClaudeChatService.d.ts.map +1 -1
  56. package/dist/esm/services/providers/claude/ClaudeChatService.js +3 -113
  57. package/dist/esm/services/providers/claude/ClaudeChatService.js.map +1 -1
  58. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
  59. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js +2 -1
  60. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
  61. package/dist/esm/services/providers/claude/claudeMessageConverter.d.ts +6 -0
  62. package/dist/esm/services/providers/claude/claudeMessageConverter.d.ts.map +1 -0
  63. package/dist/esm/services/providers/claude/claudeMessageConverter.js +89 -0
  64. package/dist/esm/services/providers/claude/claudeMessageConverter.js.map +1 -0
  65. package/dist/esm/services/providers/gemini/GeminiChatService.d.ts +0 -21
  66. package/dist/esm/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
  67. package/dist/esm/services/providers/gemini/GeminiChatService.js +14 -254
  68. package/dist/esm/services/providers/gemini/GeminiChatService.js.map +1 -1
  69. package/dist/esm/services/providers/gemini/geminiMessageConverter.d.ts +17 -0
  70. package/dist/esm/services/providers/gemini/geminiMessageConverter.d.ts.map +1 -0
  71. package/dist/esm/services/providers/gemini/geminiMessageConverter.js +178 -0
  72. package/dist/esm/services/providers/gemini/geminiMessageConverter.js.map +1 -0
  73. package/dist/esm/services/providers/gemini/geminiToolAdapter.d.ts +23 -0
  74. package/dist/esm/services/providers/gemini/geminiToolAdapter.d.ts.map +1 -0
  75. package/dist/esm/services/providers/gemini/geminiToolAdapter.js +42 -0
  76. package/dist/esm/services/providers/gemini/geminiToolAdapter.js.map +1 -0
  77. package/dist/esm/services/providers/openai/OpenAIChatService.d.ts +3 -28
  78. package/dist/esm/services/providers/openai/OpenAIChatService.d.ts.map +1 -1
  79. package/dist/esm/services/providers/openai/OpenAIChatService.js +17 -252
  80. package/dist/esm/services/providers/openai/OpenAIChatService.js.map +1 -1
  81. package/dist/esm/services/providers/openai/openaiRequestBuilder.d.ts +33 -0
  82. package/dist/esm/services/providers/openai/openaiRequestBuilder.d.ts.map +1 -0
  83. package/dist/esm/services/providers/openai/openaiRequestBuilder.js +212 -0
  84. package/dist/esm/services/providers/openai/openaiRequestBuilder.js.map +1 -0
  85. package/dist/esm/services/providers/openai/openaiToolBuilder.d.ts +9 -0
  86. package/dist/esm/services/providers/openai/openaiToolBuilder.d.ts.map +1 -0
  87. package/dist/esm/services/providers/openai/openaiToolBuilder.js +33 -0
  88. package/dist/esm/services/providers/openai/openaiToolBuilder.js.map +1 -0
  89. package/dist/umd/aituber-onair-chat.js +552 -548
  90. package/dist/umd/aituber-onair-chat.min.js +10 -10
  91. package/package.json +1 -1
@@ -7,28 +7,12 @@ const streamTextAccumulator_1 = require("../../../utils/streamTextAccumulator");
7
7
  const chatServiceHttpClient_1 = require("../../../utils/chatServiceHttpClient");
8
8
  const mcpSchemaFetcher_1 = require("../../../utils/mcpSchemaFetcher");
9
9
  const utils_1 = require("../../../utils");
10
+ const geminiMessageConverter_1 = require("./geminiMessageConverter");
11
+ const geminiToolAdapter_1 = require("./geminiToolAdapter");
10
12
  /**
11
13
  * Gemini implementation of ChatService
12
14
  */
13
15
  class GeminiChatService {
14
- /* ────────────────────────────────── */
15
- /* Utilities */
16
- /* ────────────────────────────────── */
17
- safeJsonParse(str) {
18
- try {
19
- return JSON.parse(str);
20
- }
21
- catch {
22
- return str; // keep as string
23
- }
24
- }
25
- normalizeToolResult(val) {
26
- if (val === null)
27
- return { content: null };
28
- if (typeof val === 'object')
29
- return val;
30
- return { content: val }; // wrap primitive
31
- }
32
16
  isGemma4Model(model) {
33
17
  return /^gemma-4-/.test(model);
34
18
  }
@@ -159,21 +143,7 @@ class GeminiChatService {
159
143
  }
160
144
  catch (error) {
161
145
  console.warn('Failed to initialize MCP schemas, using fallback:', error);
162
- // Use fallback schemas - always provide basic functionality
163
- this.mcpToolSchemas = this.mcpServers.map((server) => ({
164
- name: `mcp_${server.name}_search`,
165
- description: `Search using ${server.name} MCP server (fallback)`,
166
- parameters: {
167
- type: 'object',
168
- properties: {
169
- query: {
170
- type: 'string',
171
- description: 'Search query',
172
- },
173
- },
174
- required: ['query'],
175
- },
176
- }));
146
+ this.mcpToolSchemas = (0, geminiToolAdapter_1.createFallbackMCPToolSchemas)(this.mcpServers);
177
147
  this.mcpSchemasInitialized = true;
178
148
  }
179
149
  }
@@ -227,76 +197,18 @@ class GeminiChatService {
227
197
  }
228
198
  }
229
199
  /* ────────────────────────────────── */
230
- /* OpenAI → Gemini conversion */
231
- /* ────────────────────────────────── */
232
- convertMessagesToGeminiFormat(messages) {
233
- const gemini = [];
234
- let currentRole = null;
235
- let currentParts = [];
236
- const pushCurrent = () => {
237
- if (currentRole && currentParts.length) {
238
- gemini.push({ role: currentRole, parts: [...currentParts] });
239
- currentParts = [];
240
- }
241
- };
242
- for (const msg of messages) {
243
- const role = this.mapRoleToGemini(msg.role);
244
- /* assistant: tool_calls -> functionCall */
245
- if (msg.tool_calls) {
246
- pushCurrent();
247
- for (const call of msg.tool_calls) {
248
- this.callIdMap.set(call.id, call.function.name);
249
- gemini.push({
250
- role: 'model',
251
- parts: [
252
- {
253
- functionCall: {
254
- name: call.function.name,
255
- args: JSON.parse(call.function.arguments || '{}'),
256
- },
257
- },
258
- ],
259
- });
260
- }
261
- continue;
262
- }
263
- /* tool → functionResponse */
264
- if (msg.role === 'tool') {
265
- pushCurrent();
266
- const funcName = msg.name ??
267
- this.callIdMap.get(msg.tool_call_id) ??
268
- 'result';
269
- gemini.push({
270
- role: 'user',
271
- parts: [
272
- {
273
- functionResponse: {
274
- name: funcName,
275
- response: this.normalizeToolResult(this.safeJsonParse(msg.content)),
276
- },
277
- },
278
- ],
279
- });
280
- continue;
281
- }
282
- /* normal text */
283
- if (role !== currentRole)
284
- pushCurrent();
285
- currentRole = role;
286
- currentParts.push({ text: msg.content });
287
- }
288
- pushCurrent();
289
- return gemini;
290
- }
291
- /* ────────────────────────────────── */
292
200
  /* HTTP call */
293
201
  /* ────────────────────────────────── */
294
202
  async callGemini(messages, model, stream = false, maxTokens) {
295
203
  const hasVision = messages.some((m) => Array.isArray(m.content) &&
296
204
  m.content.some((b) => b?.type === 'image_url' || b?.inlineData));
297
205
  const contents = hasVision
298
- ? await this.convertVisionMessagesToGeminiFormat(messages)
299
- : this.convertMessagesToGeminiFormat(messages);
206
+ ? await (0, geminiMessageConverter_1.convertVisionMessagesToGeminiFormat)(messages, {
207
+ callIdMap: this.callIdMap,
208
+ })
209
+ : (0, geminiMessageConverter_1.convertMessagesToGeminiFormat)(messages, {
210
+ callIdMap: this.callIdMap,
211
+ });
300
212
  const body = {
301
213
  contents,
302
214
  generationConfig: {
@@ -311,41 +223,19 @@ class GeminiChatService {
311
223
  thinkingLevel: 'MINIMAL',
312
224
  };
313
225
  }
314
- // Add tools configuration (regular tools + MCP tools as functionDeclarations)
315
- const allToolDeclarations = [];
316
- // Add regular function tools
317
- if (this.tools.length > 0) {
318
- allToolDeclarations.push(...this.tools.map((t) => ({
319
- name: t.name,
320
- description: t.description,
321
- parameters: t.parameters,
322
- })));
323
- }
324
- // Add MCP tools as functionDeclarations
226
+ let activeMCPToolSchemas = [];
325
227
  if (this.mcpServers.length > 0) {
326
228
  try {
327
- // Initialize MCP schemas if not already done
328
229
  await this.initializeMCPSchemas();
329
- // Add MCP tool schemas as regular function declarations
330
- // Gemini will call these as normal functions, and ToolExecutor will handle the MCP routing
331
- allToolDeclarations.push(...this.mcpToolSchemas.map((t) => ({
332
- name: t.name,
333
- description: t.description,
334
- parameters: t.parameters,
335
- })));
230
+ activeMCPToolSchemas = this.mcpToolSchemas;
336
231
  }
337
232
  catch (error) {
338
233
  console.warn('MCP initialization failed, skipping MCP tools:', error);
339
- // Continue without MCP tools if initialization fails
340
234
  }
341
235
  }
342
- if (allToolDeclarations.length > 0) {
343
- body.tools = [
344
- {
345
- functionDeclarations: allToolDeclarations,
346
- },
347
- ];
348
- body.toolConfig = { functionCallingConfig: { mode: 'AUTO' } };
236
+ const toolConfig = (0, geminiToolAdapter_1.buildGeminiToolConfig)(this.tools, activeMCPToolSchemas);
237
+ if (toolConfig) {
238
+ Object.assign(body, toolConfig);
349
239
  }
350
240
  const fetchOnce = async (ver, payload) => {
351
241
  const fn = stream ? 'streamGenerateContent' : 'generateContent';
@@ -387,136 +277,6 @@ class GeminiChatService {
387
277
  throw error;
388
278
  }
389
279
  }
390
- /**
391
- * Convert AITuber OnAir vision messages to Gemini format
392
- * @param messages Array of vision messages
393
- * @returns Gemini formatted vision messages
394
- */
395
- async convertVisionMessagesToGeminiFormat(messages) {
396
- const geminiMessages = [];
397
- let currentRole = null;
398
- let currentParts = [];
399
- for (const msg of messages) {
400
- // Map AITuber OnAir roles to Gemini roles
401
- const role = this.mapRoleToGemini(msg.role);
402
- /* ----------- OpenAI compatible tool metadata ----------- */
403
- // assistant: { tool_calls:[{id,name,function:{arguments}}] }
404
- if (msg.tool_calls) {
405
- for (const call of msg.tool_calls) {
406
- // Gemini does not need id. Insert functionCall into parts
407
- geminiMessages.push({
408
- role: 'model',
409
- parts: [
410
- {
411
- functionCall: {
412
- name: call.function.name,
413
- args: JSON.parse(call.function.arguments || '{}'),
414
- },
415
- },
416
- ],
417
- });
418
- }
419
- continue;
420
- }
421
- // tool role → user role + functionResponse
422
- if (msg.role === 'tool') {
423
- const funcName = msg.name ??
424
- this.callIdMap.get(msg.tool_call_id) ??
425
- 'result';
426
- geminiMessages.push({
427
- role: 'user',
428
- parts: [
429
- {
430
- functionResponse: {
431
- name: funcName,
432
- response: this.normalizeToolResult(this.safeJsonParse(msg.content)),
433
- },
434
- },
435
- ],
436
- });
437
- continue;
438
- }
439
- // If role changes, start a new message
440
- if (role !== currentRole && currentParts.length > 0) {
441
- geminiMessages.push({
442
- role: currentRole,
443
- parts: [...currentParts],
444
- });
445
- currentParts = [];
446
- }
447
- currentRole = role;
448
- // If the message has content blocks, process them
449
- if (typeof msg.content === 'string') {
450
- currentParts.push({ text: msg.content });
451
- }
452
- else if (Array.isArray(msg.content)) {
453
- // Process each content block (text or image)
454
- for (const block of msg.content) {
455
- if (block.type === 'text') {
456
- currentParts.push({ text: block.text });
457
- }
458
- else if (block.type === 'image_url') {
459
- try {
460
- // Fetch the image data from URL
461
- const imageResponse = await chatServiceHttpClient_1.ChatServiceHttpClient.get(block.image_url.url);
462
- // Convert image to blob and then to base64
463
- const imageBlob = await imageResponse.blob();
464
- const base64Data = await this.blobToBase64(imageBlob);
465
- // Add image data in Gemini format
466
- currentParts.push({
467
- inlineData: {
468
- mimeType: imageBlob.type || 'image/jpeg',
469
- data: base64Data.split(',')[1], // Remove the "data:image/jpeg;base64," prefix
470
- },
471
- });
472
- }
473
- catch (error) {
474
- console.error('Error processing image:', error);
475
- throw new Error(`Failed to process image: ${error.message}`);
476
- }
477
- }
478
- }
479
- }
480
- }
481
- // Add the last message
482
- if (currentRole && currentParts.length > 0) {
483
- geminiMessages.push({
484
- role: currentRole,
485
- parts: [...currentParts],
486
- });
487
- }
488
- return geminiMessages;
489
- }
490
- /**
491
- * Convert Blob to Base64 string
492
- * @param blob Image blob
493
- * @returns Promise with base64 encoded string
494
- */
495
- blobToBase64(blob) {
496
- return new Promise((resolve, reject) => {
497
- const reader = new FileReader();
498
- reader.onloadend = () => resolve(reader.result);
499
- reader.onerror = reject;
500
- reader.readAsDataURL(blob);
501
- });
502
- }
503
- /**
504
- * Map AITuber OnAir roles to Gemini roles
505
- * @param role AITuber OnAir role
506
- * @returns Gemini role
507
- */
508
- mapRoleToGemini(role) {
509
- switch (role) {
510
- case 'system':
511
- return 'model'; // Gemini uses 'model' for system messages
512
- case 'user':
513
- return 'user';
514
- case 'assistant':
515
- return 'model';
516
- default:
517
- return 'user';
518
- }
519
- }
520
280
  /* ────────────────────────────────────────────────────────── */
521
281
  /* Convert NDJSON stream to common format */
522
282
  /* ────────────────────────────────────────────────────────── */
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/GeminiChatService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeminiChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/GeminiChatService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Message, MessageWithVision } from '../../../types';
2
+ type GeminiMessage = {
3
+ role: string | null;
4
+ parts: any[];
5
+ };
6
+ type ConverterOptions = {
7
+ callIdMap?: Map<string, string>;
8
+ };
9
+ type VisionConverterOptions = ConverterOptions & {
10
+ imageFetcher?: (url: string) => Promise<Response>;
11
+ blobToBase64?: (blob: Blob) => Promise<string>;
12
+ };
13
+ export declare function mapRoleToGemini(role: string): string;
14
+ export declare function convertMessagesToGeminiFormat(messages: Message[], options?: ConverterOptions): GeminiMessage[];
15
+ export declare function convertVisionMessagesToGeminiFormat(messages: MessageWithVision[], options?: VisionConverterOptions): Promise<GeminiMessage[]>;
16
+ export {};
17
+ //# sourceMappingURL=geminiMessageConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geminiMessageConverter.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/geminiMessageConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG5D,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,GAAG,EAAE,CAAC;CACd,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF,KAAK,sBAAsB,GAAG,gBAAgB,GAAG;IAC/C,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAChD,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWpD;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,gBAAqB,GAC7B,aAAa,EAAE,CA6DjB;AAED,wBAAsB,mCAAmC,CACvD,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,aAAa,EAAE,CAAC,CA6F1B"}
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapRoleToGemini = mapRoleToGemini;
4
+ exports.convertMessagesToGeminiFormat = convertMessagesToGeminiFormat;
5
+ exports.convertVisionMessagesToGeminiFormat = convertVisionMessagesToGeminiFormat;
6
+ const chatServiceHttpClient_1 = require("../../../utils/chatServiceHttpClient");
7
+ function mapRoleToGemini(role) {
8
+ switch (role) {
9
+ case 'system':
10
+ return 'model';
11
+ case 'user':
12
+ return 'user';
13
+ case 'assistant':
14
+ return 'model';
15
+ default:
16
+ return 'user';
17
+ }
18
+ }
19
+ function convertMessagesToGeminiFormat(messages, options = {}) {
20
+ const gemini = [];
21
+ let currentRole = null;
22
+ let currentParts = [];
23
+ const pushCurrent = () => {
24
+ if (currentRole && currentParts.length) {
25
+ gemini.push({ role: currentRole, parts: [...currentParts] });
26
+ currentParts = [];
27
+ }
28
+ };
29
+ for (const msg of messages) {
30
+ const role = mapRoleToGemini(msg.role);
31
+ if (msg.tool_calls) {
32
+ pushCurrent();
33
+ for (const call of msg.tool_calls) {
34
+ options.callIdMap?.set(call.id, call.function.name);
35
+ gemini.push({
36
+ role: 'model',
37
+ parts: [
38
+ {
39
+ functionCall: {
40
+ name: call.function.name,
41
+ args: JSON.parse(call.function.arguments || '{}'),
42
+ },
43
+ },
44
+ ],
45
+ });
46
+ }
47
+ continue;
48
+ }
49
+ if (msg.role === 'tool') {
50
+ pushCurrent();
51
+ const funcName = msg.name ??
52
+ options.callIdMap?.get(msg.tool_call_id) ??
53
+ 'result';
54
+ gemini.push({
55
+ role: 'user',
56
+ parts: [
57
+ {
58
+ functionResponse: {
59
+ name: funcName,
60
+ response: normalizeToolResult(safeJsonParse(msg.content)),
61
+ },
62
+ },
63
+ ],
64
+ });
65
+ continue;
66
+ }
67
+ if (role !== currentRole)
68
+ pushCurrent();
69
+ currentRole = role;
70
+ currentParts.push({ text: msg.content });
71
+ }
72
+ pushCurrent();
73
+ return gemini;
74
+ }
75
+ async function convertVisionMessagesToGeminiFormat(messages, options = {}) {
76
+ const imageFetcher = options.imageFetcher ?? chatServiceHttpClient_1.ChatServiceHttpClient.get;
77
+ const encodeBlob = options.blobToBase64 ?? blobToBase64;
78
+ const geminiMessages = [];
79
+ let currentRole = null;
80
+ let currentParts = [];
81
+ for (const msg of messages) {
82
+ const role = mapRoleToGemini(msg.role);
83
+ if (msg.tool_calls) {
84
+ for (const call of msg.tool_calls) {
85
+ geminiMessages.push({
86
+ role: 'model',
87
+ parts: [
88
+ {
89
+ functionCall: {
90
+ name: call.function.name,
91
+ args: JSON.parse(call.function.arguments || '{}'),
92
+ },
93
+ },
94
+ ],
95
+ });
96
+ }
97
+ continue;
98
+ }
99
+ if (msg.role === 'tool') {
100
+ const funcName = msg.name ??
101
+ options.callIdMap?.get(msg.tool_call_id) ??
102
+ 'result';
103
+ geminiMessages.push({
104
+ role: 'user',
105
+ parts: [
106
+ {
107
+ functionResponse: {
108
+ name: funcName,
109
+ response: normalizeToolResult(safeJsonParse(msg.content)),
110
+ },
111
+ },
112
+ ],
113
+ });
114
+ continue;
115
+ }
116
+ if (role !== currentRole && currentParts.length > 0) {
117
+ geminiMessages.push({
118
+ role: currentRole,
119
+ parts: [...currentParts],
120
+ });
121
+ currentParts = [];
122
+ }
123
+ currentRole = role;
124
+ if (typeof msg.content === 'string') {
125
+ currentParts.push({ text: msg.content });
126
+ }
127
+ else if (Array.isArray(msg.content)) {
128
+ for (const block of msg.content) {
129
+ if (block.type === 'text') {
130
+ currentParts.push({ text: block.text });
131
+ }
132
+ else if (block.type === 'image_url') {
133
+ try {
134
+ const imageResponse = await imageFetcher(block.image_url.url);
135
+ const imageBlob = await imageResponse.blob();
136
+ const base64Data = await encodeBlob(imageBlob);
137
+ currentParts.push({
138
+ inlineData: {
139
+ mimeType: imageBlob.type || 'image/jpeg',
140
+ data: base64Data.split(',')[1],
141
+ },
142
+ });
143
+ }
144
+ catch (error) {
145
+ console.error('Error processing image:', error);
146
+ throw new Error(`Failed to process image: ${error.message}`);
147
+ }
148
+ }
149
+ }
150
+ }
151
+ }
152
+ if (currentRole && currentParts.length > 0) {
153
+ geminiMessages.push({
154
+ role: currentRole,
155
+ parts: [...currentParts],
156
+ });
157
+ }
158
+ return geminiMessages;
159
+ }
160
+ function safeJsonParse(str) {
161
+ try {
162
+ return JSON.parse(str);
163
+ }
164
+ catch {
165
+ return str;
166
+ }
167
+ }
168
+ function normalizeToolResult(val) {
169
+ if (val === null)
170
+ return { content: null };
171
+ if (typeof val === 'object')
172
+ return val;
173
+ return { content: val };
174
+ }
175
+ function blobToBase64(blob) {
176
+ return new Promise((resolve, reject) => {
177
+ const reader = new FileReader();
178
+ reader.onloadend = () => resolve(reader.result);
179
+ reader.onerror = reject;
180
+ reader.readAsDataURL(blob);
181
+ });
182
+ }
183
+ //# sourceMappingURL=geminiMessageConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geminiMessageConverter.js","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/geminiMessageConverter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { MCPServerConfig, ToolDefinition } from '../../../types';
2
+ type GeminiFunctionDeclaration = {
3
+ name: string;
4
+ description?: string;
5
+ parameters: ToolDefinition['parameters'];
6
+ };
7
+ type GeminiToolConfig = {
8
+ tools: [
9
+ {
10
+ functionDeclarations: GeminiFunctionDeclaration[];
11
+ }
12
+ ];
13
+ toolConfig: {
14
+ functionCallingConfig: {
15
+ mode: 'AUTO';
16
+ };
17
+ };
18
+ };
19
+ export declare function buildGeminiToolDeclarations(tools: ToolDefinition[], mcpToolSchemas: ToolDefinition[]): GeminiFunctionDeclaration[];
20
+ export declare function buildGeminiToolConfig(tools: ToolDefinition[], mcpToolSchemas: ToolDefinition[]): GeminiToolConfig | undefined;
21
+ export declare function createFallbackMCPToolSchemas(servers: MCPServerConfig[]): ToolDefinition[];
22
+ export {};
23
+ //# sourceMappingURL=geminiToolAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geminiToolAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/geminiToolAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEtE,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;CAC1C,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE;QACL;YACE,oBAAoB,EAAE,yBAAyB,EAAE,CAAC;SACnD;KACF,CAAC;IACF,UAAU,EAAE;QACV,qBAAqB,EAAE;YACrB,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;CACH,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,cAAc,EAAE,EACvB,cAAc,EAAE,cAAc,EAAE,GAC/B,yBAAyB,EAAE,CAM7B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EAAE,EACvB,cAAc,EAAE,cAAc,EAAE,GAC/B,gBAAgB,GAAG,SAAS,CAsB9B;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,eAAe,EAAE,GACzB,cAAc,EAAE,CAelB"}