@office-ai/aioncli-core 0.18.7 → 0.24.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 +114 -0
- package/dist/docs/cli/skills.md +156 -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/skills-getting-started.md +124 -0
- package/dist/docs/cli/tutorials.md +87 -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/extension.md +160 -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 +1536 -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 +856 -0
- package/dist/docs/hooks/index.md +687 -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 +301 -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/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/agents/a2a-client-manager.d.ts +78 -0
- package/dist/src/agents/a2a-client-manager.js +295 -0
- package/dist/src/agents/a2a-client-manager.js.map +1 -0
- package/dist/src/agents/a2a-client-manager.test.d.ts +6 -0
- package/dist/src/agents/a2a-client-manager.test.js +237 -0
- package/dist/src/agents/a2a-client-manager.test.js.map +1 -0
- 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.d.ts +6 -0
- package/dist/src/agents/a2aUtils.test.js +147 -0
- package/dist/src/agents/a2aUtils.test.js.map +1 -0
- package/dist/src/agents/codebase-investigator.d.ts +2 -2
- package/dist/src/agents/codebase-investigator.js +5 -4
- package/dist/src/agents/codebase-investigator.js.map +1 -1
- package/dist/src/agents/delegate-to-agent-tool.d.ts +19 -0
- package/dist/src/agents/delegate-to-agent-tool.js +115 -0
- package/dist/src/agents/delegate-to-agent-tool.js.map +1 -0
- package/dist/src/agents/delegate-to-agent-tool.test.d.ts +6 -0
- package/dist/src/agents/delegate-to-agent-tool.test.js +165 -0
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -0
- 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 +108 -0
- package/dist/src/agents/local-executor.js +801 -0
- package/dist/src/agents/local-executor.js.map +1 -0
- package/dist/src/agents/local-executor.test.d.ts +6 -0
- package/dist/src/agents/local-executor.test.js +1380 -0
- package/dist/src/agents/local-executor.test.js.map +1 -0
- package/dist/src/agents/local-invocation.d.ts +45 -0
- package/dist/src/agents/local-invocation.js +101 -0
- 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/local-invocation.test.js +218 -0
- package/dist/src/agents/local-invocation.test.js.map +1 -0
- package/dist/src/agents/registry.d.ts +25 -1
- package/dist/src/agents/registry.js +149 -5
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +247 -25
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/agents/remote-invocation.d.ts +35 -0
- package/dist/src/agents/remote-invocation.js +129 -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 +201 -0
- package/dist/src/agents/remote-invocation.test.js.map +1 -0
- package/dist/src/agents/subagent-tool-wrapper.d.ts +2 -2
- package/dist/src/agents/subagent-tool-wrapper.js +11 -6
- package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js +25 -17
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
- package/dist/src/agents/toml-loader.d.ts +74 -0
- package/dist/src/agents/toml-loader.js +248 -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 +309 -0
- package/dist/src/agents/toml-loader.test.js.map +1 -0
- package/dist/src/agents/types.d.ts +18 -4
- package/dist/src/availability/errorClassification.d.ts +7 -0
- package/dist/src/availability/errorClassification.js +20 -0
- package/dist/src/availability/errorClassification.js.map +1 -0
- package/dist/src/availability/modelAvailabilityService.d.ts +36 -0
- package/dist/src/availability/modelAvailabilityService.js +87 -0
- package/dist/src/availability/modelAvailabilityService.js.map +1 -0
- package/dist/src/availability/modelAvailabilityService.test.d.ts +6 -0
- package/dist/src/availability/modelAvailabilityService.test.js +140 -0
- package/dist/src/availability/modelAvailabilityService.test.js.map +1 -0
- package/dist/src/availability/modelPolicy.d.ts +49 -0
- package/dist/src/availability/modelPolicy.js +7 -0
- package/dist/src/availability/modelPolicy.js.map +1 -0
- package/dist/src/availability/policyCatalog.d.ts +23 -0
- package/dist/src/availability/policyCatalog.js +82 -0
- package/dist/src/availability/policyCatalog.js.map +1 -0
- package/dist/src/availability/policyCatalog.test.d.ts +6 -0
- package/dist/src/availability/policyCatalog.test.js +70 -0
- package/dist/src/availability/policyCatalog.test.js.map +1 -0
- package/dist/src/availability/policyHelpers.d.ts +52 -0
- package/dist/src/availability/policyHelpers.js +136 -0
- package/dist/src/availability/policyHelpers.js.map +1 -0
- package/dist/src/availability/policyHelpers.test.d.ts +6 -0
- package/dist/src/availability/policyHelpers.test.js +182 -0
- package/dist/src/availability/policyHelpers.test.js.map +1 -0
- package/dist/src/availability/testUtils.d.ts +10 -0
- package/dist/src/availability/testUtils.js +22 -0
- package/dist/src/availability/testUtils.js.map +1 -0
- package/dist/src/code_assist/experiments/client_metadata.js +3 -2
- package/dist/src/code_assist/experiments/client_metadata.js.map +1 -1
- package/dist/src/code_assist/experiments/client_metadata.test.js +7 -10
- package/dist/src/code_assist/experiments/client_metadata.test.js.map +1 -1
- package/dist/src/code_assist/experiments/experiments.js +2 -2
- package/dist/src/code_assist/experiments/experiments.js.map +1 -1
- package/dist/src/code_assist/oauth2.d.ts +2 -0
- package/dist/src/code_assist/oauth2.js +73 -17
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +195 -18
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +10 -1
- package/dist/src/code_assist/server.js +81 -15
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +221 -25
- 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/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 +84 -1
- package/dist/src/code_assist/types.js +21 -0
- package/dist/src/code_assist/types.js.map +1 -1
- package/dist/src/commands/init.d.ts +7 -0
- package/dist/src/commands/init.js +53 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/init.test.d.ts +6 -0
- package/dist/src/commands/init.test.js +25 -0
- package/dist/src/commands/init.test.js.map +1 -0
- package/dist/src/commands/restore.d.ts +9 -0
- package/dist/src/commands/restore.js +46 -0
- package/dist/src/commands/restore.js.map +1 -0
- package/dist/src/commands/restore.test.d.ts +6 -0
- package/dist/src/commands/restore.test.js +137 -0
- package/dist/src/commands/restore.test.js.map +1 -0
- package/dist/src/commands/types.d.ts +41 -0
- package/dist/src/commands/types.js +7 -0
- package/dist/src/commands/types.js.map +1 -0
- package/dist/src/config/config.d.ts +120 -23
- package/dist/src/config/config.js +336 -116
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +373 -95
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/defaultModelConfigs.js +46 -0
- package/dist/src/config/defaultModelConfigs.js.map +1 -1
- package/dist/src/config/flashFallback.test.js +11 -35
- package/dist/src/config/flashFallback.test.js.map +1 -1
- package/dist/src/config/models.d.ts +29 -15
- package/dist/src/config/models.js +78 -28
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +91 -77
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/config/storage.d.ts +4 -0
- package/dist/src/config/storage.js +12 -0
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/config/storage.test.js +16 -0
- package/dist/src/config/storage.test.js.map +1 -1
- package/dist/src/confirmation-bus/message-bus.d.ts +6 -0
- package/dist/src/confirmation-bus/message-bus.js +66 -3
- package/dist/src/confirmation-bus/message-bus.js.map +1 -1
- package/dist/src/confirmation-bus/types.d.ts +29 -2
- package/dist/src/confirmation-bus/types.js +3 -0
- package/dist/src/confirmation-bus/types.js.map +1 -1
- package/dist/src/core/baseLlmClient.d.ts +30 -2
- package/dist/src/core/baseLlmClient.js +107 -49
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +271 -13
- package/dist/src/core/baseLlmClient.test.js.map +1 -1
- package/dist/src/core/client.d.ts +5 -1
- package/dist/src/core/client.js +241 -63
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +462 -72
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/clientHookTriggers.d.ts +36 -0
- package/dist/src/core/clientHookTriggers.js +76 -0
- package/dist/src/core/clientHookTriggers.js.map +1 -0
- package/dist/src/core/contentGenerator.js +17 -4
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +132 -3
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.d.ts +55 -0
- package/dist/src/core/coreToolHookTriggers.js +304 -0
- package/dist/src/core/coreToolHookTriggers.js.map +1 -0
- package/dist/src/core/coreToolHookTriggers.test.d.ts +6 -0
- package/dist/src/core/coreToolHookTriggers.test.js +191 -0
- package/dist/src/core/coreToolHookTriggers.test.js.map +1 -0
- package/dist/src/core/coreToolScheduler.d.ts +6 -85
- package/dist/src/core/coreToolScheduler.js +91 -274
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +161 -346
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.js +132 -76
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +240 -257
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChatHookTriggers.d.ts +64 -0
- package/dist/src/core/geminiChatHookTriggers.js +136 -0
- package/dist/src/core/geminiChatHookTriggers.js.map +1 -0
- package/dist/src/core/geminiChat_network_retry.test.d.ts +6 -0
- package/dist/src/core/geminiChat_network_retry.test.js +196 -0
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -0
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.js +23 -6
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +13 -8
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts.js +82 -26
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +102 -3
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/sessionHookTriggers.d.ts +29 -0
- package/dist/src/core/sessionHookTriggers.js +75 -0
- package/dist/src/core/sessionHookTriggers.js.map +1 -0
- package/dist/src/core/turn.d.ts +34 -21
- package/dist/src/core/turn.js +33 -13
- 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.js +101 -93
- package/dist/src/fallback/handler.js.map +1 -1
- package/dist/src/fallback/handler.test.js +186 -173
- package/dist/src/fallback/handler.test.js.map +1 -1
- package/dist/src/fallback/types.d.ts +8 -0
- 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/hookAggregator.js +7 -0
- package/dist/src/hooks/hookAggregator.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.d.ts +113 -0
- package/dist/src/hooks/hookEventHandler.js +571 -0
- package/dist/src/hooks/hookEventHandler.js.map +1 -0
- package/dist/src/hooks/hookEventHandler.test.d.ts +6 -0
- package/dist/src/hooks/hookEventHandler.test.js +461 -0
- package/dist/src/hooks/hookEventHandler.test.js.map +1 -0
- package/dist/src/hooks/hookPlanner.d.ts +1 -5
- package/dist/src/hooks/hookPlanner.js +2 -7
- package/dist/src/hooks/hookPlanner.js.map +1 -1
- package/dist/src/hooks/hookPlanner.test.js +62 -2
- package/dist/src/hooks/hookPlanner.test.js.map +1 -1
- package/dist/src/hooks/hookRegistry.d.ts +6 -18
- package/dist/src/hooks/hookRegistry.js +49 -35
- package/dist/src/hooks/hookRegistry.js.map +1 -1
- package/dist/src/hooks/hookRegistry.test.js +167 -8
- package/dist/src/hooks/hookRegistry.test.js.map +1 -1
- package/dist/src/hooks/hookRunner.d.ts +5 -3
- package/dist/src/hooks/hookRunner.js +74 -18
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +174 -36
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/hookSystem.d.ts +40 -0
- package/dist/src/hooks/hookSystem.js +65 -0
- package/dist/src/hooks/hookSystem.js.map +1 -0
- package/dist/src/hooks/hookSystem.test.d.ts +6 -0
- package/dist/src/hooks/hookSystem.test.js +319 -0
- package/dist/src/hooks/hookSystem.test.js.map +1 -0
- package/dist/src/hooks/index.d.ts +17 -0
- package/dist/src/hooks/index.js +18 -0
- package/dist/src/hooks/index.js.map +1 -0
- package/dist/src/hooks/trustedHooks.d.ts +28 -0
- package/dist/src/hooks/trustedHooks.js +90 -0
- package/dist/src/hooks/trustedHooks.js.map +1 -0
- package/dist/src/hooks/trustedHooks.test.d.ts +6 -0
- package/dist/src/hooks/trustedHooks.test.js +154 -0
- package/dist/src/hooks/trustedHooks.test.js.map +1 -0
- package/dist/src/hooks/types.d.ts +21 -11
- package/dist/src/hooks/types.js +31 -27
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/hooks/types.test.js +5 -24
- package/dist/src/hooks/types.test.js.map +1 -1
- package/dist/src/ide/detect-ide.test.js +32 -1
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-client.js +9 -4
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-client.test.js +17 -0
- package/dist/src/ide/ide-client.test.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +1 -1
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/ide/types.d.ts +4 -4
- package/dist/src/index.d.ts +17 -1
- package/dist/src/index.js +18 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/auth-provider.d.ts +16 -0
- package/dist/src/mcp/auth-provider.js +7 -0
- package/dist/src/mcp/auth-provider.js.map +1 -0
- package/dist/src/mcp/google-auth-provider.d.ts +10 -2
- package/dist/src/mcp/google-auth-provider.js +28 -0
- package/dist/src/mcp/google-auth-provider.js.map +1 -1
- package/dist/src/mcp/google-auth-provider.test.js +45 -0
- package/dist/src/mcp/google-auth-provider.test.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 +31 -2
- 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/mcp/sa-impersonation-provider.d.ts +2 -2
- package/dist/src/mcp/sa-impersonation-provider.js.map +1 -1
- package/dist/src/mcp/token-storage/hybrid-token-storage.js +1 -1
- package/dist/src/mcp/token-storage/hybrid-token-storage.js.map +1 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.js +1 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
- package/dist/src/output/json-formatter.d.ts +2 -2
- package/dist/src/output/json-formatter.js +6 -3
- package/dist/src/output/json-formatter.js.map +1 -1
- package/dist/src/output/json-formatter.test.js +37 -9
- package/dist/src/output/json-formatter.test.js.map +1 -1
- package/dist/src/output/stream-json-formatter.js +6 -0
- package/dist/src/output/stream-json-formatter.js.map +1 -1
- package/dist/src/output/stream-json-formatter.test.js +98 -100
- package/dist/src/output/stream-json-formatter.test.js.map +1 -1
- package/dist/src/output/types.d.ts +3 -0
- package/dist/src/output/types.js.map +1 -1
- package/dist/src/policy/config.js +140 -15
- 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.d.ts +6 -0
- package/dist/src/policy/persistence.test.js +154 -0
- package/dist/src/policy/persistence.test.js.map +1 -0
- package/dist/src/policy/policies/agent.toml +31 -0
- package/dist/src/policy/policies/read-only.toml +5 -0
- package/dist/src/policy/policies/write.toml +5 -0
- package/dist/src/policy/policies/yolo.toml +1 -0
- package/dist/src/policy/policy-engine.d.ts +30 -1
- package/dist/src/policy/policy-engine.js +192 -5
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +520 -3
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/policy-updater.test.d.ts +6 -0
- package/dist/src/policy/policy-updater.test.js +116 -0
- package/dist/src/policy/policy-updater.test.js.map +1 -0
- package/dist/src/policy/shell-safety.test.d.ts +6 -0
- package/dist/src/policy/shell-safety.test.js +75 -0
- package/dist/src/policy/shell-safety.test.js.map +1 -0
- package/dist/src/policy/toml-loader.d.ts +3 -5
- package/dist/src/policy/toml-loader.js +12 -60
- package/dist/src/policy/toml-loader.js.map +1 -1
- package/dist/src/policy/toml-loader.test.js +38 -7
- package/dist/src/policy/toml-loader.test.js.map +1 -1
- package/dist/src/policy/types.d.ts +72 -1
- package/dist/src/policy/types.js +21 -0
- package/dist/src/policy/types.js.map +1 -1
- 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.d.ts +6 -0
- package/dist/src/policy/utils.test.js +64 -0
- package/dist/src/policy/utils.test.js.map +1 -0
- package/dist/src/resources/resource-registry.d.ts +30 -0
- package/dist/src/resources/resource-registry.js +57 -0
- package/dist/src/resources/resource-registry.js.map +1 -0
- package/dist/src/resources/resource-registry.test.d.ts +6 -0
- package/dist/src/resources/resource-registry.test.js +54 -0
- package/dist/src/resources/resource-registry.test.js.map +1 -0
- package/dist/src/routing/modelRouterService.js +0 -15
- package/dist/src/routing/modelRouterService.js.map +1 -1
- package/dist/src/routing/modelRouterService.test.js +0 -62
- package/dist/src/routing/modelRouterService.test.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.js +10 -21
- package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js +2 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/compositeStrategy.js +4 -2
- package/dist/src/routing/strategies/compositeStrategy.js.map +1 -1
- package/dist/src/routing/strategies/compositeStrategy.test.js +11 -10
- package/dist/src/routing/strategies/compositeStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js +20 -12
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.js +63 -39
- package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.js +3 -2
- package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
- package/dist/src/safety/checker-runner.js +17 -6
- package/dist/src/safety/checker-runner.js.map +1 -1
- 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/scheduler/types.d.ts +95 -0
- package/dist/src/scheduler/types.js +7 -0
- package/dist/src/scheduler/types.js.map +1 -0
- package/dist/src/services/chatCompressionService.d.ts +1 -0
- package/dist/src/services/chatCompressionService.js +38 -8
- package/dist/src/services/chatCompressionService.js.map +1 -1
- package/dist/src/services/chatCompressionService.test.js +35 -31
- package/dist/src/services/chatCompressionService.test.js.map +1 -1
- package/dist/src/services/chatRecordingService.d.ts +14 -0
- package/dist/src/services/chatRecordingService.js +37 -0
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/contextManager.d.ts +29 -0
- package/dist/src/services/contextManager.js +71 -0
- package/dist/src/services/contextManager.js.map +1 -0
- package/dist/src/services/contextManager.test.d.ts +6 -0
- package/dist/src/services/contextManager.test.js +104 -0
- package/dist/src/services/contextManager.test.js.map +1 -0
- package/dist/src/services/environmentSanitization.d.ts +15 -0
- package/dist/src/services/environmentSanitization.js +141 -0
- package/dist/src/services/environmentSanitization.js.map +1 -0
- package/dist/src/services/environmentSanitization.test.d.ts +6 -0
- package/dist/src/services/environmentSanitization.test.js +284 -0
- package/dist/src/services/environmentSanitization.test.js.map +1 -0
- package/dist/src/services/fileSystemService.d.ts +0 -9
- package/dist/src/services/fileSystemService.js +0 -11
- package/dist/src/services/fileSystemService.js.map +1 -1
- package/dist/src/services/gitService.js +18 -2
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/gitService.test.js +56 -0
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +5 -4
- 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.golden.test.js +32 -0
- package/dist/src/services/modelConfig.golden.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/modelConfigService.d.ts +4 -0
- package/dist/src/services/modelConfigService.js +8 -3
- package/dist/src/services/modelConfigService.js.map +1 -1
- package/dist/src/services/modelConfigService.test.js +221 -0
- package/dist/src/services/modelConfigService.test.js.map +1 -1
- package/dist/src/services/modelConfigServiceTestUtils.d.ts +10 -0
- package/dist/src/services/modelConfigServiceTestUtils.js +17 -0
- package/dist/src/services/modelConfigServiceTestUtils.js.map +1 -0
- package/dist/src/services/sessionSummaryService.d.ts +28 -0
- package/dist/src/services/sessionSummaryService.js +131 -0
- package/dist/src/services/sessionSummaryService.js.map +1 -0
- package/dist/src/services/sessionSummaryService.test.d.ts +6 -0
- package/dist/src/services/sessionSummaryService.test.js +785 -0
- package/dist/src/services/sessionSummaryService.test.js.map +1 -0
- package/dist/src/services/sessionSummaryUtils.d.ts +16 -0
- package/dist/src/services/sessionSummaryUtils.js +129 -0
- package/dist/src/services/sessionSummaryUtils.js.map +1 -0
- package/dist/src/services/sessionSummaryUtils.test.d.ts +6 -0
- package/dist/src/services/sessionSummaryUtils.test.js +137 -0
- package/dist/src/services/sessionSummaryUtils.test.js.map +1 -0
- package/dist/src/services/shellExecutionService.d.ts +4 -0
- package/dist/src/services/shellExecutionService.js +45 -27
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +240 -8
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/services/test-data/resolved-aliases-retry.golden.json +238 -0
- package/dist/src/services/test-data/resolved-aliases.golden.json +36 -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 +1 -0
- package/dist/src/skills/skillLoader.test.js +2 -0
- package/dist/src/skills/skillLoader.test.js.map +1 -0
- package/dist/src/skills/skillManager.d.ts +51 -0
- 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/activity-detector.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +11 -7
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +127 -47
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +105 -18
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +9 -3
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +20 -5
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/config.js +2 -0
- package/dist/src/telemetry/config.js.map +1 -1
- package/dist/src/telemetry/config.test.js +25 -0
- package/dist/src/telemetry/config.test.js.map +1 -1
- package/dist/src/telemetry/gcp-exporters.d.ts +4 -3
- package/dist/src/telemetry/gcp-exporters.js +8 -4
- package/dist/src/telemetry/gcp-exporters.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +2 -1
- package/dist/src/telemetry/index.js +2 -1
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +5 -3
- package/dist/src/telemetry/loggers.js +353 -334
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.circular.js +1 -0
- package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +238 -31
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +22 -0
- package/dist/src/telemetry/metrics.js +32 -0
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js +64 -0
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/telemetry/sanitize.d.ts +25 -0
- package/dist/src/telemetry/sanitize.js +48 -0
- package/dist/src/telemetry/sanitize.js.map +1 -0
- package/dist/src/telemetry/sanitize.test.d.ts +6 -0
- package/dist/src/telemetry/sanitize.test.js +279 -0
- package/dist/src/telemetry/sanitize.test.js.map +1 -0
- package/dist/src/telemetry/sdk.d.ts +9 -2
- package/dist/src/telemetry/sdk.js +142 -17
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/sdk.test.js +130 -28
- package/dist/src/telemetry/sdk.test.js.map +1 -1
- package/dist/src/telemetry/semantic.js +1 -1
- package/dist/src/telemetry/semantic.js.map +1 -1
- package/dist/src/telemetry/startupProfiler.d.ts +51 -0
- package/dist/src/telemetry/startupProfiler.js +170 -0
- package/dist/src/telemetry/startupProfiler.js.map +1 -0
- package/dist/src/telemetry/startupProfiler.test.d.ts +6 -0
- package/dist/src/telemetry/startupProfiler.test.js +285 -0
- package/dist/src/telemetry/startupProfiler.test.js.map +1 -0
- package/dist/src/telemetry/telemetry.test.js +10 -3
- package/dist/src/telemetry/telemetry.test.js.map +1 -1
- package/dist/src/telemetry/trace.js +2 -2
- package/dist/src/telemetry/trace.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +62 -16
- package/dist/src/telemetry/types.js +157 -27
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +1 -0
- package/dist/src/telemetry/uiTelemetry.js +2 -0
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +4 -0
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/test-utils/mock-message-bus.d.ts +61 -0
- package/dist/src/test-utils/mock-message-bus.js +160 -0
- package/dist/src/test-utils/mock-message-bus.js.map +1 -0
- package/dist/src/test-utils/mock-tool.d.ts +5 -3
- package/dist/src/test-utils/mock-tool.js +12 -11
- 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.d.ts +6 -0
- package/dist/src/tools/confirmation-policy.test.js +142 -0
- package/dist/src/tools/confirmation-policy.test.js.map +1 -0
- package/dist/src/tools/edit.d.ts +27 -5
- package/dist/src/tools/edit.js +449 -137
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +258 -526
- package/dist/src/tools/edit.test.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 +57 -0
- package/dist/src/tools/get-internal-docs.test.js.map +1 -0
- 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.d.ts +3 -1
- package/dist/src/tools/mcp-client-manager.js +42 -9
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.test.js +66 -10
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +44 -6
- package/dist/src/tools/mcp-client.js +476 -176
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +633 -36
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +2 -2
- package/dist/src/tools/mcp-tool.js +20 -7
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +35 -5
- 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 +3 -4
- 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/modifiable-tool.js.map +1 -1
- package/dist/src/tools/modifiable-tool.test.js +22 -13
- package/dist/src/tools/modifiable-tool.test.js.map +1 -1
- package/dist/src/tools/read-file.d.ts +2 -2
- package/dist/src/tools/read-file.js +2 -2
- 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 +7 -6
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +4 -3
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/ripGrep.d.ts +3 -2
- package/dist/src/tools/ripGrep.js +18 -7
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +60 -4
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +5 -7
- package/dist/src/tools/shell.js +77 -51
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +59 -63
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-error.d.ts +2 -1
- package/dist/src/tools/tool-error.js +2 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +17 -0
- package/dist/src/tools/tool-names.js +59 -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 +11 -7
- package/dist/src/tools/tool-registry.js +15 -10
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +16 -11
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +25 -6
- package/dist/src/tools/tools.js +44 -25
- 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 +22 -9
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +18 -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 +5 -5
- 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 +10 -4
- 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/bfsFileSearch.d.ts +8 -0
- package/dist/src/utils/bfsFileSearch.js +63 -23
- package/dist/src/utils/bfsFileSearch.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.test.js +65 -1
- package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
- package/dist/src/utils/checkpointUtils.d.ts +82 -0
- package/dist/src/utils/checkpointUtils.js +117 -0
- package/dist/src/utils/checkpointUtils.js.map +1 -0
- package/dist/src/utils/checkpointUtils.test.d.ts +6 -0
- package/dist/src/utils/checkpointUtils.test.js +229 -0
- package/dist/src/utils/checkpointUtils.test.js.map +1 -0
- package/dist/src/utils/customHeaderUtils.d.ts +9 -0
- package/dist/src/utils/customHeaderUtils.js +34 -0
- package/dist/src/utils/customHeaderUtils.js.map +1 -0
- package/dist/src/utils/customHeaderUtils.test.d.ts +6 -0
- package/dist/src/utils/customHeaderUtils.test.js +77 -0
- package/dist/src/utils/customHeaderUtils.test.js.map +1 -0
- package/dist/src/utils/debugLogger.d.ts +3 -0
- package/dist/src/utils/debugLogger.js +28 -0
- package/dist/src/utils/debugLogger.js.map +1 -1
- package/dist/src/utils/editCorrector.js +6 -5
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +7 -3
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/editor.d.ts +9 -1
- package/dist/src/utils/editor.js +23 -14
- package/dist/src/utils/editor.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/errorReporting.d.ts +1 -1
- package/dist/src/utils/errorReporting.js +13 -12
- package/dist/src/utils/errorReporting.js.map +1 -1
- package/dist/src/utils/errorReporting.test.js +17 -14
- package/dist/src/utils/errorReporting.test.js.map +1 -1
- package/dist/src/utils/errors.d.ts +8 -0
- package/dist/src/utils/errors.js +39 -2
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.d.ts +6 -0
- package/dist/src/utils/errors.test.js +155 -0
- package/dist/src/utils/errors.test.js.map +1 -0
- package/dist/src/utils/events.d.ts +49 -19
- package/dist/src/utils/events.js +21 -9
- 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/exitCodes.d.ts +12 -0
- package/dist/src/utils/exitCodes.js +13 -0
- package/dist/src/utils/exitCodes.js.map +1 -0
- package/dist/src/utils/extensionLoader.d.ts +2 -2
- package/dist/src/utils/extensionLoader.js +5 -6
- package/dist/src/utils/extensionLoader.js.map +1 -1
- package/dist/src/utils/extensionLoader.test.js +11 -0
- package/dist/src/utils/extensionLoader.test.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +1 -1
- package/dist/src/utils/fetch.js +3 -3
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/fileUtils.d.ts +4 -0
- package/dist/src/utils/fileUtils.js +53 -0
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +127 -1
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/filesearch/crawlCache.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/dist/src/utils/flashFallback.test.js +1 -1
- package/dist/src/utils/flashFallback.test.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 +3 -1
- package/dist/src/utils/generateContentResponseUtilities.js +106 -0
- package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
- package/dist/src/utils/generateContentResponseUtilities.test.js +279 -2
- package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -1
- package/dist/src/utils/getFolderStructure.js +7 -2
- package/dist/src/utils/getFolderStructure.js.map +1 -1
- package/dist/src/utils/googleErrors.js +31 -18
- package/dist/src/utils/googleErrors.js.map +1 -1
- package/dist/src/utils/googleErrors.test.js +10 -2
- package/dist/src/utils/googleErrors.test.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.d.ts +3 -3
- package/dist/src/utils/googleQuotaErrors.js +32 -6
- package/dist/src/utils/googleQuotaErrors.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.test.js +94 -2
- package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.d.ts +5 -0
- package/dist/src/utils/memoryDiscovery.js +9 -5
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +31 -1
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.test.js +4 -0
- package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
- package/dist/src/utils/package.d.ts +14 -0
- package/dist/src/utils/package.js +15 -2
- package/dist/src/utils/package.js.map +1 -1
- package/dist/src/utils/pathCorrector.js +12 -2
- package/dist/src/utils/pathCorrector.js.map +1 -1
- package/dist/src/utils/pathCorrector.test.js +6 -2
- package/dist/src/utils/pathCorrector.test.js.map +1 -1
- package/dist/src/utils/retry.d.ts +11 -0
- package/dist/src/utils/retry.js +62 -21
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +170 -10
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/schemaValidator.d.ts +1 -1
- package/dist/src/utils/schemaValidator.js +1 -1
- package/dist/src/utils/shell-permissions.d.ts +52 -0
- package/dist/src/utils/shell-permissions.js +188 -0
- package/dist/src/utils/shell-permissions.js.map +1 -0
- package/dist/src/utils/shell-permissions.test.d.ts +6 -0
- package/dist/src/utils/shell-permissions.test.js +369 -0
- package/dist/src/utils/shell-permissions.test.js.map +1 -0
- package/dist/src/utils/shell-utils.d.ts +16 -47
- package/dist/src/utils/shell-utils.js +99 -195
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +99 -288
- package/dist/src/utils/shell-utils.test.js.map +1 -1
- package/dist/src/utils/stdio.d.ts +2 -2
- package/dist/src/utils/stdio.js +2 -2
- package/dist/src/utils/stdio.js.map +1 -1
- package/dist/src/utils/stdio.test.js +5 -5
- package/dist/src/utils/stdio.test.js.map +1 -1
- package/dist/src/utils/summarizer.test.js +3 -2
- package/dist/src/utils/summarizer.test.js.map +1 -1
- package/dist/src/utils/terminal.d.ts +4 -0
- package/dist/src/utils/terminal.js +12 -0
- package/dist/src/utils/terminal.js.map +1 -1
- package/dist/src/utils/terminalSerializer.test.js +17 -0
- package/dist/src/utils/terminalSerializer.test.js.map +1 -1
- package/dist/src/utils/tokenCalculation.d.ts +19 -0
- package/dist/src/utils/tokenCalculation.js +85 -0
- package/dist/src/utils/tokenCalculation.js.map +1 -0
- package/dist/src/utils/tokenCalculation.test.d.ts +6 -0
- package/dist/src/utils/tokenCalculation.test.js +87 -0
- package/dist/src/utils/tokenCalculation.test.js.map +1 -0
- package/dist/src/utils/tool-utils.d.ts +9 -0
- package/dist/src/utils/tool-utils.js +29 -0
- package/dist/src/utils/tool-utils.js.map +1 -1
- package/dist/src/utils/tool-utils.test.js +17 -2
- package/dist/src/utils/tool-utils.test.js.map +1 -1
- package/dist/src/utils/version.d.ts +6 -0
- package/dist/src/utils/version.js +15 -0
- package/dist/src/utils/version.js.map +1 -0
- package/dist/src/utils/version.test.d.ts +6 -0
- package/dist/src/utils/version.test.js +39 -0
- package/dist/src/utils/version.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -7
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# Getting started with Gemini CLI extensions
|
|
2
|
+
|
|
3
|
+
This guide will walk you through creating your first Gemini CLI extension.
|
|
4
|
+
You'll learn how to set up a new extension, add a custom tool via an MCP server,
|
|
5
|
+
create a custom command, and provide context to the model with a `GEMINI.md`
|
|
6
|
+
file.
|
|
7
|
+
|
|
8
|
+
## Prerequisites
|
|
9
|
+
|
|
10
|
+
Before you start, make sure you have the Gemini CLI installed and a basic
|
|
11
|
+
understanding of Node.js and TypeScript.
|
|
12
|
+
|
|
13
|
+
## Step 1: Create a new extension
|
|
14
|
+
|
|
15
|
+
The easiest way to start is by using one of the built-in templates. We'll use
|
|
16
|
+
the `mcp-server` example as our foundation.
|
|
17
|
+
|
|
18
|
+
Run the following command to create a new directory called `my-first-extension`
|
|
19
|
+
with the template files:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
gemini extensions new my-first-extension mcp-server
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
This will create a new directory with the following structure:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
my-first-extension/
|
|
29
|
+
├── example.ts
|
|
30
|
+
├── gemini-extension.json
|
|
31
|
+
├── package.json
|
|
32
|
+
└── tsconfig.json
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Step 2: Understand the extension files
|
|
36
|
+
|
|
37
|
+
Let's look at the key files in your new extension.
|
|
38
|
+
|
|
39
|
+
### `gemini-extension.json`
|
|
40
|
+
|
|
41
|
+
This is the manifest file for your extension. It tells Gemini CLI how to load
|
|
42
|
+
and use your extension.
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"name": "my-first-extension",
|
|
47
|
+
"version": "1.0.0",
|
|
48
|
+
"mcpServers": {
|
|
49
|
+
"nodeServer": {
|
|
50
|
+
"command": "node",
|
|
51
|
+
"args": ["${extensionPath}${/}dist${/}example.js"],
|
|
52
|
+
"cwd": "${extensionPath}"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
- `name`: The unique name for your extension.
|
|
59
|
+
- `version`: The version of your extension.
|
|
60
|
+
- `mcpServers`: This section defines one or more Model Context Protocol (MCP)
|
|
61
|
+
servers. MCP servers are how you can add new tools for the model to use.
|
|
62
|
+
- `command`, `args`, `cwd`: These fields specify how to start your server.
|
|
63
|
+
Notice the use of the `${extensionPath}` variable, which Gemini CLI replaces
|
|
64
|
+
with the absolute path to your extension's installation directory. This
|
|
65
|
+
allows your extension to work regardless of where it's installed.
|
|
66
|
+
|
|
67
|
+
### `example.ts`
|
|
68
|
+
|
|
69
|
+
This file contains the source code for your MCP server. It's a simple Node.js
|
|
70
|
+
server that uses the `@modelcontextprotocol/sdk`.
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
/**
|
|
74
|
+
* @license
|
|
75
|
+
* Copyright 2025 Google LLC
|
|
76
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
80
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
81
|
+
import { z } from 'zod';
|
|
82
|
+
|
|
83
|
+
const server = new McpServer({
|
|
84
|
+
name: 'prompt-server',
|
|
85
|
+
version: '1.0.0',
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
// Registers a new tool named 'fetch_posts'
|
|
89
|
+
server.registerTool(
|
|
90
|
+
'fetch_posts',
|
|
91
|
+
{
|
|
92
|
+
description: 'Fetches a list of posts from a public API.',
|
|
93
|
+
inputSchema: z.object({}).shape,
|
|
94
|
+
},
|
|
95
|
+
async () => {
|
|
96
|
+
const apiResponse = await fetch(
|
|
97
|
+
'https://jsonplaceholder.typicode.com/posts',
|
|
98
|
+
);
|
|
99
|
+
const posts = await apiResponse.json();
|
|
100
|
+
const response = { posts: posts.slice(0, 5) };
|
|
101
|
+
return {
|
|
102
|
+
content: [
|
|
103
|
+
{
|
|
104
|
+
type: 'text',
|
|
105
|
+
text: JSON.stringify(response),
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
};
|
|
109
|
+
},
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
// ... (prompt registration omitted for brevity)
|
|
113
|
+
|
|
114
|
+
const transport = new StdioServerTransport();
|
|
115
|
+
await server.connect(transport);
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
This server defines a single tool called `fetch_posts` that fetches data from a
|
|
119
|
+
public API.
|
|
120
|
+
|
|
121
|
+
### `package.json` and `tsconfig.json`
|
|
122
|
+
|
|
123
|
+
These are standard configuration files for a TypeScript project. The
|
|
124
|
+
`package.json` file defines dependencies and a `build` script, and
|
|
125
|
+
`tsconfig.json` configures the TypeScript compiler.
|
|
126
|
+
|
|
127
|
+
## Step 3: Build and link your extension
|
|
128
|
+
|
|
129
|
+
Before you can use the extension, you need to compile the TypeScript code and
|
|
130
|
+
link the extension to your Gemini CLI installation for local development.
|
|
131
|
+
|
|
132
|
+
1. **Install dependencies:**
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
cd my-first-extension
|
|
136
|
+
npm install
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
2. **Build the server:**
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
npm run build
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
This will compile `example.ts` into `dist/example.js`, which is the file
|
|
146
|
+
referenced in your `gemini-extension.json`.
|
|
147
|
+
|
|
148
|
+
3. **Link the extension:**
|
|
149
|
+
|
|
150
|
+
The `link` command creates a symbolic link from the Gemini CLI extensions
|
|
151
|
+
directory to your development directory. This means any changes you make
|
|
152
|
+
will be reflected immediately without needing to reinstall.
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
gemini extensions link .
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Now, restart your Gemini CLI session. The new `fetch_posts` tool will be
|
|
159
|
+
available. You can test it by asking: "fetch posts".
|
|
160
|
+
|
|
161
|
+
## Step 4: Add a custom command
|
|
162
|
+
|
|
163
|
+
Custom commands provide a way to create shortcuts for complex prompts. Let's add
|
|
164
|
+
a command that searches for a pattern in your code.
|
|
165
|
+
|
|
166
|
+
1. Create a `commands` directory and a subdirectory for your command group:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
mkdir -p commands/fs
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
2. Create a file named `commands/fs/grep-code.toml`:
|
|
173
|
+
|
|
174
|
+
```toml
|
|
175
|
+
prompt = """
|
|
176
|
+
Please summarize the findings for the pattern `{{args}}`.
|
|
177
|
+
|
|
178
|
+
Search Results:
|
|
179
|
+
!{grep -r {{args}} .}
|
|
180
|
+
"""
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
This command, `/fs:grep-code`, will take an argument, run the `grep` shell
|
|
184
|
+
command with it, and pipe the results into a prompt for summarization.
|
|
185
|
+
|
|
186
|
+
After saving the file, restart the Gemini CLI. You can now run
|
|
187
|
+
`/fs:grep-code "some pattern"` to use your new command.
|
|
188
|
+
|
|
189
|
+
## Step 5: Add a custom `GEMINI.md`
|
|
190
|
+
|
|
191
|
+
You can provide persistent context to the model by adding a `GEMINI.md` file to
|
|
192
|
+
your extension. This is useful for giving the model instructions on how to
|
|
193
|
+
behave or information about your extension's tools. Note that you may not always
|
|
194
|
+
need this for extensions built to expose commands and prompts.
|
|
195
|
+
|
|
196
|
+
1. Create a file named `GEMINI.md` in the root of your extension directory:
|
|
197
|
+
|
|
198
|
+
```markdown
|
|
199
|
+
# My First Extension Instructions
|
|
200
|
+
|
|
201
|
+
You are an expert developer assistant. When the user asks you to fetch
|
|
202
|
+
posts, use the `fetch_posts` tool. Be concise in your responses.
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
2. Update your `gemini-extension.json` to tell the CLI to load this file:
|
|
206
|
+
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"name": "my-first-extension",
|
|
210
|
+
"version": "1.0.0",
|
|
211
|
+
"contextFileName": "GEMINI.md",
|
|
212
|
+
"mcpServers": {
|
|
213
|
+
"nodeServer": {
|
|
214
|
+
"command": "node",
|
|
215
|
+
"args": ["${extensionPath}${/}dist${/}example.js"],
|
|
216
|
+
"cwd": "${extensionPath}"
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Restart the CLI again. The model will now have the context from your `GEMINI.md`
|
|
223
|
+
file in every session where the extension is active.
|
|
224
|
+
|
|
225
|
+
## Step 6: Releasing your extension
|
|
226
|
+
|
|
227
|
+
Once you are happy with your extension, you can share it with others. The two
|
|
228
|
+
primary ways of releasing extensions are via a Git repository or through GitHub
|
|
229
|
+
Releases. Using a public Git repository is the simplest method.
|
|
230
|
+
|
|
231
|
+
For detailed instructions on both methods, please refer to the
|
|
232
|
+
[Extension Releasing Guide](./extension-releasing.md).
|
|
233
|
+
|
|
234
|
+
## Conclusion
|
|
235
|
+
|
|
236
|
+
You've successfully created a Gemini CLI extension! You learned how to:
|
|
237
|
+
|
|
238
|
+
- Bootstrap a new extension from a template.
|
|
239
|
+
- Add custom tools with an MCP server.
|
|
240
|
+
- Create convenient custom commands.
|
|
241
|
+
- Provide persistent context to the model.
|
|
242
|
+
- Link your extension for local development.
|
|
243
|
+
|
|
244
|
+
From here, you can explore more advanced features and build powerful new
|
|
245
|
+
capabilities into the Gemini CLI.
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
# Gemini CLI extensions
|
|
2
|
+
|
|
3
|
+
_This documentation is up-to-date with the v0.4.0 release._
|
|
4
|
+
|
|
5
|
+
Gemini CLI extensions package prompts, MCP servers, and custom commands into a
|
|
6
|
+
familiar and user-friendly format. With extensions, you can expand the
|
|
7
|
+
capabilities of Gemini CLI and share those capabilities with others. They are
|
|
8
|
+
designed to be easily installable and shareable.
|
|
9
|
+
|
|
10
|
+
To see examples of extensions, you can browse a gallery of
|
|
11
|
+
[Gemini CLI extensions](https://geminicli.com/extensions/browse/).
|
|
12
|
+
|
|
13
|
+
See [getting started docs](getting-started-extensions.md) for a guide on
|
|
14
|
+
creating your first extension.
|
|
15
|
+
|
|
16
|
+
See [releasing docs](extension-releasing.md) for an advanced guide on setting up
|
|
17
|
+
GitHub releases.
|
|
18
|
+
|
|
19
|
+
## Extension management
|
|
20
|
+
|
|
21
|
+
We offer a suite of extension management tools using `gemini extensions`
|
|
22
|
+
commands.
|
|
23
|
+
|
|
24
|
+
Note that these commands are not supported from within the CLI, although you can
|
|
25
|
+
list installed extensions using the `/extensions list` subcommand.
|
|
26
|
+
|
|
27
|
+
Note that all of these commands will only be reflected in active CLI sessions on
|
|
28
|
+
restart.
|
|
29
|
+
|
|
30
|
+
### Installing an extension
|
|
31
|
+
|
|
32
|
+
You can install an extension using `gemini extensions install` with either a
|
|
33
|
+
GitHub URL or a local path.
|
|
34
|
+
|
|
35
|
+
Note that we create a copy of the installed extension, so you will need to run
|
|
36
|
+
`gemini extensions update` to pull in changes from both locally-defined
|
|
37
|
+
extensions and those on GitHub.
|
|
38
|
+
|
|
39
|
+
NOTE: If you are installing an extension from GitHub, you'll need to have `git`
|
|
40
|
+
installed on your machine. See
|
|
41
|
+
[git installation instructions](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
|
|
42
|
+
for help.
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
gemini extensions install <source> [--ref <ref>] [--auto-update] [--pre-release] [--consent]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- `<source>`: The github URL or local path of the extension to install.
|
|
49
|
+
- `--ref`: The git ref to install from.
|
|
50
|
+
- `--auto-update`: Enable auto-update for this extension.
|
|
51
|
+
- `--pre-release`: Enable pre-release versions for this extension.
|
|
52
|
+
- `--consent`: Acknowledge the security risks of installing an extension and
|
|
53
|
+
skip the confirmation prompt.
|
|
54
|
+
|
|
55
|
+
### Uninstalling an extension
|
|
56
|
+
|
|
57
|
+
To uninstall one or more extensions, run
|
|
58
|
+
`gemini extensions uninstall <name...>`:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
gemini extensions uninstall gemini-cli-security gemini-cli-another-extension
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Disabling an extension
|
|
65
|
+
|
|
66
|
+
Extensions are, by default, enabled across all workspaces. You can disable an
|
|
67
|
+
extension entirely or for specific workspace.
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
gemini extensions disable <name> [--scope <scope>]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
- `<name>`: The name of the extension to disable.
|
|
74
|
+
- `--scope`: The scope to disable the extension in (`user` or `workspace`).
|
|
75
|
+
|
|
76
|
+
### Enabling an extension
|
|
77
|
+
|
|
78
|
+
You can enable extensions using `gemini extensions enable <name>`. You can also
|
|
79
|
+
enable an extension for a specific workspace using
|
|
80
|
+
`gemini extensions enable <name> --scope=workspace` from within that workspace.
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
gemini extensions enable <name> [--scope <scope>]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
- `<name>`: The name of the extension to enable.
|
|
87
|
+
- `--scope`: The scope to enable the extension in (`user` or `workspace`).
|
|
88
|
+
|
|
89
|
+
### Updating an extension
|
|
90
|
+
|
|
91
|
+
For extensions installed from a local path or a git repository, you can
|
|
92
|
+
explicitly update to the latest version (as reflected in the
|
|
93
|
+
`gemini-extension.json` `version` field) with `gemini extensions update <name>`.
|
|
94
|
+
|
|
95
|
+
You can update all extensions with:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
gemini extensions update --all
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Create a boilerplate extension
|
|
102
|
+
|
|
103
|
+
We offer several example extensions `context`, `custom-commands`,
|
|
104
|
+
`exclude-tools` and `mcp-server`. You can view these examples
|
|
105
|
+
[here](https://github.com/google-gemini/gemini-cli/tree/main/packages/cli/src/commands/extensions/examples).
|
|
106
|
+
|
|
107
|
+
To copy one of these examples into a development directory using the type of
|
|
108
|
+
your choosing, run:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
gemini extensions new <path> [template]
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
- `<path>`: The path to create the extension in.
|
|
115
|
+
- `[template]`: The boilerplate template to use.
|
|
116
|
+
|
|
117
|
+
### Link a local extension
|
|
118
|
+
|
|
119
|
+
The `gemini extensions link` command will create a symbolic link from the
|
|
120
|
+
extension installation directory to the development path.
|
|
121
|
+
|
|
122
|
+
This is useful so you don't have to run `gemini extensions update` every time
|
|
123
|
+
you make changes you'd like to test.
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
gemini extensions link <path>
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
- `<path>`: The path of the extension to link.
|
|
130
|
+
|
|
131
|
+
## How it works
|
|
132
|
+
|
|
133
|
+
On startup, Gemini CLI looks for extensions in `<home>/.gemini/extensions`
|
|
134
|
+
|
|
135
|
+
Extensions exist as a directory that contains a `gemini-extension.json` file.
|
|
136
|
+
For example:
|
|
137
|
+
|
|
138
|
+
`<home>/.gemini/extensions/my-extension/gemini-extension.json`
|
|
139
|
+
|
|
140
|
+
### `gemini-extension.json`
|
|
141
|
+
|
|
142
|
+
The `gemini-extension.json` file contains the configuration for the extension.
|
|
143
|
+
The file has the following structure:
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"name": "my-extension",
|
|
148
|
+
"version": "1.0.0",
|
|
149
|
+
"mcpServers": {
|
|
150
|
+
"my-server": {
|
|
151
|
+
"command": "node my-server.js"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"contextFileName": "GEMINI.md",
|
|
155
|
+
"excludeTools": ["run_shell_command"]
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
- `name`: The name of the extension. This is used to uniquely identify the
|
|
160
|
+
extension and for conflict resolution when extension commands have the same
|
|
161
|
+
name as user or project commands. The name should be lowercase or numbers and
|
|
162
|
+
use dashes instead of underscores or spaces. This is how users will refer to
|
|
163
|
+
your extension in the CLI. Note that we expect this name to match the
|
|
164
|
+
extension directory name.
|
|
165
|
+
- `version`: The version of the extension.
|
|
166
|
+
- `mcpServers`: A map of MCP servers to settings. The key is the name of the
|
|
167
|
+
server, and the value is the server configuration. These servers will be
|
|
168
|
+
loaded on startup just like MCP servers settingsd in a
|
|
169
|
+
[`settings.json` file](../get-started/configuration.md). If both an extension
|
|
170
|
+
and a `settings.json` file settings an MCP server with the same name, the
|
|
171
|
+
server defined in the `settings.json` file takes precedence.
|
|
172
|
+
- Note that all MCP server configuration options are supported except for
|
|
173
|
+
`trust`.
|
|
174
|
+
- `contextFileName`: The name of the file that contains the context for the
|
|
175
|
+
extension. This will be used to load the context from the extension directory.
|
|
176
|
+
If this property is not used but a `GEMINI.md` file is present in your
|
|
177
|
+
extension directory, then that file will be loaded.
|
|
178
|
+
- `excludeTools`: An array of tool names to exclude from the model. You can also
|
|
179
|
+
specify command-specific restrictions for tools that support it, like the
|
|
180
|
+
`run_shell_command` tool. For example,
|
|
181
|
+
`"excludeTools": ["run_shell_command(rm -rf)"]` will block the `rm -rf`
|
|
182
|
+
command. Note that this differs from the MCP server `excludeTools`
|
|
183
|
+
functionality, which can be listed in the MCP server config.
|
|
184
|
+
|
|
185
|
+
When Gemini CLI starts, it loads all the extensions and merges their
|
|
186
|
+
configurations. If there are any conflicts, the workspace configuration takes
|
|
187
|
+
precedence.
|
|
188
|
+
|
|
189
|
+
### Settings
|
|
190
|
+
|
|
191
|
+
_Note: This is an experimental feature. We do not yet recommend extension
|
|
192
|
+
authors introduce settings as part of their core flows._
|
|
193
|
+
|
|
194
|
+
Extensions can define settings that the user will be prompted to provide upon
|
|
195
|
+
installation. This is useful for things like API keys, URLs, or other
|
|
196
|
+
configuration that the extension needs to function.
|
|
197
|
+
|
|
198
|
+
To define settings, add a `settings` array to your `gemini-extension.json` file.
|
|
199
|
+
Each object in the array should have the following properties:
|
|
200
|
+
|
|
201
|
+
- `name`: A user-friendly name for the setting.
|
|
202
|
+
- `description`: A description of the setting and what it's used for.
|
|
203
|
+
- `envVar`: The name of the environment variable that the setting will be stored
|
|
204
|
+
as.
|
|
205
|
+
- `sensitive`: Optional boolean. If true, obfuscates the input the user provides
|
|
206
|
+
and stores the secret in keychain storage. **Example**
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
{
|
|
210
|
+
"name": "my-api-extension",
|
|
211
|
+
"version": "1.0.0",
|
|
212
|
+
"settings": [
|
|
213
|
+
{
|
|
214
|
+
"name": "API Key",
|
|
215
|
+
"description": "Your API key for the service.",
|
|
216
|
+
"envVar": "MY_API_KEY"
|
|
217
|
+
}
|
|
218
|
+
]
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
When a user installs this extension, they will be prompted to enter their API
|
|
223
|
+
key. The value will be saved to a `.env` file in the extension's directory
|
|
224
|
+
(e.g., `<home>/.gemini/extensions/my-api-extension/.env`).
|
|
225
|
+
|
|
226
|
+
You can view a list of an extension's settings by running:
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
gemini extensions settings list <extension name>
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
and you can update a given setting using:
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
gemini extensions settings set <extension name> <setting name> [--scope <scope>]
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
- `--scope`: The scope to set the setting in (`user` or `workspace`). This is
|
|
239
|
+
optional and will default to `user`.
|
|
240
|
+
|
|
241
|
+
### Custom commands
|
|
242
|
+
|
|
243
|
+
Extensions can provide [custom commands](../cli/custom-commands.md) by placing
|
|
244
|
+
TOML files in a `commands/` subdirectory within the extension directory. These
|
|
245
|
+
commands follow the same format as user and project custom commands and use
|
|
246
|
+
standard naming conventions.
|
|
247
|
+
|
|
248
|
+
**Example**
|
|
249
|
+
|
|
250
|
+
An extension named `gcp` with the following structure:
|
|
251
|
+
|
|
252
|
+
```
|
|
253
|
+
.gemini/extensions/gcp/
|
|
254
|
+
├── gemini-extension.json
|
|
255
|
+
└── commands/
|
|
256
|
+
├── deploy.toml
|
|
257
|
+
└── gcs/
|
|
258
|
+
└── sync.toml
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Would provide these commands:
|
|
262
|
+
|
|
263
|
+
- `/deploy` - Shows as `[gcp] Custom command from deploy.toml` in help
|
|
264
|
+
- `/gcs:sync` - Shows as `[gcp] Custom command from sync.toml` in help
|
|
265
|
+
|
|
266
|
+
### Conflict resolution
|
|
267
|
+
|
|
268
|
+
Extension commands have the lowest precedence. When a conflict occurs with user
|
|
269
|
+
or project commands:
|
|
270
|
+
|
|
271
|
+
1. **No conflict**: Extension command uses its natural name (e.g., `/deploy`)
|
|
272
|
+
2. **With conflict**: Extension command is renamed with the extension prefix
|
|
273
|
+
(e.g., `/gcp.deploy`)
|
|
274
|
+
|
|
275
|
+
For example, if both a user and the `gcp` extension define a `deploy` command:
|
|
276
|
+
|
|
277
|
+
- `/deploy` - Executes the user's deploy command
|
|
278
|
+
- `/gcp.deploy` - Executes the extension's deploy command (marked with `[gcp]`
|
|
279
|
+
tag)
|
|
280
|
+
|
|
281
|
+
## Variables
|
|
282
|
+
|
|
283
|
+
Gemini CLI extensions allow variable substitution in `gemini-extension.json`.
|
|
284
|
+
This can be useful if e.g., you need the current directory to run an MCP server
|
|
285
|
+
using `"cwd": "${extensionPath}${/}run.ts"`.
|
|
286
|
+
|
|
287
|
+
**Supported variables:**
|
|
288
|
+
|
|
289
|
+
| variable | description |
|
|
290
|
+
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
291
|
+
| `${extensionPath}` | The fully-qualified path of the extension in the user's filesystem e.g., '/Users/username/.gemini/extensions/example-extension'. This will not unwrap symlinks. |
|
|
292
|
+
| `${workspacePath}` | The fully-qualified path of the current workspace. |
|
|
293
|
+
| `${/} or ${pathSeparator}` | The path separator (differs per OS). |
|
package/dist/docs/faq.md
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Frequently asked questions (FAQ)
|
|
2
|
+
|
|
3
|
+
This page provides answers to common questions and solutions to frequent
|
|
4
|
+
problems encountered while using Gemini CLI.
|
|
5
|
+
|
|
6
|
+
## General issues
|
|
7
|
+
|
|
8
|
+
### Why am I getting an `API error: 429 - Resource exhausted`?
|
|
9
|
+
|
|
10
|
+
This error indicates that you have exceeded your API request limit. The Gemini
|
|
11
|
+
API has rate limits to prevent abuse and ensure fair usage.
|
|
12
|
+
|
|
13
|
+
To resolve this, you can:
|
|
14
|
+
|
|
15
|
+
- **Check your usage:** Review your API usage in the Google AI Studio or your
|
|
16
|
+
Google Cloud project dashboard.
|
|
17
|
+
- **Optimize your prompts:** If you are making many requests in a short period,
|
|
18
|
+
try to batch your prompts or introduce delays between requests.
|
|
19
|
+
- **Request a quota increase:** If you consistently need a higher limit, you can
|
|
20
|
+
request a quota increase from Google.
|
|
21
|
+
|
|
22
|
+
### Why am I getting an `ERR_REQUIRE_ESM` error when running `npm run start`?
|
|
23
|
+
|
|
24
|
+
This error typically occurs in Node.js projects when there is a mismatch between
|
|
25
|
+
CommonJS and ES Modules.
|
|
26
|
+
|
|
27
|
+
This is often due to a misconfiguration in your `package.json` or
|
|
28
|
+
`tsconfig.json`. Ensure that:
|
|
29
|
+
|
|
30
|
+
1. Your `package.json` has `"type": "module"`.
|
|
31
|
+
2. Your `tsconfig.json` has `"module": "NodeNext"` or a compatible setting in
|
|
32
|
+
the `compilerOptions`.
|
|
33
|
+
|
|
34
|
+
If the problem persists, try deleting your `node_modules` directory and
|
|
35
|
+
`package-lock.json` file, and then run `npm install` again.
|
|
36
|
+
|
|
37
|
+
### Why don't I see cached token counts in my stats output?
|
|
38
|
+
|
|
39
|
+
Cached token information is only displayed when cached tokens are being used.
|
|
40
|
+
This feature is available for API key users (Gemini API key or Google Cloud
|
|
41
|
+
Vertex AI) but not for OAuth users (such as Google Personal/Enterprise accounts
|
|
42
|
+
like Google Gmail or Google Workspace, respectively). This is because the Gemini
|
|
43
|
+
Code Assist API does not support cached content creation. You can still view
|
|
44
|
+
your total token usage using the `/stats` command in Gemini CLI.
|
|
45
|
+
|
|
46
|
+
## Installation and updates
|
|
47
|
+
|
|
48
|
+
### How do I update Gemini CLI to the latest version?
|
|
49
|
+
|
|
50
|
+
If you installed it globally via `npm`, update it using the command
|
|
51
|
+
`npm install -g @google/gemini-cli@latest`. If you compiled it from source, pull
|
|
52
|
+
the latest changes from the repository, and then rebuild using the command
|
|
53
|
+
`npm run build`.
|
|
54
|
+
|
|
55
|
+
## Platform-specific issues
|
|
56
|
+
|
|
57
|
+
### Why does the CLI crash on Windows when I run a command like `chmod +x`?
|
|
58
|
+
|
|
59
|
+
Commands like `chmod` are specific to Unix-like operating systems (Linux,
|
|
60
|
+
macOS). They are not available on Windows by default.
|
|
61
|
+
|
|
62
|
+
To resolve this, you can:
|
|
63
|
+
|
|
64
|
+
- **Use Windows-equivalent commands:** Instead of `chmod`, you can use `icacls`
|
|
65
|
+
to modify file permissions on Windows.
|
|
66
|
+
- **Use a compatibility layer:** Tools like Git Bash or Windows Subsystem for
|
|
67
|
+
Linux (WSL) provide a Unix-like environment on Windows where these commands
|
|
68
|
+
will work.
|
|
69
|
+
|
|
70
|
+
## Configuration
|
|
71
|
+
|
|
72
|
+
### How do I configure my `GOOGLE_CLOUD_PROJECT`?
|
|
73
|
+
|
|
74
|
+
You can configure your Google Cloud Project ID using an environment variable.
|
|
75
|
+
|
|
76
|
+
Set the `GOOGLE_CLOUD_PROJECT` environment variable in your shell:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
export GOOGLE_CLOUD_PROJECT="your-project-id"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
To make this setting permanent, add this line to your shell's startup file
|
|
83
|
+
(e.g., `~/.bashrc`, `~/.zshrc`).
|
|
84
|
+
|
|
85
|
+
### What is the best way to store my API keys securely?
|
|
86
|
+
|
|
87
|
+
Exposing API keys in scripts or checking them into source control is a security
|
|
88
|
+
risk.
|
|
89
|
+
|
|
90
|
+
To store your API keys securely, you can:
|
|
91
|
+
|
|
92
|
+
- **Use a `.env` file:** Create a `.env` file in your project's `.gemini`
|
|
93
|
+
directory (`.gemini/.env`) and store your keys there. Gemini CLI will
|
|
94
|
+
automatically load these variables.
|
|
95
|
+
- **Use your system's keyring:** For the most secure storage, use your operating
|
|
96
|
+
system's secret management tool (like macOS Keychain, Windows Credential
|
|
97
|
+
Manager, or a secret manager on Linux). You can then have your scripts or
|
|
98
|
+
environment load the key from the secure storage at runtime.
|
|
99
|
+
|
|
100
|
+
### Where are the Gemini CLI configuration and settings files stored?
|
|
101
|
+
|
|
102
|
+
The Gemini CLI configuration is stored in two `settings.json` files:
|
|
103
|
+
|
|
104
|
+
1. In your home directory: `~/.gemini/settings.json`.
|
|
105
|
+
2. In your project's root directory: `./.gemini/settings.json`.
|
|
106
|
+
|
|
107
|
+
Refer to [Gemini CLI Configuration](./get-started/configuration.md) for more
|
|
108
|
+
details.
|
|
109
|
+
|
|
110
|
+
## Google AI Pro/Ultra and subscription FAQs
|
|
111
|
+
|
|
112
|
+
### Where can I learn more about my Google AI Pro or Google AI Ultra subscription?
|
|
113
|
+
|
|
114
|
+
To learn more about your Google AI Pro or Google AI Ultra subscription, visit
|
|
115
|
+
**Manage subscription** in your [subscription settings](https://one.google.com).
|
|
116
|
+
|
|
117
|
+
### How do I know if I have higher limits for Google AI Pro or Ultra?
|
|
118
|
+
|
|
119
|
+
If you're subscribed to Google AI Pro or Ultra, you automatically have higher
|
|
120
|
+
limits to Gemini Code Assist and Gemini CLI. These are shared across Gemini CLI
|
|
121
|
+
and agent mode in the IDE. You can confirm you have higher limits by checking if
|
|
122
|
+
you are still subscribed to Google AI Pro or Ultra in your
|
|
123
|
+
[subscription settings](https://one.google.com).
|
|
124
|
+
|
|
125
|
+
### What is the privacy policy for using Gemini Code Assist or Gemini CLI if I've subscribed to Google AI Pro or Ultra?
|
|
126
|
+
|
|
127
|
+
To learn more about your privacy policy and terms of service governed by your
|
|
128
|
+
subscription, visit
|
|
129
|
+
[Gemini Code Assist: Terms of Service and Privacy Policies](https://developers.google.com/gemini-code-assist/resources/privacy-notices).
|
|
130
|
+
|
|
131
|
+
### I've upgraded to Google AI Pro or Ultra but it still says I am hitting quota limits. Is this a bug?
|
|
132
|
+
|
|
133
|
+
The higher limits in your Google AI Pro or Ultra subscription are for Gemini 2.5
|
|
134
|
+
across both Gemini 2.5 Pro and Flash. They are shared quota across Gemini CLI
|
|
135
|
+
and agent mode in Gemini Code Assist IDE extensions. You can learn more about
|
|
136
|
+
quota limits for Gemini CLI, Gemini Code Assist and agent mode in Gemini Code
|
|
137
|
+
Assist at
|
|
138
|
+
[Quotas and limits](https://developers.google.com/gemini-code-assist/resources/quotas).
|
|
139
|
+
|
|
140
|
+
### If I upgrade to higher limits for Gemini CLI and Gemini Code Assist by purchasing a Google AI Pro or Ultra subscription, will Gemini start using my data to improve its machine learning models?
|
|
141
|
+
|
|
142
|
+
Google does not use your data to improve Google's machine learning models if you
|
|
143
|
+
purchase a paid plan. Note: If you decide to remain on the free version of
|
|
144
|
+
Gemini Code Assist, Gemini Code Assist for individuals, you can also opt out of
|
|
145
|
+
using your data to improve Google's machine learning models. See the
|
|
146
|
+
[Gemini Code Assist for individuals privacy notice](https://developers.google.com/gemini-code-assist/resources/privacy-notice-gemini-code-assist-individuals)
|
|
147
|
+
for more information.
|
|
148
|
+
|
|
149
|
+
## Not seeing your question?
|
|
150
|
+
|
|
151
|
+
Search the
|
|
152
|
+
[Gemini CLI Q&A discussions on GitHub](https://github.com/google-gemini/gemini-cli/discussions/categories/q-a)
|
|
153
|
+
or
|
|
154
|
+
[start a new discussion on GitHub](https://github.com/google-gemini/gemini-cli/discussions/new?category=q-a)
|