@mastra/voice-google-gemini-live 0.0.0-sidebar-window-undefined-fix-20251029233656 → 0.0.0-span-scorring-test-20251124132129

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -74,7 +74,7 @@ export declare class GeminiLiveVoice extends MastraVoice<GeminiLiveVoiceConfig,
74
74
  private isResuming;
75
75
  private sessionDurationTimeout?;
76
76
  private tools?;
77
- private runtimeContext?;
77
+ private requestContext?;
78
78
  private options;
79
79
  /**
80
80
  * Normalize configuration to ensure proper VoiceConfig format
@@ -162,8 +162,8 @@ export declare class GeminiLiveVoice extends MastraVoice<GeminiLiveVoiceConfig,
162
162
  /**
163
163
  * Establish connection to the Gemini Live API
164
164
  */
165
- connect({ runtimeContext }?: {
166
- runtimeContext?: any;
165
+ connect({ requestContext }?: {
166
+ requestContext?: any;
167
167
  }): Promise<void>;
168
168
  /**
169
169
  * Disconnect from the Gemini Live API
@@ -320,6 +320,11 @@ export declare class GeminiLiveVoice extends MastraVoice<GeminiLiveVoiceConfig,
320
320
  * @private
321
321
  */
322
322
  private handleToolCall;
323
+ /**
324
+ * Process a single tool call
325
+ * @private
326
+ */
327
+ private processSingleToolCall;
323
328
  /**
324
329
  * Handle token usage information
325
330
  * @private
@@ -340,6 +345,16 @@ export declare class GeminiLiveVoice extends MastraVoice<GeminiLiveVoiceConfig,
340
345
  * @private
341
346
  */
342
347
  private determineModality;
348
+ /**
349
+ * Resolve Vertex AI location with sensible default
350
+ * @private
351
+ */
352
+ private getVertexLocation;
353
+ /**
354
+ * Resolve the correct model identifier for Gemini API or Vertex AI
355
+ * @private
356
+ */
357
+ private resolveModelIdentifier;
343
358
  /**
344
359
  * Send initial configuration to Gemini Live API
345
360
  * @private
@@ -385,14 +400,14 @@ export declare class GeminiLiveVoice extends MastraVoice<GeminiLiveVoiceConfig,
385
400
  * inputSchema: z.object({
386
401
  * location: z.string().describe("The city and state, e.g. San Francisco, CA"),
387
402
  * }),
388
- * execute: async ({ context }) => {
403
+ * execute: async (inputData) => {
389
404
  * // Fetch weather data from an API
390
405
  * const response = await fetch(
391
- * `https://api.weather.com?location=${encodeURIComponent(context.location)}`,
406
+ * `https://api.weather.com?location=${encodeURIComponent(inputData.location)}`,
392
407
  * );
393
408
  * const data = await response.json();
394
409
  * return {
395
- * message: `The current temperature in ${context.location} is ${data.temperature}°F with ${data.conditions}.`,
410
+ * message: `The current temperature in ${inputData.location} is ${data.temperature}°F with ${data.conditions}.`,
396
411
  * };
397
412
  * },
398
413
  * });
@@ -407,7 +422,7 @@ export declare class GeminiLiveVoice extends MastraVoice<GeminiLiveVoiceConfig,
407
422
  * Get the current tools configured for this voice instance
408
423
  * @returns Object containing the current tools
409
424
  */
410
- getTools(): ToolsInput | undefined;
425
+ listTools(): ToolsInput | undefined;
411
426
  private log;
412
427
  /**
413
428
  * Convert Zod schema to JSON Schema for tool parameters
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1260,7 +1260,7 @@ var GeminiLiveVoice = class _GeminiLiveVoice extends MastraVoice {
1260
1260
  sessionDurationTimeout;
1261
1261
  // Tool integration properties
1262
1262
  tools;
1263
- runtimeContext;
1263
+ requestContext;
1264
1264
  // Store the configuration options
1265
1265
  options;
1266
1266
  /**
@@ -1497,18 +1497,19 @@ var GeminiLiveVoice = class _GeminiLiveVoice extends MastraVoice {
1497
1497
  /**
1498
1498
  * Establish connection to the Gemini Live API
1499
1499
  */
1500
- async connect({ runtimeContext } = {}) {
1500
+ async connect({ requestContext } = {}) {
1501
1501
  if (this.state === "connected") {
1502
1502
  this.log("Already connected to Gemini Live API");
1503
1503
  return;
1504
1504
  }
1505
- this.runtimeContext = runtimeContext;
1505
+ this.requestContext = requestContext;
1506
1506
  this.emit("session", { state: "connecting" });
1507
1507
  try {
1508
1508
  let wsUrl;
1509
1509
  let headers = {};
1510
1510
  if (this.options.vertexAI) {
1511
- wsUrl = `wss://${this.options.location}-aiplatform.googleapis.com/ws/google.cloud.aiplatform.v1beta1.PredictionService.ServerStreamingPredict`;
1511
+ const location = this.getVertexLocation();
1512
+ wsUrl = `wss://${location}-aiplatform.googleapis.com/ws/google.cloud.aiplatform.v1beta1.LlmBidiService/BidiGenerateContent`;
1512
1513
  await this.authManager.initialize();
1513
1514
  const accessToken = await this.authManager.getAccessToken();
1514
1515
  headers = { headers: { Authorization: `Bearer ${accessToken}` } };
@@ -2257,6 +2258,18 @@ var GeminiLiveVoice = class _GeminiLiveVoice extends MastraVoice {
2257
2258
  role: "assistant"
2258
2259
  });
2259
2260
  }
2261
+ if (part.functionCall) {
2262
+ this.log("Found function call in serverContent.modelTurn.parts", part.functionCall);
2263
+ const toolCallData = {
2264
+ toolCall: {
2265
+ name: part.functionCall.name,
2266
+ args: part.functionCall.args || {},
2267
+ id: part.functionCall.id || randomUUID()
2268
+ }
2269
+ };
2270
+ void this.handleToolCall(toolCallData);
2271
+ continue;
2272
+ }
2260
2273
  if (part.inlineData?.mimeType?.includes("audio") && typeof part.inlineData.data === "string") {
2261
2274
  try {
2262
2275
  const audioData = part.inlineData.data;
@@ -2331,9 +2344,24 @@ var GeminiLiveVoice = class _GeminiLiveVoice extends MastraVoice {
2331
2344
  if (!data.toolCall) {
2332
2345
  return;
2333
2346
  }
2334
- const toolName = data.toolCall.name || "";
2335
- const toolArgs = data.toolCall.args || {};
2336
- const toolId = data.toolCall.id || randomUUID();
2347
+ let toolCalls = [];
2348
+ if (data.toolCall.functionCalls && Array.isArray(data.toolCall.functionCalls)) {
2349
+ toolCalls = data.toolCall.functionCalls;
2350
+ } else if (data.toolCall.name) {
2351
+ toolCalls = [{ name: data.toolCall.name, args: data.toolCall.args, id: data.toolCall.id }];
2352
+ }
2353
+ for (const toolCall of toolCalls) {
2354
+ const toolName = toolCall.name || "";
2355
+ const toolArgs = toolCall.args || {};
2356
+ const toolId = toolCall.id || randomUUID();
2357
+ await this.processSingleToolCall(toolName, toolArgs, toolId);
2358
+ }
2359
+ }
2360
+ /**
2361
+ * Process a single tool call
2362
+ * @private
2363
+ */
2364
+ async processSingleToolCall(toolName, toolArgs, toolId) {
2337
2365
  this.log("Processing tool call", { toolName, toolArgs, toolId });
2338
2366
  this.emit("toolCall", {
2339
2367
  name: toolName,
@@ -2353,36 +2381,38 @@ var GeminiLiveVoice = class _GeminiLiveVoice extends MastraVoice {
2353
2381
  let result;
2354
2382
  if (tool.execute) {
2355
2383
  this.log("Executing tool", { toolName, toolArgs });
2356
- result = await tool.execute(
2357
- { context: toolArgs, runtimeContext: this.runtimeContext },
2358
- {
2359
- toolCallId: toolId,
2360
- messages: []
2361
- }
2362
- );
2384
+ result = await tool.execute(toolArgs, { requestContext: this.requestContext });
2363
2385
  this.log("Tool executed successfully", { toolName, result });
2364
2386
  } else {
2365
2387
  this.log("Tool has no execute function", { toolName });
2366
2388
  result = { error: "Tool has no execute function" };
2367
2389
  }
2368
2390
  const toolResultMessage = {
2369
- tool_result: {
2370
- tool_call_id: toolId,
2371
- result
2391
+ toolResponse: {
2392
+ functionResponses: [
2393
+ {
2394
+ id: toolId,
2395
+ response: result
2396
+ }
2397
+ ]
2372
2398
  }
2373
2399
  };
2374
- this.sendEvent("tool_result", toolResultMessage);
2400
+ this.sendEvent("toolResponse", toolResultMessage);
2375
2401
  this.log("Tool result sent", { toolName, toolId, result });
2376
2402
  } catch (error) {
2377
2403
  const errorMessage = error instanceof Error ? error.message : "Unknown error";
2378
2404
  this.log("Tool execution failed", { toolName, error: errorMessage });
2379
2405
  const errorResultMessage = {
2380
- tool_result: {
2381
- tool_call_id: toolId,
2382
- result: { error: errorMessage }
2406
+ toolResponse: {
2407
+ functionResponses: [
2408
+ {
2409
+ id: toolId,
2410
+ response: { error: errorMessage }
2411
+ }
2412
+ ]
2383
2413
  }
2384
2414
  };
2385
- this.sendEvent("tool_result", errorResultMessage);
2415
+ this.sendEvent("toolResponse", errorResultMessage);
2386
2416
  this.createAndEmitError("tool_execution_error" /* TOOL_EXECUTION_ERROR */, `Tool execution failed: ${errorMessage}`, {
2387
2417
  toolName,
2388
2418
  toolArgs,
@@ -2442,6 +2472,31 @@ var GeminiLiveVoice = class _GeminiLiveVoice extends MastraVoice {
2442
2472
  }
2443
2473
  return "text";
2444
2474
  }
2475
+ /**
2476
+ * Resolve Vertex AI location with sensible default
2477
+ * @private
2478
+ */
2479
+ getVertexLocation() {
2480
+ return this.options.location?.trim() || "us-central1";
2481
+ }
2482
+ /**
2483
+ * Resolve the correct model identifier for Gemini API or Vertex AI
2484
+ * @private
2485
+ */
2486
+ resolveModelIdentifier() {
2487
+ const model = this.options.model ?? DEFAULT_MODEL;
2488
+ if (!this.options.vertexAI) {
2489
+ return `models/${model}`;
2490
+ }
2491
+ if (!this.options.project) {
2492
+ throw this.createAndEmitError(
2493
+ "project_id_missing" /* PROJECT_ID_MISSING */,
2494
+ "Google Cloud project ID is required when using Vertex AI."
2495
+ );
2496
+ }
2497
+ const location = this.getVertexLocation();
2498
+ return `projects/${this.options.project}/locations/${location}/publishers/google/models/${model}`;
2499
+ }
2445
2500
  /**
2446
2501
  * Send initial configuration to Gemini Live API
2447
2502
  * @private
@@ -2452,7 +2507,7 @@ var GeminiLiveVoice = class _GeminiLiveVoice extends MastraVoice {
2452
2507
  }
2453
2508
  const setupMessage = {
2454
2509
  setup: {
2455
- model: `models/${this.options.model}`
2510
+ model: this.resolveModelIdentifier()
2456
2511
  }
2457
2512
  };
2458
2513
  if (this.options.instructions) {
@@ -2601,6 +2656,8 @@ var GeminiLiveVoice = class _GeminiLiveVoice extends MastraVoice {
2601
2656
  message = data;
2602
2657
  } else if (type === "realtime_input" && data.realtime_input) {
2603
2658
  message = data;
2659
+ } else if (type === "toolResponse" && data.toolResponse) {
2660
+ message = data;
2604
2661
  } else if (type === "session.update" && data.session) {
2605
2662
  message = data;
2606
2663
  } else {
@@ -2626,14 +2683,14 @@ var GeminiLiveVoice = class _GeminiLiveVoice extends MastraVoice {
2626
2683
  * inputSchema: z.object({
2627
2684
  * location: z.string().describe("The city and state, e.g. San Francisco, CA"),
2628
2685
  * }),
2629
- * execute: async ({ context }) => {
2686
+ * execute: async (inputData) => {
2630
2687
  * // Fetch weather data from an API
2631
2688
  * const response = await fetch(
2632
- * `https://api.weather.com?location=${encodeURIComponent(context.location)}`,
2689
+ * `https://api.weather.com?location=${encodeURIComponent(inputData.location)}`,
2633
2690
  * );
2634
2691
  * const data = await response.json();
2635
2692
  * return {
2636
- * message: `The current temperature in ${context.location} is ${data.temperature}°F with ${data.conditions}.`,
2693
+ * message: `The current temperature in ${inputData.location} is ${data.temperature}°F with ${data.conditions}.`,
2637
2694
  * };
2638
2695
  * },
2639
2696
  * });
@@ -2651,7 +2708,7 @@ var GeminiLiveVoice = class _GeminiLiveVoice extends MastraVoice {
2651
2708
  * Get the current tools configured for this voice instance
2652
2709
  * @returns Object containing the current tools
2653
2710
  */
2654
- getTools() {
2711
+ listTools() {
2655
2712
  return this.tools;
2656
2713
  }
2657
2714
  log(message, ...args) {