Class: ClaudeHooks::Output::ElicitationResult
- Inherits:
-
Base
- Object
- Base
- ClaudeHooks::Output::ElicitationResult
show all
- Defined in:
- lib/claude_hooks/output/elicitation_result.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, #stop_reason, #suppress_output?, #system_message, #terminal_sequence, #to_json
Class Method Details
.merge(*outputs) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/claude_hooks/output/elicitation_result.rb', line 36
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
last_action = nil
last_content = nil
compacted_outputs.each do |output|
output_data = output.respond_to?(:data) ? output.data : output
a = output_data.dig('hookSpecificOutput', 'action')
next unless a
last_action = a
last_content = output_data.dig('hookSpecificOutput', 'content')
end
if last_action
merged_data['hookSpecificOutput'] = { 'hookEventName' => 'ElicitationResult', 'action' => last_action }
merged_data['hookSpecificOutput']['content'] = last_content if last_content
end
new(merged_data)
end
|
Instance Method Details
#accepted? ⇒ Boolean
16
17
18
|
# File 'lib/claude_hooks/output/elicitation_result.rb', line 16
def accepted?
action == 'accept'
end
|
#action ⇒ Object
8
9
10
|
# File 'lib/claude_hooks/output/elicitation_result.rb', line 8
def action
hook_specific_output['action']
end
|
#cancelled? ⇒ Boolean
24
25
26
|
# File 'lib/claude_hooks/output/elicitation_result.rb', line 24
def cancelled?
action == 'cancel'
end
|
#content ⇒ Object
12
13
14
|
# File 'lib/claude_hooks/output/elicitation_result.rb', line 12
def content
hook_specific_output['content'] || {}
end
|
#declined? ⇒ Boolean
20
21
22
|
# File 'lib/claude_hooks/output/elicitation_result.rb', line 20
def declined?
action == 'decline'
end
|
#exit_code ⇒ Object
28
29
30
|
# File 'lib/claude_hooks/output/elicitation_result.rb', line 28
def exit_code
0
end
|
#output_stream ⇒ Object
32
33
34
|
# File 'lib/claude_hooks/output/elicitation_result.rb', line 32
def output_stream
:stdout
end
|