@google/gemini-cli-core 0.37.0-preview.1 → 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 +49 -46
- 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 +43 -13
- 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.0.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
|
@@ -12,11 +12,13 @@ import { fileURLToPath } from 'node:url';
|
|
|
12
12
|
import { debugLogger } from '../utils/debugLogger.js';
|
|
13
13
|
import {} from '../services/sandboxManager.js';
|
|
14
14
|
import { sanitizePaths } from '../services/sandboxManager.js';
|
|
15
|
+
import { normalizeCommand } from '../utils/shell-utils.js';
|
|
15
16
|
export const SandboxModeConfigSchema = z.object({
|
|
16
17
|
network: z.boolean(),
|
|
17
18
|
readonly: z.boolean(),
|
|
18
19
|
approvedTools: z.array(z.string()),
|
|
19
20
|
allowOverrides: z.boolean().optional(),
|
|
21
|
+
yolo: z.boolean().optional(),
|
|
20
22
|
});
|
|
21
23
|
export const PersistentCommandConfigSchema = z.object({
|
|
22
24
|
allowed_paths: z.array(z.string()).optional(),
|
|
@@ -46,11 +48,11 @@ export class SandboxPolicyManager {
|
|
|
46
48
|
network: false,
|
|
47
49
|
readonly: true,
|
|
48
50
|
approvedTools: [],
|
|
49
|
-
allowOverrides:
|
|
51
|
+
allowOverrides: true,
|
|
50
52
|
},
|
|
51
53
|
default: {
|
|
52
54
|
network: false,
|
|
53
|
-
readonly:
|
|
55
|
+
readonly: false,
|
|
54
56
|
approvedTools: [],
|
|
55
57
|
allowOverrides: true,
|
|
56
58
|
},
|
|
@@ -83,6 +85,9 @@ export class SandboxPolicyManager {
|
|
|
83
85
|
path.join(os.homedir(), '.gemini', 'policies', 'sandbox.toml');
|
|
84
86
|
this.config = this.loadConfig();
|
|
85
87
|
}
|
|
88
|
+
isProtectedKey(key) {
|
|
89
|
+
return key === '__proto__' || key === 'constructor' || key === 'prototype';
|
|
90
|
+
}
|
|
86
91
|
loadConfig() {
|
|
87
92
|
if (!fs.existsSync(this.configPath)) {
|
|
88
93
|
return SandboxPolicyManager.DEFAULT_CONFIG;
|
|
@@ -111,6 +116,15 @@ export class SandboxPolicyManager {
|
|
|
111
116
|
}
|
|
112
117
|
}
|
|
113
118
|
getModeConfig(mode) {
|
|
119
|
+
if (mode === 'yolo') {
|
|
120
|
+
return {
|
|
121
|
+
network: true,
|
|
122
|
+
readonly: false,
|
|
123
|
+
approvedTools: [],
|
|
124
|
+
allowOverrides: true,
|
|
125
|
+
yolo: true,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
114
128
|
if (mode === 'plan')
|
|
115
129
|
return this.config.modes.plan;
|
|
116
130
|
if (mode === 'accepting_edits' || mode === 'autoEdit')
|
|
@@ -121,8 +135,15 @@ export class SandboxPolicyManager {
|
|
|
121
135
|
return this.config.modes.default ?? this.config.modes.plan;
|
|
122
136
|
}
|
|
123
137
|
getCommandPermissions(commandName) {
|
|
124
|
-
const
|
|
125
|
-
|
|
138
|
+
const normalized = normalizeCommand(commandName);
|
|
139
|
+
if (this.isProtectedKey(normalized)) {
|
|
140
|
+
return {
|
|
141
|
+
fileSystem: { read: [], write: [] },
|
|
142
|
+
network: false,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
const persistent = this.config.commands[normalized];
|
|
146
|
+
const session = this.sessionApprovals[normalized];
|
|
126
147
|
return {
|
|
127
148
|
fileSystem: {
|
|
128
149
|
read: [
|
|
@@ -138,26 +159,34 @@ export class SandboxPolicyManager {
|
|
|
138
159
|
};
|
|
139
160
|
}
|
|
140
161
|
addSessionApproval(commandName, permissions) {
|
|
141
|
-
const
|
|
162
|
+
const normalized = normalizeCommand(commandName);
|
|
163
|
+
if (this.isProtectedKey(normalized)) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const existing = this.sessionApprovals[normalized] || {
|
|
142
167
|
fileSystem: { read: [], write: [] },
|
|
143
168
|
network: false,
|
|
144
169
|
};
|
|
145
|
-
this.sessionApprovals[
|
|
170
|
+
this.sessionApprovals[normalized] = {
|
|
146
171
|
fileSystem: {
|
|
147
|
-
read:
|
|
172
|
+
read: sanitizePaths([
|
|
148
173
|
...(existing.fileSystem?.read ?? []),
|
|
149
174
|
...(permissions.fileSystem?.read ?? []),
|
|
150
|
-
])
|
|
151
|
-
write:
|
|
175
|
+
]),
|
|
176
|
+
write: sanitizePaths([
|
|
152
177
|
...(existing.fileSystem?.write ?? []),
|
|
153
178
|
...(permissions.fileSystem?.write ?? []),
|
|
154
|
-
])
|
|
179
|
+
]),
|
|
155
180
|
},
|
|
156
181
|
network: existing.network || permissions.network || false,
|
|
157
182
|
};
|
|
158
183
|
}
|
|
159
184
|
addPersistentApproval(commandName, permissions) {
|
|
160
|
-
const
|
|
185
|
+
const normalized = normalizeCommand(commandName);
|
|
186
|
+
if (this.isProtectedKey(normalized)) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const existing = this.config.commands[normalized] || {
|
|
161
190
|
allowed_paths: [],
|
|
162
191
|
allow_network: false,
|
|
163
192
|
};
|
|
@@ -167,7 +196,7 @@ export class SandboxPolicyManager {
|
|
|
167
196
|
...(permissions.fileSystem?.write ?? []),
|
|
168
197
|
];
|
|
169
198
|
const newPaths = new Set(sanitizePaths(newPathsArray));
|
|
170
|
-
this.config.commands[
|
|
199
|
+
this.config.commands[normalized] = {
|
|
171
200
|
allowed_paths: Array.from(newPaths),
|
|
172
201
|
allow_network: existing.allow_network || permissions.network || false,
|
|
173
202
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandboxPolicyManager.js","sourceRoot":"","sources":["../../../src/policy/sandboxPolicyManager.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,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"sandboxPolicyManager.js","sourceRoot":"","sources":["../../../src/policy/sandboxPolicyManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
7
|
+
import { SandboxPolicyManager } from './sandboxPolicyManager.js';
|
|
8
|
+
import fs from 'node:fs';
|
|
9
|
+
import os from 'node:os';
|
|
10
|
+
import path from 'node:path';
|
|
11
|
+
describe('SandboxPolicyManager', () => {
|
|
12
|
+
const tempDir = path.join(os.tmpdir(), 'gemini-test-sandbox-policy');
|
|
13
|
+
const configPath = path.join(tempDir, 'sandbox.toml');
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
if (!fs.existsSync(tempDir)) {
|
|
16
|
+
fs.mkdirSync(tempDir, { recursive: true });
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
afterEach(() => {
|
|
20
|
+
if (fs.existsSync(tempDir)) {
|
|
21
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
it('should add and retrieve session approvals', () => {
|
|
25
|
+
const manager = new SandboxPolicyManager(configPath);
|
|
26
|
+
manager.addSessionApproval('ls', {
|
|
27
|
+
fileSystem: { read: ['/tmp'], write: [] },
|
|
28
|
+
network: false,
|
|
29
|
+
});
|
|
30
|
+
const perms = manager.getCommandPermissions('ls');
|
|
31
|
+
expect(perms.fileSystem?.read).toContain('/tmp');
|
|
32
|
+
});
|
|
33
|
+
it('should protect against prototype pollution (session)', () => {
|
|
34
|
+
const manager = new SandboxPolicyManager(configPath);
|
|
35
|
+
manager.addSessionApproval('__proto__', {
|
|
36
|
+
fileSystem: { read: ['/POLLUTED'], write: [] },
|
|
37
|
+
network: true,
|
|
38
|
+
});
|
|
39
|
+
const perms = manager.getCommandPermissions('any-command');
|
|
40
|
+
expect(perms.fileSystem?.read).not.toContain('/POLLUTED');
|
|
41
|
+
});
|
|
42
|
+
it('should protect against prototype pollution (persistent)', () => {
|
|
43
|
+
const manager = new SandboxPolicyManager(configPath);
|
|
44
|
+
manager.addPersistentApproval('constructor', {
|
|
45
|
+
fileSystem: { read: ['/POLLUTED_PERSISTENT'], write: [] },
|
|
46
|
+
network: true,
|
|
47
|
+
});
|
|
48
|
+
const perms = manager.getCommandPermissions('constructor');
|
|
49
|
+
expect(perms.fileSystem?.read).not.toContain('/POLLUTED_PERSISTENT');
|
|
50
|
+
});
|
|
51
|
+
it('should lowercase command names for normalization', () => {
|
|
52
|
+
const manager = new SandboxPolicyManager(configPath);
|
|
53
|
+
manager.addSessionApproval('NPM', {
|
|
54
|
+
fileSystem: { read: ['/node_modules'], write: [] },
|
|
55
|
+
network: true,
|
|
56
|
+
});
|
|
57
|
+
const perms = manager.getCommandPermissions('npm');
|
|
58
|
+
expect(perms.fileSystem?.read).toContain('/node_modules');
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=sandboxPolicyManager.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandboxPolicyManager.test.js","sourceRoot":"","sources":["../../../src/policy/sandboxPolicyManager.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,8 @@ describe('Workspace-Level Policies', () => {
|
|
|
15
15
|
beforeEach(async () => {
|
|
16
16
|
vi.resetModules();
|
|
17
17
|
const { Storage } = await import('../config/storage.js');
|
|
18
|
-
vi.spyOn(Storage, 'getUserPoliciesDir').mockReturnValue('/mock/user/policies');
|
|
19
|
-
vi.spyOn(Storage, 'getSystemPoliciesDir').mockReturnValue('/mock/system/policies');
|
|
18
|
+
vi.spyOn(Storage, 'getUserPoliciesDir').mockReturnValue(nodePath.resolve('/mock/user/policies'));
|
|
19
|
+
vi.spyOn(Storage, 'getSystemPoliciesDir').mockReturnValue(nodePath.resolve('/mock/system/policies'));
|
|
20
20
|
// Ensure security check always returns secure
|
|
21
21
|
vi.mocked(isDirectorySecure).mockResolvedValue({ secure: true });
|
|
22
22
|
});
|
|
@@ -26,12 +26,13 @@ describe('Workspace-Level Policies', () => {
|
|
|
26
26
|
vi.doUnmock('node:fs/promises');
|
|
27
27
|
});
|
|
28
28
|
it('should load workspace policies with correct priority (Tier 3)', async () => {
|
|
29
|
-
const workspacePoliciesDir = '/mock/workspace/policies';
|
|
30
|
-
const defaultPoliciesDir = '/mock/default/policies';
|
|
29
|
+
const workspacePoliciesDir = nodePath.resolve('/mock/workspace/policies');
|
|
30
|
+
const defaultPoliciesDir = nodePath.resolve('/mock/default/policies');
|
|
31
31
|
// Mock FS
|
|
32
32
|
const actualFs = await vi.importActual('node:fs/promises');
|
|
33
|
+
const mockRoot = nodePath.resolve('/mock/');
|
|
33
34
|
const mockStat = vi.fn(async (path) => {
|
|
34
|
-
if (typeof path === 'string' && path.startsWith(
|
|
35
|
+
if (typeof path === 'string' && path.startsWith(mockRoot)) {
|
|
35
36
|
return {
|
|
36
37
|
isDirectory: () => true,
|
|
37
38
|
isFile: () => false,
|
|
@@ -42,7 +43,7 @@ describe('Workspace-Level Policies', () => {
|
|
|
42
43
|
// Mock readdir to return a policy file for each tier
|
|
43
44
|
const mockReaddir = vi.fn(async (path) => {
|
|
44
45
|
const normalizedPath = nodePath.normalize(path);
|
|
45
|
-
if (normalizedPath.endsWith('default/policies'))
|
|
46
|
+
if (normalizedPath.endsWith(nodePath.normalize('default/policies')))
|
|
46
47
|
return [
|
|
47
48
|
{
|
|
48
49
|
name: 'default.toml',
|
|
@@ -50,11 +51,11 @@ describe('Workspace-Level Policies', () => {
|
|
|
50
51
|
isDirectory: () => false,
|
|
51
52
|
},
|
|
52
53
|
];
|
|
53
|
-
if (normalizedPath.endsWith('user/policies'))
|
|
54
|
+
if (normalizedPath.endsWith(nodePath.normalize('user/policies')))
|
|
54
55
|
return [
|
|
55
56
|
{ name: 'user.toml', isFile: () => true, isDirectory: () => false },
|
|
56
57
|
];
|
|
57
|
-
if (normalizedPath.endsWith('workspace/policies'))
|
|
58
|
+
if (normalizedPath.endsWith(nodePath.normalize('workspace/policies')))
|
|
58
59
|
return [
|
|
59
60
|
{
|
|
60
61
|
name: 'workspace.toml',
|
|
@@ -62,7 +63,7 @@ describe('Workspace-Level Policies', () => {
|
|
|
62
63
|
isDirectory: () => false,
|
|
63
64
|
},
|
|
64
65
|
];
|
|
65
|
-
if (normalizedPath.endsWith('system/policies'))
|
|
66
|
+
if (normalizedPath.endsWith(nodePath.normalize('system/policies')))
|
|
66
67
|
return [
|
|
67
68
|
{ name: 'admin.toml', isFile: () => true, isDirectory: () => false },
|
|
68
69
|
];
|
|
@@ -132,11 +133,12 @@ priority = 10
|
|
|
132
133
|
expect(workspaceRule.priority).toBeGreaterThan(defaultRule.priority);
|
|
133
134
|
});
|
|
134
135
|
it('should ignore workspace policies if workspacePoliciesDir is undefined', async () => {
|
|
135
|
-
const defaultPoliciesDir = '/mock/default/policies';
|
|
136
|
+
const defaultPoliciesDir = nodePath.resolve('/mock/default/policies');
|
|
136
137
|
// Mock FS (simplified)
|
|
137
138
|
const actualFs = await vi.importActual('node:fs/promises');
|
|
139
|
+
const mockRoot = nodePath.resolve('/mock/');
|
|
138
140
|
const mockStat = vi.fn(async (path) => {
|
|
139
|
-
if (typeof path === 'string' && path.startsWith(
|
|
141
|
+
if (typeof path === 'string' && path.startsWith(mockRoot)) {
|
|
140
142
|
return {
|
|
141
143
|
isDirectory: () => true,
|
|
142
144
|
isFile: () => false,
|
|
@@ -146,7 +148,7 @@ priority = 10
|
|
|
146
148
|
});
|
|
147
149
|
const mockReaddir = vi.fn(async (path) => {
|
|
148
150
|
const normalizedPath = nodePath.normalize(path);
|
|
149
|
-
if (normalizedPath.endsWith('default/policies'))
|
|
151
|
+
if (normalizedPath.endsWith(nodePath.normalize('default/policies')))
|
|
150
152
|
return [
|
|
151
153
|
{
|
|
152
154
|
name: 'default.toml',
|
|
@@ -180,11 +182,12 @@ priority=10`);
|
|
|
180
182
|
expect(rules[0].priority).toBe(1.01);
|
|
181
183
|
});
|
|
182
184
|
it('should load workspace policies and correctly transform to Tier 3', async () => {
|
|
183
|
-
const workspacePoliciesDir = '/mock/workspace/policies';
|
|
185
|
+
const workspacePoliciesDir = nodePath.resolve('/mock/workspace/policies');
|
|
184
186
|
// Mock FS
|
|
185
187
|
const actualFs = await vi.importActual('node:fs/promises');
|
|
188
|
+
const mockRoot = nodePath.resolve('/mock/');
|
|
186
189
|
const mockStat = vi.fn(async (path) => {
|
|
187
|
-
if (typeof path === 'string' && path.startsWith(
|
|
190
|
+
if (typeof path === 'string' && path.startsWith(mockRoot)) {
|
|
188
191
|
return {
|
|
189
192
|
isDirectory: () => true,
|
|
190
193
|
isFile: () => false,
|
|
@@ -194,7 +197,7 @@ priority=10`);
|
|
|
194
197
|
});
|
|
195
198
|
const mockReaddir = vi.fn(async (path) => {
|
|
196
199
|
const normalizedPath = nodePath.normalize(path);
|
|
197
|
-
if (normalizedPath.endsWith('workspace/policies'))
|
|
200
|
+
if (normalizedPath.endsWith(nodePath.normalize('workspace/policies')))
|
|
198
201
|
return [
|
|
199
202
|
{
|
|
200
203
|
name: 'workspace.toml',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-policy.test.js","sourceRoot":"","sources":["../../../src/policy/workspace-policy.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,oBAAoB;AACpB,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;CAC/D,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACzD,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,eAAe,CACrD,qBAAqB,
|
|
1
|
+
{"version":3,"file":"workspace-policy.test.js","sourceRoot":"","sources":["../../../src/policy/workspace-policy.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,7 +109,8 @@ Use the following guidelines to optimize your search and read patterns.
|
|
|
109
109
|
## Engineering Standards
|
|
110
110
|
- **Contextual Precedence:** Instructions found in ${formattedFilenames} files are foundational mandates. They take absolute precedence over the general workflows and tool defaults described in this system prompt.
|
|
111
111
|
- **Conventions & Style:** Rigorously adhere to existing workspace conventions, architectural patterns, and style (naming, formatting, typing, commenting). During the research phase, analyze surrounding files, tests, and configuration to ensure your changes are seamless, idiomatic, and consistent with the local context. Never compromise idiomatic quality or completeness (e.g., proper declarations, type safety, documentation) to minimize tool calls; all supporting changes required by local conventions are part of a surgical update.
|
|
112
|
-
- **Types, warnings and linters:** NEVER use hacks like disabling or suppressing warnings
|
|
112
|
+
- **Types, warnings and linters:** NEVER use hacks like disabling or suppressing warnings, bypassing the type system (e.g.: casts in TypeScript), or employing "hidden" logic (e.g.: reflection, prototype manipulation) unless explicitly instructed to by the user. Instead, use explicit and idiomatic language features (e.g.: type guards, explicit class instantiation, or object spread) that maintain structural integrity and type safety.
|
|
113
|
+
- **Design Patterns:** Prioritize explicit composition and delegation (e.g.: wrapper classes, proxies, or factory functions) over complex inheritance or prototype-based cloning. When extending or modifying existing classes, prefer patterns that are easily traceable and type-safe.
|
|
113
114
|
- **Libraries/Frameworks:** NEVER assume a library/framework is available. Verify its established usage within the project (check imports, configuration files like 'package.json', 'Cargo.toml', 'requirements.txt', etc.) before employing it.
|
|
114
115
|
- **Technical Integrity:** You are responsible for the entire lifecycle: implementation, testing, and validation. Within the scope of your changes, prioritize readability and long-term maintainability by consolidating logic into clean abstractions rather than threading state across unrelated layers. Align strictly with the requested architectural direction, ensuring the final implementation is focused and free of redundant "just-in-case" alternatives. Validation is not merely running tests; it is the exhaustive process of ensuring that every aspect of your change—behavioral, structural, and stylistic—is correct and fully compatible with the broader project. For bug fixes, you must empirically reproduce the failure with a new test case or reproduction script before applying the fix.
|
|
115
116
|
- **Expertise & Intent Alignment:** Provide proactive technical opinions grounded in research while strictly adhering to the user's intended workflow. Distinguish between **Directives** (unambiguous requests for action or implementation) and **Inquiries** (requests for analysis, advice, or observations). Assume all requests are Inquiries unless they contain an explicit instruction to perform a task. For Inquiries, your scope is strictly limited to research and analysis; you may propose a solution or strategy, but you MUST NOT modify files until a corresponding Directive is issued. Do not initiate implementation based on observations of bugs or statements of fact. Once an Inquiry is resolved, or while waiting for a Directive, stop and wait for the next user instruction. ${options.interactive ? 'For Directives, only clarify if critically underspecified; otherwise, work autonomously.' : 'For Directives, you must work autonomously as no further user input is available.'} You should only seek user intervention if you have exhausted all possible routes or if a proposed solution would take the workspace in a significantly different architectural direction.
|
|
@@ -471,10 +472,12 @@ function mandateTopicUpdateModel() {
|
|
|
471
472
|
## Topic Updates
|
|
472
473
|
As you work, the user follows along by reading topic updates that you publish with ${UPDATE_TOPIC_TOOL_NAME}. Keep them informed by doing the following:
|
|
473
474
|
|
|
474
|
-
-
|
|
475
|
+
- Usage Exception: NEVER use ${UPDATE_TOPIC_TOOL_NAME} for answering questions, providing explanations, or performing isolated lookup tasks (e.g. reading a single file, running a quick search, or checking a version). It is STRICTLY for orchestrating multi-step codebase modifications or complex investigations involving 3 or more tool calls.
|
|
476
|
+
- Always call ${UPDATE_TOPIC_TOOL_NAME} in your first turn.
|
|
477
|
+
- For tasks taking multiple turns, also call ${UPDATE_TOPIC_TOOL_NAME} in your last turn to recap what was done.
|
|
475
478
|
- Each topic update should give a concise description of what you are doing for the next few turns in the \`${TOPIC_PARAM_SUMMARY}\` parameter.
|
|
476
479
|
- Provide topic updates whenever you change "topics". A topic is typically a discrete subgoal and will be every 3 to 10 turns. Do not use ${UPDATE_TOPIC_TOOL_NAME} on every turn.
|
|
477
|
-
- The typical user message should call ${UPDATE_TOPIC_TOOL_NAME} 3 or more times. Each corresponds to a distinct phase of the task, such as "Researching X", "Researching Y", "Implementing Z with X", and "Testing Z".
|
|
480
|
+
- The typical complex user message should call ${UPDATE_TOPIC_TOOL_NAME} 3 or more times. Each corresponds to a distinct phase of the task, such as "Researching X", "Researching Y", "Implementing Z with X", and "Testing Z".
|
|
478
481
|
- Remember to call ${UPDATE_TOPIC_TOOL_NAME} when you experience an unexpected event (e.g., a test failure, compilation error, environment issue, or unexpected learning) that requires a strategic detour.
|
|
479
482
|
- **Examples:**
|
|
480
483
|
- \`update_topic(${TOPIC_PARAM_TITLE}="Researching Parser", ${TOPIC_PARAM_SUMMARY}="I am starting an investigation into the parser timeout bug. My goal is to first understand the current test coverage and then attempt to reproduce the failure. This phase will focus on identifying the bottleneck in the main loop before we move to implementation.")\`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snippets.js","sourceRoot":"","sources":["../../../src/prompts/snippets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snippets.js","sourceRoot":"","sources":["../../../src/prompts/snippets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AA+ElE,iCAAiC;AAEjC;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA4B;IAC9D,OAAO;EACP,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;;EAEhC,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC;;EAExC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC;;EAElC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC;;EAEtC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC;;EAGtC,OAAO,CAAC,gBAAgB;QACtB,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAClD,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,CACrD;;EAEE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;;EAEjE,2BAA2B,CAAC,OAAO,CAAC,qBAAqB,CAAC;;EAE1D,yBAAyB,CAAC,OAAO,CAAC,mBAAmB,CAAC;;EAEtD,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;;EAE9B,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;CAC/B,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,EAClB,UAAwC,EACxC,gBAA2B;IAE3B,OAAO;EACP,UAAU,CAAC,IAAI,EAAE;;EAEjB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC;CAC/C,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,+BAA+B;AAE/B,MAAM,UAAU,cAAc,CAAC,OAAyB;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,WAAW;QACxB,CAAC,CAAC,qJAAqJ;QACvJ,CAAC,CAAC,oJAAoJ,CAAC;AAC3J,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA6B;IAC9D,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACzE,MAAM,kBAAkB,GACtB,SAAS,CAAC,MAAM,GAAG,CAAC;QAClB,CAAC,CAAC,SAAS;aACN,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aACtB,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI;QAC9D,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5B,yFAAyF;IACzF,wFAAwF;IACxF,sFAAsF;IACtF,oEAAoE;IACpE,OAAO;;;;;;;;;;;;;;;;;;;;yJAoBgJ,cAAc;4BAC3I,cAAc;;yPAE+M,mBAAmB,QAAQ,cAAc;IAC9R,mBAAmB,aAAa,qBAAqB,qEAAqE,mBAAmB,QAAQ,cAAc;;;;;;6CAM1H,cAAc,QAAQ,cAAc,wCAAwC,4BAA4B,6BAA6B,0BAA0B,YAAY,0BAA0B;yDACzL,cAAc,+DAA+D,kBAAkB,SAAS,iBAAiB,gBAAgB,gBAAgB;;+CAEnK,cAAc,WAAW,mBAAmB,6BAA6B,0BAA0B,UAAU,wBAAwB;;;;;qDAK/H,kBAAkB;;;;;;8wBAMusB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,0FAA0F,CAAC,CAAC,CAAC,mFAAmF;;gNAEpwB,yBAAyB,CAAC,OAAO,CAAC,qBAAqB,CAAC;;IAEpQ,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,GACnC,OAAO,CAAC,oBAAoB;QAC1B,CAAC,CAAC,uBAAuB,EAAE;QAC3B,CAAC,CAAC,0BAA0B,EAChC;wOACsO,oBAAoB,CACxP,OAAO,CAAC,SAAS,CAClB,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC;CAC7C,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAA6B;IAC3D,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,SAAS;SAC3B,GAAG,CACF,CAAC,KAAK,EAAE,EAAE,CAAC;YACL,KAAK,CAAC,IAAI;mBACH,KAAK,CAAC,WAAW;cACtB,CACT;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;;;;;;;;;;;;;;;;;;EAoBP,YAAY;;;;;;;sGAOwF,CAAC,IAAI,EAAE,CAAC;AAC9G,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAA4B;IAC5D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,MAAM;SACrB,GAAG,CACF,CAAC,KAAK,EAAE,EAAE,CAAC;YACL,KAAK,CAAC,IAAI;mBACH,KAAK,CAAC,WAAW;gBACpB,KAAK,CAAC,QAAQ;WACnB,CACN;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;2HAGkH,cAAc,CAAC,wBAAwB,CAAC;;;EAGjK,SAAS;oBACS,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAiB;IACjD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO;;;;;;iGAMwF,CAAC,IAAI,EAAE,CAAC;AACzG,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAiC;IAEjC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,kBAAkB,GAAG,OAAO,CAAC,YAAY;QAC7C,CAAC,CAAC,kWAAkW;QACpW,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;yKAIgK,kBAAkB;;EAEzL,oBAAoB,CAAC,OAAO,CAAC;EAC7B,oBAAoB,CAAC,OAAO,CAAC;;;kHAGmF,cAAc,CAAC,cAAc,CAAC,KAAK,cAAc,CAAC,oBAAoB,CAAC,KAAK,cAAc,CAAC,eAAe,CAAC;0UAC6G,6BAA6B,CAAC,OAAO,CAAC,WAAW,CAAC;;;;;;;;EAQ1X,mBAAmB,CAAC,OAAO,CAAC;CAC7B,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAsC;IAEtC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO;;;;;;qIAOL,OAAO,CAAC,oBAAoB;QAC1B,CAAC,CAAC,oCAAoC;QACtC,CAAC,CAAC,6DACN;;;sJAIE,OAAO,CAAC,oBAAoB;QAC1B,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,8CACN;;;;;;;kEAOgE,cAAc,CAAC,eAAe,CAAC,kWAAkW,cAAc,CAAC,kBAAkB,CAAC;;;;;mEAKla,cAAc,CAAC,cAAc,CAAC;mCAC9D,cAAc,CAAC,eAAe,CAAC,qGAAqG,oBAAoB,CACvL,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,uBAAuB,CAChC,GAAG,yBAAyB,CAAC,OAAO,CAAC;;;;;;CAMvC,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAwB;IACpD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACzC,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;IAChD,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO;;;;;;;;;yIAS4H,CAAC,IAAI,EAAE,CAAC;QAC7I,CAAC;aAAM,CAAC;YACN,OAAO;;;seAGyd,CAAC,IAAI,EAAE,CAAC;QAC1e,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO;;;;;;;;mGAQsF,CAAC,IAAI,EAAE,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,OAAO;;;yeAG4d,CAAC,IAAI,EAAE,CAAC;QAC7e,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAiB;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO;;;;;mBAKU,kBAAkB;;;;;;;;;CASpC,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAwB;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO;;;;;;;;;;;;;;iGAcwF,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC;;;wFAGrD,CAAC,IAAI,EAAE,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAoC,EACpC,gBAA2B;IAE3B,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,gBAAgB,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACjE,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO;6BACkB,eAAe;;;;;;;;;;;;;EAa1C,OAAO;kBACS,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CACX,qBAAqB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAC/D,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CACX,0FAA0F,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,6DAA6D,CACvL,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CACX,wBAAwB,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,wBAAwB,CACxE,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CACX,sBAAsB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,sBAAsB,CAClE,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,8BAA8B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,MAAM,aAAa,GAAG,cAAc,CAAC,6BAA6B,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,cAAc,CAAC,4BAA4B,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,cAAc,CAAC,6BAA6B,CAAC,CAAC;IAEpE,OAAO;;mFAE0E,UAAU;;uIAE0C,aAAa,KAAK,WAAW,KAAK,aAAa;iRAC2F,aAAa;;8EAEhN,aAAa;;;;2MAIgH,CAAC,IAAI,EAAE,CAAC;AACnN,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAiC;IAEjC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO;;;0FAGiF,OAAO,CAAC,QAAQ,WAAW,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,0DAA0D;;;;;EAKrP,OAAO,CAAC,iBAAiB;;;;4HAIiG,OAAO,CAAC,QAAQ;2BACjH,cAAc,CAAC,oBAAoB,CAAC,QAAQ,cAAc,CAAC,cAAc,CAAC,kDAAkD,OAAO,CAAC,QAAQ;2IAC5B,cAAc,CAAC,kBAAkB,CAAC;;;;;4FAKjF,cAAc,CAAC,wBAAwB,CAAC;;;;;;;;;;;yIAWK,cAAc,CAAC,kBAAkB,CAAC;oGACvE,cAAc,CAAC,kBAAkB,CAAC;;;;;qCAKjG,OAAO,CAAC,QAAQ;;;;;;eAMtC,cAAc,CAAC,wBAAwB,CAAC,0MAA0M,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,uBAAuB;;EAE3U,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,yBAAyB,CAAC,gBAAyB;IAC1D,IAAI,CAAC,gBAAgB;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO;mDAC0C,gBAAgB;sDACb,cAAc,CAAC,mBAAmB,CAAC;;;CAGxF,CAAC;AACF,CAAC;AAED,0DAA0D;AAE1D,SAAS,cAAc,CAAC,WAAoB;IAC1C,OAAO,WAAW;QAChB,CAAC,CAAC,mUAAmU;QACrU,CAAC,CAAC,iOAAiO,CAAC;AACxO,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO;;qFAE4E,sBAAsB;;+BAE5E,sBAAsB;gBACrC,sBAAsB;+CACS,sBAAsB;8GACyC,mBAAmB;4IACW,sBAAsB;iDACjH,sBAAsB;qBAClD,sBAAsB;;qBAEtB,iBAAiB,0BAA0B,mBAAmB;qBAC9D,iBAAiB,+BAA+B,mBAAmB;;CAEvF,CAAC;AACF,CAAC;AAED,SAAS,0BAA0B;IACjC,OAAO;;0HAEiH,CAAC;AAC3H,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAkB;IAC9C,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO;sDAC6C,cAAc,CAAC,wBAAwB,CAAC,+bAA+b,CAAC;AAC9hB,CAAC;AAED,SAAS,yBAAyB,CAAC,qBAA8B;IAC/D,IAAI,CAAC,qBAAqB;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,4SAA4S,CAAC;AACtT,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAoB;IAC/C,IAAI,WAAW;QAAE,OAAO,EAAE,CAAC;IAC3B,OAAO;8cACqc,CAAC;AAC/c,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgC;IAC5D,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;QACpC,UAAU,GAAG,uHAAuH,cAAc,CAAC,yBAAyB,CAAC,kJAAkJ,CAAC;IAClU,CAAC;IAED,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,OAAO,CAAC,UAAU;QAAE,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,UAAU;QAAE,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAEzE,IAAI,cAAc,GAChB,uGAAuG,CAAC;IAC1G,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9D,cAAc,GAAG,QAAQ,QAAQ,WAAW,WAAW,mHAAmH,CAAC;IAC7K,CAAC;IAED,IAAI,OAAO,CAAC,0BAA0B,EAAE,CAAC;QACvC,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,cAAc,GAAG,uHAAuH,QAAQ,wBAAwB,CAAC;QAC3K,CAAC;QAED,OAAO,2RAA2R,cAAc,QAAQ,cAAc,CAAC,mBAAmB,CAAC,uHAAuH,UAAU,EAAE,CAAC;IACje,CAAC;IAED,OAAO,6EAA6E,cAAc,QAAQ,cAAc,CAAC,mBAAmB,CAAC,uHAAuH,UAAU,EAAE,CAAC;AACnR,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgC;IAC5D,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAChD,OAAO,8pBAA8pB,CAAC;IACxqB,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,yhBAAyhB,CAAC;IACniB,CAAC;IAED,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;QACjC,OAAO,qEACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,EACvE,qFAAqF,cAAc,CAAC,qBAAqB,CAAC,+BAA+B,CAAC;IAC5J,CAAC;IACD,OAAO,qEACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,EACvE,EAAE,CAAC;AACL,CAAC;AAED,SAAS,6BAA6B,CAAC,WAAoB;IACzD,OAAO,WAAW;QAChB,CAAC,CAAC,wGAAwG;QAC1G,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgC;IAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO;;mHAEwG,cAAc,CAAC,eAAe,CAAC;;0DAExF,CAAC,IAAI,EAAE,CAAC;IAChE,CAAC;IAED,+EAA+E;IAC/E,6EAA6E;IAC7E,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;QACpC,OAAO;8CACmC,cAAc,CAAC,yBAAyB,CAAC,iDAAiD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;oMAUM,CAAC,IAAI,EAAE,CAAC;IAC1M,CAAC;IAED,mEAAmE;IAEnE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;;;;;;;;;;kIAUuH,cAAc,CAAC,eAAe,CAAC;;0HAEvC,CAAC,IAAI,EAAE,CAAC;IAChI,CAAC;IAED,OAAO;;;;;;;;;;kIAUyH,cAAc,CAAC,eAAe,CAAC;oJACb,CAAC,IAAI,EAAE,CAAC;AAC5J,CAAC;AAED,SAAS,oBAAoB,CAC3B,WAAoB,EACpB,uBAAgC;IAEhC,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,uBAAuB;YACvC,CAAC,CAAC,gJAAgJ;YAClJ,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;4EACiE,yBAAyB;gVAC2O,SAAS,EAAE,CAAC;IAC1V,CAAC;IACD,OAAO;4EACmE,yBAAyB;+UAC0O,CAAC;AAChV,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAqC;IAErC,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;QACjC,OAAO;kCACuB,cAAc,CAAC,gBAAgB,CAAC,ieAAie,CAAC;IACliB,CAAC;IACD,MAAM,IAAI,GAAG;yBACU,cAAc,CAAC,gBAAgB,CAAC;;;6IAGoF,CAAC;IAC5I,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW;QAChC,CAAC,CAAC,wEAAwE;QAC1E,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,IAAI,GAAG,MAAM,CAAC;AACvB,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAoB;IACnD,OAAO,WAAW;QAChB,CAAC,CAAC;iFAC2E;QAC7E,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,gBAAyB;IAC5D,MAAM,gBAAgB,GAAG,gBAAgB;QACvC,CAAC,CAAC;;;4CAGsC,gBAAgB;;;yEAGa;QACrE,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;;;;;;;;;;;oKAe2J,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoDlK,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -65,6 +65,8 @@ export function renderCoreMandates(options) {
|
|
|
65
65
|
- **Libraries/Frameworks:** NEVER assume a library/framework is available or appropriate. Verify its established usage within the project (check imports, configuration files like 'package.json', 'Cargo.toml', 'requirements.txt', 'build.gradle', etc., or observe neighboring files) before employing it.
|
|
66
66
|
- **Style & Structure:** Mimic the style (formatting, naming), structure, framework choices, typing, and architectural patterns of existing code in the project.
|
|
67
67
|
- **Idiomatic Changes:** When editing, understand the local context (imports, functions/classes) to ensure your changes integrate naturally and idiomatically.
|
|
68
|
+
- **Types, Warnings & Linters:** NEVER use hacks like disabling or suppressing warnings, bypassing the type system (e.g.: casts in TypeScript), or employing "hidden" logic (e.g.: reflection, prototype manipulation) unless explicitly instructed to by the user. Instead, use explicit and idiomatic language features (e.g.: type guards, explicit class instantiation, or object spread) that maintain structural integrity and type safety.
|
|
69
|
+
- **Design Patterns:** Prioritize explicit composition and delegation (e.g.: wrapper classes, proxies, or factory functions) over complex inheritance or prototype-based cloning. When extending or modifying existing classes, prefer patterns that are easily traceable and type-safe.
|
|
68
70
|
- **Comments:** Add code comments sparingly. Focus on *why* something is done, especially for complex logic, rather than *what* is done. Only add high-value comments if necessary for clarity or if requested by the user. Do not edit comments that are separate from the code you are changing. *NEVER* talk to the user or describe your changes through comments.
|
|
69
71
|
- **Proactiveness:** Fulfill the user's request thoroughly. When adding features or fixing bugs, this includes adding tests to ensure quality. Consider all created files, especially tests, to be permanent artifacts unless the user says otherwise.${mandateConflictResolution(options.hasHierarchicalMemory)}
|
|
70
72
|
- **User Hints:** During execution, the user may provide real-time hints (marked as "User hint:" or "User hints:"). Treat these as high-priority but scope-preserving course corrections: apply the minimal plan change needed, keep unaffected user tasks active, and never cancel/skip tasks unless cancellation is explicit for those tasks. Hints may add new tasks, modify one or more tasks, cancel specific tasks, or provide extra context only. If scope is ambiguous, ask for clarification before dropping work.
|
|
@@ -379,10 +381,12 @@ function mandateTopicUpdateModel() {
|
|
|
379
381
|
## Topic Updates
|
|
380
382
|
As you work, the user follows along by reading topic updates that you publish with ${UPDATE_TOPIC_TOOL_NAME}. Keep them informed by doing the following:
|
|
381
383
|
|
|
382
|
-
-
|
|
384
|
+
- Usage Exception: NEVER use ${UPDATE_TOPIC_TOOL_NAME} for answering questions, providing explanations, or performing isolated lookup tasks (e.g. reading a single file, running a quick search, or checking a version). It is STRICTLY for orchestrating multi-step codebase modifications or complex investigations involving 3 or more tool calls.
|
|
385
|
+
- Always call ${UPDATE_TOPIC_TOOL_NAME} in your first turn.
|
|
386
|
+
- For tasks taking multiple turns, also call ${UPDATE_TOPIC_TOOL_NAME} in your last turn to recap what was done.
|
|
383
387
|
- Each topic update should give a concise description of what you are doing for the next few turns in the \`${TOPIC_PARAM_SUMMARY}\` parameter.
|
|
384
388
|
- Provide topic updates whenever you change "topics". A topic is typically a discrete subgoal and will be every 3 to 10 turns. Do not use ${UPDATE_TOPIC_TOOL_NAME} on every turn.
|
|
385
|
-
- The typical user message should call ${UPDATE_TOPIC_TOOL_NAME} 3 or more times. Each corresponds to a distinct phase of the task, such as "Researching X", "Researching Y", "Implementing Z with X", and "Testing Z".
|
|
389
|
+
- The typical complex user message should call ${UPDATE_TOPIC_TOOL_NAME} 3 or more times. Each corresponds to a distinct phase of the task, such as "Researching X", "Researching Y", "Implementing Z with X", and "Testing Z".
|
|
386
390
|
- Remember to call ${UPDATE_TOPIC_TOOL_NAME} when you experience an unexpected event (e.g., a test failure, compilation error, environment issue, or unexpected learning) that requires a strategic detour.
|
|
387
391
|
- **Examples:**
|
|
388
392
|
- ${UPDATE_TOPIC_TOOL_NAME}(${TOPIC_PARAM_TITLE}="Researching Parser", ${TOPIC_PARAM_SUMMARY}="I am starting an investigation into the parser timeout bug. My goal is to first understand the current test coverage and then attempt to reproduce the failure. This phase will focus on identifying the bottleneck in the main loop before we move to implementation.")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snippets.legacy.js","sourceRoot":"","sources":["../../../src/prompts/snippets.legacy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAmFhC,iCAAiC;AAEjC;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA4B;IAC9D,OAAO;EACP,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;;EAEhC,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC;;EAExC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC;EAClC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC;;EAEtC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC;;EAGtC,OAAO,CAAC,gBAAgB;QACtB,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAClD,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,CACrD;;EAEE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;;EAEjE,2BAA2B,CAAC,OAAO,CAAC,qBAAqB,CAAC;;EAE1D,yBAAyB,CAAC,OAAO,CAAC,mBAAmB,CAAC;;EAEtD,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;;EAE9B,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;;EAE9B,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC;CAC3C,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,EAClB,UAAwC;IAExC,OAAO;EACP,UAAU,CAAC,IAAI,EAAE;;EAEjB,gBAAgB,CAAC,UAAU,CAAC;CAC7B,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,+BAA+B;AAE/B,MAAM,UAAU,cAAc,CAAC,OAAyB;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,WAAW;QACxB,CAAC,CAAC,6NAA6N;QAC/N,CAAC,CAAC,gOAAgO,CAAC;AACvO,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA6B;IAC9D,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO
|
|
1
|
+
{"version":3,"file":"snippets.legacy.js","sourceRoot":"","sources":["../../../src/prompts/snippets.legacy.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
7
|
+
import * as path from 'node:path';
|
|
7
8
|
import { resolvePathFromEnv, isSectionEnabled, applySubstitutions, } from './utils.js';
|
|
8
9
|
vi.mock('../utils/paths.js', () => ({
|
|
9
10
|
homedir: vi.fn().mockReturnValue('/mock/home'),
|
|
@@ -101,22 +102,23 @@ describe('resolvePathFromEnv', () => {
|
|
|
101
102
|
});
|
|
102
103
|
});
|
|
103
104
|
it('should resolve a regular path', () => {
|
|
104
|
-
const
|
|
105
|
+
const p = path.resolve('/some/absolute/path');
|
|
106
|
+
const result = resolvePathFromEnv(p);
|
|
105
107
|
expect(result.isSwitch).toBe(false);
|
|
106
|
-
expect(result.value).toBe(
|
|
108
|
+
expect(result.value).toBe(p);
|
|
107
109
|
expect(result.isDisabled).toBe(false);
|
|
108
110
|
});
|
|
109
111
|
it('should resolve a tilde path to the home directory', () => {
|
|
110
112
|
const result = resolvePathFromEnv('~/my/custom/path');
|
|
111
113
|
expect(result.isSwitch).toBe(false);
|
|
112
|
-
expect(result.value).toContain('/mock/home');
|
|
113
|
-
expect(result.value).toContain('my/custom/path');
|
|
114
|
+
expect(result.value).toContain(path.normalize('/mock/home'));
|
|
115
|
+
expect(result.value).toContain(path.normalize('my/custom/path'));
|
|
114
116
|
expect(result.isDisabled).toBe(false);
|
|
115
117
|
});
|
|
116
118
|
it('should resolve a bare tilde to the home directory', () => {
|
|
117
119
|
const result = resolvePathFromEnv('~');
|
|
118
120
|
expect(result.isSwitch).toBe(false);
|
|
119
|
-
expect(result.value).toBe('/mock/home');
|
|
121
|
+
expect(result.value).toBe(path.resolve('/mock/home'));
|
|
120
122
|
expect(result.isDisabled).toBe(false);
|
|
121
123
|
});
|
|
122
124
|
it('should handle home directory resolution failure gracefully', async () => {
|