source dump of claude code
at main 22 lines 1.0 kB view raw
1import { BASH_TOOL_NAME } from '../../tools/BashTool/toolName.js' 2import { POWERSHELL_TOOL_NAME } from '../../tools/PowerShellTool/toolName.js' 3import { isEnvDefinedFalsy, isEnvTruthy } from '../envUtils.js' 4import { getPlatform } from '../platform.js' 5 6export const SHELL_TOOL_NAMES: string[] = [BASH_TOOL_NAME, POWERSHELL_TOOL_NAME] 7 8/** 9 * Runtime gate for PowerShellTool. Windows-only (the permission engine uses 10 * Win32-specific path normalizations). Ant defaults on (opt-out via env=0); 11 * external defaults off (opt-in via env=1). 12 * 13 * Used by tools.ts (tool-list visibility), processBashCommand (! routing), 14 * and promptShellExecution (skill frontmatter routing) so the gate is 15 * consistent across all paths that invoke PowerShellTool.call(). 16 */ 17export function isPowerShellToolEnabled(): boolean { 18 if (getPlatform() !== 'windows') return false 19 return process.env.USER_TYPE === 'ant' 20 ? !isEnvDefinedFalsy(process.env.CLAUDE_CODE_USE_POWERSHELL_TOOL) 21 : isEnvTruthy(process.env.CLAUDE_CODE_USE_POWERSHELL_TOOL) 22}