MCPcopy Index your code
hub / github.com/codeaashu/claude-code / executePostToolUseFailureHooks

Function executePostToolUseFailureHooks

src/utils/hooks.ts:3492–3527  ·  view source on GitHub ↗
(
  toolName: string,
  toolUseID: string,
  toolInput: ToolInput,
  error: string,
  toolUseContext: ToolUseContext,
  isInterrupt?: boolean,
  permissionMode?: string,
  signal?: AbortSignal,
  timeoutMs: number = TOOL_HOOK_EXECUTION_TIMEOUT_MS,
)

Source from the content-addressed store, hash-verified

3490 * @returns Async generator that yields progress messages and blocking errors
3491 */
3492export async function* executePostToolUseFailureHooks<ToolInput>(
3493 toolName: string,
3494 toolUseID: string,
3495 toolInput: ToolInput,
3496 error: string,
3497 toolUseContext: ToolUseContext,
3498 isInterrupt?: boolean,
3499 permissionMode?: string,
3500 signal?: AbortSignal,
3501 timeoutMs: number = TOOL_HOOK_EXECUTION_TIMEOUT_MS,
3502): AsyncGenerator<AggregatedHookResult> {
3503 const appState = toolUseContext.getAppState()
3504 const sessionId = toolUseContext.agentId ?? getSessionId()
3505 if (!hasHookForEvent('PostToolUseFailure', appState, sessionId)) {
3506 return
3507 }
3508
3509 const hookInput: PostToolUseFailureHookInput = {
3510 ...createBaseHookInput(permissionMode, undefined, toolUseContext),
3511 hook_event_name: 'PostToolUseFailure',
3512 tool_name: toolName,
3513 tool_input: toolInput,
3514 tool_use_id: toolUseID,
3515 error,
3516 is_interrupt: isInterrupt,
3517 }
3518
3519 yield* executeHooks({
3520 hookInput,
3521 toolUseID,
3522 matchQuery: toolName,
3523 signal,
3524 timeoutMs,
3525 toolUseContext,
3526 })
3527}
3528
3529export async function* executePermissionDeniedHooks<ToolInput>(
3530 toolName: string,

Callers 1

Calls 4

getSessionIdFunction · 0.85
hasHookForEventFunction · 0.85
createBaseHookInputFunction · 0.85
executeHooksFunction · 0.85

Tested by

no test coverage detected