@google/gemini-cli-core 0.8.0-preview.1 → 0.9.0-nightly.20251001.14dbda91
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/README.md +43 -54
- package/dist/src/agents/codebase-investigator.js +120 -29
- package/dist/src/agents/codebase-investigator.js.map +1 -1
- package/dist/src/agents/executor.d.ts +8 -0
- package/dist/src/agents/executor.js +25 -4
- package/dist/src/agents/executor.js.map +1 -1
- package/dist/src/agents/executor.test.js +75 -2
- package/dist/src/agents/executor.test.js.map +1 -1
- package/dist/src/agents/invocation.d.ts +3 -1
- package/dist/src/agents/invocation.js +3 -2
- package/dist/src/agents/invocation.js.map +1 -1
- package/dist/src/agents/invocation.test.js +8 -0
- package/dist/src/agents/invocation.test.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.d.ts +3 -1
- package/dist/src/agents/subagent-tool-wrapper.js +4 -3
- package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js +8 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
- package/dist/src/agents/types.d.ts +7 -0
- package/dist/src/config/config.d.ts +6 -0
- package/dist/src/config/config.js +37 -0
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +63 -0
- package/dist/src/config/config.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/generated/git-commit.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +4 -2
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +11 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +2 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +2 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/constants.d.ts +1 -0
- package/dist/src/telemetry/constants.js +1 -0
- package/dist/src/telemetry/constants.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +1 -1
- package/dist/src/telemetry/index.js +7 -1
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +2 -1
- package/dist/src/telemetry/loggers.js +44 -22
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +39 -3
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +87 -2
- package/dist/src/telemetry/metrics.js +114 -2
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js +161 -0
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +6 -0
- package/dist/src/telemetry/types.js +10 -0
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/tools/glob.js +2 -1
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/smart-edit.d.ts +1 -1
- package/dist/src/tools/smart-edit.js +11 -3
- package/dist/src/tools/smart-edit.js.map +1 -1
- package/dist/src/tools/smart-edit.test.js +10 -4
- package/dist/src/tools/smart-edit.test.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +6 -0
- package/dist/src/tools/tool-names.js +15 -0
- package/dist/src/tools/tool-names.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,12 +11,12 @@ Gemini CLI is an open-source AI agent that brings the power of Gemini directly i
|
|
|
11
11
|
|
|
12
12
|
## 🚀 Why Gemini CLI?
|
|
13
13
|
|
|
14
|
-
- **🎯 Free tier**: 60 requests/min and 1,000 requests/day with personal Google account
|
|
15
|
-
- **🧠 Powerful Gemini 2.5 Pro**: Access to 1M token context window
|
|
16
|
-
- **🔧 Built-in tools**: Google Search grounding, file operations, shell commands, web fetching
|
|
17
|
-
- **🔌 Extensible**: MCP (Model Context Protocol) support for custom integrations
|
|
18
|
-
- **💻 Terminal-first**: Designed for developers who live in the command line
|
|
19
|
-
- **🛡️ Open source**: Apache 2.0 licensed
|
|
14
|
+
- **🎯 Free tier**: 60 requests/min and 1,000 requests/day with personal Google account.
|
|
15
|
+
- **🧠 Powerful Gemini 2.5 Pro**: Access to 1M token context window.
|
|
16
|
+
- **🔧 Built-in tools**: Google Search grounding, file operations, shell commands, web fetching.
|
|
17
|
+
- **🔌 Extensible**: MCP (Model Context Protocol) support for custom integrations.
|
|
18
|
+
- **💻 Terminal-first**: Designed for developers who live in the command line.
|
|
19
|
+
- **🛡️ Open source**: Apache 2.0 licensed.
|
|
20
20
|
|
|
21
21
|
## 📦 Installation
|
|
22
22
|
|
|
@@ -109,20 +109,14 @@ Choose the authentication method that best fits your needs:
|
|
|
109
109
|
|
|
110
110
|
### Option 1: Login with Google (OAuth login using your Google Account)
|
|
111
111
|
|
|
112
|
-
**✨ Best for:**
|
|
113
|
-
|
|
114
|
-
- Individual developers.
|
|
115
|
-
- Google AI Pro and AI Ultra subscribers.
|
|
116
|
-
- Anyone who has a Gemini Code Assist license.
|
|
117
|
-
|
|
118
|
-
_See [quota limits and terms of service](https://cloud.google.com/gemini/docs/quotas) for details._
|
|
112
|
+
**✨ Best for:** Individual developers as well as anyone who has a Gemini Code Assist License. (see [quota limits and terms of service](https://cloud.google.com/gemini/docs/quotas) for details)
|
|
119
113
|
|
|
120
114
|
**Benefits:**
|
|
121
115
|
|
|
122
|
-
- **Free tier
|
|
123
|
-
- **Gemini 2.5 Pro
|
|
116
|
+
- **Free tier**: 60 requests/min and 1,000 requests/day
|
|
117
|
+
- **Gemini 2.5 Pro** with 1M token context window
|
|
124
118
|
- **No API key management** - just sign in with your Google account
|
|
125
|
-
- **Automatic updates** to
|
|
119
|
+
- **Automatic updates** to latest models
|
|
126
120
|
|
|
127
121
|
#### Start Gemini CLI, then choose _Login with Google_ and follow the browser authentication flow when prompted
|
|
128
122
|
|
|
@@ -171,7 +165,7 @@ export GOOGLE_GENAI_USE_VERTEXAI=true
|
|
|
171
165
|
gemini
|
|
172
166
|
```
|
|
173
167
|
|
|
174
|
-
For Google Workspace accounts and other authentication methods, see the [authentication guide](./docs/
|
|
168
|
+
For Google Workspace accounts and other authentication methods, see the [authentication guide](./docs/get-started/authentication.md).
|
|
175
169
|
|
|
176
170
|
## 🚀 Getting Started
|
|
177
171
|
|
|
@@ -233,17 +227,18 @@ gemini
|
|
|
233
227
|
|
|
234
228
|
### Getting Started
|
|
235
229
|
|
|
236
|
-
- [**Quickstart Guide**](./docs/
|
|
237
|
-
- [**Authentication Setup**](./docs/
|
|
238
|
-
- [**Configuration Guide**](./docs/
|
|
239
|
-
- [**Keyboard Shortcuts**](./docs/keyboard-shortcuts.md) - Productivity tips
|
|
230
|
+
- [**Quickstart Guide**](./docs/get-started/index.md) - Get up and running quickly.
|
|
231
|
+
- [**Authentication Setup**](./docs/get-started/authentication.md) - Detailed auth configuration.
|
|
232
|
+
- [**Configuration Guide**](./docs/get-started/configuration.md) - Settings and customization.
|
|
233
|
+
- [**Keyboard Shortcuts**](./docs/cli/keyboard-shortcuts.md) - Productivity tips.
|
|
240
234
|
|
|
241
235
|
### Core Features
|
|
242
236
|
|
|
243
|
-
- [**Commands Reference**](./docs/cli/commands.md) - All slash commands (`/help`, `/chat`,
|
|
244
|
-
- [**
|
|
245
|
-
- [**
|
|
246
|
-
- [**
|
|
237
|
+
- [**Commands Reference**](./docs/cli/commands.md) - All slash commands (`/help`, `/chat`, etc).
|
|
238
|
+
- [**Custom Commands**](./docs/cli/custom-commands.md) - Create your own reusable commands.
|
|
239
|
+
- [**Context Files (GEMINI.md)**](./docs/cli/gemini-md.md) - Provide persistent context to Gemini CLI.
|
|
240
|
+
- [**Checkpointing**](./docs/cli/checkpointing.md) - Save and resume conversations.
|
|
241
|
+
- [**Token Caching**](./docs/cli/token-caching.md) - Optimize token usage.
|
|
247
242
|
|
|
248
243
|
### Tools & Extensions
|
|
249
244
|
|
|
@@ -251,31 +246,25 @@ gemini
|
|
|
251
246
|
- [File System Operations](./docs/tools/file-system.md)
|
|
252
247
|
- [Shell Commands](./docs/tools/shell.md)
|
|
253
248
|
- [Web Fetch & Search](./docs/tools/web-fetch.md)
|
|
254
|
-
|
|
255
|
-
- [**
|
|
256
|
-
- [**Custom Extensions**](./docs/extension.md) - Build your own commands
|
|
249
|
+
- [**MCP Server Integration**](./docs/tools/mcp-server.md) - Extend with custom tools.
|
|
250
|
+
- [**Custom Extensions**](./docs/extensions/index.md) - Build and share your own commands.
|
|
257
251
|
|
|
258
252
|
### Advanced Topics
|
|
259
253
|
|
|
260
|
-
- [**
|
|
261
|
-
- [**
|
|
262
|
-
- [**
|
|
263
|
-
- [**
|
|
264
|
-
- [**
|
|
265
|
-
- [**
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
- [**Settings Reference**](./docs/cli/configuration.md) - All configuration options
|
|
270
|
-
- [**Theme Customization**](./docs/cli/themes.md) - Visual customization
|
|
271
|
-
- [**.gemini Directory**](./docs/gemini-ignore.md) - Project-specific settings
|
|
272
|
-
- [**Environment Variables**](./docs/cli/configuration.md#environment-variables)
|
|
254
|
+
- [**Headless Mode (Scripting)**](./docs/cli/headless.md) - Use Gemini CLI in automated workflows.
|
|
255
|
+
- [**Architecture Overview**](./docs/architecture.md) - How Gemini CLI works.
|
|
256
|
+
- [**IDE Integration**](./docs/ide-integration/index.md) - VS Code companion.
|
|
257
|
+
- [**Sandboxing & Security**](./docs/cli/sandbox.md) - Safe execution environments.
|
|
258
|
+
- [**Trusted Folders**](./docs/cli/trusted-folders.md) - Control execution policies by folder.
|
|
259
|
+
- [**Enterprise Guide**](./docs/cli/enterprise.md) - Deploy and manage in a corporate environment.
|
|
260
|
+
- [**Telemetry & Monitoring**](./docs/cli/telemetry.md) - Usage tracking.
|
|
261
|
+
- [**Tools API Development**](./docs/core/tools-api.md) - Create custom tools.
|
|
273
262
|
|
|
274
263
|
### Troubleshooting & Support
|
|
275
264
|
|
|
276
|
-
- [**Troubleshooting Guide**](./docs/troubleshooting.md) - Common issues and solutions
|
|
277
|
-
- [**FAQ**](./docs/
|
|
278
|
-
- Use `/bug` command to report issues directly from the CLI
|
|
265
|
+
- [**Troubleshooting Guide**](./docs/troubleshooting.md) - Common issues and solutions.
|
|
266
|
+
- [**FAQ**](./docs/faq.md) - Frequently asked questions.
|
|
267
|
+
- Use `/bug` command to report issues directly from the CLI.
|
|
279
268
|
|
|
280
269
|
### Using MCP Servers
|
|
281
270
|
|
|
@@ -293,25 +282,25 @@ See the [MCP Server Integration guide](./docs/tools/mcp-server.md) for setup ins
|
|
|
293
282
|
|
|
294
283
|
We welcome contributions! Gemini CLI is fully open source (Apache 2.0), and we encourage the community to:
|
|
295
284
|
|
|
296
|
-
- Report bugs and suggest features
|
|
297
|
-
- Improve documentation
|
|
298
|
-
- Submit code improvements
|
|
299
|
-
- Share your MCP servers and extensions
|
|
285
|
+
- Report bugs and suggest features.
|
|
286
|
+
- Improve documentation.
|
|
287
|
+
- Submit code improvements.
|
|
288
|
+
- Share your MCP servers and extensions.
|
|
300
289
|
|
|
301
290
|
See our [Contributing Guide](./CONTRIBUTING.md) for development setup, coding standards, and how to submit pull requests.
|
|
302
291
|
|
|
303
|
-
Check our [Official Roadmap](https://github.com/orgs/google-gemini/projects/11
|
|
292
|
+
Check our [Official Roadmap](https://github.com/orgs/google-gemini/projects/11) for planned features and priorities.
|
|
304
293
|
|
|
305
294
|
## 📖 Resources
|
|
306
295
|
|
|
307
|
-
- **[Official Roadmap](./ROADMAP.md)** - See what's coming next
|
|
308
|
-
- **[NPM Package](https://www.npmjs.com/package/@google/gemini-cli)** - Package registry
|
|
309
|
-
- **[GitHub Issues](https://github.com/google-gemini/gemini-cli/issues)** - Report bugs or request features
|
|
310
|
-
- **[Security Advisories](https://github.com/google-gemini/gemini-cli/security/advisories)** - Security updates
|
|
296
|
+
- **[Official Roadmap](./ROADMAP.md)** - See what's coming next.
|
|
297
|
+
- **[NPM Package](https://www.npmjs.com/package/@google/gemini-cli)** - Package registry.
|
|
298
|
+
- **[GitHub Issues](https://github.com/google-gemini/gemini-cli/issues)** - Report bugs or request features.
|
|
299
|
+
- **[Security Advisories](https://github.com/google-gemini/gemini-cli/security/advisories)** - Security updates.
|
|
311
300
|
|
|
312
301
|
### Uninstall
|
|
313
302
|
|
|
314
|
-
See the [Uninstall Guide](docs/
|
|
303
|
+
See the [Uninstall Guide](docs/cli/uninstall.md) for removal instructions.
|
|
315
304
|
|
|
316
305
|
## 📄 Legal
|
|
317
306
|
|
|
@@ -5,9 +5,53 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { LSTool } from '../tools/ls.js';
|
|
7
7
|
import { ReadFileTool } from '../tools/read-file.js';
|
|
8
|
-
import {
|
|
8
|
+
import { GLOB_TOOL_NAME } from '../tools/tool-names.js';
|
|
9
9
|
import { GrepTool } from '../tools/grep.js';
|
|
10
10
|
import { DEFAULT_GEMINI_MODEL } from '../config/models.js';
|
|
11
|
+
const CODEBASE_REPORT_MARKDOWN = `<CodebaseReport>
|
|
12
|
+
<SummaryOfFindings>
|
|
13
|
+
The user's objective is to remove an optional \`config\` property from the command context. The investigation identified that the \`CommandContext\` interface, defined in \`packages/cli/src/ui/commands/types.ts\`, contains a nullable \`config: Config | null\` property. A \`TODO\` comment confirms the intent to make this property non-nullable.
|
|
14
|
+
The primary challenge is that numerous tests throughout the codebase rely on this property being optional, often setting it to \`null\` during the creation of mock \`CommandContext\` objects. The key to resolving this is to update the mock creation utility, \`createMockCommandContext\`, to provide a default mock \`Config\` object instead of \`null\`.
|
|
15
|
+
The \`Config\` class, defined in \`packages/core/src/config/config.ts\`, is the type of the \`config\` property. To facilitate the required changes, a mock \`Config\` object can be created based on the \`ConfigParameters\` interface from the same file.
|
|
16
|
+
The plan involves three main steps:
|
|
17
|
+
1. Update the \`CommandContext\` interface to make the \`config\` property non-nullable.
|
|
18
|
+
2. Modify \`createMockCommandContext\` to use a default mock \`Config\` object.
|
|
19
|
+
3. Update all test files that currently rely on a null \`config\` to use the updated mock creation utility.
|
|
20
|
+
</SummaryOfFindings>
|
|
21
|
+
<ExplorationTrace>
|
|
22
|
+
1. Searched for "CommandContext" to locate its definition.
|
|
23
|
+
2. Read \`packages/cli/src/ui/commands/types.ts\` and identified the \`config: Config | null\` property.
|
|
24
|
+
3. Searched for \`config: null\` to find all instances where the config is explicitly set to null.
|
|
25
|
+
4. Read \`packages/cli/src/test-utils/mockCommandContext.ts\` to understand how mock contexts are created.
|
|
26
|
+
5. Searched for \`createMockCommandContext\` to find all its usages.
|
|
27
|
+
6. Searched for the definition of the \`Config\` interface to understand how to create a mock object.
|
|
28
|
+
7. Read \`packages/core/src/config/config.ts\` to understand the \`Config\` class and \`ConfigParameters\` interface.
|
|
29
|
+
</ExplorationTrace>
|
|
30
|
+
<RelevantLocations>
|
|
31
|
+
<Location>
|
|
32
|
+
<FilePath>packages/cli/src/ui/commands/types.ts</FilePath>
|
|
33
|
+
<Reasoning>This file contains the definition of the \`CommandContext\` interface, which is the central piece of this investigation. The property \`config: Config | null\` needs to be changed to \`config: Config\` here.</Reasoning>
|
|
34
|
+
<KeySymbols>
|
|
35
|
+
<Symbol>CommandContext</Symbol>
|
|
36
|
+
</KeySymbols>
|
|
37
|
+
</Location>
|
|
38
|
+
<Location>
|
|
39
|
+
<FilePath>packages/cli/src/test-utils/mockCommandContext.ts</FilePath>
|
|
40
|
+
<Reasoning>This file contains the \`createMockCommandContext\` function, which is used in many tests to create mock \`CommandContext\` objects. This function needs to be updated to provide a default mock \`Config\` object instead of \`null\`.</Reasoning>
|
|
41
|
+
<KeySymbols>
|
|
42
|
+
<Symbol>createMockCommandContext</Symbol>
|
|
43
|
+
</KeySymbols>
|
|
44
|
+
</Location>
|
|
45
|
+
<Location>
|
|
46
|
+
<FilePath>packages/core/src/config/config.ts</FilePath>
|
|
47
|
+
<Reasoning>This file defines the \`Config\` class and the \`ConfigParameters\` interface. This information is needed to create a proper mock \`Config\` object to be used in the updated \`createMockCommandContext\` function.</Reasoning>
|
|
48
|
+
<KeySymbols>
|
|
49
|
+
<Symbol>Config</Symbol>
|
|
50
|
+
<Symbol>ConfigParameters</Symbol>
|
|
51
|
+
</KeySymbols>
|
|
52
|
+
</Location>
|
|
53
|
+
</RelevantLocations>
|
|
54
|
+
</CodebaseReport>`;
|
|
11
55
|
/**
|
|
12
56
|
* A Proof-of-Concept subagent specialized in analyzing codebase structure,
|
|
13
57
|
* dependencies, and technologies.
|
|
@@ -15,28 +59,36 @@ import { DEFAULT_GEMINI_MODEL } from '../config/models.js';
|
|
|
15
59
|
export const CodebaseInvestigatorAgent = {
|
|
16
60
|
name: 'codebase_investigator',
|
|
17
61
|
displayName: 'Codebase Investigator Agent',
|
|
18
|
-
description:
|
|
62
|
+
description: `Invoke this agent to delegates complex codebase exploration to an autonomous subagent.
|
|
63
|
+
Use for vague user requests that require searching multiple files to understand a feature or find context.
|
|
64
|
+
Returns a structured xml report with key file paths, symbols, architectural map and insights to solve a task.`,
|
|
19
65
|
inputConfig: {
|
|
20
66
|
inputs: {
|
|
21
|
-
|
|
22
|
-
description:
|
|
67
|
+
objective: {
|
|
68
|
+
description: `A comprehensive and detailed description of the user's ultimate goal.
|
|
69
|
+
You must include original user's objective as well as questions and any extra context and questions you may have.`,
|
|
23
70
|
type: 'string',
|
|
24
71
|
required: true,
|
|
25
72
|
},
|
|
26
73
|
},
|
|
27
74
|
},
|
|
28
75
|
outputConfig: {
|
|
29
|
-
description:
|
|
76
|
+
description: `A detailed markdown report summarizing the findings of the codebase investigation and insights that are the foundation for planning and executing any code modification related to the objective.
|
|
77
|
+
# Report Format
|
|
78
|
+
The final report should be structured markdown, clearly answering the investigation focus, citing the files, symbols, architectural patterns and how they relate to the given investigation focus.
|
|
79
|
+
The report should strictly follow a format like this example:
|
|
80
|
+
${CODEBASE_REPORT_MARKDOWN}
|
|
81
|
+
`,
|
|
30
82
|
completion_criteria: [
|
|
31
|
-
'The report must directly address the initial `
|
|
32
|
-
'Cite specific files, functions, or configuration snippets as evidence for your findings.',
|
|
33
|
-
'Conclude with a summary of the key technologies, architectural patterns, and conventions discovered.',
|
|
83
|
+
'The report must directly address the initial `objective`.',
|
|
84
|
+
'Cite specific files, functions, or configuration snippets and symbols as evidence for your findings.',
|
|
85
|
+
'Conclude with a xml markdown summary of the key files, symbols, technologies, architectural patterns, and conventions discovered.',
|
|
34
86
|
],
|
|
35
87
|
},
|
|
36
88
|
modelConfig: {
|
|
37
89
|
model: DEFAULT_GEMINI_MODEL,
|
|
38
|
-
temp: 0.
|
|
39
|
-
top_p:
|
|
90
|
+
temp: 0.1,
|
|
91
|
+
top_p: 0.95,
|
|
40
92
|
thinkingBudget: -1,
|
|
41
93
|
},
|
|
42
94
|
runConfig: {
|
|
@@ -45,28 +97,67 @@ export const CodebaseInvestigatorAgent = {
|
|
|
45
97
|
},
|
|
46
98
|
toolConfig: {
|
|
47
99
|
// Grant access only to read-only tools.
|
|
48
|
-
tools: [LSTool.Name, ReadFileTool.Name,
|
|
100
|
+
tools: [LSTool.Name, ReadFileTool.Name, GLOB_TOOL_NAME, GrepTool.Name],
|
|
49
101
|
},
|
|
50
102
|
promptConfig: {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
103
|
+
query: `Your task is to do a deep investigation of the codebase to find all relevant files, code locations, architectural mental map and insights to solve for the following user objective:
|
|
104
|
+
<objective>
|
|
105
|
+
\${objective}
|
|
106
|
+
</objective>`,
|
|
107
|
+
systemPrompt: `You are **Codebase Investigator**, a hyper-specialized AI agent and an expert in reverse-engineering complex software projects. You are a sub-agent within a larger development system.
|
|
108
|
+
Your **SOLE PURPOSE** is to build a complete mental model of the code relevant to a given investigation. You must identify all relevant files, understand their roles, and foresee the direct architectural consequences of potential changes.
|
|
109
|
+
You are a sub-agent in a larger system. Your only responsibility is to provide deep, actionable context.
|
|
110
|
+
- **DO:** Find the key modules, classes, and functions that are part of the problem and its solution.
|
|
111
|
+
- **DO:** Understand *why* the code is written the way it is. Question everything.
|
|
112
|
+
- **DO:** Foresee the ripple effects of a change. If \`function A\` is modified, you must check its callers. If a data structure is altered, you must identify where its type definitions need to be updated.
|
|
113
|
+
- **DO:** provide a conclusion and insights to the main agent that invoked you. If the agent is trying to solve a bug, you should provide the root cause of the bug, its impacts, how to fix it etc. If it's a new feature, you should provide insights on where to implement it, what chagnes are necessary etc.
|
|
114
|
+
- **DO NOT:** Write the final implementation code yourself.
|
|
115
|
+
- **DO NOT:** Stop at the first relevant file. Your goal is a comprehensive understanding of the entire relevant subsystem.
|
|
116
|
+
You operate in a non-interactive loop and must reason based on the information provided and the output of your tools.
|
|
117
|
+
---
|
|
118
|
+
## Core Directives
|
|
119
|
+
<RULES>
|
|
120
|
+
1. **DEEP ANALYSIS, NOT JUST FILE FINDING:** Your goal is to understand the *why* behind the code. Don't just list files; explain their purpose and the role of their key components. Your final report should empower another agent to make a correct and complete fix.
|
|
121
|
+
2. **SYSTEMATIC & CURIOUS EXPLORATION:** Start with high-value clues (like tracebacks or ticket numbers) and broaden your search as needed. Think like a senior engineer doing a code review. An initial file contains clues (imports, function calls, puzzling logic). **If you find something you don't understand, you MUST prioritize investigating it until it is clear.** Treat confusion as a signal to dig deeper.
|
|
122
|
+
3. **HOLISTIC & PRECISE:** Your goal is to find the complete and minimal set of locations that need to be understood or changed. Do not stop until you are confident you have considered the side effects of a potential fix (e.g., type errors, breaking changes to callers, opportunities for code reuse).
|
|
123
|
+
4. **Web Search:** You are allowed to use the \`web_fetch\` tool to research libraries, language features, or concepts you don't understand (e.g., "what does gettext.translation do with localedir=None?").
|
|
124
|
+
</RULES>
|
|
125
|
+
---
|
|
126
|
+
## Scratchpad Management
|
|
127
|
+
**This is your most critical function. Your scratchpad is your memory and your plan.**
|
|
128
|
+
1. **Initialization:** On your very first turn, you **MUST** create the \`<scratchpad>\` section. Analyze the \`task\` and create an initial \`Checklist\` of investigation goals and a \`Questions to Resolve\` section for any initial uncertainties.
|
|
129
|
+
2. **Constant Updates:** After **every** \`<OBSERVATION>\`, you **MUST** update the scratchpad.
|
|
130
|
+
* Mark checklist items as complete: \`[x]\`.
|
|
131
|
+
* Add new checklist items as you trace the architecture.
|
|
132
|
+
* **Explicitly log questions in \`Questions to Resolve\`** (e.g., \`[ ] What is the purpose of the 'None' element in this list?\`). Do not consider your investigation complete until this list is empty.
|
|
133
|
+
* Record \`Key Findings\` with file paths and notes about their purpose and relevance.
|
|
134
|
+
* Update \`Irrelevant Paths to Ignore\` to avoid re-investigating dead ends.
|
|
135
|
+
3. **Thinking on Paper:** The scratchpad must show your reasoning process, including how you resolve your questions.
|
|
136
|
+
---
|
|
137
|
+
## Scratchpad
|
|
138
|
+
For every turn, you **MUST** update your internal state based on the observation.
|
|
139
|
+
Scratchpad example:
|
|
140
|
+
<SCRATCHPAD>
|
|
141
|
+
**Checklist:**
|
|
142
|
+
- [x] Find the main translation loading logic.
|
|
143
|
+
- [ ] **(New)** Investigate the \`gettext.translation\` function to understand its arguments.
|
|
144
|
+
- [ ] **(New)** Check the signature of \`locale.init\` and its callers for type consistency.
|
|
145
|
+
**Questions to Resolve:**
|
|
146
|
+
- [x] ~~What is the purpose of the 'None' element in the \`locale_dirs\` list?~~ **Finding:** It's for system-wide gettext catalogs.
|
|
147
|
+
**Key Findings:**
|
|
148
|
+
- \`sphinx/application.py\`: Assembles the \`locale_dirs\` list. The order is critical.
|
|
149
|
+
- \`sphinx/locale/__init__.py\`: Consumes \`locale_dirs\`. Its \`init\` function signature might need a type hint update if \`None\` is passed.
|
|
150
|
+
**Irrelevant Paths to Ignore:**
|
|
151
|
+
- \`README.md\`
|
|
152
|
+
**Next Step:**
|
|
153
|
+
- I will use \`web_fetch\` to search for "python gettext translation localedir None" to resolve my open question.
|
|
154
|
+
</SCRATCHPAD>
|
|
155
|
+
## Termination
|
|
156
|
+
Your mission is complete **ONLY** when your \`Questions to Resolve\` list is empty and you are confident you have identified all files and necessary change *considerations*.
|
|
68
157
|
# Report Format
|
|
69
|
-
The final report should be structured markdown, clearly answering the investigation focus, citing the
|
|
158
|
+
The final report should be structured markdown, clearly answering the investigation focus, citing the files, symbols, architectural patterns and how they relate to the given investigation focus.
|
|
159
|
+
The report should strictly follow a format like this example:
|
|
160
|
+
${CODEBASE_REPORT_MARKDOWN}
|
|
70
161
|
`,
|
|
71
162
|
},
|
|
72
163
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codebase-investigator.js","sourceRoot":"","sources":["../../../src/agents/codebase-investigator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"codebase-investigator.js","sourceRoot":"","sources":["../../../src/agents/codebase-investigator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2Cf,CAAC;AAEnB;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAoB;IACxD,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,6BAA6B;IAC1C,WAAW,EAAE;;kHAEmG;IAChH,WAAW,EAAE;QACX,MAAM,EAAE;YACN,SAAS,EAAE;gBACT,WAAW,EAAE;4HACuG;gBACpH,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,YAAY,EAAE;QACZ,WAAW,EAAE;;;;EAIf,wBAAwB;CACzB;QACG,mBAAmB,EAAE;YACnB,2DAA2D;YAC3D,sGAAsG;YACtG,mIAAmI;SACpI;KACF;IAED,WAAW,EAAE;QACX,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,IAAI;QACX,cAAc,EAAE,CAAC,CAAC;KACnB;IAED,SAAS,EAAE;QACT,gBAAgB,EAAE,CAAC;QACnB,SAAS,EAAE,EAAE;KACd;IAED,UAAU,EAAE;QACV,wCAAwC;QACxC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC;KACvE;IAED,YAAY,EAAE;QACZ,KAAK,EAAE;;;aAGE;QACT,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDhB,wBAAwB;CACzB;KACE;CACF,CAAC"}
|
|
@@ -71,6 +71,14 @@ export declare class AgentExecutor {
|
|
|
71
71
|
private buildSystemPrompt;
|
|
72
72
|
/** Builds the final message for the extraction phase. */
|
|
73
73
|
private buildExtractionMessage;
|
|
74
|
+
/**
|
|
75
|
+
* Applies template strings to initial messages.
|
|
76
|
+
*
|
|
77
|
+
* @param initialMessages The initial messages from the prompt config.
|
|
78
|
+
* @param inputs The validated input parameters for this invocation.
|
|
79
|
+
* @returns A new array of `Content` with templated strings.
|
|
80
|
+
*/
|
|
81
|
+
private applyTemplateToInitialMessages;
|
|
74
82
|
/**
|
|
75
83
|
* Validates that all tools in a registry are safe for non-interactive use.
|
|
76
84
|
*
|
|
@@ -103,8 +103,11 @@ export class AgentExecutor {
|
|
|
103
103
|
let terminateReason = AgentTerminateMode.GOAL;
|
|
104
104
|
// Phase 1: Work Phase
|
|
105
105
|
// The agent works in a loop until it stops calling tools.
|
|
106
|
+
const query = this.definition.promptConfig.query
|
|
107
|
+
? templateString(this.definition.promptConfig.query, inputs)
|
|
108
|
+
: 'Get Started!';
|
|
106
109
|
let currentMessages = [
|
|
107
|
-
{ role: 'user', parts: [{ text:
|
|
110
|
+
{ role: 'user', parts: [{ text: query }] },
|
|
108
111
|
];
|
|
109
112
|
while (true) {
|
|
110
113
|
// Check for termination conditions like max turns or timeout.
|
|
@@ -206,7 +209,7 @@ export class AgentExecutor {
|
|
|
206
209
|
if (!promptConfig.systemPrompt && !promptConfig.initialMessages) {
|
|
207
210
|
throw new Error('PromptConfig must define either `systemPrompt` or `initialMessages`.');
|
|
208
211
|
}
|
|
209
|
-
const startHistory =
|
|
212
|
+
const startHistory = this.applyTemplateToInitialMessages(promptConfig.initialMessages ?? [], inputs);
|
|
210
213
|
// Build system instruction from the templated prompt string.
|
|
211
214
|
const systemInstruction = promptConfig.systemPrompt
|
|
212
215
|
? await this.buildSystemPrompt(inputs)
|
|
@@ -247,8 +250,8 @@ export class AgentExecutor {
|
|
|
247
250
|
}
|
|
248
251
|
return true;
|
|
249
252
|
});
|
|
250
|
-
const toolPromises = validatedFunctionCalls.map(async (functionCall) => {
|
|
251
|
-
const callId = functionCall.id ?? `${
|
|
253
|
+
const toolPromises = validatedFunctionCalls.map(async (functionCall, index) => {
|
|
254
|
+
const callId = functionCall.id ?? `${promptId}-${index}`;
|
|
252
255
|
const args = functionCall.args ?? {};
|
|
253
256
|
this.emitActivity('TOOL_CALL_START', {
|
|
254
257
|
name: functionCall.name,
|
|
@@ -359,6 +362,24 @@ Important Rules:
|
|
|
359
362
|
// Fallback to a generic extraction message if no description is provided.
|
|
360
363
|
return 'Based on your work so far, provide a comprehensive summary of your analysis and findings. Do not perform any more function calls.';
|
|
361
364
|
}
|
|
365
|
+
/**
|
|
366
|
+
* Applies template strings to initial messages.
|
|
367
|
+
*
|
|
368
|
+
* @param initialMessages The initial messages from the prompt config.
|
|
369
|
+
* @param inputs The validated input parameters for this invocation.
|
|
370
|
+
* @returns A new array of `Content` with templated strings.
|
|
371
|
+
*/
|
|
372
|
+
applyTemplateToInitialMessages(initialMessages, inputs) {
|
|
373
|
+
return initialMessages.map((content) => {
|
|
374
|
+
const newParts = (content.parts ?? []).map((part) => {
|
|
375
|
+
if ('text' in part && part.text !== undefined) {
|
|
376
|
+
return { text: templateString(part.text, inputs) };
|
|
377
|
+
}
|
|
378
|
+
return part;
|
|
379
|
+
});
|
|
380
|
+
return { ...content, parts: newParts };
|
|
381
|
+
});
|
|
382
|
+
}
|
|
362
383
|
/**
|
|
363
384
|
* Validates that all tools in a registry are safe for non-interactive use.
|
|
364
385
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/agents/executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/agents/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,7 +59,7 @@ const mockModelResponse = (functionCalls, thought, text) => {
|
|
|
59
59
|
};
|
|
60
60
|
let mockConfig;
|
|
61
61
|
let parentToolRegistry;
|
|
62
|
-
const createTestDefinition = (tools = [LSTool.Name], runConfigOverrides = {}, outputConfigOverrides = {}) => ({
|
|
62
|
+
const createTestDefinition = (tools = [LSTool.Name], runConfigOverrides = {}, outputConfigOverrides = {}, promptConfigOverrides = {}) => ({
|
|
63
63
|
name: 'TestAgent',
|
|
64
64
|
description: 'An agent for testing.',
|
|
65
65
|
inputConfig: {
|
|
@@ -67,7 +67,10 @@ const createTestDefinition = (tools = [LSTool.Name], runConfigOverrides = {}, ou
|
|
|
67
67
|
},
|
|
68
68
|
modelConfig: { model: 'gemini-test-model', temp: 0, top_p: 1 },
|
|
69
69
|
runConfig: { max_time_minutes: 5, max_turns: 5, ...runConfigOverrides },
|
|
70
|
-
promptConfig: {
|
|
70
|
+
promptConfig: {
|
|
71
|
+
systemPrompt: 'Achieve the goal: ${goal}.',
|
|
72
|
+
...promptConfigOverrides,
|
|
73
|
+
},
|
|
71
74
|
toolConfig: { tools },
|
|
72
75
|
outputConfig: { description: 'The final result.', ...outputConfigOverrides },
|
|
73
76
|
});
|
|
@@ -252,6 +255,39 @@ describe('AgentExecutor', () => {
|
|
|
252
255
|
functionResponse: expect.objectContaining({ id: 'call2' }),
|
|
253
256
|
}));
|
|
254
257
|
});
|
|
258
|
+
it('should use the templated query from promptConfig.query when provided', async () => {
|
|
259
|
+
const customQuery = 'Please achieve the goal: ${goal}';
|
|
260
|
+
const definition = createTestDefinition([], // No tools needed for this test
|
|
261
|
+
{}, {}, { query: customQuery, systemPrompt: 'You are a helpful agent.' });
|
|
262
|
+
const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
|
|
263
|
+
const inputs = { goal: 'test custom query' };
|
|
264
|
+
// Model stops immediately
|
|
265
|
+
mockModelResponse([]);
|
|
266
|
+
// Extraction
|
|
267
|
+
mockModelResponse([], undefined, 'Done.');
|
|
268
|
+
await executor.run(inputs, signal);
|
|
269
|
+
// Verify the first call to sendMessageStream (the work phase)
|
|
270
|
+
const workPhaseCallArgs = mockSendMessageStream.mock.calls[0][1];
|
|
271
|
+
const workPhaseMessageParts = workPhaseCallArgs.message;
|
|
272
|
+
expect(workPhaseMessageParts).toEqual([
|
|
273
|
+
{ text: 'Please achieve the goal: test custom query' },
|
|
274
|
+
]);
|
|
275
|
+
});
|
|
276
|
+
it('should default to "Get Started!" when promptConfig.query is not provided', async () => {
|
|
277
|
+
const definition = createTestDefinition([], // No tools needed for this test
|
|
278
|
+
{}, {}, { query: undefined, systemPrompt: 'You are a helpful agent.' });
|
|
279
|
+
const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
|
|
280
|
+
const inputs = { goal: 'test default query' };
|
|
281
|
+
// Model stops immediately
|
|
282
|
+
mockModelResponse([]);
|
|
283
|
+
// Extraction
|
|
284
|
+
mockModelResponse([], undefined, 'Done.');
|
|
285
|
+
await executor.run(inputs, signal);
|
|
286
|
+
// Verify the first call to sendMessageStream (the work phase)
|
|
287
|
+
const workPhaseCallArgs = mockSendMessageStream.mock.calls[0][1];
|
|
288
|
+
const workPhaseMessageParts = workPhaseCallArgs.message;
|
|
289
|
+
expect(workPhaseMessageParts).toEqual([{ text: 'Get Started!' }]);
|
|
290
|
+
});
|
|
255
291
|
it('should handle tool execution failure gracefully and report error', async () => {
|
|
256
292
|
const definition = createTestDefinition([LSTool.Name]);
|
|
257
293
|
const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
|
|
@@ -338,6 +374,43 @@ describe('AgentExecutor', () => {
|
|
|
338
374
|
expect(extractionText).toContain('- Must include file names');
|
|
339
375
|
expect(extractionText).toContain('- Must be concise');
|
|
340
376
|
});
|
|
377
|
+
it('should apply templating to initialMessages', async () => {
|
|
378
|
+
const definition = createTestDefinition([], // No tools needed
|
|
379
|
+
{}, {}, {
|
|
380
|
+
// Override systemPrompt to be undefined and provide initialMessages
|
|
381
|
+
systemPrompt: undefined,
|
|
382
|
+
initialMessages: [
|
|
383
|
+
{
|
|
384
|
+
role: 'user',
|
|
385
|
+
parts: [{ text: 'The user wants to ${goal}.' }],
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
role: 'model',
|
|
389
|
+
parts: [{ text: 'Okay, I will start working on ${goal}.' }],
|
|
390
|
+
},
|
|
391
|
+
],
|
|
392
|
+
});
|
|
393
|
+
const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
|
|
394
|
+
const inputs = { goal: 'find the file' };
|
|
395
|
+
// Model stops immediately
|
|
396
|
+
mockModelResponse([]);
|
|
397
|
+
// Extraction
|
|
398
|
+
mockModelResponse([], undefined, 'Done.');
|
|
399
|
+
await executor.run(inputs, signal);
|
|
400
|
+
// Verify that the initialMessages were templated correctly
|
|
401
|
+
const chatConstructorArgs = MockedGeminiChat.mock.calls[0];
|
|
402
|
+
const startHistory = chatConstructorArgs[2]; // 3rd argument is startHistory
|
|
403
|
+
expect(startHistory).toEqual([
|
|
404
|
+
{
|
|
405
|
+
role: 'user',
|
|
406
|
+
parts: [{ text: 'The user wants to find the file.' }],
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
role: 'model',
|
|
410
|
+
parts: [{ text: 'Okay, I will start working on find the file.' }],
|
|
411
|
+
},
|
|
412
|
+
]);
|
|
413
|
+
});
|
|
341
414
|
});
|
|
342
415
|
describe('run (Termination Conditions)', () => {
|
|
343
416
|
const mockKeepAliveResponse = () => {
|