source dump of claude code
at main 39 lines 1.4 kB view raw
1// Constants for timeout values 2const DEFAULT_TIMEOUT_MS = 120_000 // 2 minutes 3const MAX_TIMEOUT_MS = 600_000 // 10 minutes 4 5type EnvLike = Record<string, string | undefined> 6 7/** 8 * Get the default timeout for bash operations in milliseconds 9 * Checks BASH_DEFAULT_TIMEOUT_MS environment variable or returns 2 minutes default 10 * @param env Environment variables to check (defaults to process.env for production use) 11 */ 12export function getDefaultBashTimeoutMs(env: EnvLike = process.env): number { 13 const envValue = env.BASH_DEFAULT_TIMEOUT_MS 14 if (envValue) { 15 const parsed = parseInt(envValue, 10) 16 if (!isNaN(parsed) && parsed > 0) { 17 return parsed 18 } 19 } 20 return DEFAULT_TIMEOUT_MS 21} 22 23/** 24 * Get the maximum timeout for bash operations in milliseconds 25 * Checks BASH_MAX_TIMEOUT_MS environment variable or returns 10 minutes default 26 * @param env Environment variables to check (defaults to process.env for production use) 27 */ 28export function getMaxBashTimeoutMs(env: EnvLike = process.env): number { 29 const envValue = env.BASH_MAX_TIMEOUT_MS 30 if (envValue) { 31 const parsed = parseInt(envValue, 10) 32 if (!isNaN(parsed) && parsed > 0) { 33 // Ensure max is at least as large as default 34 return Math.max(parsed, getDefaultBashTimeoutMs(env)) 35 } 36 } 37 // Always ensure max is at least as large as default 38 return Math.max(MAX_TIMEOUT_MS, getDefaultBashTimeoutMs(env)) 39}