Skip to main content

Overview

Methods

getHooks()

Get all hooks (instances, unordered).
Example:

getFlowHooks()

Get hooks for a given flow, sorted by priority (descending).
Example:

getFlowStageHooks()

Get hooks for a specific flow and stage.
Example:

getFlowHooksForOwner()

Get flow hooks filtered by owner.
Example:

getClsHooks()

Get hooks defined on a given class.
Example:

registerHooks()

Register hooks dynamically.
Example:

Hook Structure

Available Flows

tools:call-tool

Tool execution flow

resources:read-resource

Resource read flow

resources:list-resources

Resource listing flow

prompts:get-prompt

Prompt retrieval flow

Flow Stages

Most flows have these stages:

Priority

Hooks are sorted by priority (descending):

Embedded vs External Hooks

Embedded Hooks

Defined on tool/resource/prompt classes using @Hooks decorator:
Embedded hooks:
  • Are scoped to their class
  • Use getClsHooks() for lookup
  • Have embedded: true

External Hooks

Registered via plugins or directly:
External hooks:
  • Can target any flow
  • Use getFlowHooks() for lookup
  • Have embedded: false

Hook Context

Hooks receive a context object with:

Index Structure

Unlike other registries, HookRegistry uses specialized indexes: