Class: ClaudeHooks::SessionStart

Inherits:
Base
  • Object
show all
Defined in:
lib/claude_hooks/session_start.rb

Constant Summary

Constants inherited from Base

Base::COMMON_INPUT_FIELDS

Instance Attribute Summary

Attributes inherited from Base

#config, #input_data, #logger, #output, #output_data

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#agent_id, #agent_type, #allow_continue!, #base_dir, #call, #clear_specifics!, #clear_system_message!, #cwd, #effort, #home_claude_dir, #home_path_for, #hook_event_name, #hook_type, #initialize, #log, #output_and_exit, #path_for, #permission_mode, #prevent_continue!, #project_claude_dir, #project_path_for, #prompt_id, #read_transcript, #session_id, #show_output!, #stringify_output, #suppress_output!, #system_message!, #terminal_sequence, #terminal_sequence!, #transcript_path

Constructor Details

This class inherits a constructor from ClaudeHooks::Base

Class Method Details

.hook_typeObject



7
8
9
# File 'lib/claude_hooks/session_start.rb', line 7

def self.hook_type
  'SessionStart'
end

.input_fieldsObject



11
12
13
# File 'lib/claude_hooks/session_start.rb', line 11

def self.input_fields
  %w[source]
end

Instance Method Details

#add_additional_context!(context) ⇒ Object Also known as: add_context!

OUTPUT DATA HELPERS ===



31
32
33
34
35
36
# File 'lib/claude_hooks/session_start.rb', line 31

def add_additional_context!(context)
  @output_data['hookSpecificOutput'] = {
    'hookEventName' => hook_event_name,
    'additionalContext' => context
  }
end

#empty_additional_context!Object



39
40
41
# File 'lib/claude_hooks/session_start.rb', line 39

def empty_additional_context!
  @output_data['hookSpecificOutput'] = nil
end

#initial_user_message!(message) ⇒ Object



48
49
50
51
# File 'lib/claude_hooks/session_start.rb', line 48

def initial_user_message!(message)
  @output_data['hookSpecificOutput'] ||= { 'hookEventName' => hook_event_name }
  @output_data['hookSpecificOutput']['initialUserMessage'] = message
end

#modelObject



21
22
23
# File 'lib/claude_hooks/session_start.rb', line 21

def model
  @input_data['model']
end

#reload_skills!(value = true) ⇒ Object



58
59
60
61
# File 'lib/claude_hooks/session_start.rb', line 58

def reload_skills!(value = true)
  @output_data['hookSpecificOutput'] ||= { 'hookEventName' => hook_event_name }
  @output_data['hookSpecificOutput']['reloadSkills'] = value
end

#session_titleObject



25
26
27
# File 'lib/claude_hooks/session_start.rb', line 25

def session_title
  @input_data['session_title'] || @input_data['sessionTitle']
end

#session_title!(title) ⇒ Object



43
44
45
46
# File 'lib/claude_hooks/session_start.rb', line 43

def session_title!(title)
  @output_data['hookSpecificOutput'] ||= { 'hookEventName' => hook_event_name }
  @output_data['hookSpecificOutput']['sessionTitle'] = title
end

#sourceObject

INPUT DATA ACCESS ===



17
18
19
# File 'lib/claude_hooks/session_start.rb', line 17

def source
  @input_data['source']
end

#watch_paths!(paths) ⇒ Object



53
54
55
56
# File 'lib/claude_hooks/session_start.rb', line 53

def watch_paths!(paths)
  @output_data['hookSpecificOutput'] ||= { 'hookEventName' => hook_event_name }
  @output_data['hookSpecificOutput']['watchPaths'] = Array(paths)
end