Module: RubynCode::Hooks::EventMap
- Defined in:
- lib/rubyn_code/hooks/event_map.rb
Overview
Maps between internal hook event names (snake_case symbols used by the in-process Hooks::Runner) and the Claude Code hook event names (CamelCase strings used by external hooks configured in settings.json).
Internal hooks fire at these 7 sites:
:pre_tool_use — agent/tool_processor.rb#execute_tool
:post_tool_use — agent/tool_processor.rb#execute_tool
:pre_llm_call — agent/llm_caller.rb
:post_llm_call — agent/llm_caller.rb
:stop — agent/loop.rb#stop_blocked?
:session_start — ide/handlers/prompt_handler.rb (IDE)
:user_prompt_submit — ide/handlers/prompt_handler.rb (IDE)
External hooks (Claude Code parity) consume these 9 event names:
PreToolUse, PostToolUse, UserPromptSubmit, SessionStart,
SessionEnd, Stop, SubagentStop, PreCompact, Notification
Constant Summary collapse
- TO_EXTERNAL =
Internal symbol => external string
{ pre_tool_use: 'PreToolUse', post_tool_use: 'PostToolUse', pre_llm_call: 'PreCompact', post_llm_call: 'Notification', on_session_end: 'SessionEnd', session_start: 'SessionStart', user_prompt_submit: 'UserPromptSubmit', stop: 'Stop', on_subagent_stop: 'SubagentStop' }.freeze
- TO_INTERNAL =
External string => internal symbol
TO_EXTERNAL.invert.freeze
- EXTERNAL_EVENTS =
Every external event name the dispatcher knows about.
TO_EXTERNAL.values.freeze
Class Method Summary collapse
Class Method Details
.external(internal) ⇒ String?
45 46 47 |
# File 'lib/rubyn_code/hooks/event_map.rb', line 45 def external(internal) TO_EXTERNAL[internal.to_sym] end |
.internal(external) ⇒ Symbol?
51 52 53 |
# File 'lib/rubyn_code/hooks/event_map.rb', line 51 def internal(external) TO_INTERNAL[external.to_s] end |