fix: guard JSON.parse(result.stdout) with || "{}" fallback in hook handlers (#1191)
Co-authored-by: wangxiaoya.2000 <wangxiaoya.2000@bytedance.com>
This commit is contained in:
parent
5558ddf468
commit
d11c4a1f81
@ -123,7 +123,7 @@ export async function executePostToolUseHooks(
|
|||||||
|
|
||||||
if (result.exitCode === 0 && result.stdout) {
|
if (result.exitCode === 0 && result.stdout) {
|
||||||
try {
|
try {
|
||||||
const output = JSON.parse(result.stdout) as PostToolUseOutput
|
const output = JSON.parse(result.stdout || "{}") as PostToolUseOutput
|
||||||
if (output.decision === "block") {
|
if (output.decision === "block") {
|
||||||
return {
|
return {
|
||||||
block: true,
|
block: true,
|
||||||
|
|||||||
@ -73,7 +73,7 @@ export async function executePreCompactHooks(
|
|||||||
|
|
||||||
if (result.stdout) {
|
if (result.stdout) {
|
||||||
try {
|
try {
|
||||||
const output = JSON.parse(result.stdout) as PreCompactOutput
|
const output = JSON.parse(result.stdout || "{}") as PreCompactOutput
|
||||||
|
|
||||||
if (output.hookSpecificOutput?.additionalContext) {
|
if (output.hookSpecificOutput?.additionalContext) {
|
||||||
collectedContext.push(...output.hookSpecificOutput.additionalContext)
|
collectedContext.push(...output.hookSpecificOutput.additionalContext)
|
||||||
|
|||||||
@ -117,7 +117,7 @@ export async function executePreToolUseHooks(
|
|||||||
|
|
||||||
if (result.stdout) {
|
if (result.stdout) {
|
||||||
try {
|
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)
|
// Handle deprecated decision/reason fields (Claude Code backward compat)
|
||||||
let decision: PermissionDecision | undefined
|
let decision: PermissionDecision | undefined
|
||||||
|
|||||||
@ -93,7 +93,7 @@ export async function executeStopHooks(
|
|||||||
|
|
||||||
if (result.stdout) {
|
if (result.stdout) {
|
||||||
try {
|
try {
|
||||||
const output = JSON.parse(result.stdout) as StopOutput
|
const output = JSON.parse(result.stdout || "{}") as StopOutput
|
||||||
if (output.stop_hook_active !== undefined) {
|
if (output.stop_hook_active !== undefined) {
|
||||||
stopHookActiveState.set(ctx.sessionId, output.stop_hook_active)
|
stopHookActiveState.set(ctx.sessionId, output.stop_hook_active)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user