MCPcopy Create free account
hub / github.com/WJX20/claude-code / executeUserPromptSubmitHooks

Function executeUserPromptSubmitHooks

src/utils/hooks.ts:3921–3950  ·  view source on GitHub ↗
(
  prompt: string,
  permissionMode: string,
  toolUseContext: ToolUseContext,
  requestPrompt?: (
    sourceName: string,
    toolInputSummary?: string | null,
  ) => (request: PromptRequest) => Promise<PromptResponse>,
)

Source from the content-addressed store, hash-verified

3919 * @returns Async generator that yields progress messages and hook results
3920 */
3921export async function* executeUserPromptSubmitHooks(
3922 prompt: string,
3923 permissionMode: string,
3924 toolUseContext: ToolUseContext,
3925 requestPrompt?: (
3926 sourceName: string,
3927 toolInputSummary?: string | null,
3928 ) => (request: PromptRequest) => Promise<PromptResponse>,
3929): AsyncGenerator<AggregatedHookResult> {
3930 const appState = toolUseContext.getAppState()
3931 const sessionId = toolUseContext.agentId ?? getSessionId()
3932 if (!hasHookForEvent('UserPromptSubmit', appState, sessionId)) {
3933 return
3934 }
3935
3936 const hookInput: UserPromptSubmitHookInput = {
3937 ...createBaseHookInput(permissionMode),
3938 hook_event_name: 'UserPromptSubmit',
3939 prompt,
3940 }
3941
3942 yield* executeHooks({
3943 hookInput,
3944 toolUseID: randomUUID(),
3945 signal: toolUseContext.abortController.signal,
3946 timeoutMs: TOOL_HOOK_EXECUTION_TIMEOUT_MS,
3947 toolUseContext,
3948 requestPrompt,
3949 })
3950}
3951
3952/**
3953 * Execute session start hooks if configured

Callers 1

processUserInputFunction · 0.85

Calls 4

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

Tested by

no test coverage detected