{"version":3,"file":"session-cwd.js","sourceRoot":"","sources":["../../src/core/session-cwd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAarC,MAAM,UAAU,yBAAyB,CACxC,cAAgC,EAChC,WAAmB,EACW;IAC9B,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;IACpD,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;IAC3C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO;QACN,WAAW;QACX,UAAU;QACV,WAAW;KACX,CAAC;AAAA,CACF;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAsB,EAAU;IAC5E,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,OAAO,oDAAoD,KAAK,CAAC,UAAU,GAAG,WAAW,gCAAgC,KAAK,CAAC,WAAW,EAAE,CAAC;AAAA,CAC7I;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAsB,EAAU;IAC7E,OAAO,yCAAyC,KAAK,CAAC,UAAU,gCAAgC,KAAK,CAAC,WAAW,EAAE,CAAC;AAAA,CACpH;AAED,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACvC,KAAK,CAAkB;IAEhC,YAAY,KAAsB,EAAE;QACnC,KAAK,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAAA,CACnB;CACD;AAED,MAAM,UAAU,sBAAsB,CAAC,cAAgC,EAAE,WAAmB,EAAQ;IACnG,MAAM,KAAK,GAAG,yBAAyB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACrE,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;AAAA,CACD","sourcesContent":["import { existsSync } from \"node:fs\";\n\nexport interface SessionCwdIssue {\n\tsessionFile?: string;\n\tsessionCwd: string;\n\tfallbackCwd: string;\n}\n\ninterface SessionCwdSource {\n\tgetCwd(): string;\n\tgetSessionFile(): string | undefined;\n}\n\nexport function getMissingSessionCwdIssue(\n\tsessionManager: SessionCwdSource,\n\tfallbackCwd: string,\n): SessionCwdIssue | undefined {\n\tconst sessionFile = sessionManager.getSessionFile();\n\tif (!sessionFile) {\n\t\treturn undefined;\n\t}\n\n\tconst sessionCwd = sessionManager.getCwd();\n\tif (!sessionCwd || existsSync(sessionCwd)) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tsessionFile,\n\t\tsessionCwd,\n\t\tfallbackCwd,\n\t};\n}\n\nexport function formatMissingSessionCwdError(issue: SessionCwdIssue): string {\n\tconst sessionFile = issue.sessionFile ? `\\nSession file: ${issue.sessionFile}` : \"\";\n\treturn `Stored session working directory does not exist: ${issue.sessionCwd}${sessionFile}\\nCurrent working directory: ${issue.fallbackCwd}`;\n}\n\nexport function formatMissingSessionCwdPrompt(issue: SessionCwdIssue): string {\n\treturn `cwd from session file does not exist\\n${issue.sessionCwd}\\n\\ncontinue in current cwd\\n${issue.fallbackCwd}`;\n}\n\nexport class MissingSessionCwdError extends Error {\n\treadonly issue: SessionCwdIssue;\n\n\tconstructor(issue: SessionCwdIssue) {\n\t\tsuper(formatMissingSessionCwdError(issue));\n\t\tthis.name = \"MissingSessionCwdError\";\n\t\tthis.issue = issue;\n\t}\n}\n\nexport function assertSessionCwdExists(sessionManager: SessionCwdSource, fallbackCwd: string): void {\n\tconst issue = getMissingSessionCwdIssue(sessionManager, fallbackCwd);\n\tif (issue) {\n\t\tthrow new MissingSessionCwdError(issue);\n\t}\n}\n"]}