Files
orcs-code/src/utils/cwd.ts
did:key:z6MkqDnb7Siv3Cwj7pGJq4T5EsUisECqR8KpnDLwcaZq5TPr d2542c9a62 asdf
Squash the current repository state back into one baseline commit while
preserving the README reframing and repository contents.

Constraint: User explicitly requested a single squashed commit with subject "asdf"
Confidence: high
Scope-risk: broad
Reversibility: clean
Directive: This commit intentionally rewrites published history; coordinate before future force-pushes
Tested: git status clean; local history rewritten to one commit; force-pushed main to origin and instructkr
Not-tested: Fresh clone verification after push
2026-03-31 03:34:03 -07:00

33 lines
985 B
TypeScript

import { 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()
}
}