23 lines
1.0 KiB
TypeScript
23 lines
1.0 KiB
TypeScript
import { BASH_TOOL_NAME } from '../../tools/BashTool/toolName.js'
|
|
import { POWERSHELL_TOOL_NAME } from '../../tools/PowerShellTool/toolName.js'
|
|
import { isEnvDefinedFalsy, isEnvTruthy } from '../envUtils.js'
|
|
import { getPlatform } from '../platform.js'
|
|
|
|
export const SHELL_TOOL_NAMES: string[] = [BASH_TOOL_NAME, POWERSHELL_TOOL_NAME]
|
|
|
|
/**
|
|
* Runtime gate for PowerShellTool. Windows-only (the permission engine uses
|
|
* Win32-specific path normalizations). Ant defaults on (opt-out via env=0);
|
|
* external defaults off (opt-in via env=1).
|
|
*
|
|
* Used by tools.ts (tool-list visibility), processBashCommand (! routing),
|
|
* and promptShellExecution (skill frontmatter routing) so the gate is
|
|
* consistent across all paths that invoke PowerShellTool.call().
|
|
*/
|
|
export function isPowerShellToolEnabled(): boolean {
|
|
if (getPlatform() !== 'windows') return false
|
|
return process.env.USER_TYPE === 'ant'
|
|
? !isEnvDefinedFalsy(process.env.CLAUDE_CODE_USE_POWERSHELL_TOOL)
|
|
: isEnvTruthy(process.env.CLAUDE_CODE_USE_POWERSHELL_TOOL)
|
|
}
|