hiiro 0.1.299 → 0.1.300

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6adcb250dc950c9cf8ff1c6c0ad043cb40f1088a81369fe44f5ebef5dfb0098
4
- data.tar.gz: ea797738c121e4b8ba16a184a9f9614d624a4724412068fe12f05542ff0d6a91
3
+ metadata.gz: dd49172471425b05abf798041ef7bc7e2a75bef28c48037b224474759c08fc35
4
+ data.tar.gz: 4f4a11868d26261e0495ac6b80ee585d06c51da9e27826acfbcb3f3b9f6372e7
5
5
  SHA512:
6
- metadata.gz: 72642cfd9f9159ef3f423793990b34eabbc9b904f22276b4f282416ff639fbfeda6d600ffca7f2c0948436ed8817f09a41b4ab4a2ca9c516393b4883c079cfce
7
- data.tar.gz: 60e5258472d103050ea9d9d145c6cb228c07f2e520cd222a47bcb614384c1744fbe762c1345f1ace55ceb91b9746237b7b6a011e6affe6da3ddcccab7bf589a1
6
+ metadata.gz: ab8fc4ef33a5f23ae68401a22dbad6282341efef8e550d5766f28cd5f6596ed4e468b1fc58cd6f88651525fd55cdc3086503802aefb5c6269e09cd3f68e52338
7
+ data.tar.gz: 1da0629a7fefa3353ab95ebb6200df244fab23329484e03e44950e85088a5314f2aa8684e8d34857b6a3a840b66f88d192bc2dac69a7bf8ed7f3a158a3e907cb
data/CHANGELOG.md CHANGED
@@ -1,4 +1,13 @@
1
1
  ```markdown
2
+ ## v0.1.300 (2026-03-29)
3
+
4
+ ### Added
5
+ - `bin/h-claude`: fulltext search option for agents, commands, and skills via new search flag
6
+
7
+ ### Changed
8
+ - `bin/h-claude`: agents/commands/skills directory traversal refactored for DRY principle
9
+ - `bin/h-claude`: improved output formatting to display Claude tools organized by type
10
+
2
11
  ## v0.1.299 (2026-03-27)
3
12
 
4
13
  ### Added
data/bin/h-claude CHANGED
@@ -15,6 +15,50 @@ opts = Hiiro::Options.setup {
15
15
  option(:size, short: :s, default: nil)
16
16
  }
17
17
 
18
+ tool_opts = Hiiro::Options.setup {
19
+ flag(:full, short: :f, default: false, desc: 'fulltext search - full grep file or dir')
20
+ }
21
+
22
+ def glob_path(glob, bname=nil, filters: nil, fulltext: false)
23
+ bname ||= ''
24
+ filters ||= []
25
+ filters = ['.*'] if filters.empty?
26
+
27
+ claude_paths.map { |path|
28
+ [
29
+ path.split&.first,
30
+ path.glob(glob),
31
+ ]
32
+ }.each do |path, fs|
33
+ next if fs.empty?
34
+
35
+ $stderr.puts
36
+ $stderr.puts "PATH: #{path}"
37
+
38
+ re_s = filters.join(?|)
39
+ re = Regexp.new(re_s)
40
+ fs.each do |f|
41
+ more_args = f.file? ? [] : ['-r']
42
+ cmd = ['egrep', *more_args, '-m1', re_s, f.to_s]
43
+ kwcmd = { out: File.open('/dev/null', 'w') }
44
+ base_f = f.basename(bname)
45
+
46
+ matches =
47
+ if fulltext
48
+ system(*cmd, **kwcmd)
49
+ else
50
+ base_f.to_s.match?(re)
51
+ end
52
+
53
+ if matches
54
+ puts base_f
55
+ else
56
+ $stderr.puts "SKIPPING #{base_f}"
57
+ end
58
+ end
59
+ end
60
+ end
61
+
18
62
  def permission_flag(opts)
19
63
  opts.danger ? '--dangerously-skip-permissions' : '--allow-dangerously-skip-permissions'
20
64
  end
@@ -103,16 +147,19 @@ add_subcmd(:env) { |*args|
103
147
  IO.popen(['claude', '-p'], 'w') { |io| io.write(prompt) }
104
148
  }
105
149
 
106
- add_subcmd(:agents) {
107
- puts claude_paths.flat_map { |p| p.glob('agents/*.md').map { |f| f.basename('.md') } }
150
+ add_subcmd(:agents) { |*args|
151
+ opts = tool_opts.parse(args)
152
+ glob_path('agents/*.md', '.md', filters: opts.args, fulltext: opts.full)
108
153
  }
109
154
 
110
- add_subcmd(:commands) {
111
- puts claude_paths.flat_map { |p| p.glob('commands/*.md').map { |f| f.basename('.md') } }
155
+ add_subcmd(:commands) { |*args|
156
+ opts = tool_opts.parse(args)
157
+ glob_path('commands/*.md', '.md', filters: opts.args, fulltext: opts.full)
112
158
  }
113
159
 
114
- add_subcmd(:skills) {
115
- puts claude_paths.flat_map { |p| p.glob('skills/*/').map { |d| d.basename } }
160
+ add_subcmd(:skills) { |*args|
161
+ opts = tool_opts.parse(args)
162
+ glob_path('skills/*/', filters: opts.args, fulltext: opts.full)
116
163
  }
117
164
 
118
165
  add_subcmd(:new) { |*args|
data/lib/hiiro/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Hiiro
2
- VERSION = "0.1.299"
2
+ VERSION = "0.1.300"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiiro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.299
4
+ version: 0.1.300
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Toyota