appydave-tools 0.84.0 → 0.86.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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/CLAUDE.md +1 -1
  4. data/CONTEXT.md +133 -23
  5. data/bin/configuration.rb +20 -0
  6. data/bin/query_apps.rb +74 -0
  7. data/config/examples/locations.example.json +48 -0
  8. data/config/examples/settings.example.json +9 -0
  9. data/config/random-queries.yml +24 -45
  10. data/context.globs.json +24 -0
  11. data/docs/guides/tools/dam/dam-usage.md +261 -471
  12. data/docs/planning/multi-user-support.md +108 -0
  13. data/docs/planning/query-apps-design.md +344 -0
  14. data/docs/planning/query-skills-plan.md +354 -0
  15. data/docs/specs/jump-add-display-fix.md +249 -0
  16. data/exe/query_apps +7 -0
  17. data/lib/appydave/tools/app_context/app_finder.rb +176 -0
  18. data/lib/appydave/tools/app_context/globs_loader.rb +116 -0
  19. data/lib/appydave/tools/app_context/options.rb +28 -0
  20. data/lib/appydave/tools/bank_reconciliation/_doc.md +36 -0
  21. data/lib/appydave/tools/bank_reconciliation/clean/clean_transactions.rb +159 -0
  22. data/lib/appydave/tools/bank_reconciliation/clean/mapper.rb +133 -0
  23. data/lib/appydave/tools/bank_reconciliation/clean/read_transactions.rb +258 -0
  24. data/lib/appydave/tools/bank_reconciliation/models/transaction.rb +158 -0
  25. data/lib/appydave/tools/brain_context/options.rb +19 -2
  26. data/lib/appydave/tools/configuration/example_installer.rb +72 -0
  27. data/lib/appydave/tools/configuration/models/bank_reconciliation_config.rb +152 -0
  28. data/lib/appydave/tools/configuration/models/settings_config.rb +12 -0
  29. data/lib/appydave/tools/jump/formatters/table_formatter.rb +16 -5
  30. data/lib/appydave/tools/version.rb +1 -1
  31. data/lib/appydave/tools/zsh_history/config.rb +2 -2
  32. data/lib/appydave/tools/zsh_history/filter.rb +10 -4
  33. data/lib/appydave/tools.rb +12 -0
  34. data/package.json +1 -1
  35. metadata +36 -2
@@ -24,11 +24,12 @@ module Appydave
24
24
  #
25
25
  # @return [String] Formatted table
26
26
  def format
27
- return format_error unless success?
28
- return format_info if info_result?
29
- return format_summary if summary_result?
30
- return format_groups unless groups.empty?
31
- return format_empty if results.empty?
27
+ return format_error unless success?
28
+ return format_info if info_result?
29
+ return format_summary if summary_result?
30
+ return format_groups unless groups.empty?
31
+ return format_mutation if mutation_result?
32
+ return format_empty if results.empty?
32
33
  return format_definition_report if definition_report?
33
34
  return format_count_report if count_report?
34
35
  return format_category_report if category_report?
@@ -45,6 +46,16 @@ module Appydave
45
46
  lines.join("\n")
46
47
  end
47
48
 
49
+ def mutation_result?
50
+ data.key?(:message) && (data.key?(:location) || data[:message].to_s.match?(/removed|updated|added/i))
51
+ end
52
+
53
+ def format_mutation
54
+ lines = [colorize(data[:message], :green)]
55
+ lines << colorize(data[:warning], :yellow) if data[:warning]
56
+ lines.join("\n")
57
+ end
58
+
48
59
  def format_empty
49
60
  message = case data[:report]
50
61
  when 'brands'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Appydave
4
4
  module Tools
5
- VERSION = '0.84.0'
5
+ VERSION = '0.86.0'
6
6
  end
7
7
  end
@@ -108,8 +108,8 @@ module Appydave
108
108
  ^Finished in \\d
109
109
  ^\\d+ examples, \\d+ failures
110
110
 
111
- # Process listing output
112
- ^davidcruwys\\s+\\d+
111
+ # Process listing output (current user)
112
+ ^#{ENV.fetch('USER', ENV.fetch('USERNAME', ''))}\\s+\\d+
113
113
  PATTERNS
114
114
 
115
115
  # Create crash-recovery profile
@@ -34,8 +34,7 @@ module Appydave
34
34
  '^head ',
35
35
  '^tail ',
36
36
  '^echo \\$',
37
- '^\\[\\d+\\]', # Output like [1234]
38
- '^davidcruwys\\s+\\d+', # Process listing output
37
+ '^\\[\\d+\\]', # Output like [1234]
39
38
  '^zsh: command not found',
40
39
  '^X Process completed',
41
40
  '^Coverage report',
@@ -138,9 +137,16 @@ module Appydave
138
137
  end
139
138
 
140
139
  def load_exclude_patterns
141
- # Try loading from config, fall back to defaults
140
+ # Try loading from config, fall back to defaults (with dynamic user pattern appended)
142
141
  config_patterns = config.exclude_patterns
143
- config_patterns || DEFAULT_EXCLUDE_PATTERNS
142
+ config_patterns || default_exclude_patterns_with_user
143
+ end
144
+
145
+ def default_exclude_patterns_with_user
146
+ username = ENV.fetch('USER', ENV.fetch('USERNAME', ''))
147
+ return DEFAULT_EXCLUDE_PATTERNS if username.empty?
148
+
149
+ DEFAULT_EXCLUDE_PATTERNS + ["^#{username}\\s+\\d+"]
144
150
  end
145
151
 
146
152
  def load_include_patterns
@@ -41,6 +41,10 @@ require 'appydave/tools/brain_context/options'
41
41
  require 'appydave/tools/brain_context/brain_finder'
42
42
  require 'appydave/tools/brain_context/omi_finder'
43
43
 
44
+ require 'appydave/tools/app_context/options'
45
+ require 'appydave/tools/app_context/globs_loader'
46
+ require 'appydave/tools/app_context/app_finder'
47
+
44
48
  require 'appydave/tools/random_context/query_entry'
45
49
  require 'appydave/tools/random_context/randomizer'
46
50
 
@@ -52,6 +56,13 @@ require 'appydave/tools/configuration/models/settings_config'
52
56
  require 'appydave/tools/configuration/models/brands_config'
53
57
  require 'appydave/tools/configuration/models/channels_config'
54
58
  require 'appydave/tools/configuration/models/youtube_automation_config'
59
+ require 'appydave/tools/configuration/models/bank_reconciliation_config'
60
+ require 'appydave/tools/configuration/example_installer'
61
+
62
+ require 'appydave/tools/bank_reconciliation/models/transaction'
63
+ require 'appydave/tools/bank_reconciliation/clean/read_transactions'
64
+ require 'appydave/tools/bank_reconciliation/clean/mapper'
65
+ require 'appydave/tools/bank_reconciliation/clean/clean_transactions'
55
66
  require 'appydave/tools/name_manager/project_name'
56
67
 
57
68
  require 'appydave/tools/prompt_tools/prompt_completion'
@@ -127,6 +138,7 @@ Appydave::Tools::Configuration::Config.set_default do |config|
127
138
  config.register(:brands, Appydave::Tools::Configuration::Models::BrandsConfig)
128
139
  config.register(:channels, Appydave::Tools::Configuration::Models::ChannelsConfig)
129
140
  config.register(:youtube_automation, Appydave::Tools::Configuration::Models::YoutubeAutomationConfig)
141
+ config.register(:bank_reconciliation, Appydave::Tools::Configuration::Models::BankReconciliationConfig)
130
142
  end
131
143
 
132
144
  module Appydave
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appydave-tools",
3
- "version": "0.84.0",
3
+ "version": "0.86.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.84.0
4
+ version: 0.86.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: 2026-04-05 00:00:00.000000000 Z
11
+ date: 2026-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: multi_json
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.15'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.15'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: pstore
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -190,6 +204,7 @@ executables:
190
204
  - jump
191
205
  - llm_context
192
206
  - prompt_tools
207
+ - query_apps
193
208
  - query_brain
194
209
  - query_omi
195
210
  - subtitle_processor
@@ -231,6 +246,7 @@ files:
231
246
  - bin/llm_context.rb
232
247
  - bin/move_images.rb
233
248
  - bin/prompt_tools.rb
249
+ - bin/query_apps.rb
234
250
  - bin/query_brain.rb
235
251
  - bin/query_omi.rb
236
252
  - bin/random_context.rb
@@ -242,7 +258,10 @@ files:
242
258
  - bin/youtube_automation.rb
243
259
  - bin/youtube_manager.rb
244
260
  - bin/zsh_history.rb
261
+ - config/examples/locations.example.json
262
+ - config/examples/settings.example.json
245
263
  - config/random-queries.yml
264
+ - context.globs.json
246
265
  - docs/README.md
247
266
  - docs/ai-instructions/behavioral-regression-audit.md
248
267
  - docs/ai-instructions/code-quality-retrospective.md
@@ -329,8 +348,11 @@ files:
329
348
  - docs/planning/micro-cleanup/AGENTS.md
330
349
  - docs/planning/micro-cleanup/IMPLEMENTATION_PLAN.md
331
350
  - docs/planning/micro-cleanup/assessment.md
351
+ - docs/planning/multi-user-support.md
352
+ - docs/planning/query-apps-design.md
332
353
  - docs/planning/query-location-feature/IMPLEMENTATION_PLAN.md
333
354
  - docs/planning/query-location-feature/system-context-gap-analysis.md
355
+ - docs/planning/query-skills-plan.md
334
356
  - docs/planning/s3-operations-split/AGENTS.md
335
357
  - docs/planning/s3-operations-split/IMPLEMENTATION_PLAN.md
336
358
  - docs/planning/test-coverage-gaps/AGENTS.md
@@ -338,6 +360,7 @@ files:
338
360
  - docs/planning/test-coverage-gaps/assessment.md
339
361
  - docs/specs/fr-002-gpt-context-help-system.md
340
362
  - docs/specs/fr-003-jump-location-tool.md
363
+ - docs/specs/jump-add-display-fix.md
341
364
  - docs/specs/zsh-history-tool.md
342
365
  - docs/templates/.env.example
343
366
  - docs/templates/channels.example.json
@@ -348,6 +371,7 @@ files:
348
371
  - exe/jump
349
372
  - exe/llm_context
350
373
  - exe/prompt_tools
374
+ - exe/query_apps
351
375
  - exe/query_brain
352
376
  - exe/query_omi
353
377
  - exe/subtitle_processor
@@ -356,6 +380,14 @@ files:
356
380
  - exe/zsh_history
357
381
  - images.log
358
382
  - lib/appydave/tools.rb
383
+ - lib/appydave/tools/app_context/app_finder.rb
384
+ - lib/appydave/tools/app_context/globs_loader.rb
385
+ - lib/appydave/tools/app_context/options.rb
386
+ - lib/appydave/tools/bank_reconciliation/_doc.md
387
+ - lib/appydave/tools/bank_reconciliation/clean/clean_transactions.rb
388
+ - lib/appydave/tools/bank_reconciliation/clean/mapper.rb
389
+ - lib/appydave/tools/bank_reconciliation/clean/read_transactions.rb
390
+ - lib/appydave/tools/bank_reconciliation/models/transaction.rb
359
391
  - lib/appydave/tools/brain_context/brain_finder.rb
360
392
  - lib/appydave/tools/brain_context/omi_finder.rb
361
393
  - lib/appydave/tools/brain_context/options.rb
@@ -367,6 +399,8 @@ files:
367
399
  - lib/appydave/tools/configuration/_doc.md
368
400
  - lib/appydave/tools/configuration/config.rb
369
401
  - lib/appydave/tools/configuration/configurable.rb
402
+ - lib/appydave/tools/configuration/example_installer.rb
403
+ - lib/appydave/tools/configuration/models/bank_reconciliation_config.rb
370
404
  - lib/appydave/tools/configuration/models/brands_config.rb
371
405
  - lib/appydave/tools/configuration/models/channels_config.rb
372
406
  - lib/appydave/tools/configuration/models/config_base.rb