@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.
- package/dist/a2a-server.mjs +59586 -70760
- package/dist/src/agent/executor.js +37 -13
- package/dist/src/agent/executor.js.map +1 -1
- package/dist/src/agent/executor.test.d.ts +6 -0
- package/dist/src/agent/executor.test.js +186 -0
- package/dist/src/agent/executor.test.js.map +1 -0
- package/dist/src/agent/task-event-driven.test.d.ts +1 -0
- package/dist/src/agent/task-event-driven.test.js +446 -0
- package/dist/src/agent/task-event-driven.test.js.map +1 -0
- package/dist/src/agent/task.d.ts +14 -3
- package/dist/src/agent/task.js +208 -33
- package/dist/src/agent/task.js.map +1 -1
- package/dist/src/agent/task.test.js +19 -2
- package/dist/src/agent/task.test.js.map +1 -1
- package/dist/src/config/config.js +1 -0
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/settings.d.ts +6 -0
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/utils/testing_utils.js +1 -0
- package/dist/src/utils/testing_utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
7
|
+
import { Task } from './task.js';
|
|
8
|
+
import { MessageBusType, ToolConfirmationOutcome, ApprovalMode, Scheduler, } from '@google/gemini-cli-core';
|
|
9
|
+
import { createMockConfig } from '../utils/testing_utils.js';
|
|
10
|
+
describe('Task Event-Driven Scheduler', () => {
|
|
11
|
+
let mockConfig;
|
|
12
|
+
let mockEventBus;
|
|
13
|
+
let messageBus;
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
vi.clearAllMocks();
|
|
16
|
+
mockConfig = createMockConfig({
|
|
17
|
+
isEventDrivenSchedulerEnabled: () => true,
|
|
18
|
+
});
|
|
19
|
+
messageBus = mockConfig.getMessageBus();
|
|
20
|
+
mockEventBus = {
|
|
21
|
+
publish: vi.fn(),
|
|
22
|
+
on: vi.fn(),
|
|
23
|
+
off: vi.fn(),
|
|
24
|
+
once: vi.fn(),
|
|
25
|
+
removeAllListeners: vi.fn(),
|
|
26
|
+
finished: vi.fn(),
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
it('should instantiate Scheduler when enabled', () => {
|
|
30
|
+
// @ts-expect-error - Calling private constructor
|
|
31
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
32
|
+
expect(task.scheduler).toBeInstanceOf(Scheduler);
|
|
33
|
+
});
|
|
34
|
+
it('should subscribe to TOOL_CALLS_UPDATE and map status changes', async () => {
|
|
35
|
+
// @ts-expect-error - Calling private constructor
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
37
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
38
|
+
const toolCall = {
|
|
39
|
+
request: { callId: '1', name: 'ls', args: {} },
|
|
40
|
+
status: 'executing',
|
|
41
|
+
};
|
|
42
|
+
// Simulate MessageBus event
|
|
43
|
+
// Simulate MessageBus event
|
|
44
|
+
const handler = messageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
45
|
+
if (!handler) {
|
|
46
|
+
throw new Error('TOOL_CALLS_UPDATE handler not found');
|
|
47
|
+
}
|
|
48
|
+
handler({
|
|
49
|
+
type: MessageBusType.TOOL_CALLS_UPDATE,
|
|
50
|
+
toolCalls: [toolCall],
|
|
51
|
+
});
|
|
52
|
+
expect(mockEventBus.publish).toHaveBeenCalledWith(expect.objectContaining({
|
|
53
|
+
status: expect.objectContaining({
|
|
54
|
+
state: 'submitted', // initial task state
|
|
55
|
+
}),
|
|
56
|
+
metadata: expect.objectContaining({
|
|
57
|
+
coderAgent: expect.objectContaining({
|
|
58
|
+
kind: 'tool-call-update',
|
|
59
|
+
}),
|
|
60
|
+
}),
|
|
61
|
+
}));
|
|
62
|
+
});
|
|
63
|
+
it('should handle tool confirmations by publishing to MessageBus', async () => {
|
|
64
|
+
// @ts-expect-error - Calling private constructor
|
|
65
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
66
|
+
const toolCall = {
|
|
67
|
+
request: { callId: '1', name: 'ls', args: {} },
|
|
68
|
+
status: 'awaiting_approval',
|
|
69
|
+
correlationId: 'corr-1',
|
|
70
|
+
confirmationDetails: { type: 'info', title: 'test', prompt: 'test' },
|
|
71
|
+
};
|
|
72
|
+
// Simulate MessageBus event to stash the correlationId
|
|
73
|
+
// Simulate MessageBus event
|
|
74
|
+
const handler = messageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
75
|
+
if (!handler) {
|
|
76
|
+
throw new Error('TOOL_CALLS_UPDATE handler not found');
|
|
77
|
+
}
|
|
78
|
+
handler({
|
|
79
|
+
type: MessageBusType.TOOL_CALLS_UPDATE,
|
|
80
|
+
toolCalls: [toolCall],
|
|
81
|
+
});
|
|
82
|
+
// Simulate A2A client confirmation
|
|
83
|
+
const part = {
|
|
84
|
+
kind: 'data',
|
|
85
|
+
data: {
|
|
86
|
+
callId: '1',
|
|
87
|
+
outcome: 'proceed_once',
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
const handled = await task._handleToolConfirmationPart(part);
|
|
91
|
+
expect(handled).toBe(true);
|
|
92
|
+
expect(messageBus.publish).toHaveBeenCalledWith(expect.objectContaining({
|
|
93
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
94
|
+
correlationId: 'corr-1',
|
|
95
|
+
confirmed: true,
|
|
96
|
+
outcome: ToolConfirmationOutcome.ProceedOnce,
|
|
97
|
+
}));
|
|
98
|
+
});
|
|
99
|
+
it('should handle Rejection (Cancel) and Modification (ModifyWithEditor)', async () => {
|
|
100
|
+
// @ts-expect-error - Calling private constructor
|
|
101
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
102
|
+
const toolCall = {
|
|
103
|
+
request: { callId: '1', name: 'ls', args: {} },
|
|
104
|
+
status: 'awaiting_approval',
|
|
105
|
+
correlationId: 'corr-1',
|
|
106
|
+
confirmationDetails: { type: 'info', title: 'test', prompt: 'test' },
|
|
107
|
+
};
|
|
108
|
+
const handler = messageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
109
|
+
handler({ type: MessageBusType.TOOL_CALLS_UPDATE, toolCalls: [toolCall] });
|
|
110
|
+
// Simulate Rejection (Cancel)
|
|
111
|
+
const handled = await task._handleToolConfirmationPart({
|
|
112
|
+
kind: 'data',
|
|
113
|
+
data: { callId: '1', outcome: 'cancel' },
|
|
114
|
+
});
|
|
115
|
+
expect(handled).toBe(true);
|
|
116
|
+
expect(messageBus.publish).toHaveBeenCalledWith(expect.objectContaining({
|
|
117
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
118
|
+
correlationId: 'corr-1',
|
|
119
|
+
confirmed: false,
|
|
120
|
+
}));
|
|
121
|
+
const toolCall2 = {
|
|
122
|
+
request: { callId: '2', name: 'ls', args: {} },
|
|
123
|
+
status: 'awaiting_approval',
|
|
124
|
+
correlationId: 'corr-2',
|
|
125
|
+
confirmationDetails: { type: 'info', title: 'test', prompt: 'test' },
|
|
126
|
+
};
|
|
127
|
+
handler({ type: MessageBusType.TOOL_CALLS_UPDATE, toolCalls: [toolCall2] });
|
|
128
|
+
// Simulate ModifyWithEditor
|
|
129
|
+
const handled2 = await task._handleToolConfirmationPart({
|
|
130
|
+
kind: 'data',
|
|
131
|
+
data: { callId: '2', outcome: 'modify_with_editor' },
|
|
132
|
+
});
|
|
133
|
+
expect(handled2).toBe(true);
|
|
134
|
+
expect(messageBus.publish).toHaveBeenCalledWith(expect.objectContaining({
|
|
135
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
136
|
+
correlationId: 'corr-2',
|
|
137
|
+
confirmed: false,
|
|
138
|
+
outcome: ToolConfirmationOutcome.ModifyWithEditor,
|
|
139
|
+
payload: undefined,
|
|
140
|
+
}));
|
|
141
|
+
});
|
|
142
|
+
it('should handle MCP Server tool operations correctly', async () => {
|
|
143
|
+
// @ts-expect-error - Calling private constructor
|
|
144
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
145
|
+
const toolCall = {
|
|
146
|
+
request: { callId: '1', name: 'call_mcp_tool', args: {} },
|
|
147
|
+
status: 'awaiting_approval',
|
|
148
|
+
correlationId: 'corr-mcp-1',
|
|
149
|
+
confirmationDetails: {
|
|
150
|
+
type: 'mcp',
|
|
151
|
+
title: 'MCP Server Operation',
|
|
152
|
+
prompt: 'test_mcp',
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
const handler = messageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
156
|
+
handler({ type: MessageBusType.TOOL_CALLS_UPDATE, toolCalls: [toolCall] });
|
|
157
|
+
// Simulate ProceedOnce for MCP
|
|
158
|
+
const handled = await task._handleToolConfirmationPart({
|
|
159
|
+
kind: 'data',
|
|
160
|
+
data: { callId: '1', outcome: 'proceed_once' },
|
|
161
|
+
});
|
|
162
|
+
expect(handled).toBe(true);
|
|
163
|
+
expect(messageBus.publish).toHaveBeenCalledWith(expect.objectContaining({
|
|
164
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
165
|
+
correlationId: 'corr-mcp-1',
|
|
166
|
+
confirmed: true,
|
|
167
|
+
outcome: ToolConfirmationOutcome.ProceedOnce,
|
|
168
|
+
}));
|
|
169
|
+
});
|
|
170
|
+
it('should handle MCP Server tool ProceedAlwaysServer outcome', async () => {
|
|
171
|
+
// @ts-expect-error - Calling private constructor
|
|
172
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
173
|
+
const toolCall = {
|
|
174
|
+
request: { callId: '1', name: 'call_mcp_tool', args: {} },
|
|
175
|
+
status: 'awaiting_approval',
|
|
176
|
+
correlationId: 'corr-mcp-2',
|
|
177
|
+
confirmationDetails: {
|
|
178
|
+
type: 'mcp',
|
|
179
|
+
title: 'MCP Server Operation',
|
|
180
|
+
prompt: 'test_mcp',
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
const handler = messageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
184
|
+
handler({ type: MessageBusType.TOOL_CALLS_UPDATE, toolCalls: [toolCall] });
|
|
185
|
+
const handled = await task._handleToolConfirmationPart({
|
|
186
|
+
kind: 'data',
|
|
187
|
+
data: { callId: '1', outcome: 'proceed_always_server' },
|
|
188
|
+
});
|
|
189
|
+
expect(handled).toBe(true);
|
|
190
|
+
expect(messageBus.publish).toHaveBeenCalledWith(expect.objectContaining({
|
|
191
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
192
|
+
correlationId: 'corr-mcp-2',
|
|
193
|
+
confirmed: true,
|
|
194
|
+
outcome: ToolConfirmationOutcome.ProceedAlwaysServer,
|
|
195
|
+
}));
|
|
196
|
+
});
|
|
197
|
+
it('should handle MCP Server tool ProceedAlwaysTool outcome', async () => {
|
|
198
|
+
// @ts-expect-error - Calling private constructor
|
|
199
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
200
|
+
const toolCall = {
|
|
201
|
+
request: { callId: '1', name: 'call_mcp_tool', args: {} },
|
|
202
|
+
status: 'awaiting_approval',
|
|
203
|
+
correlationId: 'corr-mcp-3',
|
|
204
|
+
confirmationDetails: {
|
|
205
|
+
type: 'mcp',
|
|
206
|
+
title: 'MCP Server Operation',
|
|
207
|
+
prompt: 'test_mcp',
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
const handler = messageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
211
|
+
handler({ type: MessageBusType.TOOL_CALLS_UPDATE, toolCalls: [toolCall] });
|
|
212
|
+
const handled = await task._handleToolConfirmationPart({
|
|
213
|
+
kind: 'data',
|
|
214
|
+
data: { callId: '1', outcome: 'proceed_always_tool' },
|
|
215
|
+
});
|
|
216
|
+
expect(handled).toBe(true);
|
|
217
|
+
expect(messageBus.publish).toHaveBeenCalledWith(expect.objectContaining({
|
|
218
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
219
|
+
correlationId: 'corr-mcp-3',
|
|
220
|
+
confirmed: true,
|
|
221
|
+
outcome: ToolConfirmationOutcome.ProceedAlwaysTool,
|
|
222
|
+
}));
|
|
223
|
+
});
|
|
224
|
+
it('should handle MCP Server tool ProceedAlwaysAndSave outcome', async () => {
|
|
225
|
+
// @ts-expect-error - Calling private constructor
|
|
226
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
227
|
+
const toolCall = {
|
|
228
|
+
request: { callId: '1', name: 'call_mcp_tool', args: {} },
|
|
229
|
+
status: 'awaiting_approval',
|
|
230
|
+
correlationId: 'corr-mcp-4',
|
|
231
|
+
confirmationDetails: {
|
|
232
|
+
type: 'mcp',
|
|
233
|
+
title: 'MCP Server Operation',
|
|
234
|
+
prompt: 'test_mcp',
|
|
235
|
+
},
|
|
236
|
+
};
|
|
237
|
+
const handler = messageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
238
|
+
handler({ type: MessageBusType.TOOL_CALLS_UPDATE, toolCalls: [toolCall] });
|
|
239
|
+
const handled = await task._handleToolConfirmationPart({
|
|
240
|
+
kind: 'data',
|
|
241
|
+
data: { callId: '1', outcome: 'proceed_always_and_save' },
|
|
242
|
+
});
|
|
243
|
+
expect(handled).toBe(true);
|
|
244
|
+
expect(messageBus.publish).toHaveBeenCalledWith(expect.objectContaining({
|
|
245
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
246
|
+
correlationId: 'corr-mcp-4',
|
|
247
|
+
confirmed: true,
|
|
248
|
+
outcome: ToolConfirmationOutcome.ProceedAlwaysAndSave,
|
|
249
|
+
}));
|
|
250
|
+
});
|
|
251
|
+
it('should execute without confirmation in YOLO mode and not transition to input-required', async () => {
|
|
252
|
+
// Enable YOLO mode
|
|
253
|
+
const yoloConfig = createMockConfig({
|
|
254
|
+
isEventDrivenSchedulerEnabled: () => true,
|
|
255
|
+
getApprovalMode: () => ApprovalMode.YOLO,
|
|
256
|
+
});
|
|
257
|
+
const yoloMessageBus = yoloConfig.getMessageBus();
|
|
258
|
+
// @ts-expect-error - Calling private constructor
|
|
259
|
+
const task = new Task('task-id', 'context-id', yoloConfig, mockEventBus);
|
|
260
|
+
task.setTaskStateAndPublishUpdate = vi.fn();
|
|
261
|
+
const toolCall = {
|
|
262
|
+
request: { callId: '1', name: 'ls', args: {} },
|
|
263
|
+
status: 'awaiting_approval',
|
|
264
|
+
correlationId: 'corr-1',
|
|
265
|
+
confirmationDetails: { type: 'info', title: 'test', prompt: 'test' },
|
|
266
|
+
};
|
|
267
|
+
const handler = yoloMessageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
268
|
+
handler({ type: MessageBusType.TOOL_CALLS_UPDATE, toolCalls: [toolCall] });
|
|
269
|
+
// Should NOT auto-publish ProceedOnce anymore, because PolicyEngine handles it directly
|
|
270
|
+
expect(yoloMessageBus.publish).not.toHaveBeenCalledWith(expect.objectContaining({
|
|
271
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
272
|
+
}));
|
|
273
|
+
// Should NOT transition to input-required since it was auto-approved
|
|
274
|
+
expect(task.setTaskStateAndPublishUpdate).not.toHaveBeenCalledWith('input-required', expect.anything(), undefined, undefined, true);
|
|
275
|
+
});
|
|
276
|
+
it('should handle output updates via the message bus', async () => {
|
|
277
|
+
// @ts-expect-error - Calling private constructor
|
|
278
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
279
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
280
|
+
const toolCall = {
|
|
281
|
+
request: { callId: '1', name: 'ls', args: {} },
|
|
282
|
+
status: 'executing',
|
|
283
|
+
liveOutput: 'chunk1',
|
|
284
|
+
};
|
|
285
|
+
// Simulate MessageBus event
|
|
286
|
+
// Simulate MessageBus event
|
|
287
|
+
const handler = messageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
288
|
+
if (!handler) {
|
|
289
|
+
throw new Error('TOOL_CALLS_UPDATE handler not found');
|
|
290
|
+
}
|
|
291
|
+
handler({
|
|
292
|
+
type: MessageBusType.TOOL_CALLS_UPDATE,
|
|
293
|
+
toolCalls: [toolCall],
|
|
294
|
+
});
|
|
295
|
+
// Should publish artifact update for output
|
|
296
|
+
expect(mockEventBus.publish).toHaveBeenCalledWith(expect.objectContaining({
|
|
297
|
+
kind: 'artifact-update',
|
|
298
|
+
artifact: expect.objectContaining({
|
|
299
|
+
artifactId: 'tool-1-output',
|
|
300
|
+
parts: [{ kind: 'text', text: 'chunk1' }],
|
|
301
|
+
}),
|
|
302
|
+
}));
|
|
303
|
+
});
|
|
304
|
+
it('should complete artifact creation without hanging', async () => {
|
|
305
|
+
// @ts-expect-error - Calling private constructor
|
|
306
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
307
|
+
const toolCallId = 'create-file-123';
|
|
308
|
+
task['_registerToolCall'](toolCallId, 'executing');
|
|
309
|
+
const toolCall = {
|
|
310
|
+
request: {
|
|
311
|
+
callId: toolCallId,
|
|
312
|
+
name: 'writeFile',
|
|
313
|
+
args: { path: 'test.sh' },
|
|
314
|
+
},
|
|
315
|
+
status: 'success',
|
|
316
|
+
result: { ok: true },
|
|
317
|
+
};
|
|
318
|
+
const handler = messageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
319
|
+
handler({ type: MessageBusType.TOOL_CALLS_UPDATE, toolCalls: [toolCall] });
|
|
320
|
+
// The tool should be complete and registered appropriately, eventually
|
|
321
|
+
// triggering the toolCompletionPromise resolution when all clear.
|
|
322
|
+
const internalTask = task;
|
|
323
|
+
expect(internalTask.completedToolCalls.length).toBe(1);
|
|
324
|
+
expect(internalTask.pendingToolCalls.size).toBe(0);
|
|
325
|
+
});
|
|
326
|
+
it('should preserve messageId across multiple text chunks to prevent UI duplication', async () => {
|
|
327
|
+
// @ts-expect-error - Calling private constructor
|
|
328
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
329
|
+
// Initialize the ID for the first turn (happens internally upon LLM stream)
|
|
330
|
+
task.currentAgentMessageId = 'test-id-123';
|
|
331
|
+
// Simulate sending multiple text chunks
|
|
332
|
+
task._sendTextContent('chunk 1');
|
|
333
|
+
task._sendTextContent('chunk 2');
|
|
334
|
+
// Both text contents should have been published with the same messageId
|
|
335
|
+
const textCalls = mockEventBus.publish.mock.calls.filter((call) => call[0].status?.message?.kind === 'message');
|
|
336
|
+
expect(textCalls.length).toBe(2);
|
|
337
|
+
expect(textCalls[0][0].status.message.messageId).toBe('test-id-123');
|
|
338
|
+
expect(textCalls[1][0].status.message.messageId).toBe('test-id-123');
|
|
339
|
+
// Simulate starting a new turn by calling getAndClearCompletedTools
|
|
340
|
+
// (which precedes sendCompletedToolsToLlm where a new ID is minted)
|
|
341
|
+
task.getAndClearCompletedTools();
|
|
342
|
+
// sendCompletedToolsToLlm internally rolls the ID forward.
|
|
343
|
+
// Simulate what sendCompletedToolsToLlm does:
|
|
344
|
+
const internalTask = task;
|
|
345
|
+
internalTask.setTaskStateAndPublishUpdate('working', {});
|
|
346
|
+
// Simulate what sendCompletedToolsToLlm does: generate a new UUID for the next turn
|
|
347
|
+
task.currentAgentMessageId = 'test-id-456';
|
|
348
|
+
task._sendTextContent('chunk 3');
|
|
349
|
+
const secondTurnCalls = mockEventBus.publish.mock.calls.filter((call) => call[0].status?.message?.messageId === 'test-id-456');
|
|
350
|
+
expect(secondTurnCalls.length).toBe(1);
|
|
351
|
+
expect(secondTurnCalls[0][0].status.message.parts[0].text).toBe('chunk 3');
|
|
352
|
+
});
|
|
353
|
+
it('should handle parallel tool calls correctly', async () => {
|
|
354
|
+
// @ts-expect-error - Calling private constructor
|
|
355
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
356
|
+
const toolCall1 = {
|
|
357
|
+
request: { callId: '1', name: 'ls', args: {} },
|
|
358
|
+
status: 'awaiting_approval',
|
|
359
|
+
correlationId: 'corr-1',
|
|
360
|
+
confirmationDetails: { type: 'info', title: 'test 1', prompt: 'test 1' },
|
|
361
|
+
};
|
|
362
|
+
const toolCall2 = {
|
|
363
|
+
request: { callId: '2', name: 'pwd', args: {} },
|
|
364
|
+
status: 'awaiting_approval',
|
|
365
|
+
correlationId: 'corr-2',
|
|
366
|
+
confirmationDetails: { type: 'info', title: 'test 2', prompt: 'test 2' },
|
|
367
|
+
};
|
|
368
|
+
const handler = messageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
369
|
+
// Publish update for both tool calls simultaneously
|
|
370
|
+
handler({
|
|
371
|
+
type: MessageBusType.TOOL_CALLS_UPDATE,
|
|
372
|
+
toolCalls: [toolCall1, toolCall2],
|
|
373
|
+
});
|
|
374
|
+
// Confirm first tool call
|
|
375
|
+
const handled1 = await task._handleToolConfirmationPart({
|
|
376
|
+
kind: 'data',
|
|
377
|
+
data: { callId: '1', outcome: 'proceed_once' },
|
|
378
|
+
});
|
|
379
|
+
expect(handled1).toBe(true);
|
|
380
|
+
expect(messageBus.publish).toHaveBeenCalledWith(expect.objectContaining({
|
|
381
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
382
|
+
correlationId: 'corr-1',
|
|
383
|
+
confirmed: true,
|
|
384
|
+
}));
|
|
385
|
+
// Confirm second tool call
|
|
386
|
+
const handled2 = await task._handleToolConfirmationPart({
|
|
387
|
+
kind: 'data',
|
|
388
|
+
data: { callId: '2', outcome: 'cancel' },
|
|
389
|
+
});
|
|
390
|
+
expect(handled2).toBe(true);
|
|
391
|
+
expect(messageBus.publish).toHaveBeenCalledWith(expect.objectContaining({
|
|
392
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
393
|
+
correlationId: 'corr-2',
|
|
394
|
+
confirmed: false,
|
|
395
|
+
}));
|
|
396
|
+
});
|
|
397
|
+
it('should wait for executing tools before transitioning to input-required state', async () => {
|
|
398
|
+
// @ts-expect-error - Calling private constructor
|
|
399
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
400
|
+
task.setTaskStateAndPublishUpdate = vi.fn();
|
|
401
|
+
// Register tool 1 as executing
|
|
402
|
+
task['_registerToolCall']('1', 'executing');
|
|
403
|
+
const toolCall1 = {
|
|
404
|
+
request: { callId: '1', name: 'ls', args: {} },
|
|
405
|
+
status: 'executing',
|
|
406
|
+
};
|
|
407
|
+
const toolCall2 = {
|
|
408
|
+
request: { callId: '2', name: 'pwd', args: {} },
|
|
409
|
+
status: 'awaiting_approval',
|
|
410
|
+
correlationId: 'corr-2',
|
|
411
|
+
confirmationDetails: { type: 'info', title: 'test 2', prompt: 'test 2' },
|
|
412
|
+
};
|
|
413
|
+
const handler = messageBus.subscribe.mock.calls.find((call) => call[0] === MessageBusType.TOOL_CALLS_UPDATE)?.[1];
|
|
414
|
+
handler({
|
|
415
|
+
type: MessageBusType.TOOL_CALLS_UPDATE,
|
|
416
|
+
toolCalls: [toolCall1, toolCall2],
|
|
417
|
+
});
|
|
418
|
+
// Should NOT transition to input-required yet
|
|
419
|
+
expect(task.setTaskStateAndPublishUpdate).not.toHaveBeenCalledWith('input-required', expect.anything(), undefined, undefined, true);
|
|
420
|
+
// Complete tool 1
|
|
421
|
+
const toolCall1Complete = {
|
|
422
|
+
...toolCall1,
|
|
423
|
+
status: 'success',
|
|
424
|
+
result: { ok: true },
|
|
425
|
+
};
|
|
426
|
+
handler({
|
|
427
|
+
type: MessageBusType.TOOL_CALLS_UPDATE,
|
|
428
|
+
toolCalls: [toolCall1Complete, toolCall2],
|
|
429
|
+
});
|
|
430
|
+
// Now it should transition
|
|
431
|
+
expect(task.setTaskStateAndPublishUpdate).toHaveBeenCalledWith('input-required', expect.anything(), undefined, undefined, true);
|
|
432
|
+
});
|
|
433
|
+
it('should ignore confirmations for unknown tool calls', async () => {
|
|
434
|
+
// @ts-expect-error - Calling private constructor
|
|
435
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
436
|
+
const handled = await task._handleToolConfirmationPart({
|
|
437
|
+
kind: 'data',
|
|
438
|
+
data: { callId: 'unknown-id', outcome: 'proceed_once' },
|
|
439
|
+
});
|
|
440
|
+
// Should return false for unhandled tool call
|
|
441
|
+
expect(handled).toBe(false);
|
|
442
|
+
// Should not publish anything to the message bus
|
|
443
|
+
expect(messageBus.publish).not.toHaveBeenCalled();
|
|
444
|
+
});
|
|
445
|
+
});
|
|
446
|
+
//# sourceMappingURL=task-event-driven.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-event-driven.test.js","sourceRoot":"","sources":["../../../src/agent/task-event-driven.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAa,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAEL,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,SAAS,GAEV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAI,UAAkB,CAAC;IACvB,IAAI,YAA+B,CAAC;IACpC,IAAI,UAAsB,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,UAAU,GAAG,gBAAgB,CAAC;YAC5B,6BAA6B,EAAE,GAAG,EAAE,CAAC,IAAI;SAC1C,CAAW,CAAC;QACb,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;QACxC,YAAY,GAAG;YACb,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;YAChB,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;YACX,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;YACb,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;SAClB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,iDAAiD;QACjD,6DAA6D;QAC7D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,EAAE,WAAW;SACpB,CAAC;QAEF,4BAA4B;QAC5B,4BAA4B;QAC5B,MAAM,OAAO,GAAI,UAAU,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,CAAC;YACN,IAAI,EAAE,cAAc,CAAC,iBAAiB;YACtC,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC/C,MAAM,CAAC,gBAAgB,CAAC;YACtB,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAC9B,KAAK,EAAE,WAAW,EAAE,qBAAqB;aAC1C,CAAC;YACF,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAChC,UAAU,EAAE,MAAM,CAAC,gBAAgB,CAAC;oBAClC,IAAI,EAAE,kBAAkB;iBACzB,CAAC;aACH,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,EAAE,mBAAmB;YAC3B,aAAa,EAAE,QAAQ;YACvB,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;SACrE,CAAC;QAEF,uDAAuD;QACvD,4BAA4B;QAC5B,MAAM,OAAO,GAAI,UAAU,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,CAAC;YACN,IAAI,EAAE,cAAc,CAAC,iBAAiB;YACtC,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAC;QAEH,mCAAmC;QACnC,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;gBACJ,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,cAAc;aACxB;SACF,CAAC;QAEF,MAAM,OAAO,GAAG,MACd,IAGD,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC7C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,cAAc,CAAC,0BAA0B;YAC/C,aAAa,EAAE,QAAQ;YACvB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,uBAAuB,CAAC,WAAW;SAC7C,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,EAAE,mBAAmB;YAC3B,aAAa,EAAE,QAAQ;YACvB,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;SACrE,CAAC;QAEF,MAAM,OAAO,GAAI,UAAU,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,8BAA8B;QAC9B,MAAM,OAAO,GAAG,MACd,IAGD,CAAC,2BAA2B,CAAC;YAC5B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE;SACzC,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC7C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,cAAc,CAAC,0BAA0B;YAC/C,aAAa,EAAE,QAAQ;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CACH,CAAC;QAEF,MAAM,SAAS,GAAG;YAChB,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,EAAE,mBAAmB;YAC3B,aAAa,EAAE,QAAQ;YACvB,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;SACrE,CAAC;QACF,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5E,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,MACf,IAGD,CAAC,2BAA2B,CAAC;YAC5B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,EAAE;SACrD,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC7C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,cAAc,CAAC,0BAA0B;YAC/C,aAAa,EAAE,QAAQ;YACvB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,uBAAuB,CAAC,gBAAgB;YACjD,OAAO,EAAE,SAAS;SACnB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE;YACzD,MAAM,EAAE,mBAAmB;YAC3B,aAAa,EAAE,YAAY;YAC3B,mBAAmB,EAAE;gBACnB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,UAAU;aACnB;SACF,CAAC;QAEF,MAAM,OAAO,GAAI,UAAU,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,+BAA+B;QAC/B,MAAM,OAAO,GAAG,MACd,IAGD,CAAC,2BAA2B,CAAC;YAC5B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC7C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,cAAc,CAAC,0BAA0B;YAC/C,aAAa,EAAE,YAAY;YAC3B,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,uBAAuB,CAAC,WAAW;SAC7C,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE;YACzD,MAAM,EAAE,mBAAmB;YAC3B,aAAa,EAAE,YAAY;YAC3B,mBAAmB,EAAE;gBACnB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,UAAU;aACnB;SACF,CAAC;QAEF,MAAM,OAAO,GAAI,UAAU,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,MACd,IAGD,CAAC,2BAA2B,CAAC;YAC5B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,uBAAuB,EAAE;SACxD,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC7C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,cAAc,CAAC,0BAA0B;YAC/C,aAAa,EAAE,YAAY;YAC3B,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,uBAAuB,CAAC,mBAAmB;SACrD,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE;YACzD,MAAM,EAAE,mBAAmB;YAC3B,aAAa,EAAE,YAAY;YAC3B,mBAAmB,EAAE;gBACnB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,UAAU;aACnB;SACF,CAAC;QAEF,MAAM,OAAO,GAAI,UAAU,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,MACd,IAGD,CAAC,2BAA2B,CAAC;YAC5B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,qBAAqB,EAAE;SACtD,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC7C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,cAAc,CAAC,0BAA0B;YAC/C,aAAa,EAAE,YAAY;YAC3B,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,uBAAuB,CAAC,iBAAiB;SACnD,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE;YACzD,MAAM,EAAE,mBAAmB;YAC3B,aAAa,EAAE,YAAY;YAC3B,mBAAmB,EAAE;gBACnB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,UAAU;aACnB;SACF,CAAC;QAEF,MAAM,OAAO,GAAI,UAAU,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,MACd,IAGD,CAAC,2BAA2B,CAAC;YAC5B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,yBAAyB,EAAE;SAC1D,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC7C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,cAAc,CAAC,0BAA0B;YAC/C,aAAa,EAAE,YAAY;YAC3B,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,uBAAuB,CAAC,oBAAoB;SACtD,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;QACrG,mBAAmB;QACnB,MAAM,UAAU,GAAG,gBAAgB,CAAC;YAClC,6BAA6B,EAAE,GAAG,EAAE,CAAC,IAAI;YACzC,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI;SACzC,CAAW,CAAC;QACb,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;QAElD,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACzE,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAE5C,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,EAAE,mBAAmB;YAC3B,aAAa,EAAE,QAAQ;YACvB,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;SACrE,CAAC;QAEF,MAAM,OAAO,GAAI,cAAc,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAChE,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,wFAAwF;QACxF,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,oBAAoB,CACrD,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,cAAc,CAAC,0BAA0B;SAChD,CAAC,CACH,CAAC;QAEF,qEAAqE;QACrE,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAChE,gBAAgB,EAChB,MAAM,CAAC,QAAQ,EAAE,EACjB,SAAS,EACT,SAAS,EACT,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,iDAAiD;QACjD,6DAA6D;QAC7D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,QAAQ;SACrB,CAAC;QAEF,4BAA4B;QAC5B,4BAA4B;QAC5B,MAAM,OAAO,GAAI,UAAU,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,CAAC;YACN,IAAI,EAAE,cAAc,CAAC,iBAAiB;YACtC,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAC;QAEH,4CAA4C;QAC5C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC/C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAChC,UAAU,EAAE,eAAe;gBAC3B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;aAC1C,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,MAAM,UAAU,GAAG,iBAAiB,CAAC;QACrC,IAAI,CAAC,mBAAmB,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE;gBACP,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC1B;YACD,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC;QAEF,MAAM,OAAO,GAAI,UAAU,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,YAAY,GAAG,IAGpB,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,4EAA4E;QAC5E,IAAI,CAAC,qBAAqB,GAAG,aAAa,CAAC;QAE3C,wCAAwC;QACxC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEjC,wEAAwE;QACxE,MAAM,SAAS,GAAI,YAAY,CAAC,OAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAChE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,SAAS,CACtD,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAErE,oEAAoE;QACpE,oEAAoE;QACpE,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEjC,2DAA2D;QAC3D,8CAA8C;QAC9C,MAAM,YAAY,GAAG,IAEpB,CAAC;QACF,YAAY,CAAC,4BAA4B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEzD,oFAAoF;QACpF,IAAI,CAAC,qBAAqB,GAAG,aAAa,CAAC;QAE3C,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEjC,MAAM,eAAe,GAAI,YAAY,CAAC,OAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CACtE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,KAAK,aAAa,CAC/D,CAAC;QACF,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,MAAM,SAAS,GAAG;YAChB,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,EAAE,mBAAmB;YAC3B,aAAa,EAAE,QAAQ;YACvB,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;SACzE,CAAC;QAEF,MAAM,SAAS,GAAG;YAChB,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/C,MAAM,EAAE,mBAAmB;YAC3B,aAAa,EAAE,QAAQ;YACvB,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;SACzE,CAAC;QAEF,MAAM,OAAO,GAAI,UAAU,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEP,oDAAoD;QACpD,OAAO,CAAC;YACN,IAAI,EAAE,cAAc,CAAC,iBAAiB;YACtC,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;SAClC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,MACf,IAGD,CAAC,2BAA2B,CAAC;YAC5B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC7C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,cAAc,CAAC,0BAA0B;YAC/C,aAAa,EAAE,QAAQ;YACvB,SAAS,EAAE,IAAI;SAChB,CAAC,CACH,CAAC;QAEF,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,MACf,IAGD,CAAC,2BAA2B,CAAC;YAC5B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE;SACzC,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC7C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,cAAc,CAAC,0BAA0B;YAC/C,aAAa,EAAE,QAAQ;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAE5C,+BAA+B;QAC/B,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAG;YAChB,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,EAAE,WAAW;SACpB,CAAC;QAEF,MAAM,SAAS,GAAG;YAChB,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/C,MAAM,EAAE,mBAAmB;YAC3B,aAAa,EAAE,QAAQ;YACvB,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;SACzE,CAAC;QAEF,MAAM,OAAO,GAAI,UAAU,CAAC,SAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,iBAAiB,CAClE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEP,OAAO,CAAC;YACN,IAAI,EAAE,cAAc,CAAC,iBAAiB;YACtC,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;SAClC,CAAC,CAAC;QAEH,8CAA8C;QAC9C,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAChE,gBAAgB,EAChB,MAAM,CAAC,QAAQ,EAAE,EACjB,SAAS,EACT,SAAS,EACT,IAAI,CACL,CAAC;QAEF,kBAAkB;QAClB,MAAM,iBAAiB,GAAG;YACxB,GAAG,SAAS;YACZ,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC;QAEF,OAAO,CAAC;YACN,IAAI,EAAE,cAAc,CAAC,iBAAiB;YACtC,SAAS,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC;SAC1C,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,oBAAoB,CAC5D,gBAAgB,EAChB,MAAM,CAAC,QAAQ,EAAE,EACjB,SAAS,EACT,SAAS,EACT,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,MAAM,OAAO,GAAG,MACd,IAGD,CAAC,2BAA2B,CAAC;YAC5B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE;SACxD,CAAC,CAAC;QAEH,8CAA8C;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5B,iDAAiD;QACjD,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/src/agent/task.d.ts
CHANGED
|
@@ -3,26 +3,31 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { CoreToolScheduler, type GeminiClient, type CompletedToolCall, type ToolCallRequestInfo, type ServerGeminiStreamEvent, type ToolCallConfirmationDetails, type Config } from '@google/gemini-cli-core';
|
|
6
|
+
import { Scheduler, CoreToolScheduler, type GeminiClient, type CompletedToolCall, type ToolCallRequestInfo, type ServerGeminiStreamEvent, type ToolCallConfirmationDetails, type Config } from '@google/gemini-cli-core';
|
|
7
7
|
import { type ExecutionEventBus, type RequestContext } from '@a2a-js/sdk/server';
|
|
8
8
|
import type { TaskState, Part } from '@a2a-js/sdk';
|
|
9
9
|
import { type CoderAgentMessage, type TaskMetadata, type ThoughtSummary } from '../types.js';
|
|
10
10
|
export declare class Task {
|
|
11
11
|
id: string;
|
|
12
12
|
contextId: string;
|
|
13
|
-
scheduler: CoreToolScheduler;
|
|
13
|
+
scheduler: Scheduler | CoreToolScheduler;
|
|
14
14
|
config: Config;
|
|
15
15
|
geminiClient: GeminiClient;
|
|
16
16
|
pendingToolConfirmationDetails: Map<string, ToolCallConfirmationDetails>;
|
|
17
|
+
pendingCorrelationIds: Map<string, string>;
|
|
17
18
|
taskState: TaskState;
|
|
18
19
|
eventBus?: ExecutionEventBus;
|
|
19
20
|
completedToolCalls: CompletedToolCall[];
|
|
21
|
+
processedToolCallIds: Set<string>;
|
|
20
22
|
skipFinalTrueAfterInlineEdit: boolean;
|
|
21
23
|
modelInfo?: string;
|
|
22
24
|
currentPromptId: string | undefined;
|
|
25
|
+
currentAgentMessageId: string;
|
|
23
26
|
promptCount: number;
|
|
24
27
|
autoExecute: boolean;
|
|
28
|
+
private get isYoloMatch();
|
|
25
29
|
private pendingToolCalls;
|
|
30
|
+
private toolsAlreadyConfirmed;
|
|
26
31
|
private toolCompletionPromise?;
|
|
27
32
|
private toolCompletionNotifier?;
|
|
28
33
|
private constructor();
|
|
@@ -40,7 +45,13 @@ export declare class Task {
|
|
|
40
45
|
private _schedulerOutputUpdate;
|
|
41
46
|
private _schedulerAllToolCallsComplete;
|
|
42
47
|
private _schedulerToolCallsUpdate;
|
|
43
|
-
private
|
|
48
|
+
private createLegacyScheduler;
|
|
49
|
+
private messageBusListener?;
|
|
50
|
+
private setupEventDrivenScheduler;
|
|
51
|
+
dispose(): void;
|
|
52
|
+
private handleEventDrivenToolCallsUpdate;
|
|
53
|
+
private handleEventDrivenToolCall;
|
|
54
|
+
private checkInputRequiredState;
|
|
44
55
|
private _pickFields;
|
|
45
56
|
private toolStatusMessage;
|
|
46
57
|
private getProposedContent;
|