@google/gemini-cli-core 0.22.0 → 0.23.0-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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/src/agents/codebase-investigator.d.ts +2 -2
- package/dist/src/agents/codebase-investigator.js +4 -3
- package/dist/src/agents/codebase-investigator.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 +6 -4
- 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.js +47 -0
- package/dist/src/agents/introspection-agent.test.js.map +1 -0
- package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
- package/dist/src/agents/{executor.js → local-executor.js} +79 -53
- package/dist/src/agents/local-executor.js.map +1 -0
- package/dist/src/agents/{executor.test.js → local-executor.test.js} +64 -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/local-invocation.test.d.ts +6 -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 +68 -20
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +113 -1
- 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/policyHelpers.d.ts +4 -3
- package/dist/src/availability/policyHelpers.js +13 -20
- package/dist/src/availability/policyHelpers.js.map +1 -1
- package/dist/src/availability/policyHelpers.test.js +28 -18
- 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.d.ts +4 -1
- package/dist/src/code_assist/server.js +50 -7
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +177 -27
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/telemetry.d.ts +14 -0
- package/dist/src/code_assist/telemetry.js +156 -0
- package/dist/src/code_assist/telemetry.js.map +1 -0
- package/dist/src/code_assist/telemetry.test.d.ts +6 -0
- package/dist/src/code_assist/telemetry.test.js +300 -0
- package/dist/src/code_assist/telemetry.test.js.map +1 -0
- package/dist/src/code_assist/types.d.ts +52 -1
- package/dist/src/code_assist/types.js +21 -0
- package/dist/src/code_assist/types.js.map +1 -1
- package/dist/src/config/config.d.ts +10 -13
- package/dist/src/config/config.js +32 -32
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +72 -19
- package/dist/src/config/config.test.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/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.js +44 -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 +23 -35
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +32 -65
- 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/contentGenerator.test.js +0 -6
- package/dist/src/core/contentGenerator.test.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/geminiChat.js +21 -71
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +16 -92
- package/dist/src/core/geminiChat.test.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/geminiChat_network_retry.test.js +4 -6
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
- package/dist/src/core/prompts.test.js +0 -2
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/sessionHookTriggers.js +3 -3
- package/dist/src/core/sessionHookTriggers.js.map +1 -1
- package/dist/src/core/turn.d.ts +1 -0
- package/dist/src/core/turn.js +4 -12
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +0 -5
- package/dist/src/core/turn.test.js.map +1 -1
- package/dist/src/fallback/handler.test.js +0 -21
- 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/generated/git-commit.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.js +10 -4
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +47 -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/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.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/routing/strategies/fallbackStrategy.js +0 -3
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.js +0 -6
- package/dist/src/routing/strategies/fallbackStrategy.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/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/telemetry/clearcut-logger/clearcut-logger.d.ts +4 -2
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +25 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +32 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +12 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/loggers.js +1 -0
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +37 -2
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/sdk.js +2 -2
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/tools/confirmation-policy.test.d.ts +6 -0
- package/dist/src/tools/confirmation-policy.test.js +152 -0
- package/dist/src/tools/confirmation-policy.test.js.map +1 -0
- package/dist/src/tools/edit.js +5 -1
- package/dist/src/tools/edit.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/ripGrep.d.ts +1 -0
- package/dist/src/tools/ripGrep.js +16 -4
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +55 -0
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/smart-edit.js +5 -1
- package/dist/src/tools/smart-edit.js.map +1 -1
- 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/tools/web-fetch.js +5 -1
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/write-file.js +5 -1
- package/dist/src/tools/write-file.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 +4 -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 -18
- package/dist/src/utils/events.js +0 -9
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/geminiIgnoreParser.d.ts +11 -0
- package/dist/src/utils/geminiIgnoreParser.js +20 -0
- package/dist/src/utils/geminiIgnoreParser.js.map +1 -1
- package/dist/src/utils/geminiIgnoreParser.test.js +48 -0
- package/dist/src/utils/geminiIgnoreParser.test.js.map +1 -1
- package/dist/src/utils/generateContentResponseUtilities.d.ts +1 -0
- package/dist/src/utils/generateContentResponseUtilities.js +10 -0
- package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
- package/dist/src/utils/generateContentResponseUtilities.test.js +59 -2
- package/dist/src/utils/generateContentResponseUtilities.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/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 → introspection-agent.test.d.ts} +0 -0
- /package/dist/src/agents/{invocation.test.d.ts → local-executor.test.d.ts} +0 -0
|
@@ -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
|
/**
|
|
@@ -30,7 +31,7 @@ const GRACE_PERIOD_MS = 60 * 1000; // 1 min
|
|
|
30
31
|
* This executor runs the agent in a loop, calling tools until it calls the
|
|
31
32
|
* mandatory `complete_task` tool to signal completion.
|
|
32
33
|
*/
|
|
33
|
-
export class
|
|
34
|
+
export class LocalAgentExecutor {
|
|
34
35
|
definition;
|
|
35
36
|
agentId;
|
|
36
37
|
toolRegistry;
|
|
@@ -47,12 +48,12 @@ export class AgentExecutor {
|
|
|
47
48
|
* @param definition The definition object for the agent.
|
|
48
49
|
* @param runtimeContext The global runtime configuration.
|
|
49
50
|
* @param onActivity An optional callback to receive activity events.
|
|
50
|
-
* @returns A promise that resolves to a new `
|
|
51
|
+
* @returns A promise that resolves to a new `LocalAgentExecutor` instance.
|
|
51
52
|
*/
|
|
52
53
|
static async create(definition, runtimeContext, onActivity) {
|
|
53
54
|
// Create an isolated tool registry for this agent instance.
|
|
54
55
|
const agentToolRegistry = new ToolRegistry(runtimeContext);
|
|
55
|
-
const parentToolRegistry =
|
|
56
|
+
const parentToolRegistry = runtimeContext.getToolRegistry();
|
|
56
57
|
if (definition.toolConfig) {
|
|
57
58
|
for (const toolRef of definition.toolConfig.tools) {
|
|
58
59
|
if (typeof toolRef === 'string') {
|
|
@@ -72,13 +73,10 @@ export class AgentExecutor {
|
|
|
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 AgentExecutor.validateTools(agentToolRegistry, definition.name);
|
|
78
76
|
}
|
|
79
77
|
// Get the parent prompt ID from context
|
|
80
78
|
const parentPromptId = promptIdContext.getStore();
|
|
81
|
-
return new
|
|
79
|
+
return new LocalAgentExecutor(definition, runtimeContext, agentToolRegistry, parentPromptId, onActivity);
|
|
82
80
|
}
|
|
83
81
|
/**
|
|
84
82
|
* Constructs a new AgentExecutor instance.
|
|
@@ -243,10 +241,17 @@ export class AgentExecutor {
|
|
|
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,26 +553,51 @@ export class AgentExecutor {
|
|
|
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
|
}
|
|
567
597
|
// Handle standard tools
|
|
568
598
|
if (!allowedToolNames.has(functionCall.name)) {
|
|
569
599
|
const error = `Unauthorized tool call: '${functionCall.name}' is not available to this agent.`;
|
|
570
|
-
debugLogger.warn(`[
|
|
600
|
+
debugLogger.warn(`[LocalAgentExecutor] Blocked call: ${error}`);
|
|
571
601
|
syncResponseParts.push({
|
|
572
602
|
functionResponse: {
|
|
573
603
|
name: functionCall.name,
|
|
@@ -592,7 +622,10 @@ export class AgentExecutor {
|
|
|
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 AgentExecutor {
|
|
|
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 AgentExecutor {
|
|
|
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
|
*
|
|
@@ -771,4 +797,4 @@ Important Rules:
|
|
|
771
797
|
}
|
|
772
798
|
}
|
|
773
799
|
}
|
|
774
|
-
//# sourceMappingURL=executor.js.map
|
|
800
|
+
//# sourceMappingURL=local-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-executor.js","sourceRoot":"","sources":["../../../src/agents/local-executor.ts"],"names":[],"mappings":"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"}
|