@machina.ai/cell-cli-core 1.20.2-rc1 → 1.25.0-rc1
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/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- 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.d.ts +6 -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 +19 -0
- package/dist/src/agents/delegate-to-agent-tool.js +122 -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 +213 -0
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -0
- package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
- package/dist/src/agents/{executor.js → local-executor.js} +124 -63
- 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 +37 -1
- package/dist/src/agents/registry.js +240 -27
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +465 -30
- 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/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/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 +3 -1
- package/dist/src/availability/modelAvailabilityService.js +3 -0
- package/dist/src/availability/modelAvailabilityService.js.map +1 -1
- package/dist/src/availability/modelPolicy.d.ts +8 -1
- package/dist/src/availability/policyCatalog.d.ts +1 -0
- package/dist/src/availability/policyCatalog.js +6 -7
- package/dist/src/availability/policyCatalog.js.map +1 -1
- package/dist/src/availability/policyCatalog.test.js +2 -2
- package/dist/src/availability/policyCatalog.test.js.map +1 -1
- package/dist/src/availability/policyHelpers.d.ts +34 -3
- package/dist/src/availability/policyHelpers.js +104 -13
- package/dist/src/availability/policyHelpers.js.map +1 -1
- package/dist/src/availability/policyHelpers.test.js +143 -13
- package/dist/src/availability/policyHelpers.test.js.map +1 -1
- 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 +2 -1
- 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.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.d.ts +2 -0
- package/dist/src/code_assist/oauth2.js +70 -14
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +224 -22
- 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/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/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/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 +145 -25
- package/dist/src/config/config.js +370 -132
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +416 -50
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/defaultModelConfigs.js +21 -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 +36 -15
- package/dist/src/config/models.js +89 -28
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +107 -77
- 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 +3 -1
- package/dist/src/confirmation-bus/message-bus.js.map +1 -1
- package/dist/src/confirmation-bus/types.d.ts +4 -0
- package/dist/src/core/baseLlmClient.d.ts +3 -1
- package/dist/src/core/baseLlmClient.js +60 -22
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +177 -7
- 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 +261 -96
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +397 -67
- 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 +6 -4
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +24 -23
- 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 +139 -333
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +304 -348
- 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 +144 -80
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +334 -253
- 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.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 +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 +7 -8
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts.js +48 -22
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +66 -11
- 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 -21
- package/dist/src/core/turn.js +32 -22
- 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 +55 -120
- package/dist/src/fallback/handler.js.map +1 -1
- package/dist/src/fallback/handler.test.js +115 -288
- 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 +120 -16
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +231 -9
- 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 -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 +68 -18
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +173 -36
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/hookSystem.d.ts +10 -6
- package/dist/src/hooks/hookSystem.js +36 -16
- package/dist/src/hooks/hookSystem.js.map +1 -1
- package/dist/src/hooks/hookSystem.test.js +123 -18
- package/dist/src/hooks/hookSystem.test.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 +2 -1
- package/dist/src/hooks/index.js +1 -0
- 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 +42 -11
- package/dist/src/hooks/types.js +31 -42
- 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 +42 -1
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-client.js +6 -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 +12 -3
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/index.d.ts +23 -1
- package/dist/src/index.js +25 -2
- 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/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 +24 -2
- 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/write.toml +5 -0
- package/dist/src/policy/policies/yolo.toml +1 -0
- package/dist/src/policy/policy-engine.d.ts +14 -1
- package/dist/src/policy/policy-engine.js +165 -7
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +315 -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 +438 -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 +43 -60
- package/dist/src/policy/toml-loader.js.map +1 -1
- package/dist/src/policy/toml-loader.test.js +41 -7
- package/dist/src/policy/toml-loader.test.js.map +1 -1
- package/dist/src/policy/types.d.ts +25 -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/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/routingStrategy.d.ts +2 -0
- 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 +18 -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.d.ts +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js +21 -13
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.js +76 -39
- 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 +5 -4
- 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/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/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 +8 -1
- package/dist/src/services/chatCompressionService.js.map +1 -1
- package/dist/src/services/chatCompressionService.test.js +3 -0
- package/dist/src/services/chatCompressionService.test.js.map +1 -1
- package/dist/src/services/chatRecordingService.d.ts +21 -1
- package/dist/src/services/chatRecordingService.js +57 -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/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 +15 -1
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/gitService.test.js +56 -2
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +4 -3
- 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 +3 -3
- package/dist/src/services/modelConfig.integration.test.js.map +1 -1
- package/dist/src/services/modelConfigService.d.ts +41 -4
- package/dist/src/services/modelConfigService.js +135 -75
- package/dist/src/services/modelConfigService.js.map +1 -1
- package/dist/src/services/modelConfigService.test.js +226 -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 +2 -0
- package/dist/src/services/shellExecutionService.js +34 -72
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +114 -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 +16 -0
- 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/activity-detector.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +19 -9
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +261 -164
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +223 -27
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +12 -3
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +26 -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 +1 -1
- package/dist/src/telemetry/index.js +1 -1
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +4 -3
- package/dist/src/telemetry/loggers.js +351 -340
- 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 +71 -15
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- 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/startupProfiler.js +26 -3
- package/dist/src/telemetry/startupProfiler.js.map +1 -1
- package/dist/src/telemetry/startupProfiler.test.js +49 -7
- package/dist/src/telemetry/startupProfiler.test.js.map +1 -1
- 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.map +1 -1
- package/dist/src/telemetry/types.d.ts +37 -12
- package/dist/src/telemetry/types.js +61 -20
- 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 +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.d.ts +6 -0
- package/dist/src/tools/confirmation-policy.test.js +143 -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 +460 -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.d.ts +2 -1
- package/dist/src/tools/mcp-client-manager.js +32 -9
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.test.js +41 -10
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +43 -6
- package/dist/src/tools/mcp-client.js +443 -176
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +664 -39
- 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 +21 -8
- 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 +35 -49
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +36 -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 +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 +27 -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 +21 -8
- 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 +14 -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/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/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.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 +27 -23
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/editor.d.ts +10 -1
- package/dist/src/utils/editor.js +48 -19
- 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/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 +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/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/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 +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/gitIgnoreParser.js +9 -10
- package/dist/src/utils/gitIgnoreParser.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/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/nextSpeakerChecker.test.js +4 -0
- package/dist/src/utils/nextSpeakerChecker.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/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/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 +12 -0
- package/dist/src/utils/retry.js +70 -17
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +181 -21
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +16 -47
- package/dist/src/utils/shell-utils.js +98 -194
- 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/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.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/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/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/tools/smart-edit.d.ts +0 -78
- package/dist/src/tools/smart-edit.js +0 -717
- 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/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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextManager.test.js","sourceRoot":"","sources":["../../../src/services/contextManager.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"contextManager.test.js","sourceRoot":"","sources":["../../../src/services/contextManager.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export type EnvironmentSanitizationConfig = {
|
|
7
|
+
allowedEnvironmentVariables: string[];
|
|
8
|
+
blockedEnvironmentVariables: string[];
|
|
9
|
+
enableEnvironmentVariableRedaction: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function sanitizeEnvironment(processEnv: NodeJS.ProcessEnv, config: EnvironmentSanitizationConfig): NodeJS.ProcessEnv;
|
|
12
|
+
export declare const ALWAYS_ALLOWED_ENVIRONMENT_VARIABLES: ReadonlySet<string>;
|
|
13
|
+
export declare const NEVER_ALLOWED_ENVIRONMENT_VARIABLES: ReadonlySet<string>;
|
|
14
|
+
export declare const NEVER_ALLOWED_NAME_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
|
|
15
|
+
export declare const NEVER_ALLOWED_VALUE_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export function sanitizeEnvironment(processEnv, config) {
|
|
7
|
+
// Enable strict sanitization in GitHub actions.
|
|
8
|
+
const isStrictSanitization = !!processEnv['GITHUB_SHA'] || processEnv['SURFACE'] === 'Github';
|
|
9
|
+
// Always sanitize when in GitHub actions.
|
|
10
|
+
if (!config.enableEnvironmentVariableRedaction && !isStrictSanitization) {
|
|
11
|
+
return { ...processEnv };
|
|
12
|
+
}
|
|
13
|
+
const results = {};
|
|
14
|
+
const allowedSet = new Set((config.allowedEnvironmentVariables || []).map((k) => k.toUpperCase()));
|
|
15
|
+
const blockedSet = new Set((config.blockedEnvironmentVariables || []).map((k) => k.toUpperCase()));
|
|
16
|
+
for (const key in processEnv) {
|
|
17
|
+
const value = processEnv[key];
|
|
18
|
+
if (!shouldRedactEnvironmentVariable(key, value, allowedSet, blockedSet, isStrictSanitization)) {
|
|
19
|
+
results[key] = value;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return results;
|
|
23
|
+
}
|
|
24
|
+
export const ALWAYS_ALLOWED_ENVIRONMENT_VARIABLES = new Set([
|
|
25
|
+
// Cross-platform
|
|
26
|
+
'PATH',
|
|
27
|
+
// Windows specific
|
|
28
|
+
'SYSTEMROOT',
|
|
29
|
+
'COMSPEC',
|
|
30
|
+
'PATHEXT',
|
|
31
|
+
'WINDIR',
|
|
32
|
+
'TEMP',
|
|
33
|
+
'TMP',
|
|
34
|
+
'USERPROFILE',
|
|
35
|
+
'SYSTEMDRIVE',
|
|
36
|
+
// Unix/Linux/macOS specific
|
|
37
|
+
'HOME',
|
|
38
|
+
'LANG',
|
|
39
|
+
'SHELL',
|
|
40
|
+
'TMPDIR',
|
|
41
|
+
'USER',
|
|
42
|
+
'LOGNAME',
|
|
43
|
+
// GitHub Action-related variables
|
|
44
|
+
'ADDITIONAL_CONTEXT',
|
|
45
|
+
'AVAILABLE_LABELS',
|
|
46
|
+
'BRANCH_NAME',
|
|
47
|
+
'DESCRIPTION',
|
|
48
|
+
'EVENT_NAME',
|
|
49
|
+
'GITHUB_ENV',
|
|
50
|
+
'IS_PULL_REQUEST',
|
|
51
|
+
'ISSUES_TO_TRIAGE',
|
|
52
|
+
'ISSUE_BODY',
|
|
53
|
+
'ISSUE_NUMBER',
|
|
54
|
+
'ISSUE_TITLE',
|
|
55
|
+
'PULL_REQUEST_NUMBER',
|
|
56
|
+
'REPOSITORY',
|
|
57
|
+
'TITLE',
|
|
58
|
+
'TRIGGERING_ACTOR',
|
|
59
|
+
]);
|
|
60
|
+
export const NEVER_ALLOWED_ENVIRONMENT_VARIABLES = new Set([
|
|
61
|
+
'CLIENT_ID',
|
|
62
|
+
'DB_URI',
|
|
63
|
+
'CONNECTION_STRING',
|
|
64
|
+
'AWS_DEFAULT_REGION',
|
|
65
|
+
'AZURE_CLIENT_ID',
|
|
66
|
+
'AZURE_TENANT_ID',
|
|
67
|
+
'SLACK_WEBHOOK_URL',
|
|
68
|
+
'TWILIO_ACCOUNT_SID',
|
|
69
|
+
'DATABASE_URL',
|
|
70
|
+
'GOOGLE_CLOUD_PROJECT',
|
|
71
|
+
'GOOGLE_CLOUD_ACCOUNT',
|
|
72
|
+
'FIREBASE_PROJECT_ID',
|
|
73
|
+
]);
|
|
74
|
+
export const NEVER_ALLOWED_NAME_PATTERNS = [
|
|
75
|
+
/TOKEN/i,
|
|
76
|
+
/SECRET/i,
|
|
77
|
+
/PASSWORD/i,
|
|
78
|
+
/PASSWD/i,
|
|
79
|
+
/KEY/i,
|
|
80
|
+
/AUTH/i,
|
|
81
|
+
/CREDENTIAL/i,
|
|
82
|
+
/CREDS/i,
|
|
83
|
+
/PRIVATE/i,
|
|
84
|
+
/CERT/i,
|
|
85
|
+
];
|
|
86
|
+
export const NEVER_ALLOWED_VALUE_PATTERNS = [
|
|
87
|
+
/-----BEGIN (RSA|OPENSSH|EC|PGP) PRIVATE KEY-----/i,
|
|
88
|
+
/-----BEGIN CERTIFICATE-----/i,
|
|
89
|
+
// Credentials in URL
|
|
90
|
+
/(https?|ftp|smtp):\/\/[^:]+:[^@]+@/i,
|
|
91
|
+
// GitHub tokens (classic, fine-grained, OAuth, etc.)
|
|
92
|
+
/(ghp|gho|ghu|ghs|ghr|github_pat)_[a-zA-Z0-9_]{36,}/i,
|
|
93
|
+
// Google API keys
|
|
94
|
+
/AIzaSy[a-zA-Z0-9_\\-]{33}/i,
|
|
95
|
+
// Amazon AWS Access Key ID
|
|
96
|
+
/AKIA[A-Z0-9]{16}/i,
|
|
97
|
+
// Generic OAuth/JWT tokens
|
|
98
|
+
/eyJ[a-zA-Z0-9_-]*\.[a-zA-Z0-9_-]*\.[a-zA-Z0-9_-]*/i,
|
|
99
|
+
// Stripe API keys
|
|
100
|
+
/(s|r)k_(live|test)_[0-9a-zA-Z]{24}/i,
|
|
101
|
+
// Slack tokens (bot, user, etc.)
|
|
102
|
+
/xox[abpr]-[a-zA-Z0-9-]+/i,
|
|
103
|
+
];
|
|
104
|
+
function shouldRedactEnvironmentVariable(key, value, allowedSet, blockedSet, isStrictSanitization = false) {
|
|
105
|
+
key = key.toUpperCase();
|
|
106
|
+
value = value?.toUpperCase();
|
|
107
|
+
// User overrides take precedence.
|
|
108
|
+
if (allowedSet?.has(key)) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
if (blockedSet?.has(key)) {
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
// These are never redacted.
|
|
115
|
+
if (ALWAYS_ALLOWED_ENVIRONMENT_VARIABLES.has(key) ||
|
|
116
|
+
key.startsWith('CELL_CLI_')) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
// These are always redacted.
|
|
120
|
+
if (NEVER_ALLOWED_ENVIRONMENT_VARIABLES.has(key)) {
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
// If in strict mode (e.g. GitHub Action), and not explicitly allowed, redact it.
|
|
124
|
+
if (isStrictSanitization) {
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
for (const pattern of NEVER_ALLOWED_NAME_PATTERNS) {
|
|
128
|
+
if (pattern.test(key)) {
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Redact if the value looks like a key/cert.
|
|
133
|
+
if (value) {
|
|
134
|
+
for (const pattern of NEVER_ALLOWED_VALUE_PATTERNS) {
|
|
135
|
+
if (pattern.test(value)) {
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=environmentSanitization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentSanitization.js","sourceRoot":"","sources":["../../../src/services/environmentSanitization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, expect, it } from 'vitest';
|
|
7
|
+
import { ALWAYS_ALLOWED_ENVIRONMENT_VARIABLES, NEVER_ALLOWED_ENVIRONMENT_VARIABLES, NEVER_ALLOWED_NAME_PATTERNS, NEVER_ALLOWED_VALUE_PATTERNS, sanitizeEnvironment, } from './environmentSanitization.js';
|
|
8
|
+
const EMPTY_OPTIONS = {
|
|
9
|
+
allowedEnvironmentVariables: [],
|
|
10
|
+
blockedEnvironmentVariables: [],
|
|
11
|
+
enableEnvironmentVariableRedaction: true,
|
|
12
|
+
};
|
|
13
|
+
describe('sanitizeEnvironment', () => {
|
|
14
|
+
it('should allow safe, common environment variables', () => {
|
|
15
|
+
const env = {
|
|
16
|
+
PATH: '/usr/bin',
|
|
17
|
+
HOME: '/home/user',
|
|
18
|
+
USER: 'user',
|
|
19
|
+
SystemRoot: 'C:\\Windows',
|
|
20
|
+
LANG: 'en_US.UTF-8',
|
|
21
|
+
};
|
|
22
|
+
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
|
23
|
+
expect(sanitized).toEqual(env);
|
|
24
|
+
});
|
|
25
|
+
it('should allow variables prefixed with CELL_CLI_', () => {
|
|
26
|
+
const env = {
|
|
27
|
+
CELL_CLI_FOO: 'bar',
|
|
28
|
+
CELL_CLI_BAZ: 'qux',
|
|
29
|
+
};
|
|
30
|
+
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
|
31
|
+
expect(sanitized).toEqual(env);
|
|
32
|
+
});
|
|
33
|
+
it('should redact variables with sensitive names from the denylist', () => {
|
|
34
|
+
const env = {
|
|
35
|
+
CLIENT_ID: 'sensitive-id',
|
|
36
|
+
DB_URI: 'sensitive-uri',
|
|
37
|
+
DATABASE_URL: 'sensitive-url',
|
|
38
|
+
SAFE_VAR: 'is-safe',
|
|
39
|
+
};
|
|
40
|
+
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
|
41
|
+
expect(sanitized).toEqual({
|
|
42
|
+
SAFE_VAR: 'is-safe',
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
it('should redact variables with names matching all sensitive patterns (case-insensitive)', () => {
|
|
46
|
+
const env = {
|
|
47
|
+
// Patterns
|
|
48
|
+
MY_API_TOKEN: 'token-value',
|
|
49
|
+
AppSecret: 'secret-value',
|
|
50
|
+
db_password: 'password-value',
|
|
51
|
+
ORA_PASSWD: 'password-value',
|
|
52
|
+
ANOTHER_KEY: 'key-value',
|
|
53
|
+
some_auth_var: 'auth-value',
|
|
54
|
+
USER_CREDENTIAL: 'cred-value',
|
|
55
|
+
AWS_CREDS: 'creds-value',
|
|
56
|
+
PRIVATE_STUFF: 'private-value',
|
|
57
|
+
SSL_CERT: 'cert-value',
|
|
58
|
+
// Safe variable
|
|
59
|
+
USEFUL_INFO: 'is-ok',
|
|
60
|
+
};
|
|
61
|
+
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
|
62
|
+
expect(sanitized).toEqual({
|
|
63
|
+
USEFUL_INFO: 'is-ok',
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
it('should redact variables with values matching all private key patterns', () => {
|
|
67
|
+
const env = {
|
|
68
|
+
RSA_KEY: '-----BEGIN RSA PRIVATE KEY-----...',
|
|
69
|
+
OPENSSH_KEY: '-----BEGIN OPENSSH PRIVATE KEY-----...',
|
|
70
|
+
EC_KEY: '-----BEGIN EC PRIVATE KEY-----...',
|
|
71
|
+
PGP_KEY: '-----BEGIN PGP PRIVATE KEY-----...',
|
|
72
|
+
CERTIFICATE: '-----BEGIN CERTIFICATE-----...',
|
|
73
|
+
SAFE_VAR: 'is-safe',
|
|
74
|
+
};
|
|
75
|
+
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
|
76
|
+
expect(sanitized).toEqual({
|
|
77
|
+
SAFE_VAR: 'is-safe',
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
it('should redact variables with values matching all token and credential patterns', () => {
|
|
81
|
+
const env = {
|
|
82
|
+
// GitHub
|
|
83
|
+
GITHUB_TOKEN_GHP: 'ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
84
|
+
GITHUB_TOKEN_GHO: 'gho_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
85
|
+
GITHUB_TOKEN_GHU: 'ghu_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
86
|
+
GITHUB_TOKEN_GHS: 'ghs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
87
|
+
GITHUB_TOKEN_GHR: 'ghr_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
88
|
+
GITHUB_PAT: 'github_pat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
89
|
+
// Google
|
|
90
|
+
GOOGLE_KEY: 'AIzaSyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
91
|
+
// AWS
|
|
92
|
+
AWS_KEY: 'AKIAxxxxxxxxxxxxxxxx',
|
|
93
|
+
// JWT
|
|
94
|
+
JWT_TOKEN: 'eyJhbGciOiJIUzI1NiJ9.e30.ZRrHA157xAA_7962-a_3rA',
|
|
95
|
+
// Stripe
|
|
96
|
+
STRIPE_SK_LIVE: 'sk_live_xxxxxxxxxxxxxxxxxxxxxxxx',
|
|
97
|
+
STRIPE_RK_LIVE: 'rk_live_xxxxxxxxxxxxxxxxxxxxxxxx',
|
|
98
|
+
STRIPE_SK_TEST: 'sk_test_xxxxxxxxxxxxxxxxxxxxxxxx',
|
|
99
|
+
STRIPE_RK_TEST: 'rk_test_xxxxxxxxxxxxxxxxxxxxxxxx',
|
|
100
|
+
// Slack
|
|
101
|
+
SLACK_XOXB: 'xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxx',
|
|
102
|
+
SLACK_XOXA: 'xoxa-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxx',
|
|
103
|
+
SLACK_XOXP: 'xoxp-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxx',
|
|
104
|
+
SLACK_XOXB_2: 'xoxr-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxx',
|
|
105
|
+
// URL Credentials
|
|
106
|
+
CREDS_IN_HTTPS_URL: 'https://user:password@example.com',
|
|
107
|
+
CREDS_IN_HTTP_URL: 'http://user:password@example.com',
|
|
108
|
+
CREDS_IN_FTP_URL: 'ftp://user:password@example.com',
|
|
109
|
+
CREDS_IN_SMTP_URL: 'smtp://user:password@example.com',
|
|
110
|
+
// Safe variable
|
|
111
|
+
SAFE_VAR: 'is-safe',
|
|
112
|
+
};
|
|
113
|
+
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
|
114
|
+
expect(sanitized).toEqual({
|
|
115
|
+
SAFE_VAR: 'is-safe',
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
it('should not redact variables that look similar to sensitive patterns', () => {
|
|
119
|
+
const env = {
|
|
120
|
+
// Not a credential in URL
|
|
121
|
+
SAFE_URL: 'https://example.com/foo/bar',
|
|
122
|
+
// Not a real JWT
|
|
123
|
+
NOT_A_JWT: 'this.is.not.a.jwt',
|
|
124
|
+
// Too short to be a token
|
|
125
|
+
ALMOST_A_TOKEN: 'ghp_12345',
|
|
126
|
+
// Contains a sensitive word, but in a safe context in the value
|
|
127
|
+
PUBLIC_KEY_INFO: 'This value describes a public key',
|
|
128
|
+
// Variable names that could be false positives
|
|
129
|
+
KEYNOTE_SPEAKER: 'Dr. Jane Goodall',
|
|
130
|
+
CERTIFIED_DIVER: 'true',
|
|
131
|
+
AUTHENTICATION_FLOW: 'oauth',
|
|
132
|
+
PRIVATE_JET_OWNER: 'false',
|
|
133
|
+
};
|
|
134
|
+
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
|
135
|
+
expect(sanitized).toEqual({
|
|
136
|
+
SAFE_URL: 'https://example.com/foo/bar',
|
|
137
|
+
NOT_A_JWT: 'this.is.not.a.jwt',
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
it('should not redact variables with undefined or empty values if name is safe', () => {
|
|
141
|
+
const env = {
|
|
142
|
+
EMPTY_VAR: '',
|
|
143
|
+
UNDEFINED_VAR: undefined,
|
|
144
|
+
ANOTHER_SAFE_VAR: 'value',
|
|
145
|
+
};
|
|
146
|
+
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
|
147
|
+
expect(sanitized).toEqual({
|
|
148
|
+
EMPTY_VAR: '',
|
|
149
|
+
ANOTHER_SAFE_VAR: 'value',
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
it('should allow variables that do not match any redaction rules', () => {
|
|
153
|
+
const env = {
|
|
154
|
+
NODE_ENV: 'development',
|
|
155
|
+
APP_VERSION: '1.0.0',
|
|
156
|
+
};
|
|
157
|
+
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
|
158
|
+
expect(sanitized).toEqual(env);
|
|
159
|
+
});
|
|
160
|
+
it('should handle an empty environment', () => {
|
|
161
|
+
const env = {};
|
|
162
|
+
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
|
163
|
+
expect(sanitized).toEqual({});
|
|
164
|
+
});
|
|
165
|
+
it('should handle a mixed environment with allowed and redacted variables', () => {
|
|
166
|
+
const env = {
|
|
167
|
+
// Allowed
|
|
168
|
+
PATH: '/usr/bin',
|
|
169
|
+
HOME: '/home/user',
|
|
170
|
+
CELL_CLI_VERSION: '1.2.3',
|
|
171
|
+
NODE_ENV: 'production',
|
|
172
|
+
// Redacted by name
|
|
173
|
+
API_KEY: 'should-be-redacted',
|
|
174
|
+
MY_SECRET: 'super-secret',
|
|
175
|
+
// Redacted by value
|
|
176
|
+
GH_TOKEN: 'ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
177
|
+
JWT: 'eyJhbGciOiJIUzI1NiJ9.e30.ZRrHA157xAA_7962-a_3rA',
|
|
178
|
+
// Allowed by name but redacted by value
|
|
179
|
+
RANDOM_VAR: '-----BEGIN CERTIFICATE-----...',
|
|
180
|
+
};
|
|
181
|
+
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
|
182
|
+
expect(sanitized).toEqual({
|
|
183
|
+
PATH: '/usr/bin',
|
|
184
|
+
HOME: '/home/user',
|
|
185
|
+
CELL_CLI_VERSION: '1.2.3',
|
|
186
|
+
NODE_ENV: 'production',
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
it('should ensure all names in the sets are capitalized', () => {
|
|
190
|
+
for (const name of ALWAYS_ALLOWED_ENVIRONMENT_VARIABLES) {
|
|
191
|
+
expect(name).toBe(name.toUpperCase());
|
|
192
|
+
}
|
|
193
|
+
for (const name of NEVER_ALLOWED_ENVIRONMENT_VARIABLES) {
|
|
194
|
+
expect(name).toBe(name.toUpperCase());
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
it('should ensure all of the regex in the patterns lists are case insensitive', () => {
|
|
198
|
+
for (const pattern of NEVER_ALLOWED_NAME_PATTERNS) {
|
|
199
|
+
expect(pattern.flags).toContain('i');
|
|
200
|
+
}
|
|
201
|
+
for (const pattern of NEVER_ALLOWED_VALUE_PATTERNS) {
|
|
202
|
+
expect(pattern.flags).toContain('i');
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
it('should allow variables specified in allowedEnvironmentVariables', () => {
|
|
206
|
+
const env = {
|
|
207
|
+
MY_TOKEN: 'secret-token',
|
|
208
|
+
OTHER_SECRET: 'another-secret',
|
|
209
|
+
};
|
|
210
|
+
const allowed = ['MY_TOKEN'];
|
|
211
|
+
const sanitized = sanitizeEnvironment(env, {
|
|
212
|
+
allowedEnvironmentVariables: allowed,
|
|
213
|
+
blockedEnvironmentVariables: [],
|
|
214
|
+
enableEnvironmentVariableRedaction: true,
|
|
215
|
+
});
|
|
216
|
+
expect(sanitized).toEqual({
|
|
217
|
+
MY_TOKEN: 'secret-token',
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
it('should block variables specified in blockedEnvironmentVariables', () => {
|
|
221
|
+
const env = {
|
|
222
|
+
SAFE_VAR: 'safe-value',
|
|
223
|
+
BLOCKED_VAR: 'blocked-value',
|
|
224
|
+
};
|
|
225
|
+
const blocked = ['BLOCKED_VAR'];
|
|
226
|
+
const sanitized = sanitizeEnvironment(env, {
|
|
227
|
+
allowedEnvironmentVariables: [],
|
|
228
|
+
blockedEnvironmentVariables: blocked,
|
|
229
|
+
enableEnvironmentVariableRedaction: true,
|
|
230
|
+
});
|
|
231
|
+
expect(sanitized).toEqual({
|
|
232
|
+
SAFE_VAR: 'safe-value',
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
it('should prioritize allowed over blocked if a variable is in both (though user configuration should avoid this)', () => {
|
|
236
|
+
const env = {
|
|
237
|
+
CONFLICT_VAR: 'value',
|
|
238
|
+
};
|
|
239
|
+
const allowed = ['CONFLICT_VAR'];
|
|
240
|
+
const blocked = ['CONFLICT_VAR'];
|
|
241
|
+
const sanitized = sanitizeEnvironment(env, {
|
|
242
|
+
allowedEnvironmentVariables: allowed,
|
|
243
|
+
blockedEnvironmentVariables: blocked,
|
|
244
|
+
enableEnvironmentVariableRedaction: true,
|
|
245
|
+
});
|
|
246
|
+
expect(sanitized).toEqual({
|
|
247
|
+
CONFLICT_VAR: 'value',
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
it('should be case insensitive for allowed and blocked lists', () => {
|
|
251
|
+
const env = {
|
|
252
|
+
MY_TOKEN: 'secret-token',
|
|
253
|
+
BLOCKED_VAR: 'blocked-value',
|
|
254
|
+
};
|
|
255
|
+
const allowed = ['my_token'];
|
|
256
|
+
const blocked = ['blocked_var'];
|
|
257
|
+
const sanitized = sanitizeEnvironment(env, {
|
|
258
|
+
allowedEnvironmentVariables: allowed,
|
|
259
|
+
blockedEnvironmentVariables: blocked,
|
|
260
|
+
enableEnvironmentVariableRedaction: true,
|
|
261
|
+
});
|
|
262
|
+
expect(sanitized).toEqual({
|
|
263
|
+
MY_TOKEN: 'secret-token',
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
it('should not perform any redaction if enableEnvironmentVariableRedaction is false', () => {
|
|
267
|
+
const env = {
|
|
268
|
+
MY_API_TOKEN: 'token-value',
|
|
269
|
+
AppSecret: 'secret-value',
|
|
270
|
+
db_password: 'password-value',
|
|
271
|
+
RSA_KEY: '-----BEGIN RSA PRIVATE KEY-----...',
|
|
272
|
+
GITHUB_TOKEN_GHP: 'ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
273
|
+
SAFE_VAR: 'is-safe',
|
|
274
|
+
};
|
|
275
|
+
const options = {
|
|
276
|
+
allowedEnvironmentVariables: [],
|
|
277
|
+
blockedEnvironmentVariables: [],
|
|
278
|
+
enableEnvironmentVariableRedaction: false,
|
|
279
|
+
};
|
|
280
|
+
const sanitized = sanitizeEnvironment(env, options);
|
|
281
|
+
expect(sanitized).toEqual(env);
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
//# sourceMappingURL=environmentSanitization.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentSanitization.test.js","sourceRoot":"","sources":["../../../src/services/environmentSanitization.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,14 +21,6 @@ export interface FileSystemService {
|
|
|
21
21
|
* @param content - The content to write
|
|
22
22
|
*/
|
|
23
23
|
writeTextFile(filePath: string, content: string): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Finds files with a given name within specified search paths.
|
|
26
|
-
*
|
|
27
|
-
* @param fileName - The name of the file to find.
|
|
28
|
-
* @param searchPaths - An array of directory paths to search within.
|
|
29
|
-
* @returns An array of absolute paths to the found files.
|
|
30
|
-
*/
|
|
31
|
-
findFiles(fileName: string, searchPaths: readonly string[]): string[];
|
|
32
24
|
}
|
|
33
25
|
/**
|
|
34
26
|
* Standard file system implementation
|
|
@@ -36,5 +28,4 @@ export interface FileSystemService {
|
|
|
36
28
|
export declare class StandardFileSystemService implements FileSystemService {
|
|
37
29
|
readTextFile(filePath: string): Promise<string>;
|
|
38
30
|
writeTextFile(filePath: string, content: string): Promise<void>;
|
|
39
|
-
findFiles(fileName: string, searchPaths: readonly string[]): string[];
|
|
40
31
|
}
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import fs from 'node:fs/promises';
|
|
7
|
-
import * as path from 'node:path';
|
|
8
|
-
import { globSync } from 'glob';
|
|
9
7
|
/**
|
|
10
8
|
* Standard file system implementation
|
|
11
9
|
*/
|
|
@@ -16,14 +14,5 @@ export class StandardFileSystemService {
|
|
|
16
14
|
async writeTextFile(filePath, content) {
|
|
17
15
|
await fs.writeFile(filePath, content, 'utf-8');
|
|
18
16
|
}
|
|
19
|
-
findFiles(fileName, searchPaths) {
|
|
20
|
-
return searchPaths.flatMap((searchPath) => {
|
|
21
|
-
const pattern = path.posix.join(searchPath, '**', fileName);
|
|
22
|
-
return globSync(pattern, {
|
|
23
|
-
nodir: true,
|
|
24
|
-
absolute: true,
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
17
|
}
|
|
29
18
|
//# sourceMappingURL=fileSystemService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileSystemService.js","sourceRoot":"","sources":["../../../src/services/fileSystemService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"fileSystemService.js","sourceRoot":"","sources":["../../../src/services/fileSystemService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAuBlC;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACpC,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,OAAe;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -8,6 +8,7 @@ import * as path from 'node:path';
|
|
|
8
8
|
import { isNodeError } from '../utils/errors.js';
|
|
9
9
|
import { spawnAsync } from '../utils/shell-utils.js';
|
|
10
10
|
import { simpleGit, CheckRepoActions } from 'simple-git';
|
|
11
|
+
import { debugLogger } from '../utils/debugLogger.js';
|
|
11
12
|
export class GitService {
|
|
12
13
|
projectRoot;
|
|
13
14
|
storage;
|
|
@@ -52,7 +53,15 @@ export class GitService {
|
|
|
52
53
|
const gitConfigContent = '[user]\n name = Cell CLI\n email = gemini-cli@google.com\n[commit]\n gpgsign = false\n';
|
|
53
54
|
await fs.writeFile(gitConfigPath, gitConfigContent);
|
|
54
55
|
const repo = simpleGit(repoDir);
|
|
55
|
-
|
|
56
|
+
let isRepoDefined = false;
|
|
57
|
+
try {
|
|
58
|
+
isRepoDefined = await repo.checkIsRepo(CheckRepoActions.IS_REPO_ROOT);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
// If checkIsRepo fails (e.g., on certain Git versions like macOS 2.39.5),
|
|
62
|
+
// log the error and assume repo is not defined, then proceed with initialization
|
|
63
|
+
debugLogger.debug(`checkIsRepo failed, will initialize repository: ${error instanceof Error ? error.message : String(error)}`);
|
|
64
|
+
}
|
|
56
65
|
if (!isRepoDefined) {
|
|
57
66
|
await repo.init(false, {
|
|
58
67
|
'--initial-branch': 'main',
|
|
@@ -90,6 +99,11 @@ export class GitService {
|
|
|
90
99
|
try {
|
|
91
100
|
const repo = this.shadowGitRepository;
|
|
92
101
|
await repo.add('.');
|
|
102
|
+
const status = await repo.status();
|
|
103
|
+
if (status.isClean()) {
|
|
104
|
+
// If no changes are staged, return the current HEAD commit hash
|
|
105
|
+
return await this.getCurrentCommitHash();
|
|
106
|
+
}
|
|
93
107
|
const commitResult = await repo.commit(message, {
|
|
94
108
|
'--no-verify': null,
|
|
95
109
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitService.js","sourceRoot":"","sources":["../../../src/services/gitService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"gitService.js","sourceRoot":"","sources":["../../../src/services/gitService.ts"],"names":[],"mappings":"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"}
|