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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ff2949280923d4d700c79c676aff2969cc95a0808fe857bee5a20c14f33e8524
4
- data.tar.gz: 4d8616d22c94aae3316c310ed07da76cf5739d39c10771b43f09362d77eff70b
3
+ metadata.gz: 584067a790d262ecf04ab52f20557fc879db4cf968928199ae279438afddc0e9
4
+ data.tar.gz: c2d31308bd43b6e93e66bbdcff15bcde169fe6cde278de0d03a793c4dc605e1c
5
5
  SHA512:
6
- metadata.gz: 16b926b801da0246092980d859729ce9c408a92644881877e54ccf1fc8a2ef43141ba0b78cc32fb31c0c3d2eaa41d53d224b4552fd63f49a798c52ad5a70a3d6
7
- data.tar.gz: 5a21ef6d3d0629ca756527210b9e1f208a01aa752f0c93229d1cd3f7bd1c7116ab72cc83357c069984976061f15b2ffe17fd0cbbf784cc60d4fb5b3f1a073c4a
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-david/data-systems/collections/jump/current.json`
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
- all Generate both files
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
- send("generate_#{target}")
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
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Appydave
4
4
  module Tools
5
- VERSION = '0.71.1'
5
+ VERSION = '0.72.0'
6
6
  end
7
7
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appydave-tools",
3
- "version": "0.71.1",
3
+ "version": "0.72.0",
4
4
  "description": "AppyDave YouTube Automation Tools",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
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.71.1
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-15 00:00:00.000000000 Z
11
+ date: 2025-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel