appydave-tools 0.71.1 → 0.72.0
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 +7 -0
- data/docs/backlog.md +1 -1
- data/lib/appydave/tools/jump/cli.rb +5 -3
- data/lib/appydave/tools/jump/commands/generate.rb +102 -2
- data/lib/appydave/tools/version.rb +1 -1
- data/package.json +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 584067a790d262ecf04ab52f20557fc879db4cf968928199ae279438afddc0e9
|
|
4
|
+
data.tar.gz: c2d31308bd43b6e93e66bbdcff15bcde169fe6cde278de0d03a793c4dc605e1c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6f8d108fd12581e5e22d1d4125c85794f0df4e94ea8f626dddf1e26bdfcde423bccee1325e4548a5b55c0f33c9f87e7aaaa1d55ead202b8010caa766afdf90ef
|
|
7
|
+
data.tar.gz: 95b5b25e5b1d6816f271a0a12cb6cfd57ce53652c23fc1fdb34e6eed31eefc5fc63bd5381ea812355184f410d7537f81329ff34fd312cc0b7345727c9dc561ca
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [0.71.1](https://github.com/appydave/appydave-tools/compare/v0.71.0...v0.71.1) (2025-12-15)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* resolve jump get/remove returning 'No locations found' by making Search#get return results array consistent with search/list ([8ea39b5](https://github.com/appydave/appydave-tools/commit/8ea39b5fdd9bb9fe55c22f9cb86c8b66782c0f09))
|
|
7
|
+
|
|
1
8
|
# [0.71.0](https://github.com/appydave/appydave-tools/compare/v0.70.0...v0.71.0) (2025-12-14)
|
|
2
9
|
|
|
3
10
|
|
data/docs/backlog.md
CHANGED
|
@@ -129,7 +129,7 @@ When `get agent-workflow-build` failed, it suggested: "Did you mean: test-minima
|
|
|
129
129
|
- Personal skill at `~/.claude/skills/jump/SKILL.md`
|
|
130
130
|
- Description includes brand names (appydave, voz, supportsignal, joy, aitldr, kiros), products (flivideo, storyline, klueless, dam), and trigger keywords
|
|
131
131
|
- Primary mode: Jump CLI commands (`jump search`, `jump get`, `jump list`)
|
|
132
|
-
- Fallback mode: Direct JSON read from `/ad/brains/brand-
|
|
132
|
+
- Fallback mode: Direct JSON read from `/ad/brains/brand-dave/data-systems/collections/jump/current.json`
|
|
133
133
|
- Tool restrictions: `allowed-tools: Read, Bash, Grep, Glob`
|
|
134
134
|
- Includes natural language examples and key location reference table
|
|
135
135
|
|
|
@@ -245,7 +245,7 @@ module Appydave
|
|
|
245
245
|
|
|
246
246
|
unless target
|
|
247
247
|
output.puts 'Usage: jump generate <target> [--output <file>] [--output-dir <dir>]'
|
|
248
|
-
output.puts 'Targets: aliases, help, all'
|
|
248
|
+
output.puts 'Targets: aliases, help, ah-help, all'
|
|
249
249
|
return EXIT_INVALID_INPUT
|
|
250
250
|
end
|
|
251
251
|
|
|
@@ -542,16 +542,18 @@ module Appydave
|
|
|
542
542
|
Targets:
|
|
543
543
|
aliases Generate shell alias file (aliases-jump.zsh)
|
|
544
544
|
help Generate help content for fzf (jump-help.txt)
|
|
545
|
-
|
|
545
|
+
ah-help Generate content for aliases-help.zsh (ah function format)
|
|
546
|
+
all Generate both aliases and help files
|
|
546
547
|
|
|
547
548
|
Options:
|
|
548
|
-
--output <file> Write to specific file (for aliases, help)
|
|
549
|
+
--output <file> Write to specific file (for aliases, help, ah-help)
|
|
549
550
|
--output-dir <dir> Write to directory (for all)
|
|
550
551
|
|
|
551
552
|
Examples:
|
|
552
553
|
jump generate aliases
|
|
553
554
|
jump generate aliases --output ~/.oh-my-zsh/custom/aliases-jump.zsh
|
|
554
555
|
jump generate help --output ~/.oh-my-zsh/custom/data/jump-help.txt
|
|
556
|
+
jump generate ah-help --output ~/.oh-my-zsh/custom/aliases-help.zsh
|
|
555
557
|
jump generate all --output-dir ~/.oh-my-zsh/custom/
|
|
556
558
|
HELP
|
|
557
559
|
end
|
|
@@ -6,7 +6,7 @@ module Appydave
|
|
|
6
6
|
module Commands
|
|
7
7
|
# Generate command creates shell aliases and help content
|
|
8
8
|
class Generate < Base
|
|
9
|
-
VALID_TARGETS = %w[aliases help all].freeze
|
|
9
|
+
VALID_TARGETS = %w[aliases help ah-help all].freeze
|
|
10
10
|
|
|
11
11
|
attr_reader :target, :output_path, :output_dir
|
|
12
12
|
|
|
@@ -28,7 +28,9 @@ module Appydave
|
|
|
28
28
|
)
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
# Convert hyphenated targets to underscored method names
|
|
32
|
+
method_name = "generate_#{target.tr('-', '_')}"
|
|
33
|
+
send(method_name)
|
|
32
34
|
end
|
|
33
35
|
|
|
34
36
|
private
|
|
@@ -43,6 +45,11 @@ module Appydave
|
|
|
43
45
|
write_or_return(content, output_path, 'jump-help.txt')
|
|
44
46
|
end
|
|
45
47
|
|
|
48
|
+
def generate_ah_help
|
|
49
|
+
content = build_ah_help_content
|
|
50
|
+
write_or_return(content, output_path, 'aliases-help.zsh')
|
|
51
|
+
end
|
|
52
|
+
|
|
46
53
|
def generate_all
|
|
47
54
|
aliases_content = build_aliases_content
|
|
48
55
|
help_content = build_help_content
|
|
@@ -115,6 +122,99 @@ module Appydave
|
|
|
115
122
|
lines.join("\n")
|
|
116
123
|
end
|
|
117
124
|
|
|
125
|
+
def build_ah_help_content
|
|
126
|
+
lines = []
|
|
127
|
+
|
|
128
|
+
# Group locations into logical sections
|
|
129
|
+
sections = group_locations_for_ah_help
|
|
130
|
+
|
|
131
|
+
sections.each do |section_name, locations|
|
|
132
|
+
lines << "## #{section_name}"
|
|
133
|
+
|
|
134
|
+
locations.each do |loc|
|
|
135
|
+
path = format_display_path(loc.path)
|
|
136
|
+
tags = build_ah_tags(loc)
|
|
137
|
+
|
|
138
|
+
# Format: alias (24 chars) + path + tags
|
|
139
|
+
alias_col = loc.jump.ljust(24)
|
|
140
|
+
path_with_tags = "#{path}#{' ' * [1, 48 - path.length].max}#{tags}"
|
|
141
|
+
|
|
142
|
+
lines << "#{alias_col}#{path_with_tags}"
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
lines << ''
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
lines.join("\n")
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def format_display_path(path)
|
|
152
|
+
# Collapse home directory to ~
|
|
153
|
+
expanded = path_validator.expand(path)
|
|
154
|
+
home = Dir.home
|
|
155
|
+
expanded.start_with?(home) ? expanded.sub(home, '~') : expanded
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def build_ah_tags(loc)
|
|
159
|
+
tags = [loc.type, loc.brand, loc.client].compact.reject(&:empty?)
|
|
160
|
+
tags.concat(loc.tags) if loc.tags
|
|
161
|
+
tags.uniq.map { |t| "##{t}" }.join(' ')
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def group_locations_for_ah_help
|
|
165
|
+
sections = {
|
|
166
|
+
'Base Directories' => [],
|
|
167
|
+
'Brand Projects - AppyDave' => [],
|
|
168
|
+
'Brand Projects - Other' => [],
|
|
169
|
+
'Client Projects' => [],
|
|
170
|
+
'Video Projects' => [],
|
|
171
|
+
'Ruby Gems' => [],
|
|
172
|
+
'Reference & Archives' => [],
|
|
173
|
+
'Other' => []
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
config.locations.each do |loc|
|
|
177
|
+
section = determine_ah_section(loc)
|
|
178
|
+
sections[section] << loc
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# Remove empty sections and sort locations within each
|
|
182
|
+
sections.reject { |_, locs| locs.empty? }.transform_values do |locs|
|
|
183
|
+
locs.sort_by(&:jump)
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
188
|
+
def determine_ah_section(loc)
|
|
189
|
+
type = loc.type&.downcase
|
|
190
|
+
brand = loc.brand&.downcase
|
|
191
|
+
|
|
192
|
+
case type
|
|
193
|
+
when 'monorepo', 'config'
|
|
194
|
+
return 'Base Directories' if loc.client.nil? && loc.brand.nil?
|
|
195
|
+
when 'video'
|
|
196
|
+
return 'Video Projects'
|
|
197
|
+
when 'gem'
|
|
198
|
+
return 'Ruby Gems'
|
|
199
|
+
when 'client'
|
|
200
|
+
return 'Client Projects'
|
|
201
|
+
when 'archive', 'reference'
|
|
202
|
+
return 'Reference & Archives'
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
return 'Client Projects' if loc.client
|
|
206
|
+
|
|
207
|
+
case brand
|
|
208
|
+
when 'appydave'
|
|
209
|
+
'Brand Projects - AppyDave'
|
|
210
|
+
when 'beauty-and-joy', 'david-cruwys', 'aitldr'
|
|
211
|
+
'Brand Projects - Other'
|
|
212
|
+
else
|
|
213
|
+
'Other'
|
|
214
|
+
end
|
|
215
|
+
end
|
|
216
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
217
|
+
|
|
118
218
|
def group_locations_for_aliases
|
|
119
219
|
grouped = {}
|
|
120
220
|
|
data/package.json
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: appydave-tools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.72.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Cruwys
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-12-
|
|
11
|
+
date: 2025-12-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activemodel
|