diff --git a/src/hooks/claude-code-hooks/post-tool-use.ts b/src/hooks/claude-code-hooks/post-tool-use.ts index d7caf4cd..abfcf448 100644 --- a/src/hooks/claude-code-hooks/post-tool-use.ts +++ b/src/hooks/claude-code-hooks/post-tool-use.ts @@ -123,7 +123,7 @@ export async function executePostToolUseHooks( if (result.exitCode === 0 && result.stdout) { try { - const output = JSON.parse(result.stdout) as PostToolUseOutput + const output = JSON.parse(result.stdout || "{}") as PostToolUseOutput if (output.decision === "block") { return { block: true, diff --git a/src/hooks/claude-code-hooks/pre-compact.ts b/src/hooks/claude-code-hooks/pre-compact.ts index edaf1fa6..17a4b58e 100644 --- a/src/hooks/claude-code-hooks/pre-compact.ts +++ b/src/hooks/claude-code-hooks/pre-compact.ts @@ -73,7 +73,7 @@ export async function executePreCompactHooks( if (result.stdout) { try { - const output = JSON.parse(result.stdout) as PreCompactOutput + const output = JSON.parse(result.stdout || "{}") as PreCompactOutput if (output.hookSpecificOutput?.additionalContext) { collectedContext.push(...output.hookSpecificOutput.additionalContext) diff --git a/src/hooks/claude-code-hooks/pre-tool-use.ts b/src/hooks/claude-code-hooks/pre-tool-use.ts index 51d8ca87..ac362a8e 100644 --- a/src/hooks/claude-code-hooks/pre-tool-use.ts +++ b/src/hooks/claude-code-hooks/pre-tool-use.ts @@ -117,7 +117,7 @@ export async function executePreToolUseHooks( if (result.stdout) { try { - const output = JSON.parse(result.stdout) as PreToolUseOutput + const output = JSON.parse(result.stdout || "{}") as PreToolUseOutput // Handle deprecated decision/reason fields (Claude Code backward compat) let decision: PermissionDecision | undefined diff --git a/src/hooks/claude-code-hooks/stop.ts b/src/hooks/claude-code-hooks/stop.ts index f5371f64..d1e1e8d1 100644 --- a/src/hooks/claude-code-hooks/stop.ts +++ b/src/hooks/claude-code-hooks/stop.ts @@ -93,7 +93,7 @@ export async function executeStopHooks( if (result.stdout) { try { - const output = JSON.parse(result.stdout) as StopOutput + const output = JSON.parse(result.stdout || "{}") as StopOutput if (output.stop_hook_active !== undefined) { stopHookActiveState.set(ctx.sessionId, output.stop_hook_active) }