@google/gemini-cli-core 0.37.0-preview.2 → 0.38.0-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -50
- package/dist/docs/changelogs/index.md +25 -0
- package/dist/docs/changelogs/latest.md +353 -362
- package/dist/docs/changelogs/preview.md +399 -366
- package/dist/docs/cli/plan-mode.md +1 -0
- package/dist/docs/cli/sandbox.md +52 -0
- package/dist/docs/cli/settings.md +17 -14
- package/dist/docs/core/remote-agents.md +14 -18
- package/dist/docs/core/subagents.md +63 -27
- package/dist/docs/get-started/authentication.md +2 -2
- package/dist/docs/get-started/installation.md +7 -0
- package/dist/docs/hooks/index.md +6 -6
- package/dist/docs/reference/configuration.md +41 -11
- package/dist/docs/reference/keyboard-shortcuts.md +14 -9
- package/dist/docs/reference/tools.md +4 -4
- package/dist/docs/release-confidence.md +0 -6
- package/dist/docs/releases.md +4 -0
- package/dist/docs/tools/mcp-server.md +3 -3
- package/dist/docs/tools/web-fetch.md +3 -0
- package/dist/src/agent/agent-session.test.js +14 -6
- package/dist/src/agent/agent-session.test.js.map +1 -1
- package/dist/src/agent/event-translator.js +2 -1
- package/dist/src/agent/event-translator.js.map +1 -1
- package/dist/src/agent/event-translator.test.js +1 -0
- package/dist/src/agent/event-translator.test.js.map +1 -1
- package/dist/src/agent/legacy-agent-session.d.ts +47 -4
- package/dist/src/agent/legacy-agent-session.js +38 -15
- package/dist/src/agent/legacy-agent-session.js.map +1 -1
- package/dist/src/agent/legacy-agent-session.test.js +60 -73
- package/dist/src/agent/legacy-agent-session.test.js.map +1 -1
- package/dist/src/agent/mock.js +7 -1
- package/dist/src/agent/mock.js.map +1 -1
- package/dist/src/agent/mock.test.js +1 -1
- package/dist/src/agent/mock.test.js.map +1 -1
- package/dist/src/agent/types.d.ts +34 -1
- package/dist/src/agents/agent-scheduler.js +6 -1
- package/dist/src/agents/agent-scheduler.js.map +1 -1
- package/dist/src/agents/agent-scheduler.test.js +38 -0
- package/dist/src/agents/agent-scheduler.test.js.map +1 -1
- package/dist/src/agents/auth-provider/api-key-provider.test.js +18 -2
- package/dist/src/agents/auth-provider/api-key-provider.test.js.map +1 -1
- package/dist/src/agents/auth-provider/value-resolver.test.js +30 -0
- package/dist/src/agents/auth-provider/value-resolver.test.js.map +1 -1
- package/dist/src/agents/browser/analyzeScreenshot.js +36 -6
- package/dist/src/agents/browser/analyzeScreenshot.js.map +1 -1
- package/dist/src/agents/browser/analyzeScreenshot.test.js +35 -3
- package/dist/src/agents/browser/analyzeScreenshot.test.js.map +1 -1
- package/dist/src/agents/browser/browserAgentFactory.d.ts +8 -0
- package/dist/src/agents/browser/browserAgentFactory.js +174 -118
- package/dist/src/agents/browser/browserAgentFactory.js.map +1 -1
- package/dist/src/agents/browser/browserAgentFactory.test.js +70 -1
- package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -1
- package/dist/src/agents/browser/browserAgentInvocation.js +29 -2
- package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
- package/dist/src/agents/browser/browserAgentInvocation.test.js +51 -5
- package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -1
- package/dist/src/agents/browser/browserManager.d.ts +38 -0
- package/dist/src/agents/browser/browserManager.js +117 -6
- package/dist/src/agents/browser/browserManager.js.map +1 -1
- package/dist/src/agents/browser/browserManager.test.js +156 -2
- package/dist/src/agents/browser/browserManager.test.js.map +1 -1
- package/dist/src/agents/browser/modelAvailability.d.ts +5 -0
- package/dist/src/agents/browser/modelAvailability.js +12 -0
- package/dist/src/agents/browser/modelAvailability.js.map +1 -1
- package/dist/src/agents/local-executor.d.ts +5 -0
- package/dist/src/agents/local-executor.js +98 -181
- package/dist/src/agents/local-executor.js.map +1 -1
- package/dist/src/agents/local-executor.test.js +386 -101
- package/dist/src/agents/local-executor.test.js.map +1 -1
- package/dist/src/agents/memory-manager-agent.js +1 -0
- package/dist/src/agents/memory-manager-agent.js.map +1 -1
- package/dist/src/agents/memory-manager-agent.test.js +6 -0
- package/dist/src/agents/memory-manager-agent.test.js.map +1 -1
- package/dist/src/agents/registry.js +3 -10
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/skill-extraction-agent.d.ts +24 -0
- package/dist/src/agents/skill-extraction-agent.js +269 -0
- package/dist/src/agents/skill-extraction-agent.js.map +1 -0
- package/dist/src/agents/types.d.ts +11 -0
- package/dist/src/code_assist/admin/admin_controls.js +1 -1
- package/dist/src/code_assist/admin/admin_controls.js.map +1 -1
- package/dist/src/code_assist/experiments/flagNames.d.ts +1 -0
- package/dist/src/code_assist/experiments/flagNames.js +1 -0
- package/dist/src/code_assist/experiments/flagNames.js.map +1 -1
- package/dist/src/code_assist/server.js +1 -1
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/commands/memory.js +1 -1
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/config/config.d.ts +34 -31
- package/dist/src/config/config.js +101 -38
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +102 -15
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extensions/integrity.js +1 -1
- package/dist/src/config/extensions/integrity.js.map +1 -1
- package/dist/src/config/projectRegistry.js +5 -3
- package/dist/src/config/projectRegistry.js.map +1 -1
- package/dist/src/config/scoped-config.d.ts +30 -0
- package/dist/src/config/scoped-config.js +69 -0
- package/dist/src/config/scoped-config.js.map +1 -0
- package/dist/src/config/scoped-config.test.d.ts +6 -0
- package/dist/src/config/scoped-config.test.js +161 -0
- package/dist/src/config/scoped-config.test.js.map +1 -0
- package/dist/src/config/storage.d.ts +2 -0
- package/dist/src/config/storage.js +7 -2
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/config/storage.test.js +7 -7
- package/dist/src/config/storage.test.js.map +1 -1
- package/dist/src/confirmation-bus/types.d.ts +2 -2
- package/dist/src/context/agentHistoryProvider.d.ts +1 -1
- package/dist/src/context/agentHistoryProvider.js +1 -5
- package/dist/src/context/agentHistoryProvider.js.map +1 -1
- package/dist/src/context/agentHistoryProvider.test.js +2 -39
- package/dist/src/context/agentHistoryProvider.test.js.map +1 -1
- package/dist/src/context/contextCompressionService.d.ts +30 -0
- package/dist/src/context/contextCompressionService.js +405 -0
- package/dist/src/context/contextCompressionService.js.map +1 -0
- package/dist/src/context/contextCompressionService.test.d.ts +1 -0
- package/dist/src/context/contextCompressionService.test.js +253 -0
- package/dist/src/context/contextCompressionService.test.js.map +1 -0
- package/dist/src/context/{contextManager.d.ts → memoryContextManager.d.ts} +1 -1
- package/dist/src/context/{contextManager.js → memoryContextManager.js} +2 -2
- package/dist/src/context/memoryContextManager.js.map +1 -0
- package/dist/src/context/{contextManager.test.js → memoryContextManager.test.js} +22 -28
- package/dist/src/context/memoryContextManager.test.js.map +1 -0
- package/dist/src/context/profiles.d.ts +7 -0
- package/dist/src/context/profiles.js +21 -0
- package/dist/src/context/profiles.js.map +1 -0
- package/dist/src/context/toolDistillationService.test.js +3 -0
- package/dist/src/context/toolDistillationService.test.js.map +1 -1
- package/dist/src/context/types.d.ts +36 -0
- package/dist/src/context/types.js.map +1 -0
- package/dist/src/core/baseLlmClient.js +1 -1
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +1 -0
- package/dist/src/core/baseLlmClient.test.js.map +1 -1
- package/dist/src/core/client.js +1 -1
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +7 -6
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/geminiChat.js +8 -0
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +1 -0
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChat_network_retry.test.js +1 -0
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
- package/dist/src/core/logger.js +4 -4
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/logger.test.js +1 -1
- package/dist/src/core/logger.test.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.js +1 -1
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/hooks/hookEventHandler.js +8 -0
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookRunner.js +9 -5
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +20 -3
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/hookSystem.d.ts +2 -0
- package/dist/src/hooks/hookSystem.js +1 -0
- package/dist/src/hooks/hookSystem.js.map +1 -1
- package/dist/src/hooks/hookTranslator.js +20 -13
- package/dist/src/hooks/hookTranslator.js.map +1 -1
- package/dist/src/hooks/hookTranslator.test.js +36 -0
- package/dist/src/hooks/hookTranslator.test.js.map +1 -1
- package/dist/src/hooks/types.d.ts +2 -0
- package/dist/src/ide/ide-client.js +3 -3
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-connection-utils.js +1 -1
- package/dist/src/ide/ide-connection-utils.js.map +1 -1
- package/dist/src/ide/ide-installer.js +3 -3
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/process-utils.js +3 -3
- package/dist/src/ide/process-utils.js.map +1 -1
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/output/json-formatter.js +2 -1
- package/dist/src/output/json-formatter.js.map +1 -1
- package/dist/src/policy/config.test.js +21 -20
- package/dist/src/policy/config.test.js.map +1 -1
- package/dist/src/policy/policies/memory-manager.toml +11 -1
- package/dist/src/policy/policies/plan.toml +4 -3
- package/dist/src/policy/policies/read-only.toml +6 -0
- package/dist/src/policy/policies/sandbox-default.toml +2 -3
- package/dist/src/policy/policy-engine.js +23 -0
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +129 -1
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/sandboxPolicyManager.d.ts +26 -1
- package/dist/src/policy/sandboxPolicyManager.js +41 -12
- package/dist/src/policy/sandboxPolicyManager.js.map +1 -1
- package/dist/src/policy/sandboxPolicyManager.test.d.ts +6 -0
- package/dist/src/policy/sandboxPolicyManager.test.js +61 -0
- package/dist/src/policy/sandboxPolicyManager.test.js.map +1 -0
- package/dist/src/policy/workspace-policy.test.js +18 -15
- package/dist/src/policy/workspace-policy.test.js.map +1 -1
- package/dist/src/prompts/snippets.js +6 -3
- package/dist/src/prompts/snippets.js.map +1 -1
- package/dist/src/prompts/snippets.legacy.js +6 -2
- package/dist/src/prompts/snippets.legacy.js.map +1 -1
- package/dist/src/prompts/utils.test.js +7 -5
- package/dist/src/prompts/utils.test.js.map +1 -1
- package/dist/src/safety/built-in.js +1 -1
- package/dist/src/safety/built-in.js.map +1 -1
- package/dist/src/sandbox/linux/LinuxSandboxManager.d.ts +4 -4
- package/dist/src/sandbox/linux/LinuxSandboxManager.js +47 -191
- package/dist/src/sandbox/linux/LinuxSandboxManager.js.map +1 -1
- package/dist/src/sandbox/linux/LinuxSandboxManager.test.js +33 -395
- package/dist/src/sandbox/linux/LinuxSandboxManager.test.js.map +1 -1
- package/dist/src/sandbox/linux/bwrapArgsBuilder.d.ts +24 -0
- package/dist/src/sandbox/linux/bwrapArgsBuilder.js +200 -0
- package/dist/src/sandbox/linux/bwrapArgsBuilder.js.map +1 -0
- package/dist/src/sandbox/linux/bwrapArgsBuilder.test.d.ts +6 -0
- package/dist/src/sandbox/linux/bwrapArgsBuilder.test.js +247 -0
- package/dist/src/sandbox/linux/bwrapArgsBuilder.test.js.map +1 -0
- package/dist/src/sandbox/macos/MacOsSandboxManager.d.ts +3 -0
- package/dist/src/sandbox/macos/MacOsSandboxManager.js +12 -5
- package/dist/src/sandbox/macos/MacOsSandboxManager.js.map +1 -1
- package/dist/src/sandbox/macos/MacOsSandboxManager.test.js +20 -0
- package/dist/src/sandbox/macos/MacOsSandboxManager.test.js.map +1 -1
- package/dist/src/sandbox/macos/baseProfile.d.ts +1 -1
- package/dist/src/sandbox/macos/baseProfile.js +28 -4
- package/dist/src/sandbox/macos/baseProfile.js.map +1 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.js +1 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.js.map +1 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js +2 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js.map +1 -1
- package/dist/src/sandbox/utils/fsUtils.js +8 -6
- package/dist/src/sandbox/utils/fsUtils.js.map +1 -1
- package/dist/src/sandbox/utils/fsUtils.test.d.ts +6 -0
- package/dist/src/sandbox/utils/fsUtils.test.js +43 -0
- package/dist/src/sandbox/utils/fsUtils.test.js.map +1 -0
- package/dist/src/sandbox/utils/proactivePermissions.d.ts +19 -0
- package/dist/src/sandbox/utils/proactivePermissions.js +163 -0
- package/dist/src/sandbox/utils/proactivePermissions.js.map +1 -0
- package/dist/src/sandbox/utils/proactivePermissions.test.d.ts +6 -0
- package/dist/src/sandbox/utils/proactivePermissions.test.js +145 -0
- package/dist/src/sandbox/utils/proactivePermissions.test.js.map +1 -0
- package/dist/src/sandbox/utils/sandboxDenialUtils.d.ts +16 -1
- package/dist/src/sandbox/utils/sandboxDenialUtils.js +98 -24
- package/dist/src/sandbox/utils/sandboxDenialUtils.js.map +1 -1
- package/dist/src/sandbox/utils/sandboxDenialUtils.test.js +152 -1
- package/dist/src/sandbox/utils/sandboxDenialUtils.test.js.map +1 -1
- package/dist/src/sandbox/utils/sandboxReadWriteUtils.js +4 -0
- package/dist/src/sandbox/utils/sandboxReadWriteUtils.js.map +1 -1
- package/dist/src/sandbox/windows/GeminiSandbox.cs +90 -42
- package/dist/src/sandbox/windows/WindowsSandboxManager.d.ts +4 -0
- package/dist/src/sandbox/windows/WindowsSandboxManager.js +65 -60
- package/dist/src/sandbox/windows/WindowsSandboxManager.js.map +1 -1
- package/dist/src/sandbox/windows/WindowsSandboxManager.test.js +99 -54
- package/dist/src/sandbox/windows/WindowsSandboxManager.test.js.map +1 -1
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.d.ts +2 -1
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js +19 -18
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js.map +1 -1
- package/dist/src/scheduler/scheduler.js +1 -1
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/scheduler/scheduler_hooks.test.js +1 -1
- package/dist/src/scheduler/scheduler_hooks.test.js.map +1 -1
- package/dist/src/scheduler/tool-executor.js +1 -1
- package/dist/src/scheduler/tool-executor.js.map +1 -1
- package/dist/src/scheduler/tool-executor.test.js +1 -1
- package/dist/src/scheduler/tool-executor.test.js.map +1 -1
- package/dist/src/services/executionLifecycleService.d.ts +1 -0
- package/dist/src/services/executionLifecycleService.js +3 -0
- package/dist/src/services/executionLifecycleService.js.map +1 -1
- package/dist/src/services/gitService.js +1 -1
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/memoryService.d.ts +65 -0
- package/dist/src/services/memoryService.js +511 -0
- package/dist/src/services/memoryService.js.map +1 -0
- package/dist/src/services/memoryService.test.d.ts +6 -0
- package/dist/src/services/memoryService.test.js +563 -0
- package/dist/src/services/memoryService.test.js.map +1 -0
- package/dist/src/services/sandboxManager.d.ts +17 -0
- package/dist/src/services/sandboxManager.integration.test.js +18 -11
- package/dist/src/services/sandboxManager.integration.test.js.map +1 -1
- package/dist/src/services/sandboxManager.js +20 -0
- package/dist/src/services/sandboxManager.js.map +1 -1
- package/dist/src/services/sandboxManager.test.js +84 -56
- package/dist/src/services/sandboxManager.test.js.map +1 -1
- package/dist/src/services/sandboxManagerFactory.js +2 -5
- package/dist/src/services/sandboxManagerFactory.js.map +1 -1
- package/dist/src/services/sandboxedFileSystemService.js +14 -3
- package/dist/src/services/sandboxedFileSystemService.js.map +1 -1
- package/dist/src/services/sandboxedFileSystemService.test.js +29 -14
- package/dist/src/services/sandboxedFileSystemService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +16 -1
- package/dist/src/services/shellExecutionService.js +70 -10
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +65 -4
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/services/worktreeService.test.js +7 -7
- package/dist/src/services/worktreeService.test.js.map +1 -1
- package/dist/src/skills/skillLoader.d.ts +8 -0
- package/dist/src/skills/skillLoader.js +1 -1
- package/dist/src/skills/skillLoader.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +29 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +101 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +167 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +9 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +20 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +22 -0
- package/dist/src/telemetry/loggers.js +40 -1
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +108 -0
- package/dist/src/telemetry/metrics.js +177 -0
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js +254 -0
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/tools/complete-task.d.ts +29 -0
- package/dist/src/tools/complete-task.js +123 -0
- package/dist/src/tools/complete-task.js.map +1 -0
- package/dist/src/tools/complete-task.test.d.ts +6 -0
- package/dist/src/tools/complete-task.test.js +114 -0
- package/dist/src/tools/complete-task.test.js.map +1 -0
- package/dist/src/tools/definitions/base-declarations.d.ts +2 -0
- package/dist/src/tools/definitions/base-declarations.js +3 -0
- package/dist/src/tools/definitions/base-declarations.js.map +1 -1
- package/dist/src/tools/definitions/coreTools.d.ts +1 -1
- package/dist/src/tools/definitions/coreTools.js +1 -1
- package/dist/src/tools/definitions/coreTools.js.map +1 -1
- package/dist/src/tools/definitions/dynamic-declaration-helpers.js +4 -0
- package/dist/src/tools/definitions/dynamic-declaration-helpers.js.map +1 -1
- package/dist/src/tools/definitions/model-family-sets/default-legacy.js +3 -3
- package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
- package/dist/src/tools/definitions/model-family-sets/gemini-3.js +3 -3
- package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
- package/dist/src/tools/grep.test.js +2 -2
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/jit-context.js +3 -3
- package/dist/src/tools/jit-context.js.map +1 -1
- package/dist/src/tools/jit-context.test.js +15 -13
- package/dist/src/tools/jit-context.test.js.map +1 -1
- package/dist/src/tools/mcp-client.js +1 -1
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +1 -1
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +1 -1
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +7 -4
- package/dist/src/tools/shell.js +255 -37
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +182 -8
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/shellBackgroundTools.d.ts +38 -0
- package/dist/src/tools/shellBackgroundTools.integration.test.d.ts +6 -0
- package/dist/src/tools/shellBackgroundTools.integration.test.js +86 -0
- package/dist/src/tools/shellBackgroundTools.integration.test.js.map +1 -0
- package/dist/src/tools/shellBackgroundTools.js +186 -0
- package/dist/src/tools/shellBackgroundTools.js.map +1 -0
- package/dist/src/tools/shellBackgroundTools.test.d.ts +6 -0
- package/dist/src/tools/shellBackgroundTools.test.js +230 -0
- package/dist/src/tools/shellBackgroundTools.test.js.map +1 -0
- package/dist/src/tools/shell_proactive.test.d.ts +6 -0
- package/dist/src/tools/shell_proactive.test.js +122 -0
- package/dist/src/tools/shell_proactive.test.js.map +1 -0
- package/dist/src/tools/tool-names.d.ts +3 -3
- package/dist/src/tools/tool-names.js +3 -2
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tools.js +1 -1
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.js +8 -8
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +5 -5
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/tools/xcode-mcp-fix-transport.js +1 -1
- package/dist/src/tools/xcode-mcp-fix-transport.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.js +3 -6
- package/dist/src/utils/bfsFileSearch.js.map +1 -1
- package/dist/src/utils/checkpointUtils.js +11 -8
- package/dist/src/utils/checkpointUtils.js.map +1 -1
- package/dist/src/utils/compatibility.js +0 -7
- package/dist/src/utils/compatibility.js.map +1 -1
- package/dist/src/utils/compatibility.test.js +0 -9
- package/dist/src/utils/compatibility.test.js.map +1 -1
- package/dist/src/utils/editor.js +3 -0
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/errorParsing.js +2 -2
- package/dist/src/utils/errorParsing.js.map +1 -1
- package/dist/src/utils/events.d.ts +12 -0
- package/dist/src/utils/events.js +7 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +1 -0
- package/dist/src/utils/fetch.js +22 -6
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/fetch.test.js +26 -1
- package/dist/src/utils/fetch.test.js.map +1 -1
- package/dist/src/utils/fileUtils.js +1 -1
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/filesearch/crawler.js +1 -1
- package/dist/src/utils/filesearch/crawler.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.test.js +7 -2
- package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
- package/dist/src/utils/getPty.js +2 -2
- package/dist/src/utils/getPty.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.js +2 -2
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/gitUtils.js +2 -2
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/googleErrors.js +5 -5
- package/dist/src/utils/googleErrors.js.map +1 -1
- package/dist/src/utils/ignoreFileParser.js +1 -1
- package/dist/src/utils/ignoreFileParser.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.js +3 -7
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/paths.d.ts +8 -0
- package/dist/src/utils/paths.js +37 -6
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/paths.test.js +61 -3
- package/dist/src/utils/paths.test.js.map +1 -1
- package/dist/src/utils/process-utils.js +2 -2
- package/dist/src/utils/process-utils.js.map +1 -1
- package/dist/src/utils/retry.js +7 -0
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +41 -0
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/secure-browser-launcher.js +1 -1
- package/dist/src/utils/secure-browser-launcher.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +9 -0
- package/dist/src/utils/shell-utils.integration.test.js +1 -1
- package/dist/src/utils/shell-utils.integration.test.js.map +1 -1
- package/dist/src/utils/shell-utils.js +43 -4
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +13 -1
- package/dist/src/utils/shell-utils.test.js.map +1 -1
- package/dist/src/utils/systemEncoding.js +1 -1
- package/dist/src/utils/systemEncoding.js.map +1 -1
- package/dist/src/utils/terminalSerializer.d.ts +1 -0
- package/dist/src/utils/terminalSerializer.js +31 -8
- package/dist/src/utils/terminalSerializer.js.map +1 -1
- package/dist/src/utils/terminalSerializer.test.js +3 -2
- package/dist/src/utils/terminalSerializer.test.js.map +1 -1
- package/dist/src/utils/workspaceContext.js +2 -2
- package/dist/src/utils/workspaceContext.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/google-gemini-cli-core-0.37.0-preview.1.tgz +0 -0
- package/dist/src/context/contextManager.js.map +0 -1
- package/dist/src/context/contextManager.test.js.map +0 -1
- package/dist/src/services/types.d.ts +0 -14
- package/dist/src/services/types.js.map +0 -1
- /package/dist/src/context/{contextManager.test.d.ts → memoryContextManager.test.d.ts} +0 -0
- /package/dist/src/{services → context}/types.js +0 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* to handle undocumented internal dependencies, sysctls, and IPC mach ports required
|
|
11
11
|
* by standard tools to avoid "Abort trap: 6".
|
|
12
12
|
*/
|
|
13
|
-
export declare const BASE_SEATBELT_PROFILE = "(version 1)\n(deny default)\n\n(import \"system.sb\")\n\n\n; Core execution requirements\n(allow process-exec)\n(allow process-fork)\n(allow signal (target same-sandbox))\n(allow process-info*)\n\n(allow file-write-data\n (require-all\n (path \"/dev/null\")\n (vnode-type CHARACTER-DEVICE)))\n\n; sysctls permitted.\n(allow sysctl-read\n (sysctl-name \"hw.activecpu\")\n (sysctl-name \"hw.busfrequency_compat\")\n (sysctl-name \"hw.byteorder\")\n (sysctl-name \"hw.cacheconfig\")\n (sysctl-name \"hw.cachelinesize_compat\")\n (sysctl-name \"hw.cpufamily\")\n (sysctl-name \"hw.cpufrequency_compat\")\n (sysctl-name \"hw.cputype\")\n (sysctl-name \"hw.l1dcachesize_compat\")\n (sysctl-name \"hw.l1icachesize_compat\")\n (sysctl-name \"hw.l2cachesize_compat\")\n (sysctl-name \"hw.l3cachesize_compat\")\n (sysctl-name \"hw.logicalcpu_max\")\n (sysctl-name \"hw.machine\")\n (sysctl-name \"hw.model\")\n (sysctl-name \"hw.memsize\")\n (sysctl-name \"hw.ncpu\")\n (sysctl-name \"hw.nperflevels\")\n (sysctl-name-prefix \"hw.optional.arm.\")\n (sysctl-name-prefix \"hw.optional.armv8_\")\n (sysctl-name \"hw.packages\")\n (sysctl-name \"hw.pagesize_compat\")\n (sysctl-name \"hw.pagesize\")\n (sysctl-name \"hw.physicalcpu\")\n (sysctl-name \"hw.physicalcpu_max\")\n (sysctl-name \"hw.logicalcpu\")\n (sysctl-name \"hw.cpufrequency\")\n (sysctl-name \"hw.tbfrequency_compat\")\n (sysctl-name \"hw.vectorunit\")\n (sysctl-name \"machdep.cpu.brand_string\")\n (sysctl-name \"kern.argmax\")\n (sysctl-name \"kern.hostname\")\n (sysctl-name \"kern.maxfilesperproc\")\n (sysctl-name \"kern.maxproc\")\n (sysctl-name \"kern.osproductversion\")\n (sysctl-name \"kern.osrelease\")\n (sysctl-name \"kern.ostype\")\n (sysctl-name \"kern.osvariant_status\")\n (sysctl-name \"kern.osversion\")\n (sysctl-name \"kern.secure_kernel\")\n (sysctl-name \"kern.usrstack64\")\n (sysctl-name \"kern.version\")\n (sysctl-name \"sysctl.proc_cputype\")\n (sysctl-name \"vm.loadavg\")\n (sysctl-name-prefix \"hw.perflevel\")\n (sysctl-name-prefix \"kern.proc.pgrp.\")\n (sysctl-name-prefix \"kern.proc.pid.\")\n (sysctl-name-prefix \"net.routetable.\")\n)\n\n(allow sysctl-write\n (sysctl-name \"kern.grade_cputype\"))\n\n\n(allow mach-lookup\n (global-name \"com.apple.sysmond\")\n)\n\n
|
|
13
|
+
export declare const BASE_SEATBELT_PROFILE = "(version 1)\n(deny default)\n\n(import \"system.sb\")\n\n\n; Core execution requirements\n(allow process-exec)\n(allow process-fork)\n(allow signal (target same-sandbox))\n(allow process-info*)\n\n; Map system frameworks + dylibs for loader.\n(allow file-map-executable\n (subpath \"/System/Library/Frameworks\")\n (subpath \"/System/Library/PrivateFrameworks\")\n (subpath \"/usr/lib\")\n (subpath \"/bin\")\n (subpath \"/usr/bin\")\n)\n\n(allow file-write-data\n (require-all\n (path \"/dev/null\")\n (vnode-type CHARACTER-DEVICE)))\n\n; sysctls permitted.\n(allow sysctl-read\n (sysctl-name \"hw.activecpu\")\n (sysctl-name \"hw.busfrequency_compat\")\n (sysctl-name \"hw.byteorder\")\n (sysctl-name \"hw.cacheconfig\")\n (sysctl-name \"hw.cachelinesize_compat\")\n (sysctl-name \"hw.cpufamily\")\n (sysctl-name \"hw.cpufrequency_compat\")\n (sysctl-name \"hw.cputype\")\n (sysctl-name \"hw.l1dcachesize_compat\")\n (sysctl-name \"hw.l1icachesize_compat\")\n (sysctl-name \"hw.l2cachesize_compat\")\n (sysctl-name \"hw.l3cachesize_compat\")\n (sysctl-name \"hw.logicalcpu_max\")\n (sysctl-name \"hw.machine\")\n (sysctl-name \"hw.model\")\n (sysctl-name \"hw.memsize\")\n (sysctl-name \"hw.ncpu\")\n (sysctl-name \"hw.nperflevels\")\n (sysctl-name-prefix \"hw.optional.arm.\")\n (sysctl-name-prefix \"hw.optional.armv8_\")\n (sysctl-name \"hw.packages\")\n (sysctl-name \"hw.pagesize_compat\")\n (sysctl-name \"hw.pagesize\")\n (sysctl-name \"hw.physicalcpu\")\n (sysctl-name \"hw.physicalcpu_max\")\n (sysctl-name \"hw.logicalcpu\")\n (sysctl-name \"hw.cpufrequency\")\n (sysctl-name \"hw.tbfrequency_compat\")\n (sysctl-name \"hw.vectorunit\")\n (sysctl-name \"machdep.cpu.brand_string\")\n (sysctl-name \"kern.argmax\")\n (sysctl-name \"kern.hostname\")\n (sysctl-name \"kern.maxfilesperproc\")\n (sysctl-name \"kern.maxproc\")\n (sysctl-name \"kern.osproductversion\")\n (sysctl-name \"kern.osrelease\")\n (sysctl-name \"kern.ostype\")\n (sysctl-name \"kern.osvariant_status\")\n (sysctl-name \"kern.osversion\")\n (sysctl-name \"kern.secure_kernel\")\n (sysctl-name \"kern.usrstack64\")\n (sysctl-name \"kern.version\")\n (sysctl-name \"sysctl.proc_cputype\")\n (sysctl-name \"vm.loadavg\")\n (sysctl-name-prefix \"hw.perflevel\")\n (sysctl-name-prefix \"kern.proc.pgrp.\")\n (sysctl-name-prefix \"kern.proc.pid.\")\n (sysctl-name-prefix \"net.routetable.\")\n)\n\n(allow sysctl-write\n (sysctl-name \"kern.grade_cputype\"))\n\n\n(allow mach-lookup\n (global-name \"com.apple.sysmond\")\n (global-name \"com.apple.system.opendirectoryd.libinfo\")\n (global-name \"com.apple.system.opendirectoryd.membership\")\n (global-name \"com.apple.system.logger\")\n (global-name \"com.apple.system.notification_center\")\n (global-name \"com.apple.logd\")\n (global-name \"com.apple.secinitd\")\n (global-name \"com.apple.trustd.agent\")\n (global-name \"com.apple.trustd\")\n (global-name \"com.apple.analyticsd\")\n (global-name \"com.apple.analyticsd.messagetracer\")\n)\n\n; IOKit\n(allow iokit-open\n (iokit-registry-entry-class \"RootDomainUserClient\")\n)\n\n; Needed for python multiprocessing on MacOS for the SemLock\n(allow ipc-posix-sem)\n\n(allow mach-lookup\n (global-name \"com.apple.PowerManagement.control\")\n)\n\n; PTY and Terminal support\n(allow pseudo-tty)\n(allow file-read* file-write* file-ioctl (literal \"/dev/ptmx\"))\n(allow file-read* file-write*\n (require-all\n (regex #\"^/dev/ttys[0-9]+\")\n (extension \"com.apple.sandbox.pty\")))\n(allow file-ioctl (regex #\"^/dev/ttys[0-9]+\"))\n\n; Allow basic read access to system frameworks and libraries required to run\n(allow file-read*\n (subpath \"/System\")\n (subpath \"/usr/lib\")\n (subpath \"/usr/share\")\n (subpath \"/usr/bin\")\n (subpath \"/bin\")\n (subpath \"/sbin\")\n (subpath \"/usr/local/bin\")\n (subpath \"/opt/homebrew\")\n (subpath \"/Library\")\n (subpath \"/private/var/run\")\n (subpath \"/private/var/db\")\n (subpath \"/private/etc\")\n)\n\n; Allow read/write access to temporary directories and common device nodes\n(allow file-read* file-write*\n (literal \"/dev/null\")\n (literal \"/dev/zero\")\n (literal \"/dev/tty\")\n (subpath \"/dev/fd\")\n (subpath \"/tmp\")\n (subpath \"/private/tmp\")\n)\n\n(allow file-read-metadata\n (literal \"/\")\n (subpath \"/var\")\n (subpath \"/private/var\")\n (subpath \"/dev\")\n)\n\n";
|
|
14
14
|
/**
|
|
15
15
|
* The network-specific macOS Seatbelt (SBPL) profile rules.
|
|
16
16
|
*
|
|
@@ -22,6 +22,15 @@ export const BASE_SEATBELT_PROFILE = `(version 1)
|
|
|
22
22
|
(allow signal (target same-sandbox))
|
|
23
23
|
(allow process-info*)
|
|
24
24
|
|
|
25
|
+
; Map system frameworks + dylibs for loader.
|
|
26
|
+
(allow file-map-executable
|
|
27
|
+
(subpath "/System/Library/Frameworks")
|
|
28
|
+
(subpath "/System/Library/PrivateFrameworks")
|
|
29
|
+
(subpath "/usr/lib")
|
|
30
|
+
(subpath "/bin")
|
|
31
|
+
(subpath "/usr/bin")
|
|
32
|
+
)
|
|
33
|
+
|
|
25
34
|
(allow file-write-data
|
|
26
35
|
(require-all
|
|
27
36
|
(path "/dev/null")
|
|
@@ -85,16 +94,22 @@ export const BASE_SEATBELT_PROFILE = `(version 1)
|
|
|
85
94
|
|
|
86
95
|
(allow mach-lookup
|
|
87
96
|
(global-name "com.apple.sysmond")
|
|
97
|
+
(global-name "com.apple.system.opendirectoryd.libinfo")
|
|
98
|
+
(global-name "com.apple.system.opendirectoryd.membership")
|
|
99
|
+
(global-name "com.apple.system.logger")
|
|
100
|
+
(global-name "com.apple.system.notification_center")
|
|
101
|
+
(global-name "com.apple.logd")
|
|
102
|
+
(global-name "com.apple.secinitd")
|
|
103
|
+
(global-name "com.apple.trustd.agent")
|
|
104
|
+
(global-name "com.apple.trustd")
|
|
105
|
+
(global-name "com.apple.analyticsd")
|
|
106
|
+
(global-name "com.apple.analyticsd.messagetracer")
|
|
88
107
|
)
|
|
89
108
|
\n; IOKit
|
|
90
109
|
(allow iokit-open
|
|
91
110
|
(iokit-registry-entry-class "RootDomainUserClient")
|
|
92
111
|
)
|
|
93
112
|
|
|
94
|
-
(allow mach-lookup
|
|
95
|
-
(global-name "com.apple.system.opendirectoryd.libinfo")
|
|
96
|
-
)
|
|
97
|
-
|
|
98
113
|
; Needed for python multiprocessing on MacOS for the SemLock
|
|
99
114
|
(allow ipc-posix-sem)
|
|
100
115
|
|
|
@@ -131,10 +146,19 @@ export const BASE_SEATBELT_PROFILE = `(version 1)
|
|
|
131
146
|
(allow file-read* file-write*
|
|
132
147
|
(literal "/dev/null")
|
|
133
148
|
(literal "/dev/zero")
|
|
149
|
+
(literal "/dev/tty")
|
|
150
|
+
(subpath "/dev/fd")
|
|
134
151
|
(subpath "/tmp")
|
|
135
152
|
(subpath "/private/tmp")
|
|
136
153
|
)
|
|
137
154
|
|
|
155
|
+
(allow file-read-metadata
|
|
156
|
+
(literal "/")
|
|
157
|
+
(subpath "/var")
|
|
158
|
+
(subpath "/private/var")
|
|
159
|
+
(subpath "/dev")
|
|
160
|
+
)
|
|
161
|
+
|
|
138
162
|
`;
|
|
139
163
|
/**
|
|
140
164
|
* The network-specific macOS Seatbelt (SBPL) profile rules.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseProfile.js","sourceRoot":"","sources":["../../../../src/sandbox/macos/baseProfile.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG
|
|
1
|
+
{"version":3,"file":"baseProfile.js","sourceRoot":"","sources":["../../../../src/sandbox/macos/baseProfile.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqJpC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seatbeltArgsBuilder.js","sourceRoot":"","sources":["../../../../src/sandbox/macos/seatbeltArgsBuilder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"seatbeltArgsBuilder.js","sourceRoot":"","sources":["../../../../src/sandbox/macos/seatbeltArgsBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { describe, it, expect, vi, afterEach } from 'vitest';
|
|
|
7
7
|
import { buildSeatbeltProfile, escapeSchemeString, } from './seatbeltArgsBuilder.js';
|
|
8
8
|
import * as fsUtils from '../utils/fsUtils.js';
|
|
9
9
|
import fs from 'node:fs';
|
|
10
|
+
import os from 'node:os';
|
|
10
11
|
vi.mock('../utils/fsUtils.js', async () => {
|
|
11
12
|
const actual = await vi.importActual('../utils/fsUtils.js');
|
|
12
13
|
return {
|
|
@@ -15,7 +16,7 @@ vi.mock('../utils/fsUtils.js', async () => {
|
|
|
15
16
|
resolveGitWorktreePaths: vi.fn(() => ({})),
|
|
16
17
|
};
|
|
17
18
|
});
|
|
18
|
-
describe('seatbeltArgsBuilder', () => {
|
|
19
|
+
describe.skipIf(os.platform() === 'win32')('seatbeltArgsBuilder', () => {
|
|
19
20
|
afterEach(() => {
|
|
20
21
|
vi.restoreAllMocks();
|
|
21
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seatbeltArgsBuilder.test.js","sourceRoot":"","sources":["../../../../src/sandbox/macos/seatbeltArgsBuilder.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;IACxC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAC5D,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5B,uBAAuB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KAC3C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"seatbeltArgsBuilder.test.js","sourceRoot":"","sources":["../../../../src/sandbox/macos/seatbeltArgsBuilder.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,22 +5,24 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import fs from 'node:fs';
|
|
7
7
|
import path from 'node:path';
|
|
8
|
+
import { assertValidPathString } from '../../utils/paths.js';
|
|
8
9
|
export function isErrnoException(e) {
|
|
9
10
|
return e instanceof Error && 'code' in e;
|
|
10
11
|
}
|
|
11
12
|
export function tryRealpath(p) {
|
|
13
|
+
assertValidPathString(p);
|
|
12
14
|
try {
|
|
13
15
|
return fs.realpathSync(p);
|
|
14
16
|
}
|
|
15
|
-
catch (
|
|
16
|
-
if (isErrnoException(
|
|
17
|
+
catch (e) {
|
|
18
|
+
if (isErrnoException(e) && e.code === 'ENOENT') {
|
|
17
19
|
const parentDir = path.dirname(p);
|
|
18
20
|
if (parentDir === p) {
|
|
19
21
|
return p;
|
|
20
22
|
}
|
|
21
23
|
return path.join(tryRealpath(parentDir), path.basename(p));
|
|
22
24
|
}
|
|
23
|
-
throw
|
|
25
|
+
throw e;
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
28
|
export function resolveGitWorktreePaths(workspacePath) {
|
|
@@ -46,7 +48,7 @@ export function resolveGitWorktreePaths(workspacePath) {
|
|
|
46
48
|
isValid = true;
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
|
-
catch
|
|
51
|
+
catch {
|
|
50
52
|
// Fallback for submodules: check core.worktree in config
|
|
51
53
|
try {
|
|
52
54
|
const configPath = path.join(resolvedWorktreeGitDir, 'config');
|
|
@@ -59,7 +61,7 @@ export function resolveGitWorktreePaths(workspacePath) {
|
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
|
-
catch
|
|
64
|
+
catch {
|
|
63
65
|
// Ignore
|
|
64
66
|
}
|
|
65
67
|
}
|
|
@@ -74,7 +76,7 @@ export function resolveGitWorktreePaths(workspacePath) {
|
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
}
|
|
77
|
-
catch
|
|
79
|
+
catch {
|
|
78
80
|
// Ignore if .git doesn't exist, isn't readable, etc.
|
|
79
81
|
}
|
|
80
82
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fsUtils.js","sourceRoot":"","sources":["../../../../src/sandbox/utils/fsUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"fsUtils.js","sourceRoot":"","sources":["../../../../src/sandbox/utils/fsUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
|
|
7
|
+
import fs from 'node:fs';
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
import os from 'node:os';
|
|
10
|
+
import { tryRealpath } from './fsUtils.js';
|
|
11
|
+
describe('fsUtils', () => {
|
|
12
|
+
let tempDir;
|
|
13
|
+
let realTempDir;
|
|
14
|
+
beforeAll(() => {
|
|
15
|
+
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'fs-utils-test-'));
|
|
16
|
+
realTempDir = fs.realpathSync(tempDir);
|
|
17
|
+
});
|
|
18
|
+
afterAll(() => {
|
|
19
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
20
|
+
});
|
|
21
|
+
describe('tryRealpath', () => {
|
|
22
|
+
it('should throw error for paths with null bytes', () => {
|
|
23
|
+
expect(() => tryRealpath(path.join(tempDir, 'foo\0bar'))).toThrow('Invalid path');
|
|
24
|
+
});
|
|
25
|
+
it('should resolve existing paths', () => {
|
|
26
|
+
const resolved = tryRealpath(tempDir);
|
|
27
|
+
expect(resolved).toBe(realTempDir);
|
|
28
|
+
});
|
|
29
|
+
it('should handle non-existent paths by resolving parent', () => {
|
|
30
|
+
const nonExistentPath = path.join(tempDir, 'non-existent-file-12345');
|
|
31
|
+
const expected = path.join(realTempDir, 'non-existent-file-12345');
|
|
32
|
+
const resolved = tryRealpath(nonExistentPath);
|
|
33
|
+
expect(resolved).toBe(expected);
|
|
34
|
+
});
|
|
35
|
+
it('should handle nested non-existent paths', () => {
|
|
36
|
+
const nonExistentPath = path.join(tempDir, 'dir1', 'dir2', 'file');
|
|
37
|
+
const expected = path.join(realTempDir, 'dir1', 'dir2', 'file');
|
|
38
|
+
const resolved = tryRealpath(nonExistentPath);
|
|
39
|
+
expect(resolved).toBe(expected);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=fsUtils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fsUtils.test.js","sourceRoot":"","sources":["../../../../src/sandbox/utils/fsUtils.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAI,OAAe,CAAC;IACpB,IAAI,WAAmB,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACnE,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACZ,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAC/D,cAAc,CACf,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;YAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;YAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { type SandboxPermissions } from '../../services/sandboxManager.js';
|
|
7
|
+
/**
|
|
8
|
+
* Returns true if the command or subcommand is known to be network-reliant.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isNetworkReliantCommand(commandName: string, subCommand?: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Returns suggested additional permissions for network-reliant tools
|
|
13
|
+
* based on common configuration and cache directories.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Returns suggested additional permissions for network-reliant tools
|
|
17
|
+
* based on common configuration and cache directories.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getProactiveToolSuggestions(commandName: string): Promise<SandboxPermissions | undefined>;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import os from 'node:os';
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import fs from 'node:fs';
|
|
9
|
+
import {} from '../../services/sandboxManager.js';
|
|
10
|
+
import { normalizeCommand } from '../../utils/shell-utils.js';
|
|
11
|
+
const NETWORK_RELIANT_TOOLS = new Set([
|
|
12
|
+
'npm',
|
|
13
|
+
'npx',
|
|
14
|
+
'yarn',
|
|
15
|
+
'pnpm',
|
|
16
|
+
'bun',
|
|
17
|
+
'git',
|
|
18
|
+
'ssh',
|
|
19
|
+
'scp',
|
|
20
|
+
'sftp',
|
|
21
|
+
'curl',
|
|
22
|
+
'wget',
|
|
23
|
+
]);
|
|
24
|
+
const NODE_ECOSYSTEM_TOOLS = new Set(['npm', 'npx', 'yarn', 'pnpm', 'bun']);
|
|
25
|
+
const NETWORK_HEAVY_SUBCOMMANDS = new Set([
|
|
26
|
+
'install',
|
|
27
|
+
'i',
|
|
28
|
+
'ci',
|
|
29
|
+
'update',
|
|
30
|
+
'up',
|
|
31
|
+
'publish',
|
|
32
|
+
'add',
|
|
33
|
+
'remove',
|
|
34
|
+
'outdated',
|
|
35
|
+
'audit',
|
|
36
|
+
]);
|
|
37
|
+
/**
|
|
38
|
+
* Returns true if the command or subcommand is known to be network-reliant.
|
|
39
|
+
*/
|
|
40
|
+
export function isNetworkReliantCommand(commandName, subCommand) {
|
|
41
|
+
const normalizedCommand = normalizeCommand(commandName);
|
|
42
|
+
if (!NETWORK_RELIANT_TOOLS.has(normalizedCommand)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
// Node ecosystem tools only need network for specific subcommands
|
|
46
|
+
if (NODE_ECOSYSTEM_TOOLS.has(normalizedCommand)) {
|
|
47
|
+
// Bare yarn/bun/pnpm is an alias for install
|
|
48
|
+
if (!subCommand &&
|
|
49
|
+
(normalizedCommand === 'yarn' ||
|
|
50
|
+
normalizedCommand === 'bun' ||
|
|
51
|
+
normalizedCommand === 'pnpm')) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
return (!!subCommand && NETWORK_HEAVY_SUBCOMMANDS.has(subCommand.toLowerCase()));
|
|
55
|
+
}
|
|
56
|
+
// Other tools (ssh, git, curl, etc.) are always network-reliant
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Returns suggested additional permissions for network-reliant tools
|
|
61
|
+
* based on common configuration and cache directories.
|
|
62
|
+
*/
|
|
63
|
+
/**
|
|
64
|
+
* Returns suggested additional permissions for network-reliant tools
|
|
65
|
+
* based on common configuration and cache directories.
|
|
66
|
+
*/
|
|
67
|
+
export async function getProactiveToolSuggestions(commandName) {
|
|
68
|
+
const normalizedCommand = normalizeCommand(commandName);
|
|
69
|
+
if (!NETWORK_RELIANT_TOOLS.has(normalizedCommand)) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
const home = os.homedir();
|
|
73
|
+
const readOnlyPaths = [];
|
|
74
|
+
const primaryCachePaths = [];
|
|
75
|
+
const optionalCachePaths = [];
|
|
76
|
+
if (normalizedCommand === 'npm' || normalizedCommand === 'npx') {
|
|
77
|
+
readOnlyPaths.push(path.join(home, '.npmrc'));
|
|
78
|
+
primaryCachePaths.push(path.join(home, '.npm'));
|
|
79
|
+
optionalCachePaths.push(path.join(home, '.node-gyp'));
|
|
80
|
+
optionalCachePaths.push(path.join(home, '.cache'));
|
|
81
|
+
}
|
|
82
|
+
else if (normalizedCommand === 'yarn') {
|
|
83
|
+
readOnlyPaths.push(path.join(home, '.yarnrc'));
|
|
84
|
+
readOnlyPaths.push(path.join(home, '.yarnrc.yml'));
|
|
85
|
+
primaryCachePaths.push(path.join(home, '.yarn'));
|
|
86
|
+
primaryCachePaths.push(path.join(home, '.config', 'yarn'));
|
|
87
|
+
optionalCachePaths.push(path.join(home, '.cache'));
|
|
88
|
+
}
|
|
89
|
+
else if (normalizedCommand === 'pnpm') {
|
|
90
|
+
readOnlyPaths.push(path.join(home, '.npmrc'));
|
|
91
|
+
primaryCachePaths.push(path.join(home, '.pnpm-store'));
|
|
92
|
+
primaryCachePaths.push(path.join(home, '.config', 'pnpm'));
|
|
93
|
+
optionalCachePaths.push(path.join(home, '.cache'));
|
|
94
|
+
}
|
|
95
|
+
else if (normalizedCommand === 'bun') {
|
|
96
|
+
readOnlyPaths.push(path.join(home, '.bunfig.toml'));
|
|
97
|
+
primaryCachePaths.push(path.join(home, '.bun'));
|
|
98
|
+
optionalCachePaths.push(path.join(home, '.cache'));
|
|
99
|
+
}
|
|
100
|
+
else if (normalizedCommand === 'git') {
|
|
101
|
+
readOnlyPaths.push(path.join(home, '.ssh'));
|
|
102
|
+
readOnlyPaths.push(path.join(home, '.gitconfig'));
|
|
103
|
+
optionalCachePaths.push(path.join(home, '.cache'));
|
|
104
|
+
}
|
|
105
|
+
else if (normalizedCommand === 'ssh' ||
|
|
106
|
+
normalizedCommand === 'scp' ||
|
|
107
|
+
normalizedCommand === 'sftp') {
|
|
108
|
+
readOnlyPaths.push(path.join(home, '.ssh'));
|
|
109
|
+
}
|
|
110
|
+
// Windows specific paths
|
|
111
|
+
if (os.platform() === 'win32') {
|
|
112
|
+
const appData = process.env['AppData'];
|
|
113
|
+
const localAppData = process.env['LocalAppData'];
|
|
114
|
+
if (normalizedCommand === 'npm' || normalizedCommand === 'npx') {
|
|
115
|
+
if (appData) {
|
|
116
|
+
primaryCachePaths.push(path.join(appData, 'npm'));
|
|
117
|
+
optionalCachePaths.push(path.join(appData, 'npm-cache'));
|
|
118
|
+
}
|
|
119
|
+
if (localAppData) {
|
|
120
|
+
optionalCachePaths.push(path.join(localAppData, 'npm-cache'));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const finalReadOnly = [];
|
|
125
|
+
const finalReadWrite = [];
|
|
126
|
+
const checkExists = async (p) => {
|
|
127
|
+
try {
|
|
128
|
+
await fs.promises.access(p, fs.constants.F_OK);
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
const readOnlyChecks = await Promise.all(readOnlyPaths.map(async (p) => ({ path: p, exists: await checkExists(p) })));
|
|
136
|
+
for (const { path: p, exists } of readOnlyChecks) {
|
|
137
|
+
if (exists) {
|
|
138
|
+
finalReadOnly.push(p);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
for (const p of primaryCachePaths) {
|
|
142
|
+
finalReadWrite.push(p);
|
|
143
|
+
}
|
|
144
|
+
const optionalChecks = await Promise.all(optionalCachePaths.map(async (p) => ({
|
|
145
|
+
path: p,
|
|
146
|
+
exists: await checkExists(p),
|
|
147
|
+
})));
|
|
148
|
+
for (const { path: p, exists } of optionalChecks) {
|
|
149
|
+
if (exists) {
|
|
150
|
+
finalReadWrite.push(p);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
fileSystem: finalReadOnly.length > 0 || finalReadWrite.length > 0
|
|
155
|
+
? {
|
|
156
|
+
read: [...finalReadOnly, ...finalReadWrite],
|
|
157
|
+
write: finalReadWrite,
|
|
158
|
+
}
|
|
159
|
+
: undefined,
|
|
160
|
+
network: true,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=proactivePermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proactivePermissions.js","sourceRoot":"","sources":["../../../../src/sandbox/utils/proactivePermissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAA2B,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE5E,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,SAAS;IACT,GAAG;IACH,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,SAAS;IACT,KAAK;IACL,QAAQ;IACR,UAAU;IACV,OAAO;CACR,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,UAAmB;IAEnB,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kEAAkE;IAClE,IAAI,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAChD,6CAA6C;QAC7C,IACE,CAAC,UAAU;YACX,CAAC,iBAAiB,KAAK,MAAM;gBAC3B,iBAAiB,KAAK,KAAK;gBAC3B,iBAAiB,KAAK,MAAM,CAAC,EAC/B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CACL,CAAC,CAAC,UAAU,IAAI,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CACxE,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,WAAmB;IAEnB,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,MAAM,kBAAkB,GAAa,EAAE,CAAC;IAExC,IAAI,iBAAiB,KAAK,KAAK,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;QAC/D,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9C,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAChD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QACtD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;QACxC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC/C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;QACnD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3D,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;QACxC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9C,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;QACvD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3D,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;QACvC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;QACpD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAChD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;QACvC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;QAClD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,IACL,iBAAiB,KAAK,KAAK;QAC3B,iBAAiB,KAAK,KAAK;QAC3B,iBAAiB,KAAK,MAAM,EAC5B,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,yBAAyB;IACzB,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,iBAAiB,KAAK,KAAK,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;YAC/D,IAAI,OAAO,EAAE,CAAC;gBACZ,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,MAAM,WAAW,GAAG,KAAK,EAAE,CAAS,EAAoB,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAC5E,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QACjD,IAAI,MAAM,EAAE,CAAC;YACX,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAClC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC;KAC7B,CAAC,CAAC,CACJ,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QACjD,IAAI,MAAM,EAAE,CAAC;YACX,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU,EACR,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;YACnD,CAAC,CAAC;gBACE,IAAI,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,CAAC;gBAC3C,KAAK,EAAE,cAAc;aACtB;YACH,CAAC,CAAC,SAAS;QACf,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|