fix: use correct project directory for Windows subagents (#1718)
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
const WINDOWS_APPDATA_SEGMENTS = ["\\appdata\\local\\", "\\appdata\\roaming\\", "\\appdata\\locallow\\"]
|
||||
|
||||
function normalizeWindowsPath(directory: string): string {
|
||||
return directory.replaceAll("/", "\\").toLowerCase()
|
||||
}
|
||||
|
||||
export function isWindowsAppDataDirectory(directory: string): boolean {
|
||||
const normalizedDirectory = normalizeWindowsPath(directory)
|
||||
return WINDOWS_APPDATA_SEGMENTS.some((segment) => normalizedDirectory.includes(segment))
|
||||
}
|
||||
|
||||
export function resolveSessionDirectory(options: {
|
||||
parentDirectory: string | null | undefined
|
||||
fallbackDirectory: string
|
||||
platform?: NodeJS.Platform
|
||||
currentWorkingDirectory?: string
|
||||
}): string {
|
||||
const {
|
||||
parentDirectory,
|
||||
fallbackDirectory,
|
||||
platform = process.platform,
|
||||
currentWorkingDirectory = process.cwd(),
|
||||
} = options
|
||||
|
||||
const sessionDirectory = parentDirectory ?? fallbackDirectory
|
||||
if (platform !== "win32") {
|
||||
return sessionDirectory
|
||||
}
|
||||
|
||||
if (!isWindowsAppDataDirectory(sessionDirectory)) {
|
||||
return sessionDirectory
|
||||
}
|
||||
|
||||
if (isWindowsAppDataDirectory(currentWorkingDirectory)) {
|
||||
return sessionDirectory
|
||||
}
|
||||
|
||||
return currentWorkingDirectory
|
||||
}
|
||||
Reference in New Issue
Block a user