MCPcopy Create free account
hub / github.com/Noumena-Network/code / executePostToolUseFailureHooks

Function executePostToolUseFailureHooks

src/utils/hooks.ts:3496–3531  ·  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

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

Callers 1

Calls 4

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

Tested by

no test coverage detected