@google/gemini-cli-a2a-server 0.33.0-preview.9 → 0.33.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.
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { CoreToolScheduler, GeminiEventType, ToolConfirmationOutcome, ApprovalMode, getAllMCPServerStatuses, MCPServerStatus, isNodeError, getErrorMessage, parseAndFormatApiError, safeLiteralReplace, DEFAULT_GUI_EDITOR, isSubagentProgress, EDIT_TOOL_NAMES, processRestorableToolCalls, } from '@google/gemini-cli-core';
6
+ import { Scheduler, CoreToolScheduler, GeminiEventType, ToolConfirmationOutcome, ApprovalMode, getAllMCPServerStatuses, MCPServerStatus, isNodeError, getErrorMessage, parseAndFormatApiError, safeLiteralReplace, DEFAULT_GUI_EDITOR, isSubagentProgress, EDIT_TOOL_NAMES, processRestorableToolCalls, MessageBusType, } from '@google/gemini-cli-core';
7
7
  import {} from '@a2a-js/sdk/server';
8
8
  import { v4 as uuidv4 } from 'uuid';
9
9
  import { logger } from '../utils/logger.js';
@@ -36,23 +36,35 @@ export class Task {
36
36
  config;
37
37
  geminiClient;
38
38
  pendingToolConfirmationDetails;
39
+ pendingCorrelationIds = new Map();
39
40
  taskState;
40
41
  eventBus;
41
42
  completedToolCalls;
43
+ processedToolCallIds = new Set();
42
44
  skipFinalTrueAfterInlineEdit = false;
43
45
  modelInfo;
44
46
  currentPromptId;
47
+ currentAgentMessageId = uuidv4();
45
48
  promptCount = 0;
46
49
  autoExecute;
50
+ get isYoloMatch() {
51
+ return (this.autoExecute || this.config.getApprovalMode() === ApprovalMode.YOLO);
52
+ }
47
53
  // For tool waiting logic
48
54
  pendingToolCalls = new Map(); //toolCallId --> status
55
+ toolsAlreadyConfirmed = new Set();
49
56
  toolCompletionPromise;
50
57
  toolCompletionNotifier;
51
58
  constructor(id, contextId, config, eventBus, autoExecute = false) {
52
59
  this.id = id;
53
60
  this.contextId = contextId;
54
61
  this.config = config;
55
- this.scheduler = this.createScheduler();
62
+ if (this.config.isEventDrivenSchedulerEnabled()) {
63
+ this.scheduler = this.setupEventDrivenScheduler();
64
+ }
65
+ else {
66
+ this.scheduler = this.createLegacyScheduler();
67
+ }
56
68
  this.geminiClient = this.config.getGeminiClient();
57
69
  this.pendingToolConfirmationDetails = new Map();
58
70
  this.taskState = 'submitted';
@@ -131,7 +143,7 @@ export class Task {
131
143
  return Promise.resolve();
132
144
  }
133
145
  logger.info(`[Task] Waiting for ${this.pendingToolCalls.size} pending tool(s)...`);
134
- return this.toolCompletionPromise;
146
+ await this.toolCompletionPromise;
135
147
  }
136
148
  cancelPendingTools(reason) {
137
149
  if (this.pendingToolCalls.size > 0) {
@@ -141,6 +153,13 @@ export class Task {
141
153
  this.toolCompletionNotifier.reject(new Error(reason));
142
154
  }
143
155
  this.pendingToolCalls.clear();
156
+ this.pendingCorrelationIds.clear();
157
+ if (this.scheduler instanceof Scheduler) {
158
+ this.scheduler.cancelAll();
159
+ }
160
+ else {
161
+ this.scheduler.cancelAll(new AbortController().signal);
162
+ }
144
163
  // Reset the promise for any future operations, ensuring it's in a clean state.
145
164
  this._resetToolCompletionPromise();
146
165
  }
@@ -149,7 +168,7 @@ export class Task {
149
168
  kind: 'message',
150
169
  role,
151
170
  parts: [{ kind: 'text', text }],
152
- messageId: uuidv4(),
171
+ messageId: role === 'agent' ? this.currentAgentMessageId : uuidv4(),
153
172
  taskId: this.id,
154
173
  contextId: this.contextId,
155
174
  };
@@ -264,16 +283,23 @@ export class Task {
264
283
  }
265
284
  // Only send an update if the status has actually changed.
266
285
  if (hasChanged) {
267
- const coderAgentMessage = tc.status === 'awaiting_approval'
268
- ? { kind: CoderAgentEvent.ToolCallConfirmationEvent }
269
- : { kind: CoderAgentEvent.ToolCallUpdateEvent };
270
- const message = this.toolStatusMessage(tc, this.id, this.contextId);
271
- const event = this._createStatusUpdateEvent(this.taskState, coderAgentMessage, message, false);
272
- this.eventBus?.publish(event);
286
+ // Skip sending confirmation event if we are going to auto-approve it anyway
287
+ if (tc.status === 'awaiting_approval' &&
288
+ tc.confirmationDetails &&
289
+ this.isYoloMatch) {
290
+ logger.info(`[Task] Skipping ToolCallConfirmationEvent for ${tc.request.callId} due to YOLO mode.`);
291
+ }
292
+ else {
293
+ const coderAgentMessage = tc.status === 'awaiting_approval'
294
+ ? { kind: CoderAgentEvent.ToolCallConfirmationEvent }
295
+ : { kind: CoderAgentEvent.ToolCallUpdateEvent };
296
+ const message = this.toolStatusMessage(tc, this.id, this.contextId);
297
+ const event = this._createStatusUpdateEvent(this.taskState, coderAgentMessage, message, false);
298
+ this.eventBus?.publish(event);
299
+ }
273
300
  }
274
301
  });
275
- if (this.autoExecute ||
276
- this.config.getApprovalMode() === ApprovalMode.YOLO) {
302
+ if (this.isYoloMatch) {
277
303
  logger.info('[Task] ' +
278
304
  (this.autoExecute ? '' : 'YOLO mode enabled. ') +
279
305
  'Auto-approving all tool calls.');
@@ -304,7 +330,7 @@ export class Task {
304
330
  /*final*/ true);
305
331
  }
306
332
  }
307
- createScheduler() {
333
+ createLegacyScheduler() {
308
334
  const scheduler = new CoreToolScheduler({
309
335
  outputUpdateHandler: this._schedulerOutputUpdate.bind(this),
310
336
  onAllToolCallsComplete: this._schedulerAllToolCallsComplete.bind(this),
@@ -314,6 +340,121 @@ export class Task {
314
340
  });
315
341
  return scheduler;
316
342
  }
343
+ messageBusListener;
344
+ setupEventDrivenScheduler() {
345
+ const messageBus = this.config.getMessageBus();
346
+ const scheduler = new Scheduler({
347
+ schedulerId: this.id,
348
+ config: this.config,
349
+ messageBus,
350
+ getPreferredEditor: () => DEFAULT_GUI_EDITOR,
351
+ });
352
+ this.messageBusListener = this.handleEventDrivenToolCallsUpdate.bind(this);
353
+ messageBus.subscribe(MessageBusType.TOOL_CALLS_UPDATE, this.messageBusListener);
354
+ return scheduler;
355
+ }
356
+ dispose() {
357
+ if (this.messageBusListener) {
358
+ this.config
359
+ .getMessageBus()
360
+ .unsubscribe(MessageBusType.TOOL_CALLS_UPDATE, this.messageBusListener);
361
+ this.messageBusListener = undefined;
362
+ }
363
+ if (this.scheduler instanceof Scheduler) {
364
+ this.scheduler.dispose();
365
+ }
366
+ }
367
+ handleEventDrivenToolCallsUpdate(event) {
368
+ if (event.type !== MessageBusType.TOOL_CALLS_UPDATE) {
369
+ return;
370
+ }
371
+ const toolCalls = event.toolCalls;
372
+ toolCalls.forEach((tc) => {
373
+ this.handleEventDrivenToolCall(tc);
374
+ });
375
+ this.checkInputRequiredState();
376
+ }
377
+ handleEventDrivenToolCall(tc) {
378
+ const callId = tc.request.callId;
379
+ // Do not process events for tools that have already been finalized.
380
+ // This prevents duplicate completions if the state manager emits a snapshot containing
381
+ // already resolved tools whose IDs were removed from pendingToolCalls.
382
+ if (this.processedToolCallIds.has(callId) ||
383
+ this.completedToolCalls.some((c) => c.request.callId === callId)) {
384
+ return;
385
+ }
386
+ const previousStatus = this.pendingToolCalls.get(callId);
387
+ const hasChanged = previousStatus !== tc.status;
388
+ // 1. Handle Output
389
+ if (tc.status === 'executing' && tc.liveOutput) {
390
+ this._schedulerOutputUpdate(callId, tc.liveOutput);
391
+ }
392
+ // 2. Handle terminal states
393
+ if (tc.status === 'success' ||
394
+ tc.status === 'error' ||
395
+ tc.status === 'cancelled') {
396
+ this.toolsAlreadyConfirmed.delete(callId);
397
+ if (hasChanged) {
398
+ logger.info(`[Task] Tool call ${callId} completed with status: ${tc.status}`);
399
+ this.completedToolCalls.push(tc);
400
+ this._resolveToolCall(callId);
401
+ }
402
+ }
403
+ else {
404
+ // Keep track of pending tools
405
+ this._registerToolCall(callId, tc.status);
406
+ }
407
+ // 3. Handle Confirmation Stash
408
+ if (tc.status === 'awaiting_approval' && tc.confirmationDetails) {
409
+ const details = tc.confirmationDetails;
410
+ if (tc.correlationId) {
411
+ this.pendingCorrelationIds.set(callId, tc.correlationId);
412
+ }
413
+ this.pendingToolConfirmationDetails.set(callId, {
414
+ ...details,
415
+ onConfirm: async () => { },
416
+ });
417
+ }
418
+ // 4. Publish Status Updates to A2A event bus
419
+ if (hasChanged) {
420
+ const coderAgentMessage = tc.status === 'awaiting_approval'
421
+ ? { kind: CoderAgentEvent.ToolCallConfirmationEvent }
422
+ : { kind: CoderAgentEvent.ToolCallUpdateEvent };
423
+ const message = this.toolStatusMessage(tc, this.id, this.contextId);
424
+ const statusUpdate = this._createStatusUpdateEvent(this.taskState, coderAgentMessage, message, false);
425
+ this.eventBus?.publish(statusUpdate);
426
+ }
427
+ }
428
+ checkInputRequiredState() {
429
+ if (this.isYoloMatch) {
430
+ return;
431
+ }
432
+ // 6. Handle Input Required State
433
+ let isAwaitingApproval = false;
434
+ let isExecuting = false;
435
+ for (const [callId, status] of this.pendingToolCalls.entries()) {
436
+ if (status === 'executing' || status === 'scheduled') {
437
+ isExecuting = true;
438
+ }
439
+ else if (status === 'awaiting_approval' &&
440
+ !this.toolsAlreadyConfirmed.has(callId)) {
441
+ isAwaitingApproval = true;
442
+ }
443
+ }
444
+ if (isAwaitingApproval &&
445
+ !isExecuting &&
446
+ !this.skipFinalTrueAfterInlineEdit) {
447
+ this.skipFinalTrueAfterInlineEdit = false;
448
+ const wasAlreadyInputRequired = this.taskState === 'input-required';
449
+ this.setTaskStateAndPublishUpdate('input-required', { kind: CoderAgentEvent.StateChangeEvent }, undefined, undefined,
450
+ /*final*/ true);
451
+ // Unblock waitForPendingTools to correctly end the executor loop and release the HTTP response stream.
452
+ // The IDE client will open a new stream with the confirmation reply.
453
+ if (!wasAlreadyInputRequired && this.toolCompletionNotifier) {
454
+ this.toolCompletionNotifier.resolve();
455
+ }
456
+ }
457
+ }
317
458
  _pickFields(from, ...fields) {
318
459
  const ret = {};
319
460
  for (const field of fields) {
@@ -437,7 +578,15 @@ export class Task {
437
578
  kind: CoderAgentEvent.StateChangeEvent,
438
579
  };
439
580
  this.setTaskStateAndPublishUpdate('working', stateChange);
440
- await this.scheduler.schedule(updatedRequests, abortSignal);
581
+ // Pre-register tools to ensure waitForPendingTools sees them as pending
582
+ // before the async scheduler enqueues them and fires the event bus update.
583
+ for (const req of updatedRequests) {
584
+ if (!this.pendingToolCalls.has(req.callId)) {
585
+ this._registerToolCall(req.callId, 'scheduled');
586
+ }
587
+ }
588
+ // Fire and forget so we don't block the executor loop before waitForPendingTools can be called
589
+ void this.scheduler.schedule(updatedRequests, abortSignal);
441
590
  }
442
591
  async acceptAgentMessage(event) {
443
592
  const stateChange = {
@@ -522,8 +671,12 @@ export class Task {
522
671
  typeof part.data['outcome'] !== 'string') {
523
672
  return false;
524
673
  }
674
+ if (!part.data['outcome']) {
675
+ return false;
676
+ }
525
677
  const callId = part.data['callId'];
526
678
  const outcomeString = part.data['outcome'];
679
+ this.toolsAlreadyConfirmed.add(callId);
527
680
  let confirmationOutcome;
528
681
  if (outcomeString === 'proceed_once') {
529
682
  confirmationOutcome = ToolConfirmationOutcome.ProceedOnce;
@@ -540,6 +693,9 @@ export class Task {
540
693
  else if (outcomeString === 'proceed_always_tool') {
541
694
  confirmationOutcome = ToolConfirmationOutcome.ProceedAlwaysTool;
542
695
  }
696
+ else if (outcomeString === 'proceed_always_and_save') {
697
+ confirmationOutcome = ToolConfirmationOutcome.ProceedAlwaysAndSave;
698
+ }
543
699
  else if (outcomeString === 'modify_with_editor') {
544
700
  confirmationOutcome = ToolConfirmationOutcome.ModifyWithEditor;
545
701
  }
@@ -548,7 +704,8 @@ export class Task {
548
704
  return false;
549
705
  }
550
706
  const confirmationDetails = this.pendingToolConfirmationDetails.get(callId);
551
- if (!confirmationDetails) {
707
+ const correlationId = this.pendingCorrelationIds.get(callId);
708
+ if (!confirmationDetails && !correlationId) {
552
709
  logger.warn(`[Task] Received tool confirmation for unknown or already processed callId: ${callId}`);
553
710
  return false;
554
711
  }
@@ -563,25 +720,34 @@ export class Task {
563
720
  delete process.env['GOOGLE_APPLICATION_CREDENTIALS'];
564
721
  // This will trigger the scheduler to continue or cancel the specific tool.
565
722
  // The scheduler's onToolCallsUpdate will then reflect the new state (e.g., executing or cancelled).
566
- // If `edit` tool call, pass updated payload if presesent
567
- if (confirmationDetails.type === 'edit') {
568
- const newContent = part.data['newContent'];
569
- const payload = typeof newContent === 'string'
570
- ? { newContent }
571
- : undefined;
572
- this.skipFinalTrueAfterInlineEdit = !!payload;
573
- try {
574
- await confirmationDetails.onConfirm(confirmationOutcome, payload);
723
+ // If `edit` tool call, pass updated payload if present
724
+ const newContent = part.data['newContent'];
725
+ const payload = confirmationDetails?.type === 'edit' && typeof newContent === 'string'
726
+ ? { newContent }
727
+ : undefined;
728
+ this.skipFinalTrueAfterInlineEdit = !!payload;
729
+ try {
730
+ if (correlationId) {
731
+ await this.config.getMessageBus().publish({
732
+ type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
733
+ correlationId,
734
+ confirmed: confirmationOutcome !== ToolConfirmationOutcome.Cancel &&
735
+ confirmationOutcome !==
736
+ ToolConfirmationOutcome.ModifyWithEditor,
737
+ outcome: confirmationOutcome,
738
+ payload,
739
+ });
575
740
  }
576
- finally {
577
- // Once confirmationDetails.onConfirm finishes (or fails) with a payload,
578
- // reset skipFinalTrueAfterInlineEdit so that external callers receive
579
- // their call has been completed.
580
- this.skipFinalTrueAfterInlineEdit = false;
741
+ else if (confirmationDetails?.onConfirm) {
742
+ // Fallback for legacy callback-based confirmation
743
+ await confirmationDetails.onConfirm(confirmationOutcome, payload);
581
744
  }
582
745
  }
583
- else {
584
- await confirmationDetails.onConfirm(confirmationOutcome);
746
+ finally {
747
+ // Once confirmation payload is sent or callback finishes,
748
+ // reset skipFinalTrueAfterInlineEdit so that external callers receive
749
+ // their call has been completed.
750
+ this.skipFinalTrueAfterInlineEdit = false;
585
751
  }
586
752
  }
587
753
  finally {
@@ -597,6 +763,7 @@ export class Task {
597
763
  // Note !== ToolConfirmationOutcome.ModifyWithEditor does not work!
598
764
  if (confirmationOutcome !== 'modify_with_editor') {
599
765
  this.pendingToolConfirmationDetails.delete(callId);
766
+ this.pendingCorrelationIds.delete(callId);
600
767
  }
601
768
  // If outcome is Cancel, scheduler should update status to 'cancelled', which then resolves the tool.
602
769
  // If ProceedOnce, scheduler updates to 'executing', then eventually 'success'/'error', which resolves.
@@ -620,6 +787,9 @@ export class Task {
620
787
  }
621
788
  getAndClearCompletedTools() {
622
789
  const tools = [...this.completedToolCalls];
790
+ for (const tool of tools) {
791
+ this.processedToolCallIds.add(tool.request.callId);
792
+ }
623
793
  this.completedToolCalls = [];
624
794
  return tools;
625
795
  }
@@ -667,6 +837,7 @@ export class Task {
667
837
  };
668
838
  // Set task state to working as we are about to call LLM
669
839
  this.setTaskStateAndPublishUpdate('working', stateChange);
840
+ this.currentAgentMessageId = uuidv4();
670
841
  yield* this.geminiClient.sendMessageStream(llmParts, aborted, completedToolCalls[0]?.request.prompt_id ?? '');
671
842
  }
672
843
  async *acceptUserMessage(requestContext, aborted) {
@@ -679,6 +850,10 @@ export class Task {
679
850
  if (confirmationHandled) {
680
851
  anyConfirmationHandled = true;
681
852
  // If a confirmation was handled, the scheduler will now run the tool (or cancel it).
853
+ // We resolve the toolCompletionPromise manually in checkInputRequiredState
854
+ // to break the original execution loop, so we must reset it here so the
855
+ // new loop correctly awaits the tool's final execution.
856
+ this._resetToolCompletionPromise();
682
857
  // We don't send anything to the LLM for this part.
683
858
  // The subsequent tool execution will eventually lead to resolveToolCall.
684
859
  continue;
@@ -691,6 +866,7 @@ export class Task {
691
866
  if (hasContentForLlm) {
692
867
  this.currentPromptId =
693
868
  this.config.getSessionId() + '########' + this.promptCount++;
869
+ this.currentAgentMessageId = uuidv4();
694
870
  logger.info('[Task] Sending new parts to LLM.');
695
871
  const stateChange = {
696
872
  kind: CoderAgentEvent.StateChangeEvent,
@@ -727,7 +903,6 @@ export class Task {
727
903
  if (content === '') {
728
904
  return;
729
905
  }
730
- logger.info('[Task] Sending text content to event bus.');
731
906
  const message = this._createTextMessage(content);
732
907
  const textContent = {
733
908
  kind: CoderAgentEvent.TextContentEvent,
@@ -748,7 +923,7 @@ export class Task {
748
923
  data: content,
749
924
  },
750
925
  ],
751
- messageId: uuidv4(),
926
+ messageId: this.currentAgentMessageId,
752
927
  taskId: this.id,
753
928
  contextId: this.contextId,
754
929
  };
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/agent/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/agent/task.ts"],"names":[],"mappings":"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"}
@@ -349,13 +349,14 @@ describe('Task', () => {
349
349
  expect(finalCall).toBeUndefined();
350
350
  });
351
351
  describe('auto-approval', () => {
352
- it('should auto-approve tool calls when autoExecute is true', () => {
352
+ it('should NOT publish ToolCallConfirmationEvent when autoExecute is true', () => {
353
353
  task.autoExecute = true;
354
354
  const onConfirmSpy = vi.fn();
355
355
  const toolCalls = [
356
356
  {
357
357
  request: { callId: '1' },
358
358
  status: 'awaiting_approval',
359
+ correlationId: 'test-corr-id',
359
360
  confirmationDetails: {
360
361
  type: 'edit',
361
362
  onConfirm: onConfirmSpy,
@@ -365,8 +366,13 @@ describe('Task', () => {
365
366
  // @ts-expect-error - Calling private method
366
367
  task._schedulerToolCallsUpdate(toolCalls);
367
368
  expect(onConfirmSpy).toHaveBeenCalledWith(ToolConfirmationOutcome.ProceedOnce);
369
+ const calls = mockEventBus.publish.mock.calls;
370
+ // Search if ToolCallConfirmationEvent was published
371
+ const confEvent = calls.find((call) => call[0].metadata?.coderAgent?.kind ===
372
+ CoderAgentEvent.ToolCallConfirmationEvent);
373
+ expect(confEvent).toBeUndefined();
368
374
  });
369
- it('should auto-approve tool calls when approval mode is YOLO', () => {
375
+ it('should NOT publish ToolCallConfirmationEvent when approval mode is YOLO', () => {
370
376
  mockConfig.getApprovalMode.mockReturnValue(ApprovalMode.YOLO);
371
377
  task.autoExecute = false;
372
378
  const onConfirmSpy = vi.fn();
@@ -374,6 +380,7 @@ describe('Task', () => {
374
380
  {
375
381
  request: { callId: '1' },
376
382
  status: 'awaiting_approval',
383
+ correlationId: 'test-corr-id',
377
384
  confirmationDetails: {
378
385
  type: 'edit',
379
386
  onConfirm: onConfirmSpy,
@@ -383,6 +390,11 @@ describe('Task', () => {
383
390
  // @ts-expect-error - Calling private method
384
391
  task._schedulerToolCallsUpdate(toolCalls);
385
392
  expect(onConfirmSpy).toHaveBeenCalledWith(ToolConfirmationOutcome.ProceedOnce);
393
+ const calls = mockEventBus.publish.mock.calls;
394
+ // Search if ToolCallConfirmationEvent was published
395
+ const confEvent = calls.find((call) => call[0].metadata?.coderAgent?.kind ===
396
+ CoderAgentEvent.ToolCallConfirmationEvent);
397
+ expect(confEvent).toBeUndefined();
386
398
  });
387
399
  it('should NOT auto-approve when autoExecute is false and mode is not YOLO', () => {
388
400
  task.autoExecute = false;
@@ -398,6 +410,11 @@ describe('Task', () => {
398
410
  // @ts-expect-error - Calling private method
399
411
  task._schedulerToolCallsUpdate(toolCalls);
400
412
  expect(onConfirmSpy).not.toHaveBeenCalled();
413
+ const calls = mockEventBus.publish.mock.calls;
414
+ // Search if ToolCallConfirmationEvent was published
415
+ const confEvent = calls.find((call) => call[0].metadata?.coderAgent?.kind ===
416
+ CoderAgentEvent.ToolCallConfirmationEvent);
417
+ expect(confEvent).toBeDefined();
401
418
  });
402
419
  });
403
420
  });