Class: ClaudeHooks::Output::UserPromptExpansion

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

Instance Attribute Summary

Attributes inherited from Base

#data

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#continue?, for_hook_type, #hook_specific_output, #initialize, #output_and_exit, #output_stream, #stop_reason, #suppress_output?, #system_message, #terminal_sequence, #to_json

Constructor Details

This class inherits a constructor from ClaudeHooks::Output::Base

Class Method Details

.merge(*outputs) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/claude_hooks/output/user_prompt_expansion.rb', line 28

def self.merge(*outputs)
  compacted_outputs = outputs.compact
  return compacted_outputs.first if compacted_outputs.length == 1
  return super(*outputs) if compacted_outputs.empty?

  merged = super(*outputs)
  merged_data = merged.data
  reasons = []

  compacted_outputs.each do |output|
    output_data = output.respond_to?(:data) ? output.data : output
    if output_data['decision'] == 'block'
      merged_data['decision'] = 'block'
      r = output_data['reason']
      reasons << r if r && !r.empty?
    end
  end

  merged_data['reason'] = reasons.join('; ') if reasons.any?
  new(merged_data)
end

Instance Method Details

#additional_contextObject



20
21
22
# File 'lib/claude_hooks/output/user_prompt_expansion.rb', line 20

def additional_context
  hook_specific_output['additionalContext'] || ''
end

#blocked?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/claude_hooks/output/user_prompt_expansion.rb', line 16

def blocked?
  decision == 'block'
end

#decisionObject



8
9
10
# File 'lib/claude_hooks/output/user_prompt_expansion.rb', line 8

def decision
  @data['decision']
end

#exit_codeObject



24
25
26
# File 'lib/claude_hooks/output/user_prompt_expansion.rb', line 24

def exit_code
  default_exit_code
end

#reasonObject



12
13
14
# File 'lib/claude_hooks/output/user_prompt_expansion.rb', line 12

def reason
  @data['reason'] || ''
end