appydave-tools 0.69.0 → 0.71.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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/commands/brainstorming-agent.md +227 -0
  3. data/.claude/commands/cli-test.md +251 -0
  4. data/.claude/commands/dev.md +234 -0
  5. data/.claude/commands/po.md +227 -0
  6. data/.claude/commands/progress.md +51 -0
  7. data/.claude/commands/uat.md +321 -0
  8. data/.rubocop.yml +11 -0
  9. data/AGENTS.md +43 -0
  10. data/CHANGELOG.md +24 -0
  11. data/CLAUDE.md +96 -3
  12. data/README.md +15 -0
  13. data/bin/dam +39 -7
  14. data/bin/jump.rb +29 -0
  15. data/bin/subtitle_processor.rb +54 -1
  16. data/bin/zsh_history.rb +846 -0
  17. data/docs/README.md +162 -68
  18. data/docs/architecture/cli/exe-bin-convention.md +434 -0
  19. data/docs/architecture/cli-patterns.md +631 -0
  20. data/docs/architecture/gpt-context/gpt-context-architecture.md +325 -0
  21. data/docs/architecture/gpt-context/gpt-context-implementation-guide.md +419 -0
  22. data/docs/architecture/gpt-context/gpt-context-vision.md +179 -0
  23. data/docs/architecture/testing/testing-patterns.md +762 -0
  24. data/docs/backlog.md +120 -0
  25. data/docs/cli-tests/FR-3-jump-location-tool.md +515 -0
  26. data/docs/dam/batch-s3-listing-requirements.md +780 -0
  27. data/docs/guides/tools/video-file-namer.md +400 -0
  28. data/docs/specs/fr-002-gpt-context-help-system.md +265 -0
  29. data/docs/specs/fr-003-jump-location-tool.md +779 -0
  30. data/docs/specs/zsh-history-tool.md +820 -0
  31. data/docs/uat/FR-3-jump-location-tool.md +741 -0
  32. data/exe/jump +11 -0
  33. data/exe/{subtitle_manager → subtitle_processor} +1 -1
  34. data/exe/zsh_history +11 -0
  35. data/lib/appydave/tools/configuration/openai.rb +1 -1
  36. data/lib/appydave/tools/dam/file_helper.rb +28 -0
  37. data/lib/appydave/tools/dam/project_listing.rb +220 -138
  38. data/lib/appydave/tools/dam/s3_operations.rb +112 -60
  39. data/lib/appydave/tools/dam/ssd_status.rb +226 -0
  40. data/lib/appydave/tools/dam/status.rb +3 -51
  41. data/lib/appydave/tools/jump/cli.rb +561 -0
  42. data/lib/appydave/tools/jump/commands/add.rb +52 -0
  43. data/lib/appydave/tools/jump/commands/base.rb +43 -0
  44. data/lib/appydave/tools/jump/commands/generate.rb +153 -0
  45. data/lib/appydave/tools/jump/commands/remove.rb +58 -0
  46. data/lib/appydave/tools/jump/commands/report.rb +214 -0
  47. data/lib/appydave/tools/jump/commands/update.rb +42 -0
  48. data/lib/appydave/tools/jump/commands/validate.rb +54 -0
  49. data/lib/appydave/tools/jump/config.rb +233 -0
  50. data/lib/appydave/tools/jump/formatters/base.rb +48 -0
  51. data/lib/appydave/tools/jump/formatters/json_formatter.rb +19 -0
  52. data/lib/appydave/tools/jump/formatters/paths_formatter.rb +21 -0
  53. data/lib/appydave/tools/jump/formatters/table_formatter.rb +183 -0
  54. data/lib/appydave/tools/jump/location.rb +134 -0
  55. data/lib/appydave/tools/jump/path_validator.rb +47 -0
  56. data/lib/appydave/tools/jump/search.rb +230 -0
  57. data/lib/appydave/tools/subtitle_processor/transcript.rb +51 -0
  58. data/lib/appydave/tools/version.rb +1 -1
  59. data/lib/appydave/tools/zsh_history/command.rb +37 -0
  60. data/lib/appydave/tools/zsh_history/config.rb +235 -0
  61. data/lib/appydave/tools/zsh_history/filter.rb +184 -0
  62. data/lib/appydave/tools/zsh_history/formatter.rb +75 -0
  63. data/lib/appydave/tools/zsh_history/parser.rb +101 -0
  64. data/lib/appydave/tools.rb +25 -0
  65. data/package.json +1 -1
  66. metadata +53 -4
data/bin/jump.rb ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # Jump Location Tool - Manage development folder locations
5
+ #
6
+ # Usage:
7
+ # jump search <terms> # Fuzzy search locations
8
+ # jump get <key> # Get by exact key
9
+ # jump list # List all locations
10
+ # jump add --key <key> --path <path> # Add new location
11
+ # jump update <key> [options] # Update location
12
+ # jump remove <key> --force # Remove location
13
+ # jump validate [key] # Check paths exist
14
+ # jump report <type> # Generate reports
15
+ # jump generate <target> # Generate aliases/help
16
+ # jump info # Show config info
17
+ #
18
+ # Examples:
19
+ # jump search appydave ruby
20
+ # jump add --key my-proj --path ~/dev/my-proj --brand appydave
21
+ # jump generate aliases --output ~/.oh-my-zsh/custom/aliases-jump.zsh
22
+
23
+ $LOAD_PATH.unshift(File.expand_path('../lib', __dir__))
24
+
25
+ require 'appydave/tools'
26
+
27
+ cli = Appydave::Tools::Jump::CLI.new
28
+ exit_code = cli.run(ARGV)
29
+ exit(exit_code)
@@ -12,7 +12,8 @@ class SubtitleProcessorCLI
12
12
  def initialize
13
13
  @commands = {
14
14
  'clean' => method(:clean_subtitles),
15
- 'join' => method(:join_subtitles)
15
+ 'join' => method(:join_subtitles),
16
+ 'transcript' => method(:transcript_subtitles)
16
17
  }
17
18
  end
18
19
 
@@ -146,11 +147,63 @@ class SubtitleProcessorCLI
146
147
  joiner.join
147
148
  end
148
149
 
150
+ def transcript_subtitles(args)
151
+ options = {
152
+ file: nil,
153
+ output: nil,
154
+ paragraph_gap: 1
155
+ }
156
+
157
+ transcript_parser = OptionParser.new do |opts|
158
+ opts.banner = 'Usage: subtitle_processor.rb transcript [options]'
159
+
160
+ opts.on('-f', '--file FILE', 'SRT file to convert') do |v|
161
+ options[:file] = v
162
+ end
163
+
164
+ opts.on('-o', '--output FILE', 'Output file (default: stdout)') do |v|
165
+ options[:output] = v
166
+ end
167
+
168
+ opts.on('-g', '--gap LINES', Integer, 'Newlines between paragraphs (default: 1)') do |v|
169
+ options[:paragraph_gap] = v
170
+ end
171
+
172
+ opts.on('-h', '--help', 'Show this message') do
173
+ puts opts
174
+ exit
175
+ end
176
+ end
177
+
178
+ begin
179
+ transcript_parser.parse!(args)
180
+ rescue OptionParser::InvalidOption => e
181
+ puts "Error: #{e.message}"
182
+ puts transcript_parser
183
+ exit
184
+ end
185
+
186
+ if options[:file].nil?
187
+ puts 'Error: Input file is required.'
188
+ puts transcript_parser
189
+ exit
190
+ end
191
+
192
+ transcript = Appydave::Tools::SubtitleProcessor::Transcript.new(file_path: options[:file])
193
+
194
+ if options[:output]
195
+ transcript.write(options[:output], paragraph_gap: options[:paragraph_gap])
196
+ else
197
+ puts transcript.extract(paragraph_gap: options[:paragraph_gap])
198
+ end
199
+ end
200
+
149
201
  def print_help
150
202
  puts 'Usage: subtitle_processor.rb [command] [options]'
151
203
  puts 'Commands:'
152
204
  puts ' clean Clean and normalize SRT files'
153
205
  puts ' join Join multiple SRT files'
206
+ puts ' transcript Convert SRT to plain text transcript'
154
207
  puts "Run 'subtitle_processor.rb [command] --help' for more information on a command."
155
208
  end
156
209
  end