Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
985 B · 32 lines
TypeScript
at main
123456789101112131415161718192021222324252627282930313233import { AsyncLocalStorage } from 'async_hooks'import { getCwdState, getOriginalCwd } from '../bootstrap/state.js'
const cwdOverrideStorage = new AsyncLocalStorage<string>()
/** * Run a function with an overridden working directory for the current async context. * All calls to pwd()/getCwd() within the function (and its async descendants) will * return the overridden cwd instead of the global one. This enables concurrent * agents to each see their own working directory without affecting each other. */export function runWithCwdOverride<T>(cwd: string, fn: () => T): T { return cwdOverrideStorage.run(cwd, fn)}
/** * Get the current working directory */export function pwd(): string { return cwdOverrideStorage.getStore() ?? getCwdState()}
/** * Get the current working directory or the original working directory if the current one is not available */export function getCwd(): string { try { return pwd() } catch { return getOriginalCwd() }}