claude_hooks 0.2.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +137 -0
- data/README.md +287 -356
- data/claude_hooks.gemspec +2 -2
- data/docs/1.0.0_MIGRATION_GUIDE.md +228 -0
- data/docs/API/COMMON.md +83 -0
- data/docs/API/NOTIFICATION.md +32 -0
- data/docs/API/POST_TOOL_USE.md +45 -0
- data/docs/API/PRE_COMPACT.md +39 -0
- data/docs/API/PRE_TOOL_USE.md +110 -0
- data/docs/API/SESSION_END.md +100 -0
- data/docs/API/SESSION_START.md +40 -0
- data/docs/API/STOP.md +47 -0
- data/docs/API/SUBAGENT_STOP.md +47 -0
- data/docs/API/USER_PROMPT_SUBMIT.md +47 -0
- data/{WHY.md → docs/WHY.md} +15 -8
- data/docs/external/claude-hooks-reference.md +34 -0
- data/example_dotclaude/hooks/entrypoints/pre_tool_use.rb +25 -0
- data/example_dotclaude/hooks/entrypoints/session_end.rb +35 -0
- data/example_dotclaude/hooks/entrypoints/user_prompt_submit.rb +17 -12
- data/example_dotclaude/hooks/handlers/pre_tool_use/github_guard.rb +253 -0
- data/example_dotclaude/hooks/handlers/session_end/cleanup_handler.rb +55 -0
- data/example_dotclaude/hooks/handlers/session_end/log_session_stats.rb +64 -0
- data/example_dotclaude/hooks/handlers/user_prompt_submit/append_rules.rb +3 -2
- data/example_dotclaude/hooks/handlers/user_prompt_submit/log_user_prompt.rb +2 -2
- data/example_dotclaude/plugins/README.md +175 -0
- data/example_dotclaude/settings.json +22 -0
- data/lib/claude_hooks/base.rb +16 -24
- data/lib/claude_hooks/cli.rb +75 -1
- data/lib/claude_hooks/logger.rb +0 -1
- data/lib/claude_hooks/output/base.rb +152 -0
- data/lib/claude_hooks/output/notification.rb +22 -0
- data/lib/claude_hooks/output/post_tool_use.rb +76 -0
- data/lib/claude_hooks/output/pre_compact.rb +20 -0
- data/lib/claude_hooks/output/pre_tool_use.rb +94 -0
- data/lib/claude_hooks/output/session_end.rb +24 -0
- data/lib/claude_hooks/output/session_start.rb +49 -0
- data/lib/claude_hooks/output/stop.rb +83 -0
- data/lib/claude_hooks/output/subagent_stop.rb +14 -0
- data/lib/claude_hooks/output/user_prompt_submit.rb +78 -0
- data/lib/claude_hooks/post_tool_use.rb +6 -12
- data/lib/claude_hooks/pre_tool_use.rb +0 -37
- data/lib/claude_hooks/session_end.rb +43 -0
- data/lib/claude_hooks/session_start.rb +0 -23
- data/lib/claude_hooks/stop.rb +8 -25
- data/lib/claude_hooks/user_prompt_submit.rb +0 -26
- data/lib/claude_hooks/version.rb +1 -1
- data/lib/claude_hooks.rb +15 -0
- metadata +37 -8
data/lib/claude_hooks.rb
CHANGED
|
@@ -5,6 +5,8 @@ require_relative "claude_hooks/configuration"
|
|
|
5
5
|
require_relative "claude_hooks/logger"
|
|
6
6
|
require_relative "claude_hooks/base"
|
|
7
7
|
require_relative "claude_hooks/cli"
|
|
8
|
+
|
|
9
|
+
# Hook classes
|
|
8
10
|
require_relative "claude_hooks/user_prompt_submit"
|
|
9
11
|
require_relative "claude_hooks/pre_tool_use"
|
|
10
12
|
require_relative "claude_hooks/post_tool_use"
|
|
@@ -13,6 +15,19 @@ require_relative "claude_hooks/stop"
|
|
|
13
15
|
require_relative "claude_hooks/subagent_stop"
|
|
14
16
|
require_relative "claude_hooks/pre_compact"
|
|
15
17
|
require_relative "claude_hooks/session_start"
|
|
18
|
+
require_relative "claude_hooks/session_end"
|
|
19
|
+
|
|
20
|
+
# Output classes
|
|
21
|
+
require_relative "claude_hooks/output/base"
|
|
22
|
+
require_relative "claude_hooks/output/user_prompt_submit"
|
|
23
|
+
require_relative "claude_hooks/output/pre_tool_use"
|
|
24
|
+
require_relative "claude_hooks/output/post_tool_use"
|
|
25
|
+
require_relative "claude_hooks/output/notification"
|
|
26
|
+
require_relative "claude_hooks/output/stop"
|
|
27
|
+
require_relative "claude_hooks/output/subagent_stop"
|
|
28
|
+
require_relative "claude_hooks/output/pre_compact"
|
|
29
|
+
require_relative "claude_hooks/output/session_start"
|
|
30
|
+
require_relative "claude_hooks/output/session_end"
|
|
16
31
|
|
|
17
32
|
module ClaudeHooks
|
|
18
33
|
class Error < StandardError; end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: claude_hooks
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2
|
|
4
|
+
version: 1.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gabriel Dehan
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-01-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: json
|
|
@@ -39,19 +39,19 @@ dependencies:
|
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '13.0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: minitest
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
47
|
+
version: '5.0'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
54
|
+
version: '5.0'
|
|
55
55
|
description: A Ruby DSL framework for creating Claude Code hooks with composable hook
|
|
56
56
|
scripts that enable teams to easily implement logging, security checks, and workflow
|
|
57
57
|
automation.
|
|
@@ -63,12 +63,30 @@ extra_rdoc_files: []
|
|
|
63
63
|
files:
|
|
64
64
|
- CHANGELOG.md
|
|
65
65
|
- README.md
|
|
66
|
-
- WHY.md
|
|
67
66
|
- claude_hooks.gemspec
|
|
67
|
+
- docs/1.0.0_MIGRATION_GUIDE.md
|
|
68
|
+
- docs/API/COMMON.md
|
|
69
|
+
- docs/API/NOTIFICATION.md
|
|
70
|
+
- docs/API/POST_TOOL_USE.md
|
|
71
|
+
- docs/API/PRE_COMPACT.md
|
|
72
|
+
- docs/API/PRE_TOOL_USE.md
|
|
73
|
+
- docs/API/SESSION_END.md
|
|
74
|
+
- docs/API/SESSION_START.md
|
|
75
|
+
- docs/API/STOP.md
|
|
76
|
+
- docs/API/SUBAGENT_STOP.md
|
|
77
|
+
- docs/API/USER_PROMPT_SUBMIT.md
|
|
78
|
+
- docs/WHY.md
|
|
79
|
+
- docs/external/claude-hooks-reference.md
|
|
68
80
|
- example_dotclaude/commands/.gitkeep
|
|
81
|
+
- example_dotclaude/hooks/entrypoints/pre_tool_use.rb
|
|
82
|
+
- example_dotclaude/hooks/entrypoints/session_end.rb
|
|
69
83
|
- example_dotclaude/hooks/entrypoints/user_prompt_submit.rb
|
|
84
|
+
- example_dotclaude/hooks/handlers/pre_tool_use/github_guard.rb
|
|
85
|
+
- example_dotclaude/hooks/handlers/session_end/cleanup_handler.rb
|
|
86
|
+
- example_dotclaude/hooks/handlers/session_end/log_session_stats.rb
|
|
70
87
|
- example_dotclaude/hooks/handlers/user_prompt_submit/append_rules.rb
|
|
71
88
|
- example_dotclaude/hooks/handlers/user_prompt_submit/log_user_prompt.rb
|
|
89
|
+
- example_dotclaude/plugins/README.md
|
|
72
90
|
- example_dotclaude/settings.json
|
|
73
91
|
- lib/claude_hooks.rb
|
|
74
92
|
- lib/claude_hooks/base.rb
|
|
@@ -76,9 +94,20 @@ files:
|
|
|
76
94
|
- lib/claude_hooks/configuration.rb
|
|
77
95
|
- lib/claude_hooks/logger.rb
|
|
78
96
|
- lib/claude_hooks/notification.rb
|
|
97
|
+
- lib/claude_hooks/output/base.rb
|
|
98
|
+
- lib/claude_hooks/output/notification.rb
|
|
99
|
+
- lib/claude_hooks/output/post_tool_use.rb
|
|
100
|
+
- lib/claude_hooks/output/pre_compact.rb
|
|
101
|
+
- lib/claude_hooks/output/pre_tool_use.rb
|
|
102
|
+
- lib/claude_hooks/output/session_end.rb
|
|
103
|
+
- lib/claude_hooks/output/session_start.rb
|
|
104
|
+
- lib/claude_hooks/output/stop.rb
|
|
105
|
+
- lib/claude_hooks/output/subagent_stop.rb
|
|
106
|
+
- lib/claude_hooks/output/user_prompt_submit.rb
|
|
79
107
|
- lib/claude_hooks/post_tool_use.rb
|
|
80
108
|
- lib/claude_hooks/pre_compact.rb
|
|
81
109
|
- lib/claude_hooks/pre_tool_use.rb
|
|
110
|
+
- lib/claude_hooks/session_end.rb
|
|
82
111
|
- lib/claude_hooks/session_start.rb
|
|
83
112
|
- lib/claude_hooks/stop.rb
|
|
84
113
|
- lib/claude_hooks/subagent_stop.rb
|
|
@@ -100,14 +129,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
100
129
|
requirements:
|
|
101
130
|
- - ">="
|
|
102
131
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: 2.
|
|
132
|
+
version: 3.2.0
|
|
104
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
134
|
requirements:
|
|
106
135
|
- - ">="
|
|
107
136
|
- !ruby/object:Gem::Version
|
|
108
137
|
version: '0'
|
|
109
138
|
requirements: []
|
|
110
|
-
rubygems_version: 3.
|
|
139
|
+
rubygems_version: 3.4.19
|
|
111
140
|
signing_key:
|
|
112
141
|
specification_version: 4
|
|
113
142
|
summary: Ruby DSL for creating Claude Code hooks
|