fix(write-existing-file-guard): defer realpath/existsSync to first tool call

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
YeonGyu-Kim
2026-04-18 14:11:03 +09:00
parent a6e3c6a5ed
commit a4c45e2770
3 changed files with 15 additions and 6 deletions
+10 -2
View File
@@ -76,7 +76,15 @@ export function isOverwriteEnabled(value: boolean | string | undefined): boolean
export function createWriteExistingFileGuardHook(ctx: PluginInput): Hooks {
const readPermissionsBySession = new Map<string, Set<string>>()
const sessionLastAccess = new Map<string, number>()
const canonicalSessionRoot = toCanonicalPath(resolveInputPath(ctx, ctx.directory))
let canonicalSessionRoot: string | undefined
function getCanonicalSessionRoot(): string {
if (!canonicalSessionRoot) {
canonicalSessionRoot = toCanonicalPath(resolveInputPath(ctx, ctx.directory))
}
return canonicalSessionRoot
}
return {
"tool.execute.before": async (input, output) => {
@@ -86,7 +94,7 @@ export function createWriteExistingFileGuardHook(ctx: PluginInput): Hooks {
output,
readPermissionsBySession,
sessionLastAccess,
canonicalSessionRoot,
getCanonicalSessionRoot,
maxTrackedSessions: MAX_TRACKED_SESSIONS,
})
},