Download packages/core/src/agents/codebase-investigator.test.ts from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 2.52 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/core/src/agents/codebase-investigator.test.ts
- Command line
-
hf download hf://SaylorTwift/gemini-cli/packages/core/src/agents/codebase-investigator.test.ts
-
curl -L -o codebase-investigator.test.ts https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/core/src/agents/codebase-investigator.test.ts
2.52 kB
| /** | |
| * @license | |
| * Copyright 2025 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import { describe, it, expect, vi, afterEach } from 'vitest'; | |
| import { CodebaseInvestigatorAgent } from './codebase-investigator.js'; | |
| import { | |
| GLOB_TOOL_NAME, | |
| GREP_TOOL_NAME, | |
| LS_TOOL_NAME, | |
| READ_FILE_TOOL_NAME, | |
| } from '../tools/tool-names.js'; | |
| import { DEFAULT_GEMINI_MODEL } from '../config/models.js'; | |
| import { makeFakeConfig } from '../test-utils/config.js'; | |
| describe('CodebaseInvestigatorAgent', () => { | |
| const config = makeFakeConfig(); | |
| afterEach(() => { | |
| vi.unstubAllGlobals(); | |
| }); | |
| const mockPlatform = (platform: string) => { | |
| vi.stubGlobal( | |
| 'process', | |
| Object.create(process, { | |
| platform: { | |
| get: () => platform, | |
| }, | |
| }), | |
| ); | |
| }; | |
| it('should have the correct agent definition', () => { | |
| const agent = CodebaseInvestigatorAgent(config); | |
| expect(agent.name).toBe('codebase_investigator'); | |
| expect(agent.displayName).toBe('Codebase Investigator Agent'); | |
| expect(agent.description).toBeDefined(); | |
| const inputSchema = | |
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| agent.inputConfig.inputSchema as any; | |
| expect(inputSchema.properties['objective']).toBeDefined(); | |
| expect(inputSchema.required).toContain('objective'); | |
| expect(agent.outputConfig?.outputName).toBe('report'); | |
| expect(agent.modelConfig?.model).toBe(DEFAULT_GEMINI_MODEL); | |
| expect(agent.toolConfig?.tools).toEqual([ | |
| LS_TOOL_NAME, | |
| READ_FILE_TOOL_NAME, | |
| GLOB_TOOL_NAME, | |
| GREP_TOOL_NAME, | |
| ]); | |
| }); | |
| it('should process output to a formatted JSON string', () => { | |
| const agent = CodebaseInvestigatorAgent(config); | |
| const report = { | |
| SummaryOfFindings: 'summary', | |
| ExplorationTrace: ['trace'], | |
| RelevantLocations: [], | |
| }; | |
| const processed = agent.processOutput?.(report); | |
| expect(processed).toBe(JSON.stringify(report, null, 2)); | |
| }); | |
| it('should include Windows-specific list command in system prompt when on Windows', () => { | |
| mockPlatform('win32'); | |
| const agent = CodebaseInvestigatorAgent(config); | |
| expect(agent.promptConfig.systemPrompt).toContain( | |
| '`dir /s` (CMD) or `Get-ChildItem -Recurse` (PowerShell)', | |
| ); | |
| }); | |
| it('should include generic list command in system prompt when on non-Windows', () => { | |
| mockPlatform('linux'); | |
| const agent = CodebaseInvestigatorAgent(config); | |
| expect(agent.promptConfig.systemPrompt).toContain('`ls -R`'); | |
| }); | |
| }); | |