@google/gemini-cli-a2a-server 0.12.0-nightly.20251023.c4c0c0d1 → 0.12.0-nightly.20251027.cb0947c5

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.
@@ -51,4 +51,5 @@ export declare class Task {
51
51
  acceptUserMessage(requestContext: RequestContext, aborted: AbortSignal): AsyncGenerator<ServerGeminiStreamEvent>;
52
52
  _sendTextContent(content: string, traceId?: string): void;
53
53
  _sendThought(content: ThoughtSummary, traceId?: string): void;
54
+ _sendCitation(citation: string): void;
54
55
  }
@@ -233,10 +233,10 @@ export class Task {
233
233
  }
234
234
  // Only send an update if the status has actually changed.
235
235
  if (hasChanged) {
236
- const message = this.toolStatusMessage(tc, this.id, this.contextId);
237
236
  const coderAgentMessage = tc.status === 'awaiting_approval'
238
237
  ? { kind: CoderAgentEvent.ToolCallConfirmationEvent }
239
238
  : { kind: CoderAgentEvent.ToolCallUpdateEvent };
239
+ const message = this.toolStatusMessage(tc, this.id, this.contextId);
240
240
  const event = this._createStatusUpdateEvent(this.taskState, coderAgentMessage, message, false);
241
241
  this.eventBus?.publish(event);
242
242
  }
@@ -253,15 +253,12 @@ export class Task {
253
253
  }
254
254
  const allPendingStatuses = Array.from(this.pendingToolCalls.values());
255
255
  const isAwaitingApproval = allPendingStatuses.some((status) => status === 'awaiting_approval');
256
- const allPendingAreStable = allPendingStatuses.every((status) => status === 'awaiting_approval' ||
257
- status === 'success' ||
258
- status === 'error' ||
259
- status === 'cancelled');
260
- // 1. Are any pending tool calls awaiting_approval
261
- // 2. Are all pending tool calls in a stable state (i.e. not in validing or executing)
262
- // 3. After an inline edit, the edited tool call will send awaiting_approval THEN scheduled. We wait for the next update in this case.
256
+ const isExecuting = allPendingStatuses.some((status) => status === 'executing');
257
+ // The turn is complete and requires user input if at least one tool
258
+ // is waiting for the user's decision, and no other tool is actively
259
+ // running in the background.
263
260
  if (isAwaitingApproval &&
264
- allPendingAreStable &&
261
+ !isExecuting &&
265
262
  !this.skipFinalTrueAfterInlineEdit) {
266
263
  this.skipFinalTrueAfterInlineEdit = false;
267
264
  // We don't need to send another message, just a final status update.
@@ -395,6 +392,10 @@ export class Task {
395
392
  logger.info('[Task] Sending agent thought...');
396
393
  this._sendThought(event.value, traceId);
397
394
  break;
395
+ case GeminiEventType.Citation:
396
+ logger.info('[Task] Received citation from LLM stream.');
397
+ this._sendCitation(event.value);
398
+ break;
398
399
  case GeminiEventType.ChatCompressed:
399
400
  break;
400
401
  case GeminiEventType.Finished:
@@ -652,5 +653,16 @@ export class Task {
652
653
  };
653
654
  this.eventBus?.publish(this._createStatusUpdateEvent(this.taskState, thought, message, false, undefined, undefined, traceId));
654
655
  }
656
+ _sendCitation(citation) {
657
+ if (!citation || citation.trim() === '') {
658
+ return;
659
+ }
660
+ logger.info('[Task] Sending citation to event bus.');
661
+ const message = this._createTextMessage(citation);
662
+ const citationEvent = {
663
+ kind: CoderAgentEvent.CitationEvent,
664
+ };
665
+ this.eventBus?.publish(this._createStatusUpdateEvent(this.taskState, citationEvent, message));
666
+ }
655
667
  }
656
668
  //# sourceMappingURL=task.js.map
@@ -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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"}
@@ -3,9 +3,11 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { describe, it, expect, vi } from 'vitest';
6
+ import { describe, it, expect, vi, beforeEach, afterEach, } from 'vitest';
7
7
  import { Task } from './task.js';
8
+ import { GeminiEventType, } from '@google/gemini-cli-core';
8
9
  import { createMockConfig } from '../utils/testing_utils.js';
10
+ import { CoderAgentEvent } from '../types.js';
9
11
  describe('Task', () => {
10
12
  it('scheduleToolCalls should not modify the input requests array', async () => {
11
13
  const mockConfig = createMockConfig();
@@ -65,6 +67,113 @@ describe('Task', () => {
65
67
  }),
66
68
  }));
67
69
  });
70
+ it('should handle Citation event and publish to event bus', async () => {
71
+ const mockConfig = createMockConfig();
72
+ const mockEventBus = {
73
+ publish: vi.fn(),
74
+ on: vi.fn(),
75
+ off: vi.fn(),
76
+ once: vi.fn(),
77
+ removeAllListeners: vi.fn(),
78
+ finished: vi.fn(),
79
+ };
80
+ // @ts-expect-error - Calling private constructor for test purposes.
81
+ const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
82
+ const citationText = 'Source: example.com';
83
+ const citationEvent = {
84
+ type: GeminiEventType.Citation,
85
+ value: citationText,
86
+ };
87
+ await task.acceptAgentMessage(citationEvent);
88
+ expect(mockEventBus.publish).toHaveBeenCalledOnce();
89
+ const publishedEvent = mockEventBus.publish.mock.calls[0][0];
90
+ expect(publishedEvent.kind).toBe('status-update');
91
+ expect(publishedEvent.taskId).toBe('task-id');
92
+ expect(publishedEvent.metadata.coderAgent.kind).toBe(CoderAgentEvent.CitationEvent);
93
+ expect(publishedEvent.status.message).toBeDefined();
94
+ expect(publishedEvent.status.message.parts).toEqual([
95
+ {
96
+ kind: 'text',
97
+ text: citationText,
98
+ },
99
+ ]);
100
+ });
101
+ });
102
+ describe('_schedulerToolCallsUpdate', () => {
103
+ let task;
104
+ let setTaskStateAndPublishUpdateSpy;
105
+ beforeEach(() => {
106
+ const mockConfig = createMockConfig();
107
+ const mockEventBus = {
108
+ publish: vi.fn(),
109
+ on: vi.fn(),
110
+ off: vi.fn(),
111
+ once: vi.fn(),
112
+ removeAllListeners: vi.fn(),
113
+ finished: vi.fn(),
114
+ };
115
+ // @ts-expect-error - Calling private constructor
116
+ task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
117
+ // Spy on the method we want to check calls for
118
+ setTaskStateAndPublishUpdateSpy = vi.spyOn(task, 'setTaskStateAndPublishUpdate');
119
+ });
120
+ afterEach(() => {
121
+ vi.restoreAllMocks();
122
+ });
123
+ it('should set state to input-required when a tool is awaiting approval and none are executing', () => {
124
+ const toolCalls = [
125
+ { request: { callId: '1' }, status: 'awaiting_approval' },
126
+ ];
127
+ // @ts-expect-error - Calling private method
128
+ task._schedulerToolCallsUpdate(toolCalls);
129
+ // The last call should be the final state update
130
+ expect(setTaskStateAndPublishUpdateSpy).toHaveBeenLastCalledWith('input-required', { kind: 'state-change' }, undefined, undefined, true);
131
+ });
132
+ it('should NOT set state to input-required if a tool is awaiting approval but another is executing', () => {
133
+ const toolCalls = [
134
+ { request: { callId: '1' }, status: 'awaiting_approval' },
135
+ { request: { callId: '2' }, status: 'executing' },
136
+ ];
137
+ // @ts-expect-error - Calling private method
138
+ task._schedulerToolCallsUpdate(toolCalls);
139
+ // It will be called for status updates, but not with final: true
140
+ const finalCall = setTaskStateAndPublishUpdateSpy.mock.calls.find((call) => call[4] === true);
141
+ expect(finalCall).toBeUndefined();
142
+ });
143
+ it('should set state to input-required once an executing tool finishes, leaving one awaiting approval', () => {
144
+ const initialToolCalls = [
145
+ { request: { callId: '1' }, status: 'awaiting_approval' },
146
+ { request: { callId: '2' }, status: 'executing' },
147
+ ];
148
+ // @ts-expect-error - Calling private method
149
+ task._schedulerToolCallsUpdate(initialToolCalls);
150
+ // No final call yet
151
+ let finalCall = setTaskStateAndPublishUpdateSpy.mock.calls.find((call) => call[4] === true);
152
+ expect(finalCall).toBeUndefined();
153
+ // Now, the executing tool finishes. The scheduler would call _resolveToolCall for it.
154
+ // @ts-expect-error - Calling private method
155
+ task._resolveToolCall('2');
156
+ // Then another update comes in for the awaiting tool (e.g., a re-check)
157
+ const subsequentToolCalls = [
158
+ { request: { callId: '1' }, status: 'awaiting_approval' },
159
+ ];
160
+ // @ts-expect-error - Calling private method
161
+ task._schedulerToolCallsUpdate(subsequentToolCalls);
162
+ // NOW we should get the final call
163
+ finalCall = setTaskStateAndPublishUpdateSpy.mock.calls.find((call) => call[4] === true);
164
+ expect(finalCall).toBeDefined();
165
+ expect(finalCall?.[0]).toBe('input-required');
166
+ });
167
+ it('should NOT set state to input-required if skipFinalTrueAfterInlineEdit is true', () => {
168
+ task.skipFinalTrueAfterInlineEdit = true;
169
+ const toolCalls = [
170
+ { request: { callId: '1' }, status: 'awaiting_approval' },
171
+ ];
172
+ // @ts-expect-error - Calling private method
173
+ task._schedulerToolCallsUpdate(toolCalls);
174
+ const finalCall = setTaskStateAndPublishUpdateSpy.mock.calls.find((call) => call[4] === true);
175
+ expect(finalCall).toBeUndefined();
176
+ });
68
177
  });
69
178
  });
70
179
  //# sourceMappingURL=task.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task.test.js","sourceRoot":"","sources":["../../../src/agent/task.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.test.js","sourceRoot":"","sources":["../../../src/agent/task.test.ts"],"names":[],"mappings":"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"}
@@ -243,7 +243,7 @@ describe('E2E Tests', () => {
243
243
  const workingEvent = events[2].result;
244
244
  expect(workingEvent.kind).toBe('status-update');
245
245
  expect(workingEvent.status.state).toBe('working');
246
- // State Update: Validate each tool call
246
+ // State Update: Validate the first tool call
247
247
  const toolCallValidateEvent1 = events[3].result;
248
248
  expect(toolCallValidateEvent1.metadata?.['coderAgent']).toMatchObject({
249
249
  kind: 'tool-call-update',
@@ -256,45 +256,193 @@ describe('E2E Tests', () => {
256
256
  },
257
257
  },
258
258
  ]);
259
- const toolCallValidateEvent2 = events[4].result;
260
- expect(toolCallValidateEvent2.metadata?.['coderAgent']).toMatchObject({
259
+ // --- Assert the event stream ---
260
+ // 1. Initial "submitted" status.
261
+ expect(events[0].result.status.state).toBe('submitted');
262
+ // 2. "working" status after receiving the user prompt.
263
+ expect(events[1].result.status.state).toBe('working');
264
+ // 3. A "state-change" event from the agent.
265
+ expect(events[2].result.metadata?.['coderAgent']).toMatchObject({
266
+ kind: 'state-change',
267
+ });
268
+ // 4. Tool 1 is validating.
269
+ const toolCallUpdate1 = events[3].result;
270
+ expect(toolCallUpdate1.metadata?.['coderAgent']).toMatchObject({
261
271
  kind: 'tool-call-update',
262
272
  });
263
- expect(toolCallValidateEvent2.status.message?.parts).toMatchObject([
273
+ expect(toolCallUpdate1.status.message?.parts).toMatchObject([
264
274
  {
265
275
  data: {
276
+ request: { callId: 'test-call-id-1' },
266
277
  status: 'validating',
267
- request: { callId: 'test-call-id-2' },
268
278
  },
269
279
  },
270
280
  ]);
271
- // State Update: Set each tool call to awaiting
272
- const toolCallAwaitEvent1 = events[5].result;
273
- expect(toolCallAwaitEvent1.metadata?.['coderAgent']).toMatchObject({
274
- kind: 'tool-call-confirmation',
281
+ // 5. Tool 2 is validating.
282
+ const toolCallUpdate2 = events[4].result;
283
+ expect(toolCallUpdate2.metadata?.['coderAgent']).toMatchObject({
284
+ kind: 'tool-call-update',
275
285
  });
276
- expect(toolCallAwaitEvent1.status.message?.parts).toMatchObject([
286
+ expect(toolCallUpdate2.status.message?.parts).toMatchObject([
277
287
  {
278
288
  data: {
279
- status: 'awaiting_approval',
280
- request: { callId: 'test-call-id-1' },
289
+ request: { callId: 'test-call-id-2' },
290
+ status: 'validating',
281
291
  },
282
292
  },
283
293
  ]);
284
- const toolCallAwaitEvent2 = events[6].result;
285
- expect(toolCallAwaitEvent2.metadata?.['coderAgent']).toMatchObject({
294
+ // 6. Tool 1 is awaiting approval.
295
+ const toolCallAwaitEvent = events[5].result;
296
+ expect(toolCallAwaitEvent.metadata?.['coderAgent']).toMatchObject({
286
297
  kind: 'tool-call-confirmation',
287
298
  });
288
- expect(toolCallAwaitEvent2.status.message?.parts).toMatchObject([
299
+ expect(toolCallAwaitEvent.status.message?.parts).toMatchObject([
289
300
  {
290
301
  data: {
302
+ request: { callId: 'test-call-id-1' },
291
303
  status: 'awaiting_approval',
292
- request: { callId: 'test-call-id-2' },
293
304
  },
294
305
  },
295
306
  ]);
307
+ // 7. The final event is "input-required".
308
+ const finalEvent = events[6].result;
309
+ expect(finalEvent.final).toBe(true);
310
+ expect(finalEvent.status.state).toBe('input-required');
311
+ // The scheduler now waits for approval, so no more events are sent.
312
+ assertUniqueFinalEventIsLast(events);
313
+ expect(events.length).toBe(7);
314
+ });
315
+ it('should handle multiple tool calls sequentially in YOLO mode', async () => {
316
+ // Set YOLO mode to auto-approve tools and test sequential execution.
317
+ getApprovalModeSpy.mockReturnValue(ApprovalMode.YOLO);
318
+ // First call yields the tool request
319
+ sendMessageStreamSpy.mockImplementationOnce(async function* () {
320
+ yield* [
321
+ {
322
+ type: GeminiEventType.ToolCallRequest,
323
+ value: {
324
+ callId: 'test-call-id-1',
325
+ name: 'test-tool-1',
326
+ args: {},
327
+ },
328
+ },
329
+ {
330
+ type: GeminiEventType.ToolCallRequest,
331
+ value: {
332
+ callId: 'test-call-id-2',
333
+ name: 'test-tool-2',
334
+ args: {},
335
+ },
336
+ },
337
+ ];
338
+ });
339
+ // Subsequent calls yield nothing, as the tools will "succeed".
340
+ sendMessageStreamSpy.mockImplementation(async function* () {
341
+ yield* [{ type: 'content', value: 'All tools executed.' }];
342
+ });
343
+ const mockTool1 = new MockTool({
344
+ name: 'test-tool-1',
345
+ displayName: 'Test Tool 1',
346
+ shouldConfirmExecute: vi.fn(mockToolConfirmationFn),
347
+ execute: vi
348
+ .fn()
349
+ .mockResolvedValue({ llmContent: 'tool 1 done', returnDisplay: '' }),
350
+ });
351
+ const mockTool2 = new MockTool({
352
+ name: 'test-tool-2',
353
+ displayName: 'Test Tool 2',
354
+ shouldConfirmExecute: vi.fn(mockToolConfirmationFn),
355
+ execute: vi
356
+ .fn()
357
+ .mockResolvedValue({ llmContent: 'tool 2 done', returnDisplay: '' }),
358
+ });
359
+ getToolRegistrySpy.mockReturnValue({
360
+ getAllTools: vi.fn().mockReturnValue([mockTool1, mockTool2]),
361
+ getToolsByServer: vi.fn().mockReturnValue([]),
362
+ getTool: vi.fn().mockImplementation((name) => {
363
+ if (name === 'test-tool-1')
364
+ return mockTool1;
365
+ if (name === 'test-tool-2')
366
+ return mockTool2;
367
+ return undefined;
368
+ }),
369
+ });
370
+ const agent = request.agent(app);
371
+ const res = await agent
372
+ .post('/')
373
+ .send(createStreamMessageRequest('run two tools', 'a2a-multi-tool-test-message'))
374
+ .set('Content-Type', 'application/json')
375
+ .expect(200);
376
+ const events = streamToSSEEvents(res.text);
377
+ assertTaskCreationAndWorkingStatus(events);
378
+ // --- Assert the sequential execution flow ---
379
+ const eventStream = events.slice(2).map((e) => {
380
+ const update = e.result;
381
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
382
+ const agentData = update.metadata?.['coderAgent'];
383
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
384
+ const toolData = update.status.message?.parts[0];
385
+ if (!toolData) {
386
+ return { kind: agentData.kind };
387
+ }
388
+ return {
389
+ kind: agentData.kind,
390
+ status: toolData.data?.status,
391
+ callId: toolData.data?.request.callId,
392
+ };
393
+ });
394
+ const expectedFlow = [
395
+ // Initial state change
396
+ { kind: 'state-change', status: undefined, callId: undefined },
397
+ // Tool 1 Lifecycle
398
+ {
399
+ kind: 'tool-call-update',
400
+ status: 'validating',
401
+ callId: 'test-call-id-1',
402
+ },
403
+ {
404
+ kind: 'tool-call-update',
405
+ status: 'scheduled',
406
+ callId: 'test-call-id-1',
407
+ },
408
+ {
409
+ kind: 'tool-call-update',
410
+ status: 'executing',
411
+ callId: 'test-call-id-1',
412
+ },
413
+ {
414
+ kind: 'tool-call-update',
415
+ status: 'success',
416
+ callId: 'test-call-id-1',
417
+ },
418
+ // Tool 2 Lifecycle
419
+ {
420
+ kind: 'tool-call-update',
421
+ status: 'validating',
422
+ callId: 'test-call-id-2',
423
+ },
424
+ {
425
+ kind: 'tool-call-update',
426
+ status: 'scheduled',
427
+ callId: 'test-call-id-2',
428
+ },
429
+ {
430
+ kind: 'tool-call-update',
431
+ status: 'executing',
432
+ callId: 'test-call-id-2',
433
+ },
434
+ {
435
+ kind: 'tool-call-update',
436
+ status: 'success',
437
+ callId: 'test-call-id-2',
438
+ },
439
+ // Final updates
440
+ { kind: 'state-change', status: undefined, callId: undefined },
441
+ { kind: 'text-content', status: undefined, callId: undefined },
442
+ ];
443
+ // Use `toContainEqual` for flexibility if other events are interspersed.
444
+ expect(eventStream).toEqual(expect.arrayContaining(expectedFlow));
296
445
  assertUniqueFinalEventIsLast(events);
297
- expect(events.length).toBe(8);
298
446
  });
299
447
  it('should handle tool calls that do not require approval', async () => {
300
448
  // First call yields the tool request