@machina.ai/cell-cli-core 1.22.5-rc1 → 1.25.0-rc2
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/AFTER_MERGE_PROMPT.md +26 -0
- package/dist/docs/CHANGES.md +124 -0
- package/dist/docs/api-proxy.md +27 -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/monitoring-dashboard-logs.png +0 -0
- package/dist/docs/assets/monitoring-dashboard-metrics.png +0 -0
- package/dist/docs/assets/monitoring-dashboard-overview.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 +612 -0
- package/dist/docs/changelogs/latest.md +153 -0
- package/dist/docs/changelogs/preview.md +131 -0
- package/dist/docs/changelogs/releases.md +1162 -0
- package/dist/docs/cli/authentication.md +3 -0
- package/dist/docs/cli/checkpointing.md +94 -0
- package/dist/docs/cli/commands.md +357 -0
- package/dist/docs/cli/custom-commands.md +315 -0
- package/dist/docs/cli/enterprise.md +564 -0
- package/dist/docs/cli/gemini-ignore.md +71 -0
- package/dist/docs/cli/gemini-md.md +109 -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 +136 -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 +148 -0
- package/dist/docs/cli/skills.md +188 -0
- package/dist/docs/cli/system-prompt.md +94 -0
- package/dist/docs/cli/telemetry.md +813 -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 +246 -0
- package/dist/docs/core/policy-engine.md +268 -0
- package/dist/docs/core/tools-api.md +131 -0
- package/dist/docs/examples/proxy-script.md +83 -0
- package/dist/docs/extensions/extension-releasing.md +183 -0
- package/dist/docs/extensions/getting-started-extensions.md +244 -0
- package/dist/docs/extensions/index.md +343 -0
- package/dist/docs/faq.md +153 -0
- package/dist/docs/get-started/authentication.md +321 -0
- package/dist/docs/get-started/configuration-v1.md +890 -0
- package/dist/docs/get-started/configuration.md +1643 -0
- package/dist/docs/get-started/examples.md +218 -0
- package/dist/docs/get-started/gemini-3.md +101 -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 +723 -0
- package/dist/docs/hooks/reference.md +178 -0
- package/dist/docs/hooks/writing-hooks.md +1044 -0
- package/dist/docs/ide-integration/ide-companion-spec.md +267 -0
- package/dist/docs/ide-integration/index.md +201 -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/mcp_integration.md +160 -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 +1045 -0
- package/dist/docs/tools/memory.md +54 -0
- package/dist/docs/tools/shell.md +260 -0
- package/dist/docs/tools/todos.md +56 -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 +162 -0
- package/dist/package.json +7 -4
- package/dist/src/agents/a2a-client-manager.d.ts +82 -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.js +281 -0
- package/dist/src/agents/a2a-client-manager.test.js.map +1 -0
- package/dist/src/agents/a2aUtils.d.ts +29 -0
- package/dist/src/agents/a2aUtils.js +113 -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/agentLoader.d.ts +68 -0
- package/dist/src/agents/agentLoader.js +255 -0
- package/dist/src/agents/agentLoader.js.map +1 -0
- package/dist/src/agents/agentLoader.test.js +307 -0
- package/dist/src/agents/agentLoader.test.js.map +1 -0
- package/dist/src/agents/cli-help-agent.d.ts +24 -0
- package/dist/src/agents/cli-help-agent.js +85 -0
- package/dist/src/agents/cli-help-agent.js.map +1 -0
- package/dist/src/agents/cli-help-agent.test.js +65 -0
- package/dist/src/agents/cli-help-agent.test.js.map +1 -0
- package/dist/src/agents/codebase-investigator.d.ts +2 -2
- package/dist/src/agents/codebase-investigator.js +14 -8
- package/dist/src/agents/codebase-investigator.js.map +1 -1
- package/dist/src/agents/delegate-to-agent-tool.d.ts +2 -2
- package/dist/src/agents/delegate-to-agent-tool.js +25 -14
- package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
- package/dist/src/agents/delegate-to-agent-tool.test.js +101 -21
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
- package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
- package/dist/src/agents/{executor.js → local-executor.js} +123 -62
- 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/{executor.test.js → local-executor.test.js} +136 -58
- package/dist/src/agents/local-executor.test.js.map +1 -0
- package/dist/src/agents/{invocation.d.ts → local-invocation.d.ts} +6 -7
- package/dist/src/agents/{invocation.js → local-invocation.js} +9 -10
- package/dist/src/agents/local-invocation.js.map +1 -0
- package/dist/src/agents/local-invocation.test.d.ts +6 -0
- package/dist/src/agents/{invocation.test.js → local-invocation.test.js} +29 -20
- package/dist/src/agents/local-invocation.test.js.map +1 -0
- package/dist/src/agents/registry.d.ts +22 -1
- package/dist/src/agents/registry.js +192 -35
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +407 -33
- 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 +126 -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 +33 -19
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
- package/dist/src/agents/types.d.ts +21 -15
- package/dist/src/agents/types.js.map +1 -1
- package/dist/src/availability/fallbackIntegration.test.d.ts +6 -0
- package/dist/src/availability/fallbackIntegration.test.js +58 -0
- package/dist/src/availability/fallbackIntegration.test.js.map +1 -0
- package/dist/src/availability/modelAvailabilityService.d.ts +2 -1
- package/dist/src/availability/policyHelpers.d.ts +4 -3
- package/dist/src/availability/policyHelpers.js +13 -22
- package/dist/src/availability/policyHelpers.js.map +1 -1
- package/dist/src/availability/policyHelpers.test.js +28 -18
- package/dist/src/availability/policyHelpers.test.js.map +1 -1
- package/dist/src/code_assist/experiments/experiments.d.ts +1 -1
- package/dist/src/code_assist/experiments/experiments.js +21 -0
- package/dist/src/code_assist/experiments/experiments.js.map +1 -1
- package/dist/src/code_assist/experiments/experiments_local.test.d.ts +6 -0
- package/dist/src/code_assist/experiments/experiments_local.test.js +110 -0
- package/dist/src/code_assist/experiments/experiments_local.test.js.map +1 -0
- package/dist/src/code_assist/oauth-credential-storage.js +3 -4
- package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +32 -2
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +111 -16
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +9 -1
- package/dist/src/code_assist/server.js +74 -11
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +199 -27
- 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 +157 -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 +301 -0
- package/dist/src/code_assist/telemetry.test.js.map +1 -0
- package/dist/src/code_assist/types.d.ts +77 -1
- package/dist/src/code_assist/types.js +28 -0
- package/dist/src/code_assist/types.js.map +1 -1
- package/dist/src/commands/memory.d.ts +11 -0
- package/dist/src/commands/memory.js +80 -0
- package/dist/src/commands/memory.js.map +1 -0
- package/dist/src/commands/memory.test.d.ts +6 -0
- package/dist/src/commands/memory.test.js +155 -0
- package/dist/src/commands/memory.test.js.map +1 -0
- package/dist/src/config/config.d.ts +120 -26
- package/dist/src/config/config.js +241 -120
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +215 -43
- package/dist/src/config/config.test.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 +8 -9
- package/dist/src/config/models.js +18 -15
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +52 -16
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/config/storage.d.ts +5 -0
- package/dist/src/config/storage.js +17 -2
- 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.js +2 -1
- package/dist/src/confirmation-bus/message-bus.js.map +1 -1
- package/dist/src/core/baseLlmClient.js +44 -43
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +12 -19
- package/dist/src/core/baseLlmClient.test.js.map +1 -1
- package/dist/src/core/client.d.ts +7 -1
- package/dist/src/core/client.js +245 -114
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +277 -74
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/clientHookTriggers.js +2 -2
- package/dist/src/core/clientHookTriggers.js.map +1 -1
- package/dist/src/core/contentGenerator.js +3 -3
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +1 -7
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.d.ts +9 -5
- package/dist/src/core/coreToolHookTriggers.js +119 -21
- package/dist/src/core/coreToolHookTriggers.js.map +1 -1
- 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 +7 -93
- package/dist/src/core/coreToolScheduler.js +133 -369
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +252 -394
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +26 -1
- package/dist/src/core/geminiChat.js +112 -79
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +125 -92
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChatHookTriggers.d.ts +8 -4
- package/dist/src/core/geminiChatHookTriggers.js +34 -12
- package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
- package/dist/src/core/geminiChatHookTriggers.test.d.ts +6 -0
- package/dist/src/core/geminiChatHookTriggers.test.js +153 -0
- package/dist/src/core/geminiChatHookTriggers.test.js.map +1 -0
- package/dist/src/core/geminiChat_network_retry.test.js +4 -6
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.js +19 -2
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.test.js +30 -0
- package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +4 -4
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts.js +37 -13
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +47 -3
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/tokenLimits.js +6 -12
- package/dist/src/core/tokenLimits.js.map +1 -1
- package/dist/src/core/tokenLimits.test.js +8 -4
- package/dist/src/core/tokenLimits.test.js.map +1 -1
- package/dist/src/core/turn.d.ts +21 -22
- package/dist/src/core/turn.js +31 -21
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +79 -5
- package/dist/src/core/turn.test.js.map +1 -1
- package/dist/src/fallback/handler.js +1 -7
- package/dist/src/fallback/handler.js.map +1 -1
- package/dist/src/fallback/handler.test.js +10 -29
- package/dist/src/fallback/handler.test.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/hooks/hookAggregator.js +7 -0
- package/dist/src/hooks/hookAggregator.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.d.ts +9 -5
- package/dist/src/hooks/hookEventHandler.js +61 -15
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +223 -8
- package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
- 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 -11
- package/dist/src/hooks/hookRegistry.js +41 -14
- package/dist/src/hooks/hookRegistry.js.map +1 -1
- package/dist/src/hooks/hookRegistry.test.js +166 -2
- 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 +57 -17
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +172 -35
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/hookSystem.d.ts +12 -0
- package/dist/src/hooks/hookSystem.js +39 -1
- package/dist/src/hooks/hookSystem.js.map +1 -1
- package/dist/src/hooks/hookTranslator.js +2 -1
- package/dist/src/hooks/hookTranslator.js.map +1 -1
- package/dist/src/hooks/index.d.ts +1 -2
- package/dist/src/hooks/index.js +1 -3
- package/dist/src/hooks/index.js.map +1 -1
- 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 +41 -9
- package/dist/src/hooks/types.js +31 -41
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/hooks/types.test.js +9 -52
- package/dist/src/hooks/types.test.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +4 -0
- package/dist/src/ide/detect-ide.js +7 -2
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/detect-ide.test.js +10 -0
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-client.js +4 -1
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-installer.js +2 -2
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +11 -2
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/index.d.ts +16 -2
- package/dist/src/index.js +18 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js +7 -3
- 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/token-storage/file-token-storage.js +2 -2
- package/dist/src/mcp/token-storage/file-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/policy/config.js +62 -23
- package/dist/src/policy/config.js.map +1 -1
- package/dist/src/policy/config.test.js +24 -2
- 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/agent.toml +1 -1
- 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 +4 -0
- package/dist/src/policy/policy-engine.js +137 -53
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +289 -1
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/policy-updater.test.js +5 -5
- package/dist/src/policy/policy-updater.test.js.map +1 -1
- package/dist/src/policy/shell-safety.test.js +371 -8
- package/dist/src/policy/shell-safety.test.js.map +1 -1
- package/dist/src/policy/toml-loader.d.ts +0 -8
- package/dist/src/policy/toml-loader.js +13 -45
- package/dist/src/policy/toml-loader.js.map +1 -1
- package/dist/src/policy/toml-loader.test.js +13 -0
- package/dist/src/policy/toml-loader.test.js.map +1 -1
- package/dist/src/policy/types.d.ts +10 -0
- package/dist/src/policy/utils.d.ts +21 -0
- package/dist/src/policy/utils.js +45 -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 +92 -0
- package/dist/src/policy/utils.test.js.map +1 -0
- package/dist/src/routing/routingStrategy.d.ts +2 -0
- package/dist/src/routing/strategies/classifierStrategy.js +1 -1
- package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js +16 -0
- 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.d.ts +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js +2 -5
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.js +13 -6
- package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.d.ts +1 -1
- package/dist/src/routing/strategies/overrideStrategy.js +6 -6
- package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.test.js +14 -0
- package/dist/src/routing/strategies/overrideStrategy.test.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/tool-modifier.d.ts +23 -0
- package/dist/src/scheduler/tool-modifier.js +50 -0
- package/dist/src/scheduler/tool-modifier.js.map +1 -0
- package/dist/src/scheduler/tool-modifier.test.d.ts +6 -0
- package/dist/src/scheduler/tool-modifier.test.js +159 -0
- package/dist/src/scheduler/tool-modifier.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.js +3 -10
- package/dist/src/services/chatCompressionService.js.map +1 -1
- package/dist/src/services/chatCompressionService.test.js +1 -0
- package/dist/src/services/chatCompressionService.test.js.map +1 -1
- package/dist/src/services/chatRecordingService.d.ts +7 -1
- package/dist/src/services/chatRecordingService.js +20 -2
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +43 -0
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/services/contextManager.d.ts +5 -11
- package/dist/src/services/contextManager.js +20 -17
- package/dist/src/services/contextManager.js.map +1 -1
- package/dist/src/services/contextManager.test.js +40 -41
- package/dist/src/services/contextManager.test.js.map +1 -1
- package/dist/src/services/environmentSanitization.d.ts +15 -0
- package/dist/src/services/environmentSanitization.js +142 -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/gitService.js +10 -1
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/gitService.test.js +28 -2
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +2 -1
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.test.js +14 -8
- package/dist/src/services/loopDetectionService.test.js.map +1 -1
- package/dist/src/services/modelConfig.integration.test.js +3 -3
- package/dist/src/services/modelConfig.integration.test.js.map +1 -1
- package/dist/src/services/modelConfigService.d.ts +38 -4
- package/dist/src/services/modelConfigService.js +135 -76
- package/dist/src/services/modelConfigService.js.map +1 -1
- package/dist/src/services/modelConfigService.test.js +116 -0
- package/dist/src/services/modelConfigService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +2 -0
- package/dist/src/services/shellExecutionService.js +6 -50
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +68 -4
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/skills/skillLoader.d.ts +31 -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 +75 -0
- package/dist/src/skills/skillLoader.test.js.map +1 -0
- package/dist/src/skills/skillManager.d.ts +69 -0
- package/dist/src/skills/skillManager.js +127 -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 +210 -0
- package/dist/src/skills/skillManager.test.js.map +1 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +18 -9
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +234 -160
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +162 -32
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +11 -3
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +24 -5
- 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 +6 -5
- 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 +51 -10
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/sdk.js +5 -6
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +7 -7
- package/dist/src/telemetry/types.js +14 -12
- 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 +133 -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 +113 -0
- package/dist/src/tools/activate-skill.test.js.map +1 -0
- package/dist/src/tools/confirmation-policy.test.js +3 -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 +455 -136
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +292 -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 +122 -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.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 +5 -4
- package/dist/src/tools/mcp-client.js +10 -8
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +47 -42
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +20 -5
- package/dist/src/tools/mcp-tool.js +8 -8
- 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 -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/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 +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 +3 -6
- package/dist/src/tools/shell.js +21 -49
- 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-error.d.ts +6 -1
- package/dist/src/tools/tool-error.js +6 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +15 -0
- package/dist/src/tools/tool-names.js +57 -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 +8 -6
- package/dist/src/tools/tools.js +16 -18
- 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 +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 +9 -6
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +49 -7
- 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/apiConversionUtils.d.ts +12 -0
- package/dist/src/utils/apiConversionUtils.js +46 -0
- package/dist/src/utils/apiConversionUtils.js.map +1 -0
- package/dist/src/utils/apiConversionUtils.test.d.ts +6 -0
- package/dist/src/utils/apiConversionUtils.test.js +150 -0
- package/dist/src/utils/apiConversionUtils.test.js.map +1 -0
- package/dist/src/utils/checkpointUtils.d.ts +1 -1
- package/dist/src/utils/checkpointUtils.js +1 -1
- package/dist/src/utils/checkpointUtils.js.map +1 -1
- package/dist/src/utils/checkpointUtils.test.js +1 -1
- package/dist/src/utils/checkpointUtils.test.js.map +1 -1
- package/dist/src/utils/debugLogger.js +1 -0
- package/dist/src/utils/debugLogger.js.map +1 -1
- package/dist/src/utils/editCorrector.d.ts +3 -3
- package/dist/src/utils/editCorrector.js +27 -10
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +23 -23
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/editor.d.ts +3 -2
- package/dist/src/utils/editor.js +26 -6
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +27 -4
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/environmentContext.d.ts +1 -0
- package/dist/src/utils/environmentContext.js +4 -0
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/environmentContext.test.js +2 -0
- package/dist/src/utils/environmentContext.test.js.map +1 -1
- package/dist/src/utils/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/events.d.ts +71 -19
- package/dist/src/utils/events.js +35 -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/fileDiffUtils.d.ts +18 -0
- package/dist/src/utils/fileDiffUtils.js +37 -0
- package/dist/src/utils/fileDiffUtils.js.map +1 -0
- package/dist/src/utils/fileDiffUtils.test.d.ts +6 -0
- package/dist/src/utils/fileDiffUtils.test.js +84 -0
- package/dist/src/utils/fileDiffUtils.test.js.map +1 -0
- 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 +112 -1
- package/dist/src/utils/fileUtils.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/gitIgnoreParser.js +9 -10
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/installationManager.test.js +11 -3
- package/dist/src/utils/installationManager.test.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.js +3 -4
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +12 -1
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/partUtils.js +1 -1
- package/dist/src/utils/partUtils.js.map +1 -1
- package/dist/src/utils/paths.d.ts +10 -0
- package/dist/src/utils/paths.js +20 -1
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/retry.d.ts +1 -0
- package/dist/src/utils/retry.js +17 -5
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +11 -11
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +6 -0
- package/dist/src/utils/shell-utils.js +97 -12
- 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/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/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.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/userAccountManager.test.js +5 -5
- package/dist/src/utils/userAccountManager.test.js.map +1 -1
- package/dist/src/utils/workspaceContext.test.js +1 -1
- package/dist/src/utils/workspaceContext.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -6
- package/dist/src/agents/executor.js.map +0 -1
- package/dist/src/agents/executor.test.js.map +0 -1
- package/dist/src/agents/invocation.js.map +0 -1
- package/dist/src/agents/invocation.test.js.map +0 -1
- package/dist/src/core/sessionHookTriggers.d.ts +0 -28
- package/dist/src/core/sessionHookTriggers.js +0 -68
- package/dist/src/core/sessionHookTriggers.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/utils/shell-permissions.d.ts +0 -52
- package/dist/src/utils/shell-permissions.js +0 -188
- package/dist/src/utils/shell-permissions.js.map +0 -1
- package/dist/src/utils/shell-permissions.test.js +0 -347
- package/dist/src/utils/shell-permissions.test.js.map +0 -1
- /package/dist/src/agents/{executor.test.d.ts → a2a-client-manager.test.d.ts} +0 -0
- /package/dist/src/agents/{invocation.test.d.ts → a2aUtils.test.d.ts} +0 -0
- /package/dist/src/{tools/smart-edit.test.d.ts → agents/agentLoader.test.d.ts} +0 -0
- /package/dist/src/{utils/shell-permissions.test.d.ts → agents/cli-help-agent.test.d.ts} +0 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# Integration tests
|
|
2
|
+
|
|
3
|
+
This document provides information about the integration testing framework used
|
|
4
|
+
in this project.
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
The integration tests are designed to validate the end-to-end functionality of
|
|
9
|
+
the Cell CLI. They execute the built binary in a controlled environment and
|
|
10
|
+
verify that it behaves as expected when interacting with the file system.
|
|
11
|
+
|
|
12
|
+
These tests are located in the `integration-tests` directory and are run using a
|
|
13
|
+
custom test runner.
|
|
14
|
+
|
|
15
|
+
## Building the tests
|
|
16
|
+
|
|
17
|
+
Prior to running any integration tests, you need to create a release bundle that
|
|
18
|
+
you want to actually test:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm run bundle
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
You must re-run this command after making any changes to the CLI source code,
|
|
25
|
+
but not after making changes to tests.
|
|
26
|
+
|
|
27
|
+
## Running the tests
|
|
28
|
+
|
|
29
|
+
The integration tests are not run as part of the default `npm run test` command.
|
|
30
|
+
They must be run explicitly using the `npm run test:integration:all` script.
|
|
31
|
+
|
|
32
|
+
The integration tests can also be run using the following shortcut:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npm run test:e2e
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Running a specific set of tests
|
|
39
|
+
|
|
40
|
+
To run a subset of test files, you can use
|
|
41
|
+
`npm run <integration test command> <file_name1> ....` where <integration
|
|
42
|
+
test command> is either `test:e2e` or `test:integration*` and `<file_name>`
|
|
43
|
+
is any of the `.test.js` files in the `integration-tests/` directory. For
|
|
44
|
+
example, the following command runs `list_directory.test.js` and
|
|
45
|
+
`write_file.test.js`:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm run test:e2e list_directory write_file
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Running a single test by name
|
|
52
|
+
|
|
53
|
+
To run a single test by its name, use the `--test-name-pattern` flag:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npm run test:e2e -- --test-name-pattern "reads a file"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Regenerating model responses
|
|
60
|
+
|
|
61
|
+
Some integration tests use faked out model responses, which may need to be
|
|
62
|
+
regenerated from time to time as the implementations change.
|
|
63
|
+
|
|
64
|
+
To regenerate these golden files, set the REGENERATE_MODEL_GOLDENS environment
|
|
65
|
+
variable to "true" when running the tests, for example:
|
|
66
|
+
|
|
67
|
+
**WARNING**: If running locally you should review these updated responses for
|
|
68
|
+
any information about yourself or your system that gemini may have included in
|
|
69
|
+
these responses.
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
REGENERATE_MODEL_GOLDENS="true" npm run test:e2e
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**WARNING**: Make sure you run **await rig.cleanup()** at the end of your test,
|
|
76
|
+
else the golden files will not be updated.
|
|
77
|
+
|
|
78
|
+
### Deflaking a test
|
|
79
|
+
|
|
80
|
+
Before adding a **new** integration test, you should test it at least 5 times
|
|
81
|
+
with the deflake script or workflow to make sure that it is not flaky.
|
|
82
|
+
|
|
83
|
+
### Deflake script
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
npm run deflake -- --runs=5 --command="npm run test:e2e -- -- --test-name-pattern '<your-new-test-name>'"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
#### Deflake workflow
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
gh workflow run deflake.yml --ref <your-branch> -f test_name_pattern="<your-test-name-pattern>"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Running all tests
|
|
96
|
+
|
|
97
|
+
To run the entire suite of integration tests, use the following command:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npm run test:integration:all
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Sandbox matrix
|
|
104
|
+
|
|
105
|
+
The `all` command will run tests for `no sandboxing`, `docker` and `podman`.
|
|
106
|
+
Each individual type can be run using the following commands:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
npm run test:integration:sandbox:none
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
npm run test:integration:sandbox:docker
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
npm run test:integration:sandbox:podman
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Diagnostics
|
|
121
|
+
|
|
122
|
+
The integration test runner provides several options for diagnostics to help
|
|
123
|
+
track down test failures.
|
|
124
|
+
|
|
125
|
+
### Keeping test output
|
|
126
|
+
|
|
127
|
+
You can preserve the temporary files created during a test run for inspection.
|
|
128
|
+
This is useful for debugging issues with file system operations.
|
|
129
|
+
|
|
130
|
+
To keep the test output set the `KEEP_OUTPUT` environment variable to `true`.
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
KEEP_OUTPUT=true npm run test:integration:sandbox:none
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
When output is kept, the test runner will print the path to the unique directory
|
|
137
|
+
for the test run.
|
|
138
|
+
|
|
139
|
+
### Verbose output
|
|
140
|
+
|
|
141
|
+
For more detailed debugging, set the `VERBOSE` environment variable to `true`.
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
VERBOSE=true npm run test:integration:sandbox:none
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
When using `VERBOSE=true` and `KEEP_OUTPUT=true` in the same command, the output
|
|
148
|
+
is streamed to the console and also saved to a log file within the test's
|
|
149
|
+
temporary directory.
|
|
150
|
+
|
|
151
|
+
The verbose output is formatted to clearly identify the source of the logs:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
--- TEST: <log dir>:<test-name> ---
|
|
155
|
+
... output from the gemini command ...
|
|
156
|
+
--- END TEST: <log dir>:<test-name> ---
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Linting and formatting
|
|
160
|
+
|
|
161
|
+
To ensure code quality and consistency, the integration test files are linted as
|
|
162
|
+
part of the main build process. You can also manually run the linter and
|
|
163
|
+
auto-fixer.
|
|
164
|
+
|
|
165
|
+
### Running the linter
|
|
166
|
+
|
|
167
|
+
To check for linting errors, run the following command:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
npm run lint
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
You can include the `:fix` flag in the command to automatically fix any fixable
|
|
174
|
+
linting errors:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
npm run lint:fix
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Directory structure
|
|
181
|
+
|
|
182
|
+
The integration tests create a unique directory for each test run inside the
|
|
183
|
+
`.integration-tests` directory. Within this directory, a subdirectory is created
|
|
184
|
+
for each test file, and within that, a subdirectory is created for each
|
|
185
|
+
individual test case.
|
|
186
|
+
|
|
187
|
+
This structure makes it easy to locate the artifacts for a specific test run,
|
|
188
|
+
file, or case.
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
.integration-tests/
|
|
192
|
+
└── <run-id>/
|
|
193
|
+
└── <test-file-name>.test.js/
|
|
194
|
+
└── <test-case-name>/
|
|
195
|
+
├── output.log
|
|
196
|
+
└── ...other test artifacts...
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Continuous integration
|
|
200
|
+
|
|
201
|
+
To ensure the integration tests are always run, a GitHub Actions workflow is
|
|
202
|
+
defined in `.github/workflows/chained_e2e.yml`. This workflow automatically runs
|
|
203
|
+
the integrations tests for pull requests against the `main` branch, or when a
|
|
204
|
+
pull request is added to a merge queue.
|
|
205
|
+
|
|
206
|
+
The workflow runs the tests in different sandboxing environments to ensure Cell
|
|
207
|
+
CLI is tested across each:
|
|
208
|
+
|
|
209
|
+
- `sandbox:none`: Runs the tests without any sandboxing.
|
|
210
|
+
- `sandbox:docker`: Runs the tests in a Docker container.
|
|
211
|
+
- `sandbox:podman`: Runs the tests in a Podman container.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Automation and triage processes
|
|
2
|
+
|
|
3
|
+
This document provides a detailed overview of the automated processes we use to
|
|
4
|
+
manage and triage issues and pull requests. Our goal is to provide prompt
|
|
5
|
+
feedback and ensure that contributions are reviewed and integrated efficiently.
|
|
6
|
+
Understanding this automation will help you as a contributor know what to expect
|
|
7
|
+
and how to best interact with our repository bots.
|
|
8
|
+
|
|
9
|
+
## Guiding principle: Issues and pull requests
|
|
10
|
+
|
|
11
|
+
First and foremost, almost every Pull Request (PR) should be linked to a
|
|
12
|
+
corresponding Issue. The issue describes the "what" and the "why" (the bug or
|
|
13
|
+
feature), while the PR is the "how" (the implementation). This separation helps
|
|
14
|
+
us track work, prioritize features, and maintain clear historical context. Our
|
|
15
|
+
automation is built around this principle.
|
|
16
|
+
|
|
17
|
+
> **Note:** Issues tagged as "🔒Maintainers only" are reserved for project
|
|
18
|
+
> maintainers. We will not accept pull requests related to these issues.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Detailed automation workflows
|
|
23
|
+
|
|
24
|
+
Here is a breakdown of the specific automation workflows that run in our
|
|
25
|
+
repository.
|
|
26
|
+
|
|
27
|
+
### 1. When you open an issue: `Automated Issue Triage`
|
|
28
|
+
|
|
29
|
+
This is the first bot you will interact with when you create an issue. Its job
|
|
30
|
+
is to perform an initial analysis and apply the correct labels.
|
|
31
|
+
|
|
32
|
+
- **Workflow File**: `.github/workflows/gemini-automated-issue-triage.yml`
|
|
33
|
+
- **When it runs**: Immediately after an issue is created or reopened.
|
|
34
|
+
- **What it does**:
|
|
35
|
+
- It uses a Gemini model to analyze the issue's title and body against a
|
|
36
|
+
detailed set of guidelines.
|
|
37
|
+
- **Applies one `area/*` label**: Categorizes the issue into a functional area
|
|
38
|
+
of the project (e.g., `area/ux`, `area/models`, `area/platform`).
|
|
39
|
+
- **Applies one `kind/*` label**: Identifies the type of issue (e.g.,
|
|
40
|
+
`kind/bug`, `kind/enhancement`, `kind/question`).
|
|
41
|
+
- **Applies one `priority/*` label**: Assigns a priority from P0 (critical) to
|
|
42
|
+
P3 (low) based on the described impact.
|
|
43
|
+
- **May apply `status/need-information`**: If the issue lacks critical details
|
|
44
|
+
(like logs or reproduction steps), it will be flagged for more information.
|
|
45
|
+
- **May apply `status/need-retesting`**: If the issue references a CLI version
|
|
46
|
+
that is more than six versions old, it will be flagged for retesting on a
|
|
47
|
+
current version.
|
|
48
|
+
- **What you should do**:
|
|
49
|
+
- Fill out the issue template as completely as possible. The more detail you
|
|
50
|
+
provide, the more accurate the triage will be.
|
|
51
|
+
- If the `status/need-information` label is added, please provide the
|
|
52
|
+
requested details in a comment.
|
|
53
|
+
|
|
54
|
+
### 2. When you open a pull request: `Continuous Integration (CI)`
|
|
55
|
+
|
|
56
|
+
This workflow ensures that all changes meet our quality standards before they
|
|
57
|
+
can be merged.
|
|
58
|
+
|
|
59
|
+
- **Workflow File**: `.github/workflows/ci.yml`
|
|
60
|
+
- **When it runs**: On every push to a pull request.
|
|
61
|
+
- **What it does**:
|
|
62
|
+
- **Lint**: Checks that your code adheres to our project's formatting and
|
|
63
|
+
style rules.
|
|
64
|
+
- **Test**: Runs our full suite of automated tests across macOS, Windows, and
|
|
65
|
+
Linux, and on multiple Node.js versions. This is the most time-consuming
|
|
66
|
+
part of the CI process.
|
|
67
|
+
- **Post Coverage Comment**: After all tests have successfully passed, a bot
|
|
68
|
+
will post a comment on your PR. This comment provides a summary of how well
|
|
69
|
+
your changes are covered by tests.
|
|
70
|
+
- **What you should do**:
|
|
71
|
+
- Ensure all CI checks pass. A green checkmark ✅ will appear next to your
|
|
72
|
+
commit when everything is successful.
|
|
73
|
+
- If a check fails (a red "X" ❌), click the "Details" link next to the failed
|
|
74
|
+
check to view the logs, identify the problem, and push a fix.
|
|
75
|
+
|
|
76
|
+
### 3. Ongoing triage for pull requests: `PR Auditing and Label Sync`
|
|
77
|
+
|
|
78
|
+
This workflow runs periodically to ensure all open PRs are correctly linked to
|
|
79
|
+
issues and have consistent labels.
|
|
80
|
+
|
|
81
|
+
- **Workflow File**: `.github/workflows/gemini-scheduled-pr-triage.yml`
|
|
82
|
+
- **When it runs**: Every 15 minutes on all open pull requests.
|
|
83
|
+
- **What it does**:
|
|
84
|
+
- **Checks for a linked issue**: The bot scans your PR description for a
|
|
85
|
+
keyword that links it to an issue (e.g., `Fixes #123`, `Closes #456`).
|
|
86
|
+
- **Adds `status/need-issue`**: If no linked issue is found, the bot will add
|
|
87
|
+
the `status/need-issue` label to your PR. This is a clear signal that an
|
|
88
|
+
issue needs to be created and linked.
|
|
89
|
+
- **Synchronizes labels**: If an issue _is_ linked, the bot ensures the PR's
|
|
90
|
+
labels perfectly match the issue's labels. It will add any missing labels
|
|
91
|
+
and remove any that don't belong, and it will remove the `status/need-issue`
|
|
92
|
+
label if it was present.
|
|
93
|
+
- **What you should do**:
|
|
94
|
+
- **Always link your PR to an issue.** This is the most important step. Add a
|
|
95
|
+
line like `Resolves #<issue-number>` to your PR description.
|
|
96
|
+
- This will ensure your PR is correctly categorized and moves through the
|
|
97
|
+
review process smoothly.
|
|
98
|
+
|
|
99
|
+
### 4. Ongoing triage for issues: `Scheduled Issue Triage`
|
|
100
|
+
|
|
101
|
+
This is a fallback workflow to ensure that no issue gets missed by the triage
|
|
102
|
+
process.
|
|
103
|
+
|
|
104
|
+
- **Workflow File**: `.github/workflows/gemini-scheduled-issue-triage.yml`
|
|
105
|
+
- **When it runs**: Every hour on all open issues.
|
|
106
|
+
- **What it does**:
|
|
107
|
+
- It actively seeks out issues that either have no labels at all or still have
|
|
108
|
+
the `status/need-triage` label.
|
|
109
|
+
- It then triggers the same powerful Gemini-based analysis as the initial
|
|
110
|
+
triage bot to apply the correct labels.
|
|
111
|
+
- **What you should do**:
|
|
112
|
+
- You typically don't need to do anything. This workflow is a safety net to
|
|
113
|
+
ensure every issue is eventually categorized, even if the initial triage
|
|
114
|
+
fails.
|
|
115
|
+
|
|
116
|
+
### 5. Release automation
|
|
117
|
+
|
|
118
|
+
This workflow handles the process of packaging and publishing new versions of
|
|
119
|
+
the Cell CLI.
|
|
120
|
+
|
|
121
|
+
- **Workflow File**: `.github/workflows/release-manual.yml`
|
|
122
|
+
- **When it runs**: On a daily schedule for "nightly" releases, and manually for
|
|
123
|
+
official patch/minor releases.
|
|
124
|
+
- **What it does**:
|
|
125
|
+
- Automatically builds the project, bumps the version numbers, and publishes
|
|
126
|
+
the packages to npm.
|
|
127
|
+
- Creates a corresponding release on GitHub with generated release notes.
|
|
128
|
+
- **What you should do**:
|
|
129
|
+
- As a contributor, you don't need to do anything for this process. You can be
|
|
130
|
+
confident that once your PR is merged into the `main` branch, your changes
|
|
131
|
+
will be included in the very next nightly release.
|
|
132
|
+
|
|
133
|
+
We hope this detailed overview is helpful. If you have any questions about our
|
|
134
|
+
automation or processes, please don't hesitate to ask!
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Local development guide
|
|
2
|
+
|
|
3
|
+
This guide provides instructions for setting up and using local development
|
|
4
|
+
features, such as development tracing.
|
|
5
|
+
|
|
6
|
+
## Development tracing
|
|
7
|
+
|
|
8
|
+
Development traces (dev traces) are OpenTelemetry (OTel) traces that help you
|
|
9
|
+
debug your code by instrumenting interesting events like model calls, tool
|
|
10
|
+
scheduler, tool calls, etc.
|
|
11
|
+
|
|
12
|
+
Dev traces are verbose and are specifically meant for understanding agent
|
|
13
|
+
behaviour and debugging issues. They are disabled by default.
|
|
14
|
+
|
|
15
|
+
To enable dev traces, set the `GEMINI_DEV_TRACING=true` environment variable
|
|
16
|
+
when running Cell CLI.
|
|
17
|
+
|
|
18
|
+
### Viewing dev traces
|
|
19
|
+
|
|
20
|
+
You can view dev traces using either Jaeger or the Genkit Developer UI.
|
|
21
|
+
|
|
22
|
+
#### Using Genkit
|
|
23
|
+
|
|
24
|
+
Genkit provides a web-based UI for viewing traces and other telemetry data.
|
|
25
|
+
|
|
26
|
+
1. **Start the Genkit telemetry server:**
|
|
27
|
+
|
|
28
|
+
Run the following command to start the Genkit server:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm run telemetry -- --target=genkit
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The script will output the URL for the Genkit Developer UI, for example:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Genkit Developer UI: http://localhost:4000
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
2. **Run Cell CLI with dev tracing:**
|
|
41
|
+
|
|
42
|
+
In a separate terminal, run your Cell CLI command with the
|
|
43
|
+
`GEMINI_DEV_TRACING` environment variable:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
GEMINI_DEV_TRACING=true gemini
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
3. **View the traces:**
|
|
50
|
+
|
|
51
|
+
Open the Genkit Developer UI URL in your browser and navigate to the
|
|
52
|
+
**Traces** tab to view the traces.
|
|
53
|
+
|
|
54
|
+
#### Using Jaeger
|
|
55
|
+
|
|
56
|
+
You can view dev traces in the Jaeger UI. To get started, follow these steps:
|
|
57
|
+
|
|
58
|
+
1. **Start the telemetry collector:**
|
|
59
|
+
|
|
60
|
+
Run the following command in your terminal to download and start Jaeger and
|
|
61
|
+
an OTEL collector:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npm run telemetry -- --target=local
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
This command also configures your workspace for local telemetry and provides
|
|
68
|
+
a link to the Jaeger UI (usually `http://localhost:16686`).
|
|
69
|
+
|
|
70
|
+
2. **Run Cell CLI with dev tracing:**
|
|
71
|
+
|
|
72
|
+
In a separate terminal, run your Cell CLI command with the
|
|
73
|
+
`GEMINI_DEV_TRACING` environment variable:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
GEMINI_DEV_TRACING=true gemini
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
3. **View the traces:**
|
|
80
|
+
|
|
81
|
+
After running your command, open the Jaeger UI link in your browser to view
|
|
82
|
+
the traces.
|
|
83
|
+
|
|
84
|
+
For more detailed information on telemetry, see the
|
|
85
|
+
[telemetry documentation](./cli/telemetry.md).
|
|
86
|
+
|
|
87
|
+
### Instrumenting code with dev traces
|
|
88
|
+
|
|
89
|
+
You can add dev traces to your own code for more detailed instrumentation. This
|
|
90
|
+
is useful for debugging and understanding the flow of execution.
|
|
91
|
+
|
|
92
|
+
Use the `runInDevTraceSpan` function to wrap any section of code in a trace
|
|
93
|
+
span.
|
|
94
|
+
|
|
95
|
+
Here is a basic example:
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
import { runInDevTraceSpan } from '@google/gemini-cli-core';
|
|
99
|
+
|
|
100
|
+
await runInDevTraceSpan({ name: 'my-custom-span' }, async ({ metadata }) => {
|
|
101
|
+
// The `metadata` object allows you to record the input and output of the
|
|
102
|
+
// operation as well as other attributes.
|
|
103
|
+
metadata.input = { key: 'value' };
|
|
104
|
+
// Set custom attributes.
|
|
105
|
+
metadata.attributes['gen_ai.request.model'] = 'gemini-4.0-mega';
|
|
106
|
+
|
|
107
|
+
// Your code to be traced goes here
|
|
108
|
+
try {
|
|
109
|
+
const output = await somethingRisky();
|
|
110
|
+
metadata.output = output;
|
|
111
|
+
return output;
|
|
112
|
+
} catch (e) {
|
|
113
|
+
metadata.error = e;
|
|
114
|
+
throw e;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
In this example:
|
|
120
|
+
|
|
121
|
+
- `name`: The name of the span, which will be displayed in the trace.
|
|
122
|
+
- `metadata.input`: (Optional) An object containing the input data for the
|
|
123
|
+
traced operation.
|
|
124
|
+
- `metadata.output`: (Optional) An object containing the output data from the
|
|
125
|
+
traced operation.
|
|
126
|
+
- `metadata.attributes`: (Optional) A record of custom attributes to add to the
|
|
127
|
+
span.
|
|
128
|
+
- `metadata.error`: (Optional) An error object to record if the operation fails.
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Integración de `cell-cli` con el Servidor MCP
|
|
2
|
+
|
|
3
|
+
## 1. Objetivo
|
|
4
|
+
|
|
5
|
+
Este documento describe los pasos necesarios para pre-configurar el `cell-cli`
|
|
6
|
+
para que se conecte "out-of-the-box" al `cell-mcp-adapter`. El objetivo es que,
|
|
7
|
+
una vez que un usuario instale el CLI a través de `npm`, pueda interactuar
|
|
8
|
+
inmediatamente con los modelos de la plataforma CELL sin necesidad de
|
|
9
|
+
configuración manual adicional.
|
|
10
|
+
|
|
11
|
+
## 2. Contexto y Arquitectura de Configuración
|
|
12
|
+
|
|
13
|
+
`cell-cli` no utiliza un archivo estático como `defaults.json` para su
|
|
14
|
+
configuración inicial de servidores. La configuración es dinámica y se construye
|
|
15
|
+
a partir de varias fuentes en tiempo de ejecución, principalmente:
|
|
16
|
+
|
|
17
|
+
1. **Archivos de Configuración (`settings.json`, `config.yaml`):** Los usuarios
|
|
18
|
+
pueden definir servidores y otras configuraciones en archivos a nivel de
|
|
19
|
+
sistema, usuario (`~/.cell-cli/`) o espacio de trabajo
|
|
20
|
+
(`<project>/.cell-cli/`).
|
|
21
|
+
2. **Extensiones:** El CLI puede cargar "extensiones" que programáticamente
|
|
22
|
+
proveen configuraciones de servidores MCP.
|
|
23
|
+
|
|
24
|
+
Para lograr una configuración "out-of-the-box", el enfoque correcto es **añadir
|
|
25
|
+
una extensión "built-in"** directamente en el código fuente del CLI. Esta
|
|
26
|
+
extensión leerá la configuración existente (específicamente el `agent_api_url`
|
|
27
|
+
de `config.yaml`) para construir dinámicamente la URL del servidor MCP.
|
|
28
|
+
|
|
29
|
+
## 3. Pasos para la Configuración
|
|
30
|
+
|
|
31
|
+
La integración se logra modificando el punto de entrada principal del CLI para
|
|
32
|
+
inyectar la configuración del servidor MCP como una extensión por defecto.
|
|
33
|
+
|
|
34
|
+
### 3.1. Localizar el Punto de Entrada del CLI
|
|
35
|
+
|
|
36
|
+
El archivo principal que orquesta el arranque del CLI es
|
|
37
|
+
`packages/cli/src/gemini.tsx`. Aquí es donde se cargan las configuraciones y
|
|
38
|
+
extensiones.
|
|
39
|
+
|
|
40
|
+
### 3.2. Añadir la Extensión "Built-in"
|
|
41
|
+
|
|
42
|
+
/ Modifique el archivo `packages/cli/src/gemini.tsx` para añadir un objeto que
|
|
43
|
+
represente la extensión del servidor MCP por defecto.
|
|
44
|
+
|
|
45
|
+
1. Abra el archivo `packages/cli/src/gemini.tsx`.
|
|
46
|
+
|
|
47
|
+
2. Localice la función `main()`. Dentro de esta función, encontrará la
|
|
48
|
+
siguiente línea:
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
const extensions = loadExtensions(workspaceRoot);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
3. **Inmediatamente después** de esa línea, inserte el siguiente código para
|
|
55
|
+
crear y añadir la extensión del `cell-mcp-adapter`:
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
// --- INICIO: Añadir extensión MCP por defecto ---
|
|
59
|
+
// Se utiliza el `agentApiUrl` de la configuración para construir la URL del MCP.
|
|
60
|
+
if (settings.merged.agentApiUrl) {
|
|
61
|
+
const cellMcpExtension: Extension = {
|
|
62
|
+
path: 'built-in',
|
|
63
|
+
contextFiles: [],
|
|
64
|
+
config: {
|
|
65
|
+
name: 'cell-mcp-server',
|
|
66
|
+
version: '1.0.0',
|
|
67
|
+
mcpServers: {
|
|
68
|
+
'cell-mcp': {
|
|
69
|
+
description: 'Cell Agents MCP Server',
|
|
70
|
+
url: `${settings.merged.agentApiUrl}/mcp/v1`,
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
extensions.push(cellMcpExtension);
|
|
76
|
+
}
|
|
77
|
+
// --- FIN: Añadir extensión MCP por defecto ---
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Detalles de la configuración:**
|
|
81
|
+
|
|
82
|
+
- `path`: Se establece en `"built-in"` para indicar que no proviene del sistema
|
|
83
|
+
de archivos.
|
|
84
|
+
- `name`: `cell-mcp-server`, un nombre para la extensión.
|
|
85
|
+
- `mcpServers`: Un objeto donde cada clave es un identificador único para el
|
|
86
|
+
servidor.
|
|
87
|
+
- `cell-mcp`: Es el `id` del servidor.
|
|
88
|
+
- `description`: El nombre que se mostrará al usuario: "Cell Agents MCP
|
|
89
|
+
Server".
|
|
90
|
+
- `url`: La URL base del `cell-mcp-adapter`. **Se construye dinámicamente** a
|
|
91
|
+
partir del valor `agent_api_url` definido en `~/.cell-cli/config.yaml`.
|
|
92
|
+
- **Autenticación**: No se especifica un `authProviderType`. Al omitir esta
|
|
93
|
+
propiedad, el cliente MCP (`mcp-client.ts`) utilizará automáticamente el token
|
|
94
|
+
de sesión de Keycloak que encuentre en `~/.cell-cli/session.json`, añadiéndolo
|
|
95
|
+
a las cabeceras como `Authorization: Bearer <token>`. Esto asegura que se
|
|
96
|
+
reutilice la sesión de autenticación existente.
|
|
97
|
+
|
|
98
|
+
### 3.3. Verificar la Integración
|
|
99
|
+
|
|
100
|
+
Después de añadir el código y reconstruir el CLI, la configuración del
|
|
101
|
+
`cell-mcp-adapter` será cargada automáticamente, utilizando la URL del
|
|
102
|
+
`config.yaml` y la sesión de autenticación de Keycloak.
|
|
103
|
+
|
|
104
|
+
## 4. Publicación y Experiencia del Usuario
|
|
105
|
+
|
|
106
|
+
1. **Guardar Cambios**: Guarde los cambios en `packages/cli/src/gemini.tsx`.
|
|
107
|
+
2. **Recompilar y Publicar**: Siga el proceso de build del proyecto y publique
|
|
108
|
+
la nueva versión de `cell-cli` en `npm`.
|
|
109
|
+
|
|
110
|
+
Una vez completado, la experiencia del usuario será la siguiente:
|
|
111
|
+
|
|
112
|
+
- Un desarrollador instala la herramienta globalmente: `npm install -g cell-cli`
|
|
113
|
+
- El CLI creará un `config.yaml` por defecto en `~/.cell-cli/` si no existe.
|
|
114
|
+
- Tras autenticarse una vez, el servidor `cell-mcp` estará disponible y
|
|
115
|
+
utilizará la sesión existente sin requerir configuración adicional.
|
|
116
|
+
|
|
117
|
+
Esta configuración asegura que `cell-cli` esté listo para usar con la
|
|
118
|
+
infraestructura de CELL desde el primer momento, de una manera robusta y
|
|
119
|
+
correcta.
|
|
120
|
+
|
|
121
|
+
## 5. Cómo Probar la Integración
|
|
122
|
+
|
|
123
|
+
Una vez que haya realizado los cambios en el código y reconstruido el CLI, puede
|
|
124
|
+
verificar que la integración funciona correctamente de la siguiente manera:
|
|
125
|
+
|
|
126
|
+
1. **Asegúrese de que su configuración sea correcta:**
|
|
127
|
+
- Verifique que el archivo `~/.cell-cli/config.yaml` existe y contiene una
|
|
128
|
+
entrada válida para `agent_api_url`. Por ejemplo:
|
|
129
|
+
```yaml
|
|
130
|
+
agent:
|
|
131
|
+
agent_api_url: https://api.machina.ai
|
|
132
|
+
```
|
|
133
|
+
- Asegúrese de haber iniciado sesión en el CLI para que exista un token de
|
|
134
|
+
sesión válido en `~/.cell-cli/session.json`.
|
|
135
|
+
|
|
136
|
+
2. **Inicie el CLI en modo interactivo:**
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
cell-cli
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
3. **Use el comando `/mcp`:** Dentro del CLI interactivo, escriba el siguiente
|
|
143
|
+
comando y presione Enter:
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
/mcp
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
4. **Verifique el resultado:** El resultado debería listar los servidores MCP
|
|
150
|
+
disponibles. Debería ver una entrada para el servidor que acaba de
|
|
151
|
+
configurar, similar a esta:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
MCP Servers:
|
|
155
|
+
- Cell Agents MCP Server (cell-mcp)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Si el servidor aparece en la lista, significa que la extensión "built-in" se
|
|
159
|
+
cargó correctamente, leyó la configuración de su `config.yaml` y se registró
|
|
160
|
+
exitosamente en el CLI.
|