@google/gemini-cli-core 0.21.0-nightly.20251218.739c02bd6 → 0.21.0-nightly.20251220.41a1a3eed
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/docs/CONTRIBUTING.md +546 -0
- package/dist/docs/architecture.md +80 -0
- package/dist/docs/assets/connected_devtools.png +0 -0
- package/dist/docs/assets/gemini-screenshot.png +0 -0
- package/dist/docs/assets/release_patch.png +0 -0
- package/dist/docs/assets/theme-ansi-light.png +0 -0
- package/dist/docs/assets/theme-ansi.png +0 -0
- package/dist/docs/assets/theme-atom-one.png +0 -0
- package/dist/docs/assets/theme-ayu-light.png +0 -0
- package/dist/docs/assets/theme-ayu.png +0 -0
- package/dist/docs/assets/theme-custom.png +0 -0
- package/dist/docs/assets/theme-default-light.png +0 -0
- package/dist/docs/assets/theme-default.png +0 -0
- package/dist/docs/assets/theme-dracula.png +0 -0
- package/dist/docs/assets/theme-github-light.png +0 -0
- package/dist/docs/assets/theme-github.png +0 -0
- package/dist/docs/assets/theme-google-light.png +0 -0
- package/dist/docs/assets/theme-xcode-light.png +0 -0
- package/dist/docs/changelogs/index.md +592 -0
- package/dist/docs/changelogs/latest.md +225 -0
- package/dist/docs/changelogs/preview.md +129 -0
- package/dist/docs/changelogs/releases.md +896 -0
- package/dist/docs/cli/authentication.md +3 -0
- package/dist/docs/cli/checkpointing.md +94 -0
- package/dist/docs/cli/commands.md +354 -0
- package/dist/docs/cli/configuration.md +780 -0
- package/dist/docs/cli/custom-commands.md +315 -0
- package/dist/docs/cli/enterprise.md +565 -0
- package/dist/docs/cli/gemini-ignore.md +71 -0
- package/dist/docs/cli/gemini-md.md +108 -0
- package/dist/docs/cli/generation-settings.md +210 -0
- package/dist/docs/cli/headless.md +388 -0
- package/dist/docs/cli/index.md +63 -0
- package/dist/docs/cli/keyboard-shortcuts.md +143 -0
- package/dist/docs/cli/model-routing.md +37 -0
- package/dist/docs/cli/model.md +62 -0
- package/dist/docs/cli/sandbox.md +171 -0
- package/dist/docs/cli/session-management.md +158 -0
- package/dist/docs/cli/settings.md +112 -0
- package/dist/docs/cli/system-prompt.md +93 -0
- package/dist/docs/cli/telemetry.md +791 -0
- package/dist/docs/cli/themes.md +237 -0
- package/dist/docs/cli/token-caching.md +20 -0
- package/dist/docs/cli/trusted-folders.md +95 -0
- package/dist/docs/cli/tutorials.md +83 -0
- package/dist/docs/cli/uninstall.md +47 -0
- package/dist/docs/core/index.md +101 -0
- package/dist/docs/core/memport.md +244 -0
- package/dist/docs/core/policy-engine.md +267 -0
- package/dist/docs/core/tools-api.md +131 -0
- package/dist/docs/examples/proxy-script.md +83 -0
- package/dist/docs/extensions/extension-releasing.md +183 -0
- package/dist/docs/extensions/getting-started-extensions.md +245 -0
- package/dist/docs/extensions/index.md +293 -0
- package/dist/docs/faq.md +154 -0
- package/dist/docs/get-started/authentication.md +321 -0
- package/dist/docs/get-started/configuration-v1.md +888 -0
- package/dist/docs/get-started/configuration.md +1444 -0
- package/dist/docs/get-started/deployment.md +143 -0
- package/dist/docs/get-started/examples.md +219 -0
- package/dist/docs/get-started/gemini-3.md +116 -0
- package/dist/docs/get-started/index.md +71 -0
- package/dist/docs/get-started/installation.md +141 -0
- package/dist/docs/hooks/best-practices.md +806 -0
- package/dist/docs/hooks/index.md +665 -0
- package/dist/docs/hooks/reference.md +168 -0
- package/dist/docs/hooks/writing-hooks.md +1026 -0
- package/dist/docs/ide-integration/ide-companion-spec.md +267 -0
- package/dist/docs/ide-integration/index.md +202 -0
- package/dist/docs/index.md +147 -0
- package/dist/docs/integration-tests.md +211 -0
- package/dist/docs/issue-and-pr-automation.md +134 -0
- package/dist/docs/local-development.md +128 -0
- package/dist/docs/mermaid/context.mmd +103 -0
- package/dist/docs/mermaid/render-path.mmd +64 -0
- package/dist/docs/npm.md +62 -0
- package/dist/docs/quota-and-pricing.md +158 -0
- package/dist/docs/release-confidence.md +164 -0
- package/dist/docs/releases.md +540 -0
- package/dist/docs/sidebar.json +297 -0
- package/dist/docs/tools/file-system.md +217 -0
- package/dist/docs/tools/index.md +95 -0
- package/dist/docs/tools/mcp-server.md +1044 -0
- package/dist/docs/tools/memory.md +54 -0
- package/dist/docs/tools/shell.md +260 -0
- package/dist/docs/tools/todos.md +57 -0
- package/dist/docs/tools/web-fetch.md +59 -0
- package/dist/docs/tools/web-search.md +42 -0
- package/dist/docs/tos-privacy.md +96 -0
- package/dist/docs/troubleshooting.md +158 -0
- package/dist/google-gemini-cli-core-0.21.0-nightly.20251219.70696e364.tgz +0 -0
- package/dist/src/agents/delegate-to-agent-tool.test.js +1 -0
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
- package/dist/src/agents/introspection-agent.d.ts +23 -0
- package/dist/src/agents/introspection-agent.js +72 -0
- package/dist/src/agents/introspection-agent.js.map +1 -0
- package/dist/src/agents/introspection-agent.test.d.ts +6 -0
- package/dist/src/agents/introspection-agent.test.js +47 -0
- package/dist/src/agents/introspection-agent.test.js.map +1 -0
- package/dist/src/agents/local-executor.d.ts +0 -6
- package/dist/src/agents/local-executor.js +73 -47
- package/dist/src/agents/local-executor.js.map +1 -1
- package/dist/src/agents/local-executor.test.d.ts +1 -7
- package/dist/src/agents/local-executor.test.js +27 -9
- package/dist/src/agents/local-executor.test.js.map +1 -1
- package/dist/src/agents/registry.d.ts +1 -0
- package/dist/src/agents/registry.js +51 -7
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +112 -1
- package/dist/src/agents/registry.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/availability/modelAvailabilityService.d.ts +2 -1
- package/dist/src/config/config.d.ts +9 -0
- package/dist/src/config/config.js +29 -0
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +59 -1
- package/dist/src/config/config.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/client.js +8 -4
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +20 -0
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/clientHookTriggers.js +2 -2
- package/dist/src/core/clientHookTriggers.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.js +3 -3
- package/dist/src/core/coreToolHookTriggers.js.map +1 -1
- package/dist/src/core/geminiChatHookTriggers.js +3 -3
- package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
- package/dist/src/core/sessionHookTriggers.js +3 -3
- package/dist/src/core/sessionHookTriggers.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/hookEventHandler.js +10 -4
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +40 -0
- package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
- 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 +14 -10
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +81 -33
- 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/mcp/oauth-provider.js +6 -2
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +4 -1
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-utils.d.ts +8 -1
- package/dist/src/mcp/oauth-utils.js +30 -1
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/oauth-utils.test.js +42 -0
- package/dist/src/mcp/oauth-utils.test.js.map +1 -1
- package/dist/src/services/contextManager.d.ts +5 -11
- package/dist/src/services/contextManager.js +20 -17
- package/dist/src/services/contextManager.js.map +1 -1
- package/dist/src/services/contextManager.test.js +40 -41
- package/dist/src/services/contextManager.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/tools/get-internal-docs.d.ts +27 -0
- package/dist/src/tools/get-internal-docs.js +129 -0
- package/dist/src/tools/get-internal-docs.js.map +1 -0
- package/dist/src/tools/get-internal-docs.test.d.ts +6 -0
- package/dist/src/tools/get-internal-docs.test.js +56 -0
- package/dist/src/tools/get-internal-docs.test.js.map +1 -0
- package/dist/src/tools/tool-names.d.ts +14 -0
- package/dist/src/tools/tool-names.js +55 -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/environmentContext.js +3 -0
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/environmentContext.test.js +2 -0
- package/dist/src/utils/environmentContext.test.js.map +1 -1
- package/dist/src/utils/events.d.ts +3 -2
- package/dist/src/utils/events.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/memoryDiscovery.js +1 -1
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +3 -1
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/shell-utils.js +25 -4
- package/dist/src/utils/shell-utils.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
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Troubleshooting guide
|
|
2
|
+
|
|
3
|
+
This guide provides solutions to common issues and debugging tips, including
|
|
4
|
+
topics on:
|
|
5
|
+
|
|
6
|
+
- Authentication or login errors
|
|
7
|
+
- Frequently asked questions (FAQs)
|
|
8
|
+
- Debugging tips
|
|
9
|
+
- Existing GitHub Issues similar to yours or creating new Issues
|
|
10
|
+
|
|
11
|
+
## Authentication or login errors
|
|
12
|
+
|
|
13
|
+
- **Error:
|
|
14
|
+
`You must be a named user on your organization's Gemini Code Assist Standard edition subscription to use this service. Please contact your administrator to request an entitlement to Gemini Code Assist Standard edition.`**
|
|
15
|
+
- **Cause:** This error might occur if Gemini CLI detects the
|
|
16
|
+
`GOOGLE_CLOUD_PROJECT` or `GOOGLE_CLOUD_PROJECT_ID` environment variable is
|
|
17
|
+
defined. Setting these variables forces an organization subscription check.
|
|
18
|
+
This might be an issue if you are using an individual Google account not
|
|
19
|
+
linked to an organizational subscription.
|
|
20
|
+
|
|
21
|
+
- **Solution:**
|
|
22
|
+
- **Individual Users:** Unset the `GOOGLE_CLOUD_PROJECT` and
|
|
23
|
+
`GOOGLE_CLOUD_PROJECT_ID` environment variables. Check and remove these
|
|
24
|
+
variables from your shell configuration files (for example, `.bashrc`,
|
|
25
|
+
`.zshrc`) and any `.env` files. If this doesn't resolve the issue, try
|
|
26
|
+
using a different Google account.
|
|
27
|
+
|
|
28
|
+
- **Organizational Users:** Contact your Google Cloud administrator to be
|
|
29
|
+
added to your organization's Gemini Code Assist subscription.
|
|
30
|
+
|
|
31
|
+
- **Error: `Failed to login. Message: Request contains an invalid argument`**
|
|
32
|
+
- **Cause:** Users with Google Workspace accounts or Google Cloud accounts
|
|
33
|
+
associated with their Gmail accounts may not be able to activate the free
|
|
34
|
+
tier of the Google Code Assist plan.
|
|
35
|
+
- **Solution:** For Google Cloud accounts, you can work around this by setting
|
|
36
|
+
`GOOGLE_CLOUD_PROJECT` to your project ID. Alternatively, you can obtain the
|
|
37
|
+
Gemini API key from
|
|
38
|
+
[Google AI Studio](http://aistudio.google.com/app/apikey), which also
|
|
39
|
+
includes a separate free tier.
|
|
40
|
+
|
|
41
|
+
- **Error: `UNABLE_TO_GET_ISSUER_CERT_LOCALLY` or
|
|
42
|
+
`unable to get local issuer certificate`**
|
|
43
|
+
- **Cause:** You may be on a corporate network with a firewall that intercepts
|
|
44
|
+
and inspects SSL/TLS traffic. This often requires a custom root CA
|
|
45
|
+
certificate to be trusted by Node.js.
|
|
46
|
+
- **Solution:** Set the `NODE_EXTRA_CA_CERTS` environment variable to the
|
|
47
|
+
absolute path of your corporate root CA certificate file.
|
|
48
|
+
- Example: `export NODE_EXTRA_CA_CERTS=/path/to/your/corporate-ca.crt`
|
|
49
|
+
|
|
50
|
+
## Common error messages and solutions
|
|
51
|
+
|
|
52
|
+
- **Error: `EADDRINUSE` (Address already in use) when starting an MCP server.**
|
|
53
|
+
- **Cause:** Another process is already using the port that the MCP server is
|
|
54
|
+
trying to bind to.
|
|
55
|
+
- **Solution:** Either stop the other process that is using the port or
|
|
56
|
+
configure the MCP server to use a different port.
|
|
57
|
+
|
|
58
|
+
- **Error: Command not found (when attempting to run Gemini CLI with
|
|
59
|
+
`gemini`).**
|
|
60
|
+
- **Cause:** Gemini CLI is not correctly installed or it is not in your
|
|
61
|
+
system's `PATH`.
|
|
62
|
+
- **Solution:** The update depends on how you installed Gemini CLI:
|
|
63
|
+
- If you installed `gemini` globally, check that your `npm` global binary
|
|
64
|
+
directory is in your `PATH`. You can update Gemini CLI using the command
|
|
65
|
+
`npm install -g @google/gemini-cli@latest`.
|
|
66
|
+
- If you are running `gemini` from source, ensure you are using the correct
|
|
67
|
+
command to invoke it (e.g., `node packages/cli/dist/index.js ...`). To
|
|
68
|
+
update Gemini CLI, pull the latest changes from the repository, and then
|
|
69
|
+
rebuild using the command `npm run build`.
|
|
70
|
+
|
|
71
|
+
- **Error: `MODULE_NOT_FOUND` or import errors.**
|
|
72
|
+
- **Cause:** Dependencies are not installed correctly, or the project hasn't
|
|
73
|
+
been built.
|
|
74
|
+
- **Solution:**
|
|
75
|
+
1. Run `npm install` to ensure all dependencies are present.
|
|
76
|
+
2. Run `npm run build` to compile the project.
|
|
77
|
+
3. Verify that the build completed successfully with `npm run start`.
|
|
78
|
+
|
|
79
|
+
- **Error: "Operation not permitted", "Permission denied", or similar.**
|
|
80
|
+
- **Cause:** When sandboxing is enabled, Gemini CLI may attempt operations
|
|
81
|
+
that are restricted by your sandbox configuration, such as writing outside
|
|
82
|
+
the project directory or system temp directory.
|
|
83
|
+
- **Solution:** Refer to the [Configuration: Sandboxing](./cli/sandbox.md)
|
|
84
|
+
documentation for more information, including how to customize your sandbox
|
|
85
|
+
configuration.
|
|
86
|
+
|
|
87
|
+
- **Gemini CLI is not running in interactive mode in "CI" environments**
|
|
88
|
+
- **Issue:** The Gemini CLI does not enter interactive mode (no prompt
|
|
89
|
+
appears) if an environment variable starting with `CI_` (e.g., `CI_TOKEN`)
|
|
90
|
+
is set. This is because the `is-in-ci` package, used by the underlying UI
|
|
91
|
+
framework, detects these variables and assumes a non-interactive CI
|
|
92
|
+
environment.
|
|
93
|
+
- **Cause:** The `is-in-ci` package checks for the presence of `CI`,
|
|
94
|
+
`CONTINUOUS_INTEGRATION`, or any environment variable with a `CI_` prefix.
|
|
95
|
+
When any of these are found, it signals that the environment is
|
|
96
|
+
non-interactive, which prevents the Gemini CLI from starting in its
|
|
97
|
+
interactive mode.
|
|
98
|
+
- **Solution:** If the `CI_` prefixed variable is not needed for the CLI to
|
|
99
|
+
function, you can temporarily unset it for the command. e.g.,
|
|
100
|
+
`env -u CI_TOKEN gemini`
|
|
101
|
+
|
|
102
|
+
- **DEBUG mode not working from project .env file**
|
|
103
|
+
- **Issue:** Setting `DEBUG=true` in a project's `.env` file doesn't enable
|
|
104
|
+
debug mode for gemini-cli.
|
|
105
|
+
- **Cause:** The `DEBUG` and `DEBUG_MODE` variables are automatically excluded
|
|
106
|
+
from project `.env` files to prevent interference with gemini-cli behavior.
|
|
107
|
+
- **Solution:** Use a `.gemini/.env` file instead, or configure the
|
|
108
|
+
`advanced.excludedEnvVars` setting in your `settings.json` to exclude fewer
|
|
109
|
+
variables.
|
|
110
|
+
|
|
111
|
+
## Exit codes
|
|
112
|
+
|
|
113
|
+
The Gemini CLI uses specific exit codes to indicate the reason for termination.
|
|
114
|
+
This is especially useful for scripting and automation.
|
|
115
|
+
|
|
116
|
+
| Exit Code | Error Type | Description |
|
|
117
|
+
| --------- | -------------------------- | --------------------------------------------------------------------------------------------------- |
|
|
118
|
+
| 41 | `FatalAuthenticationError` | An error occurred during the authentication process. |
|
|
119
|
+
| 42 | `FatalInputError` | Invalid or missing input was provided to the CLI. (non-interactive mode only) |
|
|
120
|
+
| 44 | `FatalSandboxError` | An error occurred with the sandboxing environment (e.g., Docker, Podman, or Seatbelt). |
|
|
121
|
+
| 52 | `FatalConfigError` | A configuration file (`settings.json`) is invalid or contains errors. |
|
|
122
|
+
| 53 | `FatalTurnLimitedError` | The maximum number of conversational turns for the session was reached. (non-interactive mode only) |
|
|
123
|
+
|
|
124
|
+
## Debugging tips
|
|
125
|
+
|
|
126
|
+
- **CLI debugging:**
|
|
127
|
+
- Use the `--debug` flag for more detailed output.
|
|
128
|
+
- Check the CLI logs, often found in a user-specific configuration or cache
|
|
129
|
+
directory.
|
|
130
|
+
|
|
131
|
+
- **Core debugging:**
|
|
132
|
+
- Check the server console output for error messages or stack traces.
|
|
133
|
+
- Increase log verbosity if configurable.
|
|
134
|
+
- Use Node.js debugging tools (e.g., `node --inspect`) if you need to step
|
|
135
|
+
through server-side code.
|
|
136
|
+
|
|
137
|
+
- **Tool issues:**
|
|
138
|
+
- If a specific tool is failing, try to isolate the issue by running the
|
|
139
|
+
simplest possible version of the command or operation the tool performs.
|
|
140
|
+
- For `run_shell_command`, check that the command works directly in your shell
|
|
141
|
+
first.
|
|
142
|
+
- For _file system tools_, verify that paths are correct and check the
|
|
143
|
+
permissions.
|
|
144
|
+
|
|
145
|
+
- **Pre-flight checks:**
|
|
146
|
+
- Always run `npm run preflight` before committing code. This can catch many
|
|
147
|
+
common issues related to formatting, linting, and type errors.
|
|
148
|
+
|
|
149
|
+
## Existing GitHub issues similar to yours or creating new issues
|
|
150
|
+
|
|
151
|
+
If you encounter an issue that was not covered here in this _Troubleshooting
|
|
152
|
+
guide_, consider searching the Gemini CLI
|
|
153
|
+
[Issue tracker on GitHub](https://github.com/google-gemini/gemini-cli/issues).
|
|
154
|
+
If you can't find an issue similar to yours, consider creating a new GitHub
|
|
155
|
+
Issue with a detailed description. Pull requests are also welcome!
|
|
156
|
+
|
|
157
|
+
> **Note:** Issues tagged as "🔒Maintainers only" are reserved for project
|
|
158
|
+
> maintainers. We will not accept pull requests related to these issues.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegate-to-agent-tool.test.js","sourceRoot":"","sources":["../../../src/agents/delegate-to-agent-tool.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,EAAE;aACR,EAAE,EAAE;aACJ,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;KACvE,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,QAAuB,CAAC;IAC5B,IAAI,MAAc,CAAC;IACnB,IAAI,IAAyB,CAAC;IAC9B,IAAI,UAAsB,CAAC;IAE3B,MAAM,YAAY,GAAoB;QACpC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,cAAc;QAC3B,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACvD,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACnE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE;aACrE;SACF;QACD,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE;QAChD,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;KAC1B,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG;YACP,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK;YACzB,kBAAkB,EAAE;gBAClB,0BAA0B,EAAE,EAAE,CAAC,EAAE,EAAE;aACpC;SACmB,CAAC;QAEvB,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QACrC,4EAA4E;QAC5E,8DAA8D;QAC7D,QAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAE9D,UAAU,GAAG;YACX,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;YAChB,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;YAClB,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;SACI,CAAC;QAE3B,IAAI,GAAG,IAAI,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,qDAAqD;QACrD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAChC,6CAA6C,CAC9C,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAChC,OAAO,YAAY,CAAC,IAAI,OAAO,YAAY,CAAC,WAAW,EAAE,CAC1D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,mFAAmF;QACnF,kFAAkF;QAClF,MAAM,CAAC,GAAG,EAAE,CACV,IAAI,CAAC,KAAK,CAAC;YACT,UAAU,EAAE,oBAAoB;SACjC,CAAC,CACH,CAAC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,UAAU,EAAE,YAAY;YACxB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAClD,YAAY,EACZ,MAAM,EACN,EAAE,IAAI,EAAE,OAAO,EAAE,EACjB,UAAU,CACX,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,0CAA0C;QAC1C,MAAM,CAAC,GAAG,EAAE,CACV,IAAI,CAAC,KAAK,CAAC;YACT,UAAU,EAAE,YAAY;YACxB,IAAI,EAAE,GAAG;SACV,CAAC,CACH,CAAC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,wCAAwC;QACxC,MAAM,CAAC,GAAG,EAAE,CACV,IAAI,CAAC,KAAK,CAAC;YACT,UAAU,EAAE,YAAY;YACxB,IAAI,EAAE,GAAG;SACV,CAAC,CACH,CAAC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,UAAU,EAAE,YAAY;YACxB,IAAI,EAAE,OAAO;YACb,mBAAmB;SACpB,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,UAAU,CAAC,OAAO,CAAC,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CACjD,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,eAAe,GAAoB;YACvC,GAAG,YAAY;YACf,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE;gBACX,MAAM,EAAE;oBACN,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,IAAI;qBACf;iBACF;aACF;SACF,CAAC;QAEF,8DAA8D;QAC7D,QAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAEpE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAC7D,uHAAuH,CACxH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,UAAU,EAAE,YAAY;YACxB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,CAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;QACxE,KAAK,CAAC,CAAC;QAEP,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC7C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,cAAc,CAAC,yBAAyB;YAC9C,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAChC,IAAI,EAAE,2BAA2B;aAClC,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"delegate-to-agent-tool.test.js","sourceRoot":"","sources":["../../../src/agents/delegate-to-agent-tool.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentDefinition } from './types.js';
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
declare const IntrospectionReportSchema: z.ZodObject<{
|
|
9
|
+
answer: z.ZodString;
|
|
10
|
+
sources: z.ZodArray<z.ZodString, "many">;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
sources: string[];
|
|
13
|
+
answer: string;
|
|
14
|
+
}, {
|
|
15
|
+
sources: string[];
|
|
16
|
+
answer: string;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* An agent specialized in answering questions about Gemini CLI itself,
|
|
20
|
+
* using its own documentation and runtime state.
|
|
21
|
+
*/
|
|
22
|
+
export declare const IntrospectionAgent: AgentDefinition<typeof IntrospectionReportSchema>;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { GetInternalDocsTool } from '../tools/get-internal-docs.js';
|
|
7
|
+
import { GEMINI_MODEL_ALIAS_FLASH } from '../config/models.js';
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
const IntrospectionReportSchema = z.object({
|
|
10
|
+
answer: z
|
|
11
|
+
.string()
|
|
12
|
+
.describe('The detailed answer to the user question about Gemini CLI.'),
|
|
13
|
+
sources: z
|
|
14
|
+
.array(z.string())
|
|
15
|
+
.describe('The documentation files used to answer the question.'),
|
|
16
|
+
});
|
|
17
|
+
/**
|
|
18
|
+
* An agent specialized in answering questions about Gemini CLI itself,
|
|
19
|
+
* using its own documentation and runtime state.
|
|
20
|
+
*/
|
|
21
|
+
export const IntrospectionAgent = {
|
|
22
|
+
name: 'introspection_agent',
|
|
23
|
+
kind: 'local',
|
|
24
|
+
displayName: 'Introspection Agent',
|
|
25
|
+
description: 'Specialized in answering questions about yourself (Gemini CLI): features, documentation, and current runtime configuration.',
|
|
26
|
+
inputConfig: {
|
|
27
|
+
inputs: {
|
|
28
|
+
question: {
|
|
29
|
+
description: 'The specific question about Gemini CLI.',
|
|
30
|
+
type: 'string',
|
|
31
|
+
required: true,
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
outputConfig: {
|
|
36
|
+
outputName: 'report',
|
|
37
|
+
description: 'The final answer and sources as a JSON object.',
|
|
38
|
+
schema: IntrospectionReportSchema,
|
|
39
|
+
},
|
|
40
|
+
processOutput: (output) => JSON.stringify(output, null, 2),
|
|
41
|
+
modelConfig: {
|
|
42
|
+
model: GEMINI_MODEL_ALIAS_FLASH,
|
|
43
|
+
temp: 0.1,
|
|
44
|
+
top_p: 0.95,
|
|
45
|
+
thinkingBudget: -1,
|
|
46
|
+
},
|
|
47
|
+
runConfig: {
|
|
48
|
+
max_time_minutes: 3,
|
|
49
|
+
max_turns: 10,
|
|
50
|
+
},
|
|
51
|
+
toolConfig: {
|
|
52
|
+
tools: [new GetInternalDocsTool()],
|
|
53
|
+
},
|
|
54
|
+
promptConfig: {
|
|
55
|
+
query: 'Your task is to answer the following question about Gemini CLI:\n' +
|
|
56
|
+
'<question>\n' +
|
|
57
|
+
'${question}\n' +
|
|
58
|
+
'</question>',
|
|
59
|
+
systemPrompt: "You are **Introspection Agent**, an expert on Gemini CLI. Your purpose is to provide accurate information about Gemini CLI's features, configuration, and current state.\n\n" +
|
|
60
|
+
'### Runtime Context\n' +
|
|
61
|
+
'- **CLI Version:** ${cliVersion}\n' +
|
|
62
|
+
'- **Active Model:** ${activeModel}\n' +
|
|
63
|
+
"- **Today's Date:** ${today}\n\n" +
|
|
64
|
+
'### Instructions\n' +
|
|
65
|
+
"1. **Explore Documentation**: Use the `get_internal_docs` tool to find answers. If you don't know where to start, call `get_internal_docs()` without arguments to see the full list of available documentation files.\n" +
|
|
66
|
+
'2. **Be Precise**: Use the provided runtime context and documentation to give exact answers.\n' +
|
|
67
|
+
'3. **Cite Sources**: Always include the specific documentation files you used in your final report.\n' +
|
|
68
|
+
'4. **Non-Interactive**: You operate in a loop and cannot ask the user for more info. If the question is ambiguous, answer as best as you can with the information available.\n\n' +
|
|
69
|
+
'You MUST call `complete_task` with a JSON report containing your `answer` and the `sources` you used.',
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=introspection-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection-agent.js","sourceRoot":"","sources":["../../../src/agents/introspection-agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,4DAA4D,CAAC;IACzE,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,CAAC,sDAAsD,CAAC;CACpE,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAE3B;IACF,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,qBAAqB;IAClC,WAAW,EACT,6HAA6H;IAC/H,WAAW,EAAE;QACX,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR,WAAW,EAAE,yCAAyC;gBACtD,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,YAAY,EAAE;QACZ,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,gDAAgD;QAC7D,MAAM,EAAE,yBAAyB;KAClC;IAED,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1D,WAAW,EAAE;QACX,KAAK,EAAE,wBAAwB;QAC/B,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,KAAK,EAAE,CAAC,IAAI,mBAAmB,EAAE,CAAC;KACnC;IAED,YAAY,EAAE;QACZ,KAAK,EACH,mEAAmE;YACnE,cAAc;YACd,eAAe;YACf,aAAa;QACf,YAAY,EACV,8KAA8K;YAC9K,uBAAuB;YACvB,oCAAoC;YACpC,sCAAsC;YACtC,kCAAkC;YAClC,oBAAoB;YACpB,yNAAyN;YACzN,gGAAgG;YAChG,uGAAuG;YACvG,kLAAkL;YAClL,uGAAuG;KAC1G;CACF,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect } from 'vitest';
|
|
7
|
+
import { IntrospectionAgent } from './introspection-agent.js';
|
|
8
|
+
import { GetInternalDocsTool } from '../tools/get-internal-docs.js';
|
|
9
|
+
import { GEMINI_MODEL_ALIAS_FLASH } from '../config/models.js';
|
|
10
|
+
describe('IntrospectionAgent', () => {
|
|
11
|
+
const localAgent = IntrospectionAgent;
|
|
12
|
+
it('should have the correct agent definition metadata', () => {
|
|
13
|
+
expect(localAgent.name).toBe('introspection_agent');
|
|
14
|
+
expect(localAgent.kind).toBe('local');
|
|
15
|
+
expect(localAgent.displayName).toBe('Introspection Agent');
|
|
16
|
+
expect(localAgent.description).toContain('Gemini CLI');
|
|
17
|
+
});
|
|
18
|
+
it('should have correctly configured inputs and outputs', () => {
|
|
19
|
+
expect(localAgent.inputConfig.inputs['question']).toBeDefined();
|
|
20
|
+
expect(localAgent.inputConfig.inputs['question'].required).toBe(true);
|
|
21
|
+
expect(localAgent.outputConfig?.outputName).toBe('report');
|
|
22
|
+
expect(localAgent.outputConfig?.description).toBeDefined();
|
|
23
|
+
});
|
|
24
|
+
it('should use the correct model and tools', () => {
|
|
25
|
+
expect(localAgent.modelConfig?.model).toBe(GEMINI_MODEL_ALIAS_FLASH);
|
|
26
|
+
const tools = localAgent.toolConfig?.tools || [];
|
|
27
|
+
const hasInternalDocsTool = tools.some((t) => t instanceof GetInternalDocsTool);
|
|
28
|
+
expect(hasInternalDocsTool).toBe(true);
|
|
29
|
+
});
|
|
30
|
+
it('should have expected prompt placeholders', () => {
|
|
31
|
+
const systemPrompt = localAgent.promptConfig.systemPrompt || '';
|
|
32
|
+
expect(systemPrompt).toContain('${cliVersion}');
|
|
33
|
+
expect(systemPrompt).toContain('${activeModel}');
|
|
34
|
+
expect(systemPrompt).toContain('${today}');
|
|
35
|
+
const query = localAgent.promptConfig.query || '';
|
|
36
|
+
expect(query).toContain('${question}');
|
|
37
|
+
});
|
|
38
|
+
it('should process output to a formatted JSON string', () => {
|
|
39
|
+
const mockOutput = {
|
|
40
|
+
answer: 'This is the answer.',
|
|
41
|
+
sources: ['file1.md', 'file2.md'],
|
|
42
|
+
};
|
|
43
|
+
const processed = localAgent.processOutput?.(mockOutput);
|
|
44
|
+
expect(processed).toBe(JSON.stringify(mockOutput, null, 2));
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=introspection-agent.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection-agent.test.js","sourceRoot":"","sources":["../../../src/agents/introspection-agent.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,12 +97,6 @@ export declare class LocalAgentExecutor<TOutput extends z.ZodTypeAny> {
|
|
|
97
97
|
* @returns A new array of `Content` with templated strings.
|
|
98
98
|
*/
|
|
99
99
|
private applyTemplateToInitialMessages;
|
|
100
|
-
/**
|
|
101
|
-
* Validates that all tools in a registry are safe for non-interactive use.
|
|
102
|
-
*
|
|
103
|
-
* @throws An error if a tool is not on the allow-list for non-interactive execution.
|
|
104
|
-
*/
|
|
105
|
-
private static validateTools;
|
|
106
100
|
/**
|
|
107
101
|
* Checks if the agent should terminate due to exceeding configured limits.
|
|
108
102
|
*
|
|
@@ -11,7 +11,6 @@ import { ToolRegistry } from '../tools/tool-registry.js';
|
|
|
11
11
|
import { CompressionStatus } from '../core/turn.js';
|
|
12
12
|
import { ChatCompressionService } from '../services/chatCompressionService.js';
|
|
13
13
|
import { getDirectoryContextString } from '../utils/environmentContext.js';
|
|
14
|
-
import { GLOB_TOOL_NAME, GREP_TOOL_NAME, LS_TOOL_NAME, MEMORY_TOOL_NAME, READ_FILE_TOOL_NAME, READ_MANY_FILES_TOOL_NAME, WEB_SEARCH_TOOL_NAME, } from '../tools/tool-names.js';
|
|
15
14
|
import { promptIdContext } from '../utils/promptIdContext.js';
|
|
16
15
|
import { logAgentStart, logAgentFinish, logRecoveryAttempt, } from '../telemetry/loggers.js';
|
|
17
16
|
import { AgentStartEvent, AgentFinishEvent, RecoveryAttemptEvent, } from '../telemetry/types.js';
|
|
@@ -22,6 +21,8 @@ import {} from 'zod';
|
|
|
22
21
|
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
23
22
|
import { debugLogger } from '../utils/debugLogger.js';
|
|
24
23
|
import { getModelConfigAlias } from './registry.js';
|
|
24
|
+
import { getVersion } from '../utils/version.js';
|
|
25
|
+
import { ApprovalMode } from '../policy/types.js';
|
|
25
26
|
const TASK_COMPLETE_TOOL_NAME = 'complete_task';
|
|
26
27
|
const GRACE_PERIOD_MS = 60 * 1000; // 1 min
|
|
27
28
|
/**
|
|
@@ -72,9 +73,6 @@ export class LocalAgentExecutor {
|
|
|
72
73
|
// registered; their schemas are passed directly to the model later.
|
|
73
74
|
}
|
|
74
75
|
agentToolRegistry.sortTools();
|
|
75
|
-
// Validate that all registered tools are safe for non-interactive
|
|
76
|
-
// execution.
|
|
77
|
-
await LocalAgentExecutor.validateTools(agentToolRegistry, definition.name);
|
|
78
76
|
}
|
|
79
77
|
// Get the parent prompt ID from context
|
|
80
78
|
const parentPromptId = promptIdContext.getStore();
|
|
@@ -243,10 +241,17 @@ export class LocalAgentExecutor {
|
|
|
243
241
|
let chat;
|
|
244
242
|
let tools;
|
|
245
243
|
try {
|
|
244
|
+
// Inject standard runtime context into inputs
|
|
245
|
+
const augmentedInputs = {
|
|
246
|
+
...inputs,
|
|
247
|
+
cliVersion: await getVersion(),
|
|
248
|
+
activeModel: this.runtimeContext.getActiveModel(),
|
|
249
|
+
today: new Date().toLocaleDateString(),
|
|
250
|
+
};
|
|
246
251
|
tools = this.prepareToolsList();
|
|
247
|
-
chat = await this.createChatObject(
|
|
252
|
+
chat = await this.createChatObject(augmentedInputs, tools);
|
|
248
253
|
const query = this.definition.promptConfig.query
|
|
249
|
-
? templateString(this.definition.promptConfig.query,
|
|
254
|
+
? templateString(this.definition.promptConfig.query, augmentedInputs)
|
|
250
255
|
: 'Get Started!';
|
|
251
256
|
let currentMessage = { role: 'user', parts: [{ text: query }] };
|
|
252
257
|
while (true) {
|
|
@@ -548,19 +553,44 @@ export class LocalAgentExecutor {
|
|
|
548
553
|
}
|
|
549
554
|
}
|
|
550
555
|
else {
|
|
551
|
-
// No
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
556
|
+
// No outputConfig - use default 'result' parameter
|
|
557
|
+
const resultArg = args['result'];
|
|
558
|
+
if (resultArg !== undefined &&
|
|
559
|
+
resultArg !== null &&
|
|
560
|
+
resultArg !== '') {
|
|
561
|
+
submittedOutput =
|
|
562
|
+
typeof resultArg === 'string'
|
|
563
|
+
? resultArg
|
|
564
|
+
: JSON.stringify(resultArg, null, 2);
|
|
565
|
+
syncResponseParts.push({
|
|
566
|
+
functionResponse: {
|
|
567
|
+
name: TASK_COMPLETE_TOOL_NAME,
|
|
568
|
+
response: { status: 'Result submitted and task completed.' },
|
|
569
|
+
id: callId,
|
|
570
|
+
},
|
|
571
|
+
});
|
|
572
|
+
this.emitActivity('TOOL_CALL_END', {
|
|
573
|
+
name: functionCall.name,
|
|
574
|
+
output: 'Result submitted and task completed.',
|
|
575
|
+
});
|
|
576
|
+
}
|
|
577
|
+
else {
|
|
578
|
+
// No result provided - this is an error for agents expected to return results
|
|
579
|
+
taskCompleted = false; // Revoke completion
|
|
580
|
+
const error = 'Missing required "result" argument. You must provide your findings when calling complete_task.';
|
|
581
|
+
syncResponseParts.push({
|
|
582
|
+
functionResponse: {
|
|
583
|
+
name: TASK_COMPLETE_TOOL_NAME,
|
|
584
|
+
response: { error },
|
|
585
|
+
id: callId,
|
|
586
|
+
},
|
|
587
|
+
});
|
|
588
|
+
this.emitActivity('ERROR', {
|
|
589
|
+
context: 'tool_call',
|
|
590
|
+
name: functionCall.name,
|
|
591
|
+
error,
|
|
592
|
+
});
|
|
593
|
+
}
|
|
564
594
|
}
|
|
565
595
|
continue;
|
|
566
596
|
}
|
|
@@ -592,7 +622,10 @@ export class LocalAgentExecutor {
|
|
|
592
622
|
};
|
|
593
623
|
// Create a promise for the tool execution
|
|
594
624
|
const executionPromise = (async () => {
|
|
595
|
-
const
|
|
625
|
+
const agentContext = Object.create(this.runtimeContext);
|
|
626
|
+
agentContext.getToolRegistry = () => this.toolRegistry;
|
|
627
|
+
agentContext.getApprovalMode = () => ApprovalMode.YOLO;
|
|
628
|
+
const { response: toolResponse } = await executeToolCall(agentContext, requestInfo, signal);
|
|
596
629
|
if (toolResponse.error) {
|
|
597
630
|
this.emitActivity('ERROR', {
|
|
598
631
|
context: 'tool_call',
|
|
@@ -663,7 +696,7 @@ export class LocalAgentExecutor {
|
|
|
663
696
|
name: TASK_COMPLETE_TOOL_NAME,
|
|
664
697
|
description: outputConfig
|
|
665
698
|
? 'Call this tool to submit your final answer and complete the task. This is the ONLY way to finish.'
|
|
666
|
-
: 'Call this tool to
|
|
699
|
+
: 'Call this tool to submit your final findings and complete the task. This is the ONLY way to finish.',
|
|
667
700
|
parameters: {
|
|
668
701
|
type: Type.OBJECT,
|
|
669
702
|
properties: {},
|
|
@@ -677,6 +710,14 @@ export class LocalAgentExecutor {
|
|
|
677
710
|
schema;
|
|
678
711
|
completeTool.parameters.required.push(outputConfig.outputName);
|
|
679
712
|
}
|
|
713
|
+
else {
|
|
714
|
+
completeTool.parameters.properties['result'] = {
|
|
715
|
+
type: Type.STRING,
|
|
716
|
+
description: 'Your final results or findings to return to the orchestrator. ' +
|
|
717
|
+
'Ensure this is comprehensive and follows any formatting requested in your instructions.',
|
|
718
|
+
};
|
|
719
|
+
completeTool.parameters.required.push('result');
|
|
720
|
+
}
|
|
680
721
|
toolsList.push(completeTool);
|
|
681
722
|
return toolsList;
|
|
682
723
|
}
|
|
@@ -697,10 +738,20 @@ Important Rules:
|
|
|
697
738
|
* You are running in a non-interactive mode. You CANNOT ask the user for input or clarification.
|
|
698
739
|
* Work systematically using available tools to complete your task.
|
|
699
740
|
* Always use absolute paths for file operations. Construct them using the provided "Environment Context".`;
|
|
700
|
-
|
|
741
|
+
if (this.definition.outputConfig) {
|
|
742
|
+
finalPrompt += `
|
|
743
|
+
* When you have completed your task, you MUST call the \`${TASK_COMPLETE_TOOL_NAME}\` tool with your structured output.
|
|
744
|
+
* Do not call any other tools in the same turn as \`${TASK_COMPLETE_TOOL_NAME}\`.
|
|
745
|
+
* This is the ONLY way to complete your mission. If you stop calling tools without calling this, you have failed.`;
|
|
746
|
+
}
|
|
747
|
+
else {
|
|
748
|
+
finalPrompt += `
|
|
701
749
|
* When you have completed your task, you MUST call the \`${TASK_COMPLETE_TOOL_NAME}\` tool.
|
|
750
|
+
* You MUST include your final findings in the "result" parameter. This is how you return the necessary results for the task to be marked complete.
|
|
751
|
+
* Ensure your findings are comprehensive and follow any specific formatting requirements provided in your instructions.
|
|
702
752
|
* Do not call any other tools in the same turn as \`${TASK_COMPLETE_TOOL_NAME}\`.
|
|
703
753
|
* This is the ONLY way to complete your mission. If you stop calling tools without calling this, you have failed.`;
|
|
754
|
+
}
|
|
704
755
|
return finalPrompt;
|
|
705
756
|
}
|
|
706
757
|
/**
|
|
@@ -721,31 +772,6 @@ Important Rules:
|
|
|
721
772
|
return { ...content, parts: newParts };
|
|
722
773
|
});
|
|
723
774
|
}
|
|
724
|
-
/**
|
|
725
|
-
* Validates that all tools in a registry are safe for non-interactive use.
|
|
726
|
-
*
|
|
727
|
-
* @throws An error if a tool is not on the allow-list for non-interactive execution.
|
|
728
|
-
*/
|
|
729
|
-
static async validateTools(toolRegistry, agentName) {
|
|
730
|
-
// Tools that are non-interactive. This is temporary until we have tool
|
|
731
|
-
// confirmations for subagents.
|
|
732
|
-
const allowlist = new Set([
|
|
733
|
-
LS_TOOL_NAME,
|
|
734
|
-
READ_FILE_TOOL_NAME,
|
|
735
|
-
GREP_TOOL_NAME,
|
|
736
|
-
GLOB_TOOL_NAME,
|
|
737
|
-
READ_MANY_FILES_TOOL_NAME,
|
|
738
|
-
MEMORY_TOOL_NAME,
|
|
739
|
-
WEB_SEARCH_TOOL_NAME,
|
|
740
|
-
]);
|
|
741
|
-
for (const tool of toolRegistry.getAllTools()) {
|
|
742
|
-
if (!allowlist.has(tool.name)) {
|
|
743
|
-
throw new Error(`Tool "${tool.name}" is not on the allow-list for non-interactive ` +
|
|
744
|
-
`execution in agent "${agentName}". Only tools that do not require user ` +
|
|
745
|
-
`confirmation can be used in subagents.`);
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
|
-
}
|
|
749
775
|
/**
|
|
750
776
|
* Checks if the agent should terminate due to exceeding configured limits.
|
|
751
777
|
*
|