@google/gemini-cli-core 0.24.0-nightly.20251231.05049b5ab → 0.24.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/cli/settings.md +1 -0
- package/dist/docs/cli/skills.md +156 -0
- package/dist/docs/cli/telemetry.md +3 -3
- package/dist/docs/cli/tutorials/skills-getting-started.md +124 -0
- package/dist/docs/cli/tutorials.md +4 -0
- package/dist/docs/get-started/configuration.md +32 -11
- package/dist/docs/hooks/best-practices.md +177 -127
- package/dist/docs/hooks/index.md +22 -0
- package/dist/docs/sidebar.json +4 -0
- package/dist/src/agents/a2a-client-manager.d.ts +5 -0
- package/dist/src/agents/a2a-client-manager.js +130 -0
- package/dist/src/agents/a2a-client-manager.js.map +1 -1
- package/dist/src/agents/a2a-client-manager.test.js +27 -1
- package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
- package/dist/src/agents/a2aUtils.d.ts +28 -0
- package/dist/src/agents/a2aUtils.js +111 -0
- package/dist/src/agents/a2aUtils.js.map +1 -0
- package/dist/src/agents/a2aUtils.test.js +147 -0
- package/dist/src/agents/a2aUtils.test.js.map +1 -0
- package/dist/src/agents/delegate-to-agent-tool.d.ts +2 -2
- package/dist/src/agents/delegate-to-agent-tool.js +6 -6
- package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
- package/dist/src/agents/delegate-to-agent-tool.test.js +37 -7
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
- package/dist/src/agents/introspection-agent.js +2 -2
- package/dist/src/agents/introspection-agent.js.map +1 -1
- package/dist/src/agents/introspection-agent.test.js +2 -2
- package/dist/src/agents/introspection-agent.test.js.map +1 -1
- package/dist/src/agents/local-executor.js +1 -1
- package/dist/src/agents/local-executor.js.map +1 -1
- package/dist/src/agents/local-executor.test.js +2 -2
- package/dist/src/agents/local-executor.test.js.map +1 -1
- package/dist/src/agents/local-invocation.d.ts +2 -2
- package/dist/src/agents/local-invocation.js +3 -3
- package/dist/src/agents/local-invocation.js.map +1 -1
- package/dist/src/agents/local-invocation.test.js +7 -5
- package/dist/src/agents/local-invocation.test.js.map +1 -1
- package/dist/src/agents/remote-invocation.d.ts +17 -3
- package/dist/src/agents/remote-invocation.js +104 -6
- package/dist/src/agents/remote-invocation.js.map +1 -1
- package/dist/src/agents/remote-invocation.test.js +184 -18
- package/dist/src/agents/remote-invocation.test.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.d.ts +2 -2
- package/dist/src/agents/subagent-tool-wrapper.js +6 -5
- package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js +17 -10
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
- package/dist/src/agents/types.d.ts +6 -0
- package/dist/src/code_assist/oauth2.js +31 -1
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +75 -3
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +5 -0
- package/dist/src/code_assist/server.js +19 -4
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +19 -0
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/setup.js +6 -4
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/code_assist/setup.test.js +63 -0
- package/dist/src/code_assist/setup.test.js.map +1 -1
- package/dist/src/code_assist/types.d.ts +18 -0
- package/dist/src/config/config.d.ts +20 -6
- package/dist/src/config/config.js +63 -37
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +81 -4
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/flashFallback.test.js +13 -0
- package/dist/src/config/flashFallback.test.js.map +1 -1
- package/dist/src/config/models.js +6 -4
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +21 -1
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/core/client.js +39 -7
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +93 -1
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.js +1 -1
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +1 -1
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.test.js +11 -9
- package/dist/src/core/coreToolHookTriggers.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +1 -0
- package/dist/src/core/coreToolScheduler.js +30 -106
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +21 -22
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.js +14 -2
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +0 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts.js +29 -5
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +40 -1
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/sessionHookTriggers.d.ts +3 -2
- package/dist/src/core/sessionHookTriggers.js +8 -1
- package/dist/src/core/sessionHookTriggers.js.map +1 -1
- package/dist/src/core/turn.d.ts +16 -2
- package/dist/src/core/turn.js +2 -0
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +3 -3
- package/dist/src/generated/git-commit.js +3 -3
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.d.ts +6 -2
- package/dist/src/hooks/hookEventHandler.js +24 -3
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +31 -8
- package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
- package/dist/src/hooks/hookRunner.d.ts +2 -2
- package/dist/src/hooks/hookRunner.js +12 -4
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +33 -0
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.js +3 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/policy/config.js +60 -22
- package/dist/src/policy/config.js.map +1 -1
- package/dist/src/policy/config.test.js +21 -0
- package/dist/src/policy/config.test.js.map +1 -1
- package/dist/src/policy/persistence.test.js +1 -1
- package/dist/src/policy/persistence.test.js.map +1 -1
- package/dist/src/policy/policies/write.toml +5 -0
- package/dist/src/policy/policy-engine.d.ts +4 -0
- package/dist/src/policy/policy-engine.js +75 -51
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +272 -1
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/policy-updater.test.js +2 -2
- package/dist/src/policy/policy-updater.test.js.map +1 -1
- package/dist/src/policy/toml-loader.d.ts +0 -8
- package/dist/src/policy/toml-loader.js +7 -70
- package/dist/src/policy/toml-loader.js.map +1 -1
- package/dist/src/policy/toml-loader.test.js +16 -6
- package/dist/src/policy/toml-loader.test.js.map +1 -1
- package/dist/src/policy/types.d.ts +6 -0
- package/dist/src/policy/utils.d.ts +21 -0
- package/dist/src/policy/utils.js +42 -0
- package/dist/src/policy/utils.js.map +1 -0
- package/dist/src/policy/utils.test.js +64 -0
- package/dist/src/policy/utils.test.js.map +1 -0
- package/dist/src/scheduler/tool-executor.d.ts +22 -0
- package/dist/src/scheduler/tool-executor.js +198 -0
- package/dist/src/scheduler/tool-executor.js.map +1 -0
- package/dist/src/scheduler/tool-executor.test.d.ts +6 -0
- package/dist/src/scheduler/tool-executor.test.js +231 -0
- package/dist/src/scheduler/tool-executor.test.js.map +1 -0
- package/dist/src/skills/skillLoader.d.ts +28 -0
- package/dist/src/skills/skillLoader.js +77 -0
- package/dist/src/skills/skillLoader.js.map +1 -0
- package/dist/src/skills/skillLoader.test.d.ts +6 -0
- package/dist/src/skills/skillLoader.test.js +73 -0
- package/dist/src/skills/skillLoader.test.js.map +1 -0
- package/dist/src/{services → skills}/skillManager.d.ts +10 -20
- package/dist/src/skills/skillManager.js +89 -0
- package/dist/src/skills/skillManager.js.map +1 -0
- package/dist/src/skills/skillManager.test.d.ts +6 -0
- package/dist/src/skills/skillManager.test.js +128 -0
- package/dist/src/skills/skillManager.test.js.map +1 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +5 -5
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +8 -8
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +1 -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 +2 -2
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +4 -4
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +3 -3
- package/dist/src/telemetry/loggers.js +4 -4
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +6 -8
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +7 -7
- package/dist/src/telemetry/types.js +10 -10
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/test-utils/mock-message-bus.d.ts +1 -0
- package/dist/src/test-utils/mock-message-bus.js +29 -0
- package/dist/src/test-utils/mock-message-bus.js.map +1 -1
- package/dist/src/test-utils/mock-tool.d.ts +5 -3
- package/dist/src/test-utils/mock-tool.js +11 -10
- package/dist/src/test-utils/mock-tool.js.map +1 -1
- package/dist/src/tools/activate-skill.d.ts +27 -0
- package/dist/src/tools/activate-skill.js +120 -0
- package/dist/src/tools/activate-skill.js.map +1 -0
- package/dist/src/tools/activate-skill.test.d.ts +6 -0
- package/dist/src/tools/activate-skill.test.js +95 -0
- package/dist/src/tools/activate-skill.test.js.map +1 -0
- package/dist/src/tools/confirmation-policy.test.js +2 -12
- package/dist/src/tools/confirmation-policy.test.js.map +1 -1
- package/dist/src/tools/edit.d.ts +27 -5
- package/dist/src/tools/edit.js +444 -137
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +257 -525
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/get-internal-docs.d.ts +2 -2
- package/dist/src/tools/get-internal-docs.js +6 -6
- package/dist/src/tools/get-internal-docs.js.map +1 -1
- package/dist/src/tools/get-internal-docs.test.js +2 -1
- package/dist/src/tools/get-internal-docs.test.js.map +1 -1
- package/dist/src/tools/glob.d.ts +2 -2
- package/dist/src/tools/glob.js +1 -1
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +2 -1
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/grep.d.ts +2 -2
- package/dist/src/tools/grep.js +1 -1
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +5 -4
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/ls.d.ts +2 -2
- package/dist/src/tools/ls.js +2 -2
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.js +2 -1
- package/dist/src/tools/ls.test.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.js +14 -7
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.test.js +28 -0
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +2 -2
- package/dist/src/tools/mcp-client.js +2 -1
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +2 -2
- package/dist/src/tools/mcp-tool.js +7 -7
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +11 -6
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +3 -3
- package/dist/src/tools/memoryTool.js +2 -2
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/memoryTool.test.js +5 -2
- package/dist/src/tools/memoryTool.test.js.map +1 -1
- package/dist/src/tools/message-bus-integration.test.js +10 -37
- package/dist/src/tools/message-bus-integration.test.js.map +1 -1
- package/dist/src/tools/read-file.d.ts +2 -2
- package/dist/src/tools/read-file.js +1 -1
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +3 -2
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.d.ts +2 -2
- package/dist/src/tools/read-many-files.js +2 -3
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +3 -2
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/ripGrep.d.ts +2 -2
- package/dist/src/tools/ripGrep.js +3 -4
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +7 -6
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +3 -6
- package/dist/src/tools/shell.js +15 -48
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +35 -59
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +2 -1
- package/dist/src/tools/tool-names.js +2 -0
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +11 -6
- package/dist/src/tools/tool-registry.js +13 -8
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +14 -10
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +5 -5
- package/dist/src/tools/tools.js +15 -17
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/tools.test.js +3 -1
- package/dist/src/tools/tools.test.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +2 -2
- package/dist/src/tools/web-fetch.js +4 -4
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +17 -19
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/tools/web-search.d.ts +2 -2
- package/dist/src/tools/web-search.js +3 -4
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/web-search.test.js +2 -1
- package/dist/src/tools/web-search.test.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +2 -2
- package/dist/src/tools/write-file.js +3 -3
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +4 -1
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/tools/write-todos.d.ts +2 -2
- package/dist/src/tools/write-todos.js +5 -4
- package/dist/src/tools/write-todos.js.map +1 -1
- package/dist/src/tools/write-todos.test.js +2 -1
- package/dist/src/tools/write-todos.test.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +1 -1
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/events.d.ts +46 -1
- package/dist/src/utils/events.js +21 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/events.test.js +25 -0
- package/dist/src/utils/events.test.js.map +1 -1
- package/dist/src/utils/getFolderStructure.js +6 -1
- package/dist/src/utils/getFolderStructure.js.map +1 -1
- package/dist/src/utils/shell-permissions.test.js +27 -0
- package/dist/src/utils/shell-permissions.test.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +6 -0
- package/dist/src/utils/shell-utils.js +72 -8
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +99 -1
- package/dist/src/utils/shell-utils.test.js.map +1 -1
- package/dist/src/utils/terminal.d.ts +2 -0
- package/dist/src/utils/terminal.js +6 -0
- package/dist/src/utils/terminal.js.map +1 -1
- package/dist/src/utils/tokenCalculation.js +20 -5
- package/dist/src/utils/tokenCalculation.js.map +1 -1
- package/dist/src/utils/tokenCalculation.test.js +11 -2
- package/dist/src/utils/tokenCalculation.test.js.map +1 -1
- package/dist/src/utils/tool-utils.test.js +2 -1
- package/dist/src/utils/tool-utils.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/google-gemini-cli-core-0.24.0-nightly.20251227.37be16243.tgz +0 -0
- package/dist/src/services/skillManager.js +0 -157
- package/dist/src/services/skillManager.js.map +0 -1
- package/dist/src/services/skillManager.test.js +0 -169
- package/dist/src/services/skillManager.test.js.map +0 -1
- package/dist/src/tools/smart-edit.d.ts +0 -78
- package/dist/src/tools/smart-edit.js +0 -722
- package/dist/src/tools/smart-edit.js.map +0 -1
- package/dist/src/tools/smart-edit.test.js +0 -592
- package/dist/src/tools/smart-edit.test.js.map +0 -1
- /package/dist/src/{services/skillManager.test.d.ts → agents/a2aUtils.test.d.ts} +0 -0
- /package/dist/src/{tools/smart-edit.test.d.ts → policy/utils.test.d.ts} +0 -0
|
@@ -75,8 +75,10 @@ describe('setupUser for existing user', () => {
|
|
|
75
75
|
describe('setupUser for new user', () => {
|
|
76
76
|
let mockLoad;
|
|
77
77
|
let mockOnboardUser;
|
|
78
|
+
let mockGetOperation;
|
|
78
79
|
beforeEach(() => {
|
|
79
80
|
vi.resetAllMocks();
|
|
81
|
+
vi.useFakeTimers();
|
|
80
82
|
mockLoad = vi.fn();
|
|
81
83
|
mockOnboardUser = vi.fn().mockResolvedValue({
|
|
82
84
|
done: true,
|
|
@@ -86,12 +88,15 @@ describe('setupUser for new user', () => {
|
|
|
86
88
|
},
|
|
87
89
|
},
|
|
88
90
|
});
|
|
91
|
+
mockGetOperation = vi.fn();
|
|
89
92
|
vi.mocked(CodeAssistServer).mockImplementation(() => ({
|
|
90
93
|
loadCodeAssist: mockLoad,
|
|
91
94
|
onboardUser: mockOnboardUser,
|
|
95
|
+
getOperation: mockGetOperation,
|
|
92
96
|
}));
|
|
93
97
|
});
|
|
94
98
|
afterEach(() => {
|
|
99
|
+
vi.useRealTimers();
|
|
95
100
|
vi.unstubAllEnvs();
|
|
96
101
|
});
|
|
97
102
|
it('should use GOOGLE_CLOUD_PROJECT when set and onboard a new paid user', async () => {
|
|
@@ -167,5 +172,63 @@ describe('setupUser for new user', () => {
|
|
|
167
172
|
});
|
|
168
173
|
await expect(setupUser({})).rejects.toThrow(ProjectIdRequiredError);
|
|
169
174
|
});
|
|
175
|
+
it('should poll getOperation when onboardUser returns done=false', async () => {
|
|
176
|
+
vi.stubEnv('GOOGLE_CLOUD_PROJECT', 'test-project');
|
|
177
|
+
mockLoad.mockResolvedValue({
|
|
178
|
+
allowedTiers: [mockPaidTier],
|
|
179
|
+
});
|
|
180
|
+
const operationName = 'operations/123';
|
|
181
|
+
mockOnboardUser.mockResolvedValueOnce({
|
|
182
|
+
name: operationName,
|
|
183
|
+
done: false,
|
|
184
|
+
});
|
|
185
|
+
mockGetOperation
|
|
186
|
+
.mockResolvedValueOnce({
|
|
187
|
+
name: operationName,
|
|
188
|
+
done: false,
|
|
189
|
+
})
|
|
190
|
+
.mockResolvedValueOnce({
|
|
191
|
+
name: operationName,
|
|
192
|
+
done: true,
|
|
193
|
+
response: {
|
|
194
|
+
cloudaicompanionProject: {
|
|
195
|
+
id: 'server-project',
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
const setupPromise = setupUser({});
|
|
200
|
+
await vi.advanceTimersByTimeAsync(5000);
|
|
201
|
+
await vi.advanceTimersByTimeAsync(5000);
|
|
202
|
+
const userData = await setupPromise;
|
|
203
|
+
expect(mockOnboardUser).toHaveBeenCalledTimes(1);
|
|
204
|
+
expect(mockGetOperation).toHaveBeenCalledTimes(2);
|
|
205
|
+
expect(mockGetOperation).toHaveBeenCalledWith(operationName);
|
|
206
|
+
expect(userData).toEqual({
|
|
207
|
+
projectId: 'server-project',
|
|
208
|
+
userTier: 'standard-tier',
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
it('should not poll getOperation when onboardUser returns done=true immediately', async () => {
|
|
212
|
+
vi.stubEnv('GOOGLE_CLOUD_PROJECT', 'test-project');
|
|
213
|
+
mockLoad.mockResolvedValue({
|
|
214
|
+
allowedTiers: [mockPaidTier],
|
|
215
|
+
});
|
|
216
|
+
mockOnboardUser.mockResolvedValueOnce({
|
|
217
|
+
name: 'operations/123',
|
|
218
|
+
done: true,
|
|
219
|
+
response: {
|
|
220
|
+
cloudaicompanionProject: {
|
|
221
|
+
id: 'server-project',
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
});
|
|
225
|
+
const userData = await setupUser({});
|
|
226
|
+
expect(mockOnboardUser).toHaveBeenCalledTimes(1);
|
|
227
|
+
expect(mockGetOperation).not.toHaveBeenCalled();
|
|
228
|
+
expect(userData).toEqual({
|
|
229
|
+
projectId: 'server-project',
|
|
230
|
+
userTier: 'standard-tier',
|
|
231
|
+
});
|
|
232
|
+
});
|
|
170
233
|
});
|
|
171
234
|
//# sourceMappingURL=setup.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../../src/code_assist/setup.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../../src/code_assist/setup.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -225,4 +225,22 @@ export interface ConversationInteraction {
|
|
|
225
225
|
language?: string;
|
|
226
226
|
isAgentic?: boolean;
|
|
227
227
|
}
|
|
228
|
+
export interface GeminiCodeAssistSetting {
|
|
229
|
+
secureModeEnabled?: boolean;
|
|
230
|
+
mcpSetting?: McpSetting;
|
|
231
|
+
cliFeatureSetting?: CliFeatureSetting;
|
|
232
|
+
}
|
|
233
|
+
export interface McpSetting {
|
|
234
|
+
mcpEnabled?: boolean;
|
|
235
|
+
allowedMcpConfigs?: McpConfig[];
|
|
236
|
+
}
|
|
237
|
+
export interface McpConfig {
|
|
238
|
+
mcpServer?: string;
|
|
239
|
+
}
|
|
240
|
+
export interface CliFeatureSetting {
|
|
241
|
+
extensionsSetting?: ExtensionsSetting;
|
|
242
|
+
}
|
|
243
|
+
export interface ExtensionsSetting {
|
|
244
|
+
extensionsEnabled?: boolean;
|
|
245
|
+
}
|
|
228
246
|
export {};
|
|
@@ -37,9 +37,10 @@ import type { PolicyEngineConfig } from '../policy/types.js';
|
|
|
37
37
|
import { HookSystem } from '../hooks/index.js';
|
|
38
38
|
import type { UserTierId } from '../code_assist/types.js';
|
|
39
39
|
import type { RetrieveUserQuotaResponse } from '../code_assist/types.js';
|
|
40
|
+
import type { GeminiCodeAssistSetting } from '../code_assist/types.js';
|
|
40
41
|
import type { Experiments } from '../code_assist/experiments/experiments.js';
|
|
41
42
|
import { AgentRegistry } from '../agents/registry.js';
|
|
42
|
-
import { SkillManager } from '../
|
|
43
|
+
import { SkillManager, type SkillDefinition } from '../skills/skillManager.js';
|
|
43
44
|
import { ApprovalMode } from '../policy/types.js';
|
|
44
45
|
export interface AccessibilitySettings {
|
|
45
46
|
disableLoadingPhrases?: boolean;
|
|
@@ -107,6 +108,7 @@ export interface GeminiCLIExtension {
|
|
|
107
108
|
};
|
|
108
109
|
settings?: ExtensionSetting[];
|
|
109
110
|
resolvedSettings?: ResolvedExtensionSetting[];
|
|
111
|
+
skills?: SkillDefinition[];
|
|
110
112
|
}
|
|
111
113
|
export interface ExtensionInstallMetadata {
|
|
112
114
|
source: string;
|
|
@@ -225,7 +227,6 @@ export interface ConfigParameters {
|
|
|
225
227
|
truncateToolOutputLines?: number;
|
|
226
228
|
enableToolOutputTruncation?: boolean;
|
|
227
229
|
eventEmitter?: EventEmitter;
|
|
228
|
-
useSmartEdit?: boolean;
|
|
229
230
|
useWriteTodos?: boolean;
|
|
230
231
|
policyEngineConfig?: PolicyEngineConfig;
|
|
231
232
|
output?: OutputSettings;
|
|
@@ -259,6 +260,10 @@ export interface ConfigParameters {
|
|
|
259
260
|
disabledSkills?: string[];
|
|
260
261
|
experimentalJitContext?: boolean;
|
|
261
262
|
onModelChange?: (model: string) => void;
|
|
263
|
+
mcpEnabled?: boolean;
|
|
264
|
+
onReload?: () => Promise<{
|
|
265
|
+
disabledSkills?: string[];
|
|
266
|
+
}>;
|
|
262
267
|
}
|
|
263
268
|
export declare class Config {
|
|
264
269
|
private toolRegistry;
|
|
@@ -289,6 +294,7 @@ export declare class Config {
|
|
|
289
294
|
private readonly toolDiscoveryCommand;
|
|
290
295
|
private readonly toolCallCommand;
|
|
291
296
|
private readonly mcpServerCommand;
|
|
297
|
+
private readonly mcpEnabled;
|
|
292
298
|
private mcpServers;
|
|
293
299
|
private userMemory;
|
|
294
300
|
private geminiMdFileCount;
|
|
@@ -346,7 +352,6 @@ export declare class Config {
|
|
|
346
352
|
readonly storage: Storage;
|
|
347
353
|
private readonly fileExclusions;
|
|
348
354
|
private readonly eventEmitter?;
|
|
349
|
-
private readonly useSmartEdit;
|
|
350
355
|
private readonly useWriteTodos;
|
|
351
356
|
private readonly messageBus;
|
|
352
357
|
private readonly policyEngine;
|
|
@@ -369,12 +374,14 @@ export declare class Config {
|
|
|
369
374
|
private experimentsPromise;
|
|
370
375
|
private hookSystem?;
|
|
371
376
|
private readonly onModelChange;
|
|
377
|
+
private readonly onReload;
|
|
372
378
|
private readonly enableAgents;
|
|
373
379
|
private readonly skillsSupport;
|
|
374
|
-
private
|
|
380
|
+
private disabledSkills;
|
|
375
381
|
private readonly experimentalJitContext;
|
|
376
382
|
private contextManager?;
|
|
377
383
|
private terminalBackground;
|
|
384
|
+
private remoteAdminSettings;
|
|
378
385
|
constructor(params: ConfigParameters);
|
|
379
386
|
/**
|
|
380
387
|
* Must only be called once, throws if called again.
|
|
@@ -392,12 +399,15 @@ export declare class Config {
|
|
|
392
399
|
setSessionId(sessionId: string): void;
|
|
393
400
|
setTerminalBackground(terminalBackground: string | undefined): void;
|
|
394
401
|
getTerminalBackground(): string | undefined;
|
|
402
|
+
getRemoteAdminSettings(): GeminiCodeAssistSetting | undefined;
|
|
403
|
+
setRemoteAdminSettings(settings: GeminiCodeAssistSetting): void;
|
|
395
404
|
shouldLoadMemoryFromIncludeDirectories(): boolean;
|
|
396
405
|
getImportFormat(): 'tree' | 'flat';
|
|
397
406
|
getDiscoveryMaxDirs(): number;
|
|
398
407
|
getContentGeneratorConfig(): ContentGeneratorConfig;
|
|
399
408
|
getModel(): string;
|
|
400
|
-
setModel(newModel: string,
|
|
409
|
+
setModel(newModel: string, isTemporary?: boolean): void;
|
|
410
|
+
activateFallbackMode(model: string): void;
|
|
401
411
|
getActiveModel(): string;
|
|
402
412
|
setActiveModel(model: string): void;
|
|
403
413
|
setFallbackModelHandler(handler: FallbackModelHandler): void;
|
|
@@ -442,6 +452,7 @@ export declare class Config {
|
|
|
442
452
|
* Does NOT include mcp servers configured by extensions.
|
|
443
453
|
*/
|
|
444
454
|
getMcpServers(): Record<string, MCPServerConfig> | undefined;
|
|
455
|
+
getMcpEnabled(): boolean;
|
|
445
456
|
getMcpClientManager(): McpClientManager | undefined;
|
|
446
457
|
getAllowedMcpServers(): string[] | undefined;
|
|
447
458
|
getBlockedMcpServers(): string[] | undefined;
|
|
@@ -536,6 +547,10 @@ export declare class Config {
|
|
|
536
547
|
private ensureExperimentsLoaded;
|
|
537
548
|
isInteractiveShellEnabled(): boolean;
|
|
538
549
|
isSkillsSupportEnabled(): boolean;
|
|
550
|
+
/**
|
|
551
|
+
* Reloads skills by re-discovering them from extensions and local directories.
|
|
552
|
+
*/
|
|
553
|
+
reloadSkills(): Promise<void>;
|
|
539
554
|
isInteractive(): boolean;
|
|
540
555
|
getUseRipgrep(): boolean;
|
|
541
556
|
getEnableInteractiveShell(): boolean;
|
|
@@ -551,7 +566,6 @@ export declare class Config {
|
|
|
551
566
|
getEnableToolOutputTruncation(): boolean;
|
|
552
567
|
getTruncateToolOutputThreshold(): number;
|
|
553
568
|
getTruncateToolOutputLines(): number;
|
|
554
|
-
getUseSmartEdit(): boolean;
|
|
555
569
|
getUseWriteTodos(): boolean;
|
|
556
570
|
getOutputFormat(): OutputFormat;
|
|
557
571
|
getGitService(): Promise<GitService>;
|
|
@@ -15,8 +15,8 @@ import { ReadFileTool } from '../tools/read-file.js';
|
|
|
15
15
|
import { GrepTool } from '../tools/grep.js';
|
|
16
16
|
import { canUseRipgrep, RipGrepTool } from '../tools/ripGrep.js';
|
|
17
17
|
import { GlobTool } from '../tools/glob.js';
|
|
18
|
+
import { ActivateSkillTool } from '../tools/activate-skill.js';
|
|
18
19
|
import { EditTool } from '../tools/edit.js';
|
|
19
|
-
import { SmartEditTool } from '../tools/smart-edit.js';
|
|
20
20
|
import { ShellTool } from '../tools/shell.js';
|
|
21
21
|
import { WriteFileTool } from '../tools/write-file.js';
|
|
22
22
|
import { WebFetchTool } from '../tools/web-fetch.js';
|
|
@@ -34,8 +34,8 @@ import { shouldAttemptBrowserLaunch } from '../utils/browser.js';
|
|
|
34
34
|
import { ideContextStore } from '../ide/ideContext.js';
|
|
35
35
|
import { WriteTodosTool } from '../tools/write-todos.js';
|
|
36
36
|
import { StandardFileSystemService } from '../services/fileSystemService.js';
|
|
37
|
-
import { logRipgrepFallback } from '../telemetry/loggers.js';
|
|
38
|
-
import { RipgrepFallbackEvent } from '../telemetry/types.js';
|
|
37
|
+
import { logRipgrepFallback, logFlashFallback } from '../telemetry/loggers.js';
|
|
38
|
+
import { RipgrepFallbackEvent, FlashFallbackEvent, } from '../telemetry/types.js';
|
|
39
39
|
import { ModelAvailabilityService } from '../availability/modelAvailabilityService.js';
|
|
40
40
|
import { ModelRouterService } from '../routing/modelRouterService.js';
|
|
41
41
|
import { OutputFormat } from '../output/types.js';
|
|
@@ -56,7 +56,7 @@ import { DELEGATE_TO_AGENT_TOOL_NAME } from '../tools/tool-names.js';
|
|
|
56
56
|
import { getExperiments } from '../code_assist/experiments/experiments.js';
|
|
57
57
|
import { ExperimentFlags } from '../code_assist/experiments/flagNames.js';
|
|
58
58
|
import { debugLogger } from '../utils/debugLogger.js';
|
|
59
|
-
import { SkillManager } from '../
|
|
59
|
+
import { SkillManager } from '../skills/skillManager.js';
|
|
60
60
|
import { startupProfiler } from '../telemetry/startupProfiler.js';
|
|
61
61
|
import { ApprovalMode } from '../policy/types.js';
|
|
62
62
|
import { DEFAULT_FILE_FILTERING_OPTIONS, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, } from './constants.js';
|
|
@@ -167,6 +167,7 @@ export class Config {
|
|
|
167
167
|
toolDiscoveryCommand;
|
|
168
168
|
toolCallCommand;
|
|
169
169
|
mcpServerCommand;
|
|
170
|
+
mcpEnabled;
|
|
170
171
|
mcpServers;
|
|
171
172
|
userMemory;
|
|
172
173
|
geminiMdFileCount;
|
|
@@ -224,7 +225,6 @@ export class Config {
|
|
|
224
225
|
storage;
|
|
225
226
|
fileExclusions;
|
|
226
227
|
eventEmitter;
|
|
227
|
-
useSmartEdit;
|
|
228
228
|
useWriteTodos;
|
|
229
229
|
messageBus;
|
|
230
230
|
policyEngine;
|
|
@@ -247,12 +247,14 @@ export class Config {
|
|
|
247
247
|
experimentsPromise;
|
|
248
248
|
hookSystem;
|
|
249
249
|
onModelChange;
|
|
250
|
+
onReload;
|
|
250
251
|
enableAgents;
|
|
251
252
|
skillsSupport;
|
|
252
253
|
disabledSkills;
|
|
253
254
|
experimentalJitContext;
|
|
254
255
|
contextManager;
|
|
255
256
|
terminalBackground = undefined;
|
|
257
|
+
remoteAdminSettings;
|
|
256
258
|
constructor(params) {
|
|
257
259
|
this.sessionId = params.sessionId;
|
|
258
260
|
this.embeddingModel =
|
|
@@ -272,6 +274,7 @@ export class Config {
|
|
|
272
274
|
this.toolCallCommand = params.toolCallCommand;
|
|
273
275
|
this.mcpServerCommand = params.mcpServerCommand;
|
|
274
276
|
this.mcpServers = params.mcpServers;
|
|
277
|
+
this.mcpEnabled = params.mcpEnabled ?? true;
|
|
275
278
|
this.allowedMcpServers = params.allowedMcpServers ?? [];
|
|
276
279
|
this.blockedMcpServers = params.blockedMcpServers ?? [];
|
|
277
280
|
this.allowedEnvironmentVariables = params.allowedEnvironmentVariables ?? [];
|
|
@@ -352,7 +355,6 @@ export class Config {
|
|
|
352
355
|
this.truncateToolOutputLines =
|
|
353
356
|
params.truncateToolOutputLines ?? DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES;
|
|
354
357
|
this.enableToolOutputTruncation = params.enableToolOutputTruncation ?? true;
|
|
355
|
-
this.useSmartEdit = params.useSmartEdit ?? true;
|
|
356
358
|
// // TODO(joshualitt): Re-evaluate the todo tool for 3 family.
|
|
357
359
|
this.useWriteTodos = isPreviewModel(this.model)
|
|
358
360
|
? false
|
|
@@ -401,6 +403,7 @@ export class Config {
|
|
|
401
403
|
this.projectHooks = params.projectHooks;
|
|
402
404
|
this.experiments = params.experiments;
|
|
403
405
|
this.onModelChange = params.onModelChange;
|
|
406
|
+
this.onReload = params.onReload;
|
|
404
407
|
if (params.contextFileName) {
|
|
405
408
|
setGeminiMdFilename(params.contextFileName);
|
|
406
409
|
}
|
|
@@ -472,11 +475,15 @@ export class Config {
|
|
|
472
475
|
initMcpHandle?.end();
|
|
473
476
|
// Discover skills if enabled
|
|
474
477
|
if (this.skillsSupport) {
|
|
475
|
-
await this.getSkillManager().discoverSkills(this.storage);
|
|
478
|
+
await this.getSkillManager().discoverSkills(this.storage, this.getExtensions());
|
|
476
479
|
this.getSkillManager().setDisabledSkills(this.disabledSkills);
|
|
480
|
+
// Re-register ActivateSkillTool to update its schema with the discovered enabled skill enums
|
|
481
|
+
if (this.getSkillManager().getSkills().length > 0) {
|
|
482
|
+
this.getToolRegistry().registerTool(new ActivateSkillTool(this, this.messageBus));
|
|
483
|
+
}
|
|
477
484
|
}
|
|
478
485
|
// Initialize hook system if enabled
|
|
479
|
-
if (this.
|
|
486
|
+
if (this.getEnableHooks()) {
|
|
480
487
|
this.hookSystem = new HookSystem(this);
|
|
481
488
|
await this.hookSystem.initialize();
|
|
482
489
|
}
|
|
@@ -581,6 +588,12 @@ export class Config {
|
|
|
581
588
|
getTerminalBackground() {
|
|
582
589
|
return this.terminalBackground;
|
|
583
590
|
}
|
|
591
|
+
getRemoteAdminSettings() {
|
|
592
|
+
return this.remoteAdminSettings;
|
|
593
|
+
}
|
|
594
|
+
setRemoteAdminSettings(settings) {
|
|
595
|
+
this.remoteAdminSettings = settings;
|
|
596
|
+
}
|
|
584
597
|
shouldLoadMemoryFromIncludeDirectories() {
|
|
585
598
|
return this.loadMemoryFromIncludeDirectories;
|
|
586
599
|
}
|
|
@@ -596,18 +609,25 @@ export class Config {
|
|
|
596
609
|
getModel() {
|
|
597
610
|
return this.model;
|
|
598
611
|
}
|
|
599
|
-
setModel(newModel,
|
|
612
|
+
setModel(newModel, isTemporary = true) {
|
|
600
613
|
if (this.model !== newModel || this._activeModel !== newModel) {
|
|
601
614
|
this.model = newModel;
|
|
602
615
|
// When the user explicitly sets a model, that becomes the active model.
|
|
603
616
|
this._activeModel = newModel;
|
|
604
617
|
coreEvents.emitModelChanged(newModel);
|
|
605
|
-
if (this.onModelChange && !
|
|
618
|
+
if (this.onModelChange && !isTemporary) {
|
|
606
619
|
this.onModelChange(newModel);
|
|
607
620
|
}
|
|
608
621
|
}
|
|
609
622
|
this.modelAvailabilityService.reset();
|
|
610
623
|
}
|
|
624
|
+
activateFallbackMode(model) {
|
|
625
|
+
this.setModel(model, true);
|
|
626
|
+
const authType = this.getContentGeneratorConfig()?.authType;
|
|
627
|
+
if (authType) {
|
|
628
|
+
logFlashFallback(this, new FlashFallbackEvent(authType));
|
|
629
|
+
}
|
|
630
|
+
}
|
|
611
631
|
getActiveModel() {
|
|
612
632
|
return this._activeModel ?? this.model;
|
|
613
633
|
}
|
|
@@ -762,6 +782,9 @@ export class Config {
|
|
|
762
782
|
getMcpServers() {
|
|
763
783
|
return this.mcpServers;
|
|
764
784
|
}
|
|
785
|
+
getMcpEnabled() {
|
|
786
|
+
return this.mcpEnabled;
|
|
787
|
+
}
|
|
765
788
|
getMcpClientManager() {
|
|
766
789
|
return this.mcpClientManager;
|
|
767
790
|
}
|
|
@@ -1000,21 +1023,12 @@ export class Config {
|
|
|
1000
1023
|
* 'false' for untrusted.
|
|
1001
1024
|
*/
|
|
1002
1025
|
isTrustedFolder() {
|
|
1003
|
-
// isWorkspaceTrusted in cli/src/config/trustedFolder.js returns undefined
|
|
1004
|
-
// when the file based trust value is unavailable, since it is mainly used
|
|
1005
|
-
// in the initialization for trust dialogs, etc. Here we return true since
|
|
1006
|
-
// config.isTrustedFolder() is used for the main business logic of blocking
|
|
1007
|
-
// tool calls etc in the rest of the application.
|
|
1008
|
-
//
|
|
1009
|
-
// Default value is true since we load with trusted settings to avoid
|
|
1010
|
-
// restarts in the more common path. If the user chooses to mark the folder
|
|
1011
|
-
// as untrusted, the CLI will restart and we will have the trust value
|
|
1012
|
-
// reloaded.
|
|
1013
1026
|
const context = ideContextStore.get();
|
|
1014
1027
|
if (context?.workspaceState?.isTrusted !== undefined) {
|
|
1015
1028
|
return context.workspaceState.isTrusted;
|
|
1016
1029
|
}
|
|
1017
|
-
|
|
1030
|
+
// Default to untrusted if folder trust is enabled and no explicit value is set.
|
|
1031
|
+
return this.folderTrust ? (this.trustedFolder ?? false) : true;
|
|
1018
1032
|
}
|
|
1019
1033
|
setIdeMode(value) {
|
|
1020
1034
|
this.ideMode = value;
|
|
@@ -1076,6 +1090,29 @@ export class Config {
|
|
|
1076
1090
|
isSkillsSupportEnabled() {
|
|
1077
1091
|
return this.skillsSupport;
|
|
1078
1092
|
}
|
|
1093
|
+
/**
|
|
1094
|
+
* Reloads skills by re-discovering them from extensions and local directories.
|
|
1095
|
+
*/
|
|
1096
|
+
async reloadSkills() {
|
|
1097
|
+
if (!this.skillsSupport) {
|
|
1098
|
+
return;
|
|
1099
|
+
}
|
|
1100
|
+
if (this.onReload) {
|
|
1101
|
+
const refreshed = await this.onReload();
|
|
1102
|
+
this.disabledSkills = refreshed.disabledSkills ?? [];
|
|
1103
|
+
}
|
|
1104
|
+
await this.getSkillManager().discoverSkills(this.storage, this.getExtensions());
|
|
1105
|
+
this.getSkillManager().setDisabledSkills(this.disabledSkills);
|
|
1106
|
+
// Re-register ActivateSkillTool to update its schema with the newly discovered skills
|
|
1107
|
+
if (this.getSkillManager().getSkills().length > 0) {
|
|
1108
|
+
this.getToolRegistry().registerTool(new ActivateSkillTool(this, this.messageBus));
|
|
1109
|
+
}
|
|
1110
|
+
else {
|
|
1111
|
+
this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
|
|
1112
|
+
}
|
|
1113
|
+
// Notify the client that system instructions might need updating
|
|
1114
|
+
await this.updateSystemInstructionIfInitialized();
|
|
1115
|
+
}
|
|
1079
1116
|
isInteractive() {
|
|
1080
1117
|
return this.interactive;
|
|
1081
1118
|
}
|
|
@@ -1131,9 +1168,6 @@ export class Config {
|
|
|
1131
1168
|
getTruncateToolOutputLines() {
|
|
1132
1169
|
return this.truncateToolOutputLines;
|
|
1133
1170
|
}
|
|
1134
|
-
getUseSmartEdit() {
|
|
1135
|
-
return this.useSmartEdit;
|
|
1136
|
-
}
|
|
1137
1171
|
getUseWriteTodos() {
|
|
1138
1172
|
return this.useWriteTodos;
|
|
1139
1173
|
}
|
|
@@ -1168,9 +1202,7 @@ export class Config {
|
|
|
1168
1202
|
return this.introspectionAgentSettings;
|
|
1169
1203
|
}
|
|
1170
1204
|
async createToolRegistry() {
|
|
1171
|
-
const registry = new ToolRegistry(this);
|
|
1172
|
-
// Set message bus on tool registry before discovery so MCP tools can access it
|
|
1173
|
-
registry.setMessageBus(this.messageBus);
|
|
1205
|
+
const registry = new ToolRegistry(this, this.messageBus);
|
|
1174
1206
|
// helper to create & register core tools that are enabled
|
|
1175
1207
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1176
1208
|
const registerCoreTool = (ToolClass, ...args) => {
|
|
@@ -1187,9 +1219,7 @@ export class Config {
|
|
|
1187
1219
|
tool.startsWith(`${normalizedClassName}(`));
|
|
1188
1220
|
}
|
|
1189
1221
|
if (isEnabled) {
|
|
1190
|
-
// Pass message bus to tools
|
|
1191
|
-
// This first implementation is only focused on the general case of
|
|
1192
|
-
// the tool registry.
|
|
1222
|
+
// Pass message bus to tools (required for policy engine integration)
|
|
1193
1223
|
const toolArgs = [...args, this.getMessageBus()];
|
|
1194
1224
|
registry.registerTool(new ToolClass(...toolArgs));
|
|
1195
1225
|
}
|
|
@@ -1217,19 +1247,15 @@ export class Config {
|
|
|
1217
1247
|
registerCoreTool(GrepTool, this);
|
|
1218
1248
|
}
|
|
1219
1249
|
registerCoreTool(GlobTool, this);
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
}
|
|
1223
|
-
else {
|
|
1224
|
-
registerCoreTool(EditTool, this);
|
|
1225
|
-
}
|
|
1250
|
+
registerCoreTool(ActivateSkillTool, this);
|
|
1251
|
+
registerCoreTool(EditTool, this);
|
|
1226
1252
|
registerCoreTool(WriteFileTool, this);
|
|
1227
1253
|
registerCoreTool(WebFetchTool, this);
|
|
1228
1254
|
registerCoreTool(ShellTool, this);
|
|
1229
1255
|
registerCoreTool(MemoryTool);
|
|
1230
1256
|
registerCoreTool(WebSearchTool, this);
|
|
1231
1257
|
if (this.getUseWriteTodos()) {
|
|
1232
|
-
registerCoreTool(WriteTodosTool
|
|
1258
|
+
registerCoreTool(WriteTodosTool);
|
|
1233
1259
|
}
|
|
1234
1260
|
// Register Subagents as Tools
|
|
1235
1261
|
// Register DelegateToAgentTool if agents are enabled
|