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

Function executePreToolHooks

src/utils/hooks.ts:3394–3436  ·  view source on GitHub ↗
(
  toolName: string,
  toolUseID: string,
  toolInput: ToolInput,
  toolUseContext: ToolUseContext,
  permissionMode?: string,
  signal?: AbortSignal,
  timeoutMs: number = TOOL_HOOK_EXECUTION_TIMEOUT_MS,
  requestPrompt?: (
    sourceName: string,
    toolInputSummary?: string | null,
  ) => (request: PromptRequest) => Promise<PromptResponse>,
  toolInputSummary?: string | null,
)

Source from the content-addressed store, hash-verified

3392 * @returns Async generator that yields progress messages and returns blocking errors
3393 */
3394export async function* executePreToolHooks<ToolInput>(
3395 toolName: string,
3396 toolUseID: string,
3397 toolInput: ToolInput,
3398 toolUseContext: ToolUseContext,
3399 permissionMode?: string,
3400 signal?: AbortSignal,
3401 timeoutMs: number = TOOL_HOOK_EXECUTION_TIMEOUT_MS,
3402 requestPrompt?: (
3403 sourceName: string,
3404 toolInputSummary?: string | null,
3405 ) => (request: PromptRequest) => Promise<PromptResponse>,
3406 toolInputSummary?: string | null,
3407): AsyncGenerator<AggregatedHookResult> {
3408 const appState = toolUseContext.getAppState()
3409 const sessionId = toolUseContext.agentId ?? getSessionId()
3410 if (!hasHookForEvent('PreToolUse', appState, sessionId)) {
3411 return
3412 }
3413
3414 logForDebugging(`executePreToolHooks called for tool: ${toolName}`, {
3415 level: 'verbose',
3416 })
3417
3418 const hookInput: PreToolUseHookInput = {
3419 ...createBaseHookInput(permissionMode, undefined, toolUseContext),
3420 hook_event_name: 'PreToolUse',
3421 tool_name: toolName,
3422 tool_input: toolInput,
3423 tool_use_id: toolUseID,
3424 }
3425
3426 yield* executeHooks({
3427 hookInput,
3428 toolUseID,
3429 matchQuery: toolName,
3430 signal,
3431 timeoutMs,
3432 toolUseContext,
3433 requestPrompt,
3434 toolInputSummary,
3435 })
3436}
3437
3438/**
3439 * Execute post-tool hooks if configured

Callers 1

runPreToolUseHooksFunction · 0.85

Calls 5

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

Tested by

no test coverage detected