@google/gemini-cli-core 0.21.0-nightly.20251217.db643e916 → 0.21.0-nightly.20251219.70696e364
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/google-gemini-cli-core-0.21.0-nightly.20251218.739c02bd6.tgz +0 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/agents/codebase-investigator.d.ts +2 -2
- package/dist/src/agents/codebase-investigator.js +6 -5
- package/dist/src/agents/codebase-investigator.js.map +1 -1
- package/dist/src/agents/codebase-investigator.test.js +2 -2
- package/dist/src/agents/codebase-investigator.test.js.map +1 -1
- package/dist/src/agents/delegate-to-agent-tool.js +8 -4
- package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
- package/dist/src/agents/delegate-to-agent-tool.test.js +5 -4
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
- package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
- package/dist/src/agents/{executor.js → local-executor.js} +75 -51
- package/dist/src/agents/local-executor.js.map +1 -0
- package/dist/src/agents/{executor.test.js → local-executor.test.js} +61 -45
- package/dist/src/agents/local-executor.test.js.map +1 -0
- package/dist/src/agents/{invocation.d.ts → local-invocation.d.ts} +5 -6
- package/dist/src/agents/{invocation.js → local-invocation.js} +8 -9
- package/dist/src/agents/local-invocation.js.map +1 -0
- package/dist/src/agents/{invocation.test.js → local-invocation.test.js} +18 -17
- package/dist/src/agents/local-invocation.test.js.map +1 -0
- package/dist/src/agents/registry.d.ts +1 -0
- package/dist/src/agents/registry.js +77 -28
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +130 -5
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/agents/remote-invocation.d.ts +21 -0
- package/dist/src/agents/remote-invocation.js +31 -0
- package/dist/src/agents/remote-invocation.js.map +1 -0
- package/dist/src/agents/remote-invocation.test.d.ts +6 -0
- package/dist/src/agents/remote-invocation.test.js +35 -0
- package/dist/src/agents/remote-invocation.test.js.map +1 -0
- package/dist/src/agents/subagent-tool-wrapper.js +7 -3
- package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js +10 -9
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
- package/dist/src/agents/toml-loader.d.ts +65 -0
- package/dist/src/agents/toml-loader.js +176 -0
- package/dist/src/agents/toml-loader.js.map +1 -0
- package/dist/src/agents/toml-loader.test.d.ts +6 -0
- package/dist/src/agents/toml-loader.test.js +190 -0
- package/dist/src/agents/toml-loader.test.js.map +1 -0
- package/dist/src/agents/types.d.ts +12 -4
- package/dist/src/availability/modelAvailabilityService.d.ts +2 -1
- package/dist/src/availability/policyCatalog.d.ts +1 -0
- package/dist/src/availability/policyCatalog.js +6 -8
- package/dist/src/availability/policyCatalog.js.map +1 -1
- package/dist/src/availability/policyCatalog.test.js +2 -2
- package/dist/src/availability/policyCatalog.test.js.map +1 -1
- package/dist/src/availability/policyHelpers.d.ts +9 -5
- package/dist/src/availability/policyHelpers.js +43 -37
- package/dist/src/availability/policyHelpers.js.map +1 -1
- package/dist/src/availability/policyHelpers.test.js +58 -20
- package/dist/src/availability/policyHelpers.test.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +1 -1
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +6 -8
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.js +3 -9
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +18 -3
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/telemetry.d.ts +6 -1
- package/dist/src/code_assist/telemetry.js +92 -3
- package/dist/src/code_assist/telemetry.js.map +1 -1
- package/dist/src/code_assist/telemetry.test.js +206 -18
- package/dist/src/code_assist/telemetry.test.js.map +1 -1
- package/dist/src/config/config.d.ts +9 -13
- package/dist/src/config/config.js +68 -38
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +134 -22
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/defaultModelConfigs.js +11 -0
- package/dist/src/config/defaultModelConfigs.js.map +1 -1
- package/dist/src/config/flashFallback.test.js +0 -37
- package/dist/src/config/flashFallback.test.js.map +1 -1
- package/dist/src/config/models.d.ts +23 -10
- package/dist/src/config/models.js +65 -23
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +57 -76
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/config/storage.d.ts +2 -0
- package/dist/src/config/storage.js +6 -0
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/config/storage.test.js +8 -0
- package/dist/src/config/storage.test.js.map +1 -1
- package/dist/src/core/baseLlmClient.d.ts +3 -1
- package/dist/src/core/baseLlmClient.js +51 -43
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +12 -19
- package/dist/src/core/baseLlmClient.test.js.map +1 -1
- package/dist/src/core/client.js +18 -33
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +14 -65
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.js +1 -1
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +0 -6
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/geminiChat.js +29 -88
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +35 -257
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChat_network_retry.test.js +6 -6
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
- package/dist/src/core/prompts.js +6 -7
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +10 -7
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/turn.d.ts +1 -0
- package/dist/src/core/turn.js +3 -2
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/fallback/handler.js +54 -121
- package/dist/src/fallback/handler.js.map +1 -1
- package/dist/src/fallback/handler.test.js +80 -285
- package/dist/src/fallback/handler.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/hooks/hookPlanner.js +3 -1
- package/dist/src/hooks/hookPlanner.js.map +1 -1
- package/dist/src/hooks/hookPlanner.test.js +61 -0
- package/dist/src/hooks/hookPlanner.test.js.map +1 -1
- package/dist/src/hooks/hookRegistry.d.ts +1 -1
- package/dist/src/hooks/hookRegistry.js +2 -2
- package/dist/src/hooks/hookRegistry.js.map +1 -1
- package/dist/src/hooks/hookRegistry.test.js +73 -0
- package/dist/src/hooks/hookRegistry.test.js.map +1 -1
- package/dist/src/hooks/hookRunner.js +2 -2
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +23 -0
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/types.d.ts +2 -0
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/routing/modelRouterService.js +0 -15
- package/dist/src/routing/modelRouterService.js.map +1 -1
- package/dist/src/routing/modelRouterService.test.js +0 -62
- package/dist/src/routing/modelRouterService.test.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.js +10 -21
- package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js +2 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js +20 -12
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.js +63 -39
- package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.js +4 -3
- package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
- package/dist/src/services/chatCompressionService.js +3 -1
- package/dist/src/services/chatCompressionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +2 -1
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.test.js +14 -8
- package/dist/src/services/loopDetectionService.test.js.map +1 -1
- package/dist/src/services/modelConfig.integration.test.js +1 -1
- package/dist/src/services/modelConfig.integration.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.js +18 -2
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/test-data/resolved-aliases-retry.golden.json +16 -0
- package/dist/src/services/test-data/resolved-aliases.golden.json +16 -0
- package/dist/src/telemetry/sdk.js +2 -2
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/tools/ripGrep.js +2 -2
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +13 -0
- package/dist/src/tools/tool-names.js +54 -0
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tool-names.test.d.ts +6 -0
- package/dist/src/tools/tool-names.test.js +43 -0
- package/dist/src/tools/tool-names.test.js.map +1 -0
- package/dist/src/tools/tool-registry.d.ts +0 -1
- package/dist/src/tools/tool-registry.js +1 -1
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +2 -1
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/utils/checkpointUtils.js +1 -1
- package/dist/src/utils/checkpointUtils.js.map +1 -1
- package/dist/src/utils/checkpointUtils.test.js +1 -1
- package/dist/src/utils/checkpointUtils.test.js.map +1 -1
- package/dist/src/utils/editCorrector.js +1 -1
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +2 -2
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/environmentContext.d.ts +1 -0
- package/dist/src/utils/environmentContext.js +1 -0
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/events.d.ts +0 -16
- package/dist/src/utils/events.js +0 -9
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/flashFallback.test.js +1 -1
- package/dist/src/utils/flashFallback.test.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.js +20 -0
- package/dist/src/utils/googleQuotaErrors.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.test.js +53 -2
- package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
- package/dist/src/utils/retry.js +2 -16
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +7 -22
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -6
- package/dist/google-gemini-cli-core-0.21.0-nightly.20251216.bb0c0d8ee.tgz +0 -0
- package/dist/src/agents/executor.js.map +0 -1
- package/dist/src/agents/executor.test.js.map +0 -1
- package/dist/src/agents/invocation.js.map +0 -1
- package/dist/src/agents/invocation.test.js.map +0 -1
- /package/dist/src/agents/{executor.test.d.ts → local-executor.test.d.ts} +0 -0
- /package/dist/src/agents/{invocation.test.d.ts → local-invocation.test.d.ts} +0 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect, vi, beforeEach, afterEach, } from 'vitest';
|
|
7
7
|
import { debugLogger } from '../utils/debugLogger.js';
|
|
8
|
-
import {
|
|
8
|
+
import { LocalAgentExecutor } from './local-executor.js';
|
|
9
9
|
import { makeFakeConfig } from '../test-utils/config.js';
|
|
10
10
|
import { ToolRegistry } from '../tools/tool-registry.js';
|
|
11
11
|
import { LSTool } from '../tools/ls.js';
|
|
@@ -134,6 +134,7 @@ const createTestDefinition = (tools = [LS_TOOL_NAME], runConfigOverrides = {}, o
|
|
|
134
134
|
};
|
|
135
135
|
}
|
|
136
136
|
return {
|
|
137
|
+
kind: 'local',
|
|
137
138
|
name: 'TestAgent',
|
|
138
139
|
description: 'An agent for testing.',
|
|
139
140
|
inputConfig: {
|
|
@@ -146,7 +147,7 @@ const createTestDefinition = (tools = [LS_TOOL_NAME], runConfigOverrides = {}, o
|
|
|
146
147
|
outputConfig,
|
|
147
148
|
};
|
|
148
149
|
};
|
|
149
|
-
describe('
|
|
150
|
+
describe('LocalAgentExecutor', () => {
|
|
150
151
|
let activities;
|
|
151
152
|
let onActivity;
|
|
152
153
|
let abortController;
|
|
@@ -182,7 +183,7 @@ describe('AgentExecutor', () => {
|
|
|
182
183
|
parentToolRegistry.registerTool(new LSTool(mockConfig));
|
|
183
184
|
parentToolRegistry.registerTool(new MockTool({ name: READ_FILE_TOOL_NAME }));
|
|
184
185
|
parentToolRegistry.registerTool(MOCK_TOOL_NOT_ALLOWED);
|
|
185
|
-
vi.spyOn(mockConfig, 'getToolRegistry').
|
|
186
|
+
vi.spyOn(mockConfig, 'getToolRegistry').mockReturnValue(parentToolRegistry);
|
|
186
187
|
mockedGetDirectoryContextString.mockResolvedValue('Mocked Environment Context');
|
|
187
188
|
activities = [];
|
|
188
189
|
onActivity = (activity) => activities.push(activity);
|
|
@@ -195,19 +196,20 @@ describe('AgentExecutor', () => {
|
|
|
195
196
|
describe('create (Initialization and Validation)', () => {
|
|
196
197
|
it('should create successfully with allowed tools', async () => {
|
|
197
198
|
const definition = createTestDefinition([LS_TOOL_NAME]);
|
|
198
|
-
const executor = await
|
|
199
|
-
expect(executor).toBeInstanceOf(
|
|
199
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
200
|
+
expect(executor).toBeInstanceOf(LocalAgentExecutor);
|
|
200
201
|
});
|
|
201
|
-
it('
|
|
202
|
+
it('should allow any tool for experimentation (formerly SECURITY check)', async () => {
|
|
202
203
|
const definition = createTestDefinition([MOCK_TOOL_NOT_ALLOWED.name]);
|
|
203
|
-
await
|
|
204
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
205
|
+
expect(executor).toBeInstanceOf(LocalAgentExecutor);
|
|
204
206
|
});
|
|
205
207
|
it('should create an isolated ToolRegistry for the agent', async () => {
|
|
206
208
|
const definition = createTestDefinition([
|
|
207
209
|
LS_TOOL_NAME,
|
|
208
210
|
READ_FILE_TOOL_NAME,
|
|
209
211
|
]);
|
|
210
|
-
const executor = await
|
|
212
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
211
213
|
const agentRegistry = executor['toolRegistry'];
|
|
212
214
|
expect(agentRegistry).not.toBe(parentToolRegistry);
|
|
213
215
|
expect(agentRegistry.getAllToolNames()).toEqual(expect.arrayContaining([LS_TOOL_NAME, READ_FILE_TOOL_NAME]));
|
|
@@ -218,7 +220,7 @@ describe('AgentExecutor', () => {
|
|
|
218
220
|
const parentId = 'parent-id';
|
|
219
221
|
mockedPromptIdContext.getStore.mockReturnValue(parentId);
|
|
220
222
|
const definition = createTestDefinition();
|
|
221
|
-
const executor = await
|
|
223
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
222
224
|
expect(executor['agentId']).toMatch(new RegExp(`^${parentId}-${definition.name}-`));
|
|
223
225
|
});
|
|
224
226
|
it('should correctly apply templates to initialMessages', async () => {
|
|
@@ -239,7 +241,7 @@ describe('AgentExecutor', () => {
|
|
|
239
241
|
id: 'call1',
|
|
240
242
|
},
|
|
241
243
|
]);
|
|
242
|
-
const executor = await
|
|
244
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
243
245
|
await executor.run(inputs, signal);
|
|
244
246
|
const chatConstructorArgs = MockedGeminiChat.mock.calls[0];
|
|
245
247
|
const startHistory = chatConstructorArgs[3]; // history is the 4th arg
|
|
@@ -259,7 +261,7 @@ describe('AgentExecutor', () => {
|
|
|
259
261
|
definition.inputConfig.inputs = {
|
|
260
262
|
goal: { type: 'string', required: true, description: 'goal' },
|
|
261
263
|
};
|
|
262
|
-
const executor = await
|
|
264
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
263
265
|
// Run without inputs to trigger validation error
|
|
264
266
|
await expect(executor.run({}, signal)).rejects.toThrow(/Missing required input parameters/);
|
|
265
267
|
expect(mockedLogAgentStart).toHaveBeenCalledTimes(1);
|
|
@@ -270,7 +272,7 @@ describe('AgentExecutor', () => {
|
|
|
270
272
|
});
|
|
271
273
|
it('should execute successfully when model calls complete_task with output (Happy Path with Output)', async () => {
|
|
272
274
|
const definition = createTestDefinition();
|
|
273
|
-
const executor = await
|
|
275
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
274
276
|
const inputs = { goal: 'Find files' };
|
|
275
277
|
// Turn 1: Model calls ls
|
|
276
278
|
mockModelResponse([{ name: LS_TOOL_NAME, args: { path: '.' }, id: 'call1' }], 'T1: Listing');
|
|
@@ -371,7 +373,7 @@ describe('AgentExecutor', () => {
|
|
|
371
373
|
});
|
|
372
374
|
it('should execute successfully when model calls complete_task without output (Happy Path No Output)', async () => {
|
|
373
375
|
const definition = createTestDefinition([LS_TOOL_NAME], {}, 'none');
|
|
374
|
-
const executor = await
|
|
376
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
375
377
|
mockModelResponse([
|
|
376
378
|
{ name: LS_TOOL_NAME, args: { path: '.' }, id: 'call1' },
|
|
377
379
|
]);
|
|
@@ -403,7 +405,13 @@ describe('AgentExecutor', () => {
|
|
|
403
405
|
contentLength: undefined,
|
|
404
406
|
},
|
|
405
407
|
});
|
|
406
|
-
mockModelResponse([
|
|
408
|
+
mockModelResponse([
|
|
409
|
+
{
|
|
410
|
+
name: TASK_COMPLETE_TOOL_NAME,
|
|
411
|
+
args: { result: 'All work done' },
|
|
412
|
+
id: 'call2',
|
|
413
|
+
},
|
|
414
|
+
], 'Task finished.');
|
|
407
415
|
const output = await executor.run({ goal: 'Do work' }, signal);
|
|
408
416
|
const { modelConfigKey } = getMockMessageParams(0);
|
|
409
417
|
expect(modelConfigKey.model).toBe(getModelConfigAlias(definition));
|
|
@@ -412,14 +420,14 @@ describe('AgentExecutor', () => {
|
|
|
412
420
|
const sentTools = passedToolsArg[0].functionDeclarations;
|
|
413
421
|
expect(sentTools).toBeDefined();
|
|
414
422
|
const completeToolDef = sentTools.find((t) => t.name === TASK_COMPLETE_TOOL_NAME);
|
|
415
|
-
expect(completeToolDef?.parameters?.required).toEqual([]);
|
|
416
|
-
expect(completeToolDef?.description).toContain('
|
|
417
|
-
expect(output.result).toBe('
|
|
423
|
+
expect(completeToolDef?.parameters?.required).toEqual(['result']);
|
|
424
|
+
expect(completeToolDef?.description).toContain('submit your final findings');
|
|
425
|
+
expect(output.result).toBe('All work done');
|
|
418
426
|
expect(output.terminate_reason).toBe(AgentTerminateMode.GOAL);
|
|
419
427
|
});
|
|
420
428
|
it('should error immediately if the model stops tools without calling complete_task (Protocol Violation)', async () => {
|
|
421
429
|
const definition = createTestDefinition();
|
|
422
|
-
const executor = await
|
|
430
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
423
431
|
mockModelResponse([
|
|
424
432
|
{ name: LS_TOOL_NAME, args: { path: '.' }, id: 'call1' },
|
|
425
433
|
]);
|
|
@@ -474,7 +482,7 @@ describe('AgentExecutor', () => {
|
|
|
474
482
|
});
|
|
475
483
|
it('should report an error if complete_task is called with missing required arguments', async () => {
|
|
476
484
|
const definition = createTestDefinition();
|
|
477
|
-
const executor = await
|
|
485
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
478
486
|
// Turn 1: Missing arg
|
|
479
487
|
mockModelResponse([
|
|
480
488
|
{
|
|
@@ -518,11 +526,19 @@ describe('AgentExecutor', () => {
|
|
|
518
526
|
});
|
|
519
527
|
it('should handle multiple calls to complete_task in the same turn (accept first, block rest)', async () => {
|
|
520
528
|
const definition = createTestDefinition([], {}, 'none');
|
|
521
|
-
const executor = await
|
|
529
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
522
530
|
// Turn 1: Duplicate calls
|
|
523
531
|
mockModelResponse([
|
|
524
|
-
{
|
|
525
|
-
|
|
532
|
+
{
|
|
533
|
+
name: TASK_COMPLETE_TOOL_NAME,
|
|
534
|
+
args: { result: 'done' },
|
|
535
|
+
id: 'call1',
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
name: TASK_COMPLETE_TOOL_NAME,
|
|
539
|
+
args: { result: 'ignored' },
|
|
540
|
+
id: 'call2',
|
|
541
|
+
},
|
|
526
542
|
]);
|
|
527
543
|
const output = await executor.run({ goal: 'Dup test' }, signal);
|
|
528
544
|
expect(mockSendMessageStream).toHaveBeenCalledTimes(1);
|
|
@@ -536,7 +552,7 @@ describe('AgentExecutor', () => {
|
|
|
536
552
|
});
|
|
537
553
|
it('should execute parallel tool calls and then complete', async () => {
|
|
538
554
|
const definition = createTestDefinition([LS_TOOL_NAME]);
|
|
539
|
-
const executor = await
|
|
555
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
540
556
|
const call1 = {
|
|
541
557
|
name: LS_TOOL_NAME,
|
|
542
558
|
args: { path: '/a' },
|
|
@@ -615,7 +631,7 @@ describe('AgentExecutor', () => {
|
|
|
615
631
|
});
|
|
616
632
|
it('SECURITY: should block unauthorized tools and provide explicit failure to model', async () => {
|
|
617
633
|
const definition = createTestDefinition([LS_TOOL_NAME]);
|
|
618
|
-
const executor = await
|
|
634
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
619
635
|
// Turn 1: Model tries to use a tool not in its config
|
|
620
636
|
const badCallId = 'bad_call_1';
|
|
621
637
|
mockModelResponse([
|
|
@@ -640,7 +656,7 @@ describe('AgentExecutor', () => {
|
|
|
640
656
|
// Verify external executor was not called (Security held)
|
|
641
657
|
expect(mockExecuteToolCall).not.toHaveBeenCalled();
|
|
642
658
|
// 2. Verify console warning
|
|
643
|
-
expect(consoleWarnSpy).toHaveBeenCalledWith(expect.stringContaining(`[
|
|
659
|
+
expect(consoleWarnSpy).toHaveBeenCalledWith(expect.stringContaining(`[LocalAgentExecutor] Blocked call:`));
|
|
644
660
|
consoleWarnSpy.mockRestore();
|
|
645
661
|
// Verify specific error was sent back to model
|
|
646
662
|
const turn2Params = getMockMessageParams(1);
|
|
@@ -668,7 +684,7 @@ describe('AgentExecutor', () => {
|
|
|
668
684
|
describe('Edge Cases and Error Handling', () => {
|
|
669
685
|
it('should report an error if complete_task output fails schema validation', async () => {
|
|
670
686
|
const definition = createTestDefinition([], {}, 'default', z.string().min(10));
|
|
671
|
-
const executor = await
|
|
687
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
672
688
|
// Turn 1: Invalid arg (too short)
|
|
673
689
|
mockModelResponse([
|
|
674
690
|
{
|
|
@@ -720,7 +736,7 @@ describe('AgentExecutor', () => {
|
|
|
720
736
|
throw initError;
|
|
721
737
|
});
|
|
722
738
|
// We expect the error to be thrown during the run, not creation
|
|
723
|
-
const executor = await
|
|
739
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
724
740
|
await expect(executor.run({ goal: 'test' }, signal)).rejects.toThrow(`Failed to create chat object: ${initError}`);
|
|
725
741
|
// Ensure the error was reported via the activity callback
|
|
726
742
|
expect(activities).toContainEqual(expect.objectContaining({
|
|
@@ -736,7 +752,7 @@ describe('AgentExecutor', () => {
|
|
|
736
752
|
});
|
|
737
753
|
it('should handle a failed tool call and feed the error to the model', async () => {
|
|
738
754
|
const definition = createTestDefinition([LS_TOOL_NAME]);
|
|
739
|
-
const executor = await
|
|
755
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
740
756
|
const toolErrorMessage = 'Tool failed spectacularly';
|
|
741
757
|
// Turn 1: Model calls a tool that will fail
|
|
742
758
|
mockModelResponse([
|
|
@@ -842,7 +858,7 @@ describe('AgentExecutor', () => {
|
|
|
842
858
|
const definition = createTestDefinition([LS_TOOL_NAME], {
|
|
843
859
|
max_turns: MAX,
|
|
844
860
|
});
|
|
845
|
-
const executor = await
|
|
861
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig);
|
|
846
862
|
mockWorkResponse('t1');
|
|
847
863
|
mockWorkResponse('t2');
|
|
848
864
|
// Recovery turn
|
|
@@ -855,7 +871,7 @@ describe('AgentExecutor', () => {
|
|
|
855
871
|
const definition = createTestDefinition([LS_TOOL_NAME], {
|
|
856
872
|
max_time_minutes: 0.5, // 30 seconds
|
|
857
873
|
});
|
|
858
|
-
const executor = await
|
|
874
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
859
875
|
// Mock a model call that is interruptible by an abort signal.
|
|
860
876
|
mockSendMessageStream.mockImplementationOnce(async (_key, _message, _promptId, signal) =>
|
|
861
877
|
// eslint-disable-next-line require-yield
|
|
@@ -893,7 +909,7 @@ describe('AgentExecutor', () => {
|
|
|
893
909
|
const definition = createTestDefinition([LS_TOOL_NAME], {
|
|
894
910
|
max_time_minutes: 1,
|
|
895
911
|
});
|
|
896
|
-
const executor = await
|
|
912
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig);
|
|
897
913
|
mockModelResponse([
|
|
898
914
|
{ name: LS_TOOL_NAME, args: { path: '.' }, id: 't1' },
|
|
899
915
|
]);
|
|
@@ -923,7 +939,7 @@ describe('AgentExecutor', () => {
|
|
|
923
939
|
});
|
|
924
940
|
it('should terminate when AbortSignal is triggered', async () => {
|
|
925
941
|
const definition = createTestDefinition();
|
|
926
|
-
const executor = await
|
|
942
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig);
|
|
927
943
|
mockSendMessageStream.mockImplementationOnce(async () => (async function* () {
|
|
928
944
|
yield {
|
|
929
945
|
type: StreamEventType.CHUNK,
|
|
@@ -968,7 +984,7 @@ describe('AgentExecutor', () => {
|
|
|
968
984
|
const definition = createTestDefinition([LS_TOOL_NAME], {
|
|
969
985
|
max_turns: MAX,
|
|
970
986
|
});
|
|
971
|
-
const executor = await
|
|
987
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
972
988
|
// Turn 1 (hits max_turns)
|
|
973
989
|
mockWorkResponse('t1');
|
|
974
990
|
// Recovery Turn (succeeds)
|
|
@@ -999,7 +1015,7 @@ describe('AgentExecutor', () => {
|
|
|
999
1015
|
const definition = createTestDefinition([LS_TOOL_NAME], {
|
|
1000
1016
|
max_turns: MAX,
|
|
1001
1017
|
});
|
|
1002
|
-
const executor = await
|
|
1018
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
1003
1019
|
// Turn 1 (hits max_turns)
|
|
1004
1020
|
mockWorkResponse('t1');
|
|
1005
1021
|
// Recovery Turn (fails by calling no tools)
|
|
@@ -1018,7 +1034,7 @@ describe('AgentExecutor', () => {
|
|
|
1018
1034
|
});
|
|
1019
1035
|
it('should recover successfully from a protocol violation (no complete_task)', async () => {
|
|
1020
1036
|
const definition = createTestDefinition();
|
|
1021
|
-
const executor = await
|
|
1037
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
1022
1038
|
// Turn 1: Normal work
|
|
1023
1039
|
mockWorkResponse('t1');
|
|
1024
1040
|
// Turn 2: Protocol violation (no tool calls)
|
|
@@ -1044,7 +1060,7 @@ describe('AgentExecutor', () => {
|
|
|
1044
1060
|
});
|
|
1045
1061
|
it('should fail recovery from a protocol violation if it violates again', async () => {
|
|
1046
1062
|
const definition = createTestDefinition();
|
|
1047
|
-
const executor = await
|
|
1063
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
1048
1064
|
// Turn 1: Normal work
|
|
1049
1065
|
mockWorkResponse('t1');
|
|
1050
1066
|
// Turn 2: Protocol violation (no tool calls)
|
|
@@ -1067,7 +1083,7 @@ describe('AgentExecutor', () => {
|
|
|
1067
1083
|
const definition = createTestDefinition([LS_TOOL_NAME], {
|
|
1068
1084
|
max_time_minutes: 0.5, // 30 seconds
|
|
1069
1085
|
});
|
|
1070
|
-
const executor = await
|
|
1086
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
1071
1087
|
// Mock a model call that gets interrupted by the timeout.
|
|
1072
1088
|
mockSendMessageStream.mockImplementationOnce(async (_key, _message, _promptId, signal) =>
|
|
1073
1089
|
// eslint-disable-next-line require-yield
|
|
@@ -1103,7 +1119,7 @@ describe('AgentExecutor', () => {
|
|
|
1103
1119
|
const definition = createTestDefinition([LS_TOOL_NAME], {
|
|
1104
1120
|
max_time_minutes: 0.5, // 30 seconds
|
|
1105
1121
|
});
|
|
1106
|
-
const executor = await
|
|
1122
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
1107
1123
|
mockSendMessageStream.mockImplementationOnce(async (_key, _message, _promptId, signal) =>
|
|
1108
1124
|
// eslint-disable-next-line require-yield
|
|
1109
1125
|
(async function* () {
|
|
@@ -1169,7 +1185,7 @@ describe('AgentExecutor', () => {
|
|
|
1169
1185
|
const definition = createTestDefinition([LS_TOOL_NAME], {
|
|
1170
1186
|
max_turns: MAX,
|
|
1171
1187
|
});
|
|
1172
|
-
const executor = await
|
|
1188
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig);
|
|
1173
1189
|
// Turn 1 (hits max_turns)
|
|
1174
1190
|
mockWorkResponse('t1');
|
|
1175
1191
|
// Recovery Turn (fails by calling no tools)
|
|
@@ -1189,7 +1205,7 @@ describe('AgentExecutor', () => {
|
|
|
1189
1205
|
const definition = createTestDefinition([LS_TOOL_NAME], {
|
|
1190
1206
|
max_turns: MAX,
|
|
1191
1207
|
});
|
|
1192
|
-
const executor = await
|
|
1208
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig);
|
|
1193
1209
|
// Turn 1 (hits max_turns)
|
|
1194
1210
|
mockWorkResponse('t1');
|
|
1195
1211
|
// Recovery Turn (succeeds)
|
|
@@ -1236,7 +1252,7 @@ describe('AgentExecutor', () => {
|
|
|
1236
1252
|
};
|
|
1237
1253
|
it('should attempt to compress chat history on each turn', async () => {
|
|
1238
1254
|
const definition = createTestDefinition();
|
|
1239
|
-
const executor = await
|
|
1255
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
1240
1256
|
// Mock compression to do nothing
|
|
1241
1257
|
mockCompress.mockResolvedValue({
|
|
1242
1258
|
newHistory: null,
|
|
@@ -1257,7 +1273,7 @@ describe('AgentExecutor', () => {
|
|
|
1257
1273
|
});
|
|
1258
1274
|
it('should update chat history when compression is successful', async () => {
|
|
1259
1275
|
const definition = createTestDefinition();
|
|
1260
|
-
const executor = await
|
|
1276
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
1261
1277
|
const compressedHistory = [
|
|
1262
1278
|
{ role: 'user', parts: [{ text: 'compressed' }] },
|
|
1263
1279
|
];
|
|
@@ -1280,7 +1296,7 @@ describe('AgentExecutor', () => {
|
|
|
1280
1296
|
});
|
|
1281
1297
|
it('should pass hasFailedCompressionAttempt=true to compression after a failure', async () => {
|
|
1282
1298
|
const definition = createTestDefinition();
|
|
1283
|
-
const executor = await
|
|
1299
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
1284
1300
|
// First call fails
|
|
1285
1301
|
mockCompress.mockResolvedValueOnce({
|
|
1286
1302
|
newHistory: null,
|
|
@@ -1312,7 +1328,7 @@ describe('AgentExecutor', () => {
|
|
|
1312
1328
|
});
|
|
1313
1329
|
it('should reset hasFailedCompressionAttempt flag after a successful compression', async () => {
|
|
1314
1330
|
const definition = createTestDefinition();
|
|
1315
|
-
const executor = await
|
|
1331
|
+
const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
|
|
1316
1332
|
const compressedHistory = [
|
|
1317
1333
|
{ role: 'user', parts: [{ text: 'compressed' }] },
|
|
1318
1334
|
];
|
|
@@ -1358,4 +1374,4 @@ describe('AgentExecutor', () => {
|
|
|
1358
1374
|
});
|
|
1359
1375
|
});
|
|
1360
1376
|
});
|
|
1361
|
-
//# sourceMappingURL=executor.test.js.map
|
|
1377
|
+
//# sourceMappingURL=local-executor.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-executor.test.js","sourceRoot":"","sources":["../../../src/agents/local-executor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,29 +6,28 @@
|
|
|
6
6
|
import type { Config } from '../config/config.js';
|
|
7
7
|
import type { AnsiOutput } from '../utils/terminalSerializer.js';
|
|
8
8
|
import { BaseToolInvocation, type ToolResult } from '../tools/tools.js';
|
|
9
|
-
import type {
|
|
9
|
+
import type { LocalAgentDefinition, AgentInputs } from './types.js';
|
|
10
10
|
import type { MessageBus } from '../confirmation-bus/message-bus.js';
|
|
11
|
-
import { type z } from 'zod';
|
|
12
11
|
/**
|
|
13
12
|
* Represents a validated, executable instance of a subagent tool.
|
|
14
13
|
*
|
|
15
14
|
* This class orchestrates the execution of a defined agent by:
|
|
16
|
-
* 1. Initializing the {@link
|
|
15
|
+
* 1. Initializing the {@link LocalAgentExecutor}.
|
|
17
16
|
* 2. Running the agent's execution loop.
|
|
18
17
|
* 3. Bridging the agent's streaming activity (e.g., thoughts) to the tool's
|
|
19
18
|
* live output stream.
|
|
20
19
|
* 4. Formatting the final result into a {@link ToolResult}.
|
|
21
20
|
*/
|
|
22
|
-
export declare class
|
|
21
|
+
export declare class LocalSubagentInvocation extends BaseToolInvocation<AgentInputs, ToolResult> {
|
|
23
22
|
private readonly definition;
|
|
24
23
|
private readonly config;
|
|
25
24
|
/**
|
|
26
|
-
* @param params The validated input parameters for the agent.
|
|
27
25
|
* @param definition The definition object that configures the agent.
|
|
28
26
|
* @param config The global runtime configuration.
|
|
27
|
+
* @param params The validated input parameters for the agent.
|
|
29
28
|
* @param messageBus Optional message bus for policy enforcement.
|
|
30
29
|
*/
|
|
31
|
-
constructor(
|
|
30
|
+
constructor(definition: LocalAgentDefinition, config: Config, params: AgentInputs, messageBus?: MessageBus);
|
|
32
31
|
/**
|
|
33
32
|
* Returns a concise, human-readable description of the invocation.
|
|
34
33
|
* Used for logging and display purposes.
|
|
@@ -3,33 +3,32 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { LocalAgentExecutor } from './local-executor.js';
|
|
7
7
|
import { BaseToolInvocation } from '../tools/tools.js';
|
|
8
8
|
import { ToolErrorType } from '../tools/tool-error.js';
|
|
9
|
-
import {} from 'zod';
|
|
10
9
|
const INPUT_PREVIEW_MAX_LENGTH = 50;
|
|
11
10
|
const DESCRIPTION_MAX_LENGTH = 200;
|
|
12
11
|
/**
|
|
13
12
|
* Represents a validated, executable instance of a subagent tool.
|
|
14
13
|
*
|
|
15
14
|
* This class orchestrates the execution of a defined agent by:
|
|
16
|
-
* 1. Initializing the {@link
|
|
15
|
+
* 1. Initializing the {@link LocalAgentExecutor}.
|
|
17
16
|
* 2. Running the agent's execution loop.
|
|
18
17
|
* 3. Bridging the agent's streaming activity (e.g., thoughts) to the tool's
|
|
19
18
|
* live output stream.
|
|
20
19
|
* 4. Formatting the final result into a {@link ToolResult}.
|
|
21
20
|
*/
|
|
22
|
-
export class
|
|
21
|
+
export class LocalSubagentInvocation extends BaseToolInvocation {
|
|
23
22
|
definition;
|
|
24
23
|
config;
|
|
25
24
|
/**
|
|
26
|
-
* @param params The validated input parameters for the agent.
|
|
27
25
|
* @param definition The definition object that configures the agent.
|
|
28
26
|
* @param config The global runtime configuration.
|
|
27
|
+
* @param params The validated input parameters for the agent.
|
|
29
28
|
* @param messageBus Optional message bus for policy enforcement.
|
|
30
29
|
*/
|
|
31
|
-
constructor(
|
|
32
|
-
super(params, messageBus);
|
|
30
|
+
constructor(definition, config, params, messageBus) {
|
|
31
|
+
super(params, messageBus, definition.name, definition.displayName);
|
|
33
32
|
this.definition = definition;
|
|
34
33
|
this.config = config;
|
|
35
34
|
}
|
|
@@ -67,7 +66,7 @@ export class SubagentInvocation extends BaseToolInvocation {
|
|
|
67
66
|
updateOutput(`🤖💭 ${activity.data['text']}`);
|
|
68
67
|
}
|
|
69
68
|
};
|
|
70
|
-
const executor = await
|
|
69
|
+
const executor = await LocalAgentExecutor.create(this.definition, this.config, onActivity);
|
|
71
70
|
const output = await executor.run(this.params, signal);
|
|
72
71
|
const resultContent = `Subagent '${this.definition.name}' finished.
|
|
73
72
|
Termination Reason: ${output.terminate_reason}
|
|
@@ -99,4 +98,4 @@ ${output.result}
|
|
|
99
98
|
}
|
|
100
99
|
}
|
|
101
100
|
}
|
|
102
|
-
//# sourceMappingURL=invocation.js.map
|
|
101
|
+
//# sourceMappingURL=local-invocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-invocation.js","sourceRoot":"","sources":["../../../src/agents/local-invocation.ts"],"names":[],"mappings":"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"}
|