hiiro 0.1.351 → 0.1.352
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/AGENTS.md +1 -0
- data/CHANGELOG.md +8 -1
- data/README.md +2 -0
- data/bin/h-claude +21 -5
- data/bin/h-pane +2 -2
- data/docs/h-claude.md +4 -1
- data/lib/hiiro/version.rb +1 -1
- data/lib/hiiro.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 16ba8062d4d8f261771beb98b5baad695b43d05f6f0be4f8ebcc0f8e18a6e89b
|
|
4
|
+
data.tar.gz: b756598368c4faa85ec332df703e4f2e859f84bcdf2c68319dc1b5ce48c6d7ab
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 417c7bc005bbe71d9fc62a9cab04616c78005aad16f9604eb98f5aee6cfbe42a19bbbf789f04fb0a452c3ebea7e323155a7432d380f03f6b42cb0be3d4b66260
|
|
7
|
+
data.tar.gz: 2b0b553966be3f3cfd4d457afa62b7c8021b9633d5eaa92ded65ad808d41256de9216ab495c474fcbad27c3a479f3ff530ad69fe4c6f91457d06f4db213946b6
|
data/AGENTS.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
CLAUDE.md
|
data/CHANGELOG.md
CHANGED
|
@@ -2,9 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.1.352] - 2026-04-24
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- `h claude all|agents|commands|skills` now support `--absolute/-a` to print absolute tool paths; skill matches resolve to `SKILL.md`
|
|
9
|
+
|
|
5
10
|
### Fixed
|
|
6
11
|
- `h capture path <num>` now prints the path of the Nth most recent capture (was always printing the captures dir regardless of args)
|
|
7
12
|
- `h capture new` / `h capture file` now record to the DB even when interrupted (Ctrl-C, exception) so partial captures show up in `h capture ls`. Interrupted captures display with the existing `?` glyph and `(exit interrupted)` message.
|
|
13
|
+
- `h pane splitv/splith` subcommand mappings corrected
|
|
14
|
+
- Corrected `REPO_PATH` constant from `.bare` to `.git`
|
|
8
15
|
|
|
9
16
|
## [0.1.350] - 2026-04-18
|
|
10
17
|
|
|
@@ -316,4 +323,4 @@
|
|
|
316
323
|
- `h db cleanup` subcommand to preview and prune duplicate rows from SQLite tables
|
|
317
324
|
|
|
318
325
|
### Fixed
|
|
319
|
-
- Prevent duplicate pinned_prs during import with `insert_conflict` and per-row rescue
|
|
326
|
+
- Prevent duplicate pinned_prs during import with `insert_conflict` and per-row rescue
|
data/README.md
CHANGED
|
@@ -93,6 +93,8 @@ h ping
|
|
|
93
93
|
| `h window` | Tmux window management |
|
|
94
94
|
| `h wtree` | Git worktree management |
|
|
95
95
|
|
|
96
|
+
`h claude agents|commands|skills -a` prints the absolute file path for each matching `.claude` tool, including `SKILL.md` for skills.
|
|
97
|
+
|
|
96
98
|
## Abbreviations
|
|
97
99
|
|
|
98
100
|
Any subcommand can be abbreviated as long as the prefix uniquely matches:
|
data/bin/h-claude
CHANGED
|
@@ -17,11 +17,26 @@ opts = Hiiro::Options.setup {
|
|
|
17
17
|
|
|
18
18
|
tool_opts = Hiiro::Options.setup {
|
|
19
19
|
flag(:full, short: :f, default: false, desc: 'fulltext search - full grep file or dir')
|
|
20
|
+
flag(:absolute, short: :a, default: false, desc: 'print absolute path to matching tool file')
|
|
20
21
|
flag(:verbose, short: :v, default: false, desc: 'display claude dirs in stderr')
|
|
21
22
|
flag(:veryverbose, short: :V, default: false, desc: 'display all stderr messages')
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
def
|
|
25
|
+
def tool_file(path, skill: false)
|
|
26
|
+
return path unless skill
|
|
27
|
+
|
|
28
|
+
path / 'SKILL.md'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def display_tool_path(path, bname: nil, opts:, skill: false)
|
|
32
|
+
target = tool_file(path, skill: skill)
|
|
33
|
+
return target if opts.absolute
|
|
34
|
+
return path.basename if skill
|
|
35
|
+
|
|
36
|
+
target.basename(bname.to_s)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def glob_path(glob, bname=nil, opts:, skill: false)
|
|
25
40
|
filters = opts.args
|
|
26
41
|
fulltext = opts.full
|
|
27
42
|
bname ||= ''
|
|
@@ -46,6 +61,7 @@ def glob_path(glob, bname=nil, opts:)
|
|
|
46
61
|
cmd = ['egrep', *more_args, '-m1', re_s, f.to_s]
|
|
47
62
|
kwcmd = { out: File.open('/dev/null', 'w') }
|
|
48
63
|
base_f = f.basename(bname)
|
|
64
|
+
display_f = display_tool_path(f, bname: bname, opts: opts, skill: skill)
|
|
49
65
|
|
|
50
66
|
matches =
|
|
51
67
|
if fulltext
|
|
@@ -55,7 +71,7 @@ def glob_path(glob, bname=nil, opts:)
|
|
|
55
71
|
end
|
|
56
72
|
|
|
57
73
|
if matches
|
|
58
|
-
puts
|
|
74
|
+
puts display_f
|
|
59
75
|
else
|
|
60
76
|
$stderr.puts "SKIPPING #{base_f}" if opts.veryverbose
|
|
61
77
|
end
|
|
@@ -74,7 +90,7 @@ def collect_files(glob, bname=nil, opts:, skill: false)
|
|
|
74
90
|
claude_paths.flat_map { |path| path.glob(glob) }.filter_map do |f|
|
|
75
91
|
base_f = f.basename(bname.to_s)
|
|
76
92
|
next unless base_f.to_s.match?(re)
|
|
77
|
-
target =
|
|
93
|
+
target = tool_file(f, skill: skill)
|
|
78
94
|
target if target.exist?
|
|
79
95
|
end
|
|
80
96
|
end
|
|
@@ -171,7 +187,7 @@ add_subcmd(:env) { |*args|
|
|
|
171
187
|
opts = tool_opts.parse(args)
|
|
172
188
|
glob_path('agents/*.md', '.md', opts: opts)
|
|
173
189
|
glob_path('commands/*.md', '.md', opts: opts)
|
|
174
|
-
glob_path('skills/*/', opts: opts)
|
|
190
|
+
glob_path('skills/*/', opts: opts, skill: true)
|
|
175
191
|
}
|
|
176
192
|
|
|
177
193
|
add_subcmd(:agents) { |*args|
|
|
@@ -186,7 +202,7 @@ add_subcmd(:env) { |*args|
|
|
|
186
202
|
|
|
187
203
|
add_subcmd(:skills) { |*args|
|
|
188
204
|
opts = tool_opts.parse(args)
|
|
189
|
-
glob_path('skills/*/', opts: opts)
|
|
205
|
+
glob_path('skills/*/', opts: opts, skill: true)
|
|
190
206
|
}
|
|
191
207
|
|
|
192
208
|
add_subcmd(:vim) { |*args|
|
data/bin/h-pane
CHANGED
|
@@ -61,7 +61,7 @@ Hiiro.run(*ARGV, plugins: [Pins]) do
|
|
|
61
61
|
system('tmux', 'split-window', *args)
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
add_subcmd(:
|
|
64
|
+
add_subcmd(:hsplit, :splith) { |*args|
|
|
65
65
|
if args.empty?
|
|
66
66
|
tmux.split_window(horizontal: false)
|
|
67
67
|
else
|
|
@@ -69,7 +69,7 @@ Hiiro.run(*ARGV, plugins: [Pins]) do
|
|
|
69
69
|
end
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
add_subcmd(:
|
|
72
|
+
add_subcmd(:vsplit, :splitv) { |*args|
|
|
73
73
|
if args.empty?
|
|
74
74
|
tmux.split_window(horizontal: true)
|
|
75
75
|
else
|
data/docs/h-claude.md
CHANGED
|
@@ -77,6 +77,7 @@ List agent, command, and skill files found in `.claude/` directories from the cu
|
|
|
77
77
|
| Flag | Short | Description |
|
|
78
78
|
|------|-------|-------------|
|
|
79
79
|
| `--full` | `-f` | Full text search (grep inside files) |
|
|
80
|
+
| `--absolute` | `-a` | Print the absolute path to each matching tool file (`SKILL.md` for skills) |
|
|
80
81
|
| `--verbose` | `-v` | Show `.claude` paths being searched |
|
|
81
82
|
| `--veryverbose` | `-V` | Show all paths including skipped |
|
|
82
83
|
|
|
@@ -85,7 +86,9 @@ List agent, command, and skill files found in `.claude/` directories from the cu
|
|
|
85
86
|
```bash
|
|
86
87
|
h claude all
|
|
87
88
|
h claude agents fetch
|
|
89
|
+
h claude agents -a fetch
|
|
88
90
|
h claude commands refactor
|
|
91
|
+
h claude skills -a review
|
|
89
92
|
h claude skills -f "pull request"
|
|
90
93
|
```
|
|
91
94
|
|
|
@@ -333,7 +336,7 @@ h claude vadd "Write tests for foo"
|
|
|
333
336
|
|
|
334
337
|
### vim
|
|
335
338
|
|
|
336
|
-
Open matching agent, command, and skill files in your editor. Uses the same filter logic as `all
|
|
339
|
+
Open matching agent, command, and skill files in your editor. Uses the same filter logic and search flags as `all`; matches are opened via their absolute file paths.
|
|
337
340
|
|
|
338
341
|
**Examples**
|
|
339
342
|
|
data/lib/hiiro/version.rb
CHANGED
data/lib/hiiro.rb
CHANGED
|
@@ -63,7 +63,7 @@ end
|
|
|
63
63
|
|
|
64
64
|
class Hiiro
|
|
65
65
|
WORK_DIR = File.join(Dir.home, 'work')
|
|
66
|
-
REPO_PATH = File.join(WORK_DIR, '.
|
|
66
|
+
REPO_PATH = File.join(WORK_DIR, '.git')
|
|
67
67
|
|
|
68
68
|
def self.init(*oargs, plugins: [], logging: false, tasks: false, task_scope: nil, **values, &block)
|
|
69
69
|
load_env
|
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.
|
|
4
|
+
version: 0.1.352
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Joshua Toyota
|
|
@@ -119,6 +119,7 @@ extra_rdoc_files: []
|
|
|
119
119
|
files:
|
|
120
120
|
- ".DS_Store"
|
|
121
121
|
- ".config/.keep"
|
|
122
|
+
- AGENTS.md
|
|
122
123
|
- CHANGELOG.md
|
|
123
124
|
- CLAUDE.md
|
|
124
125
|
- LICENSE
|