Class: ClaudeHooks::PermissionRequest
- Inherits:
-
Base
- Object
- Base
- ClaudeHooks::PermissionRequest
show all
- Defined in:
- lib/claude_hooks/permission_request.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
Class Method Details
.hook_type ⇒ Object
7
8
9
|
# File 'lib/claude_hooks/permission_request.rb', line 7
def self.hook_type
'PermissionRequest'
end
|
11
12
13
|
# File 'lib/claude_hooks/permission_request.rb', line 11
def self.input_fields
%w[tool_name tool_input tool_use_id]
end
|
Instance Method Details
#allow_permission!(reason = '') ⇒ Object
35
36
37
38
39
40
41
|
# File 'lib/claude_hooks/permission_request.rb', line 35
def allow_permission!(reason = '')
@output_data['hookSpecificOutput'] = {
'hookEventName' => hook_event_name,
'decision' => { 'behavior' => 'allow' }
}
@output_data['hookSpecificOutput']['decision']['message'] = reason unless reason.empty?
end
|
#deny_permission!(reason = '', interrupt: nil) ⇒ Object
43
44
45
46
47
48
49
50
51
|
# File 'lib/claude_hooks/permission_request.rb', line 43
def deny_permission!(reason = '', interrupt: nil)
decision = { 'behavior' => 'deny' }
decision['message'] = reason unless reason.empty?
decision['interrupt'] = interrupt unless interrupt.nil?
@output_data['hookSpecificOutput'] = {
'hookEventName' => hook_event_name,
'decision' => decision
}
end
|
#permission_suggestions ⇒ Object
29
30
31
|
# File 'lib/claude_hooks/permission_request.rb', line 29
def permission_suggestions
@input_data['permissionSuggestions'] || @input_data['permission_suggestions'] || []
end
|
21
22
23
|
# File 'lib/claude_hooks/permission_request.rb', line 21
def tool_input
@input_data['tool_input']
end
|
17
18
19
|
# File 'lib/claude_hooks/permission_request.rb', line 17
def tool_name
@input_data['tool_name']
end
|
25
26
27
|
# File 'lib/claude_hooks/permission_request.rb', line 25
def tool_use_id
@input_data['tool_use_id'] || @input_data['toolUseId']
end
|
53
54
55
56
57
58
59
60
61
|
# File 'lib/claude_hooks/permission_request.rb', line 53
def update_input_and_allow!(updated_input, reason = '', updated_permissions: nil)
decision = { 'behavior' => 'allow', 'updatedInput' => updated_input }
decision['message'] = reason unless reason.empty?
decision['updatedPermissions'] = updated_permissions unless updated_permissions.nil?
@output_data['hookSpecificOutput'] = {
'hookEventName' => hook_event_name,
'decision' => decision
}
end
|