n2b 0.4.0 → 0.5.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.
@@ -98,15 +98,42 @@ module N2B
98
98
  return resolve_model(provider, default)
99
99
  end
100
100
  else
101
- # Direct model name input
102
- resolved = resolve_model(provider, input)
103
- if suggested.key?(input)
104
- puts "✓ Using suggested model: #{input} (#{resolved})"
101
+ # Direct model name input - validate it first
102
+ if is_valid_model_name?(input)
103
+ resolved = resolve_model(provider, input)
104
+ if suggested.key?(input)
105
+ puts "✓ Using suggested model: #{input} (#{resolved})"
106
+ else
107
+ puts "✓ Using custom model: #{resolved}"
108
+ end
109
+ return resolved
105
110
  else
106
- puts " Using custom model: #{resolved}"
111
+ puts "Invalid model name '#{input}'. Model names should be meaningful (at least 3 characters, no single letters)."
112
+ puts "Using default model instead."
113
+ return resolve_model(provider, default)
107
114
  end
108
- return resolved
109
115
  end
110
116
  end
117
+
118
+ private
119
+
120
+ def self.is_valid_model_name?(input)
121
+ return false if input.nil? || input.empty?
122
+
123
+ # Reject single characters (like 'y', 'n', etc.)
124
+ return false if input.length == 1
125
+
126
+ # Reject very short inputs that are likely not model names
127
+ return false if input.length < 3
128
+
129
+ # Reject common boolean/confirmation inputs
130
+ return false if %w[y n yes no true false].include?(input.downcase)
131
+
132
+ # Reject inputs that are just numbers
133
+ return false if input.match?(/^\d+$/)
134
+
135
+ # Accept anything else as potentially valid
136
+ true
137
+ end
111
138
  end
112
139
  end
data/lib/n2b/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # lib/n2b/version.rb
2
2
  module N2B
3
- VERSION = "0.4.0"
3
+ VERSION = "0.5.0"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: n2b
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Nothegger
@@ -64,12 +64,14 @@ extra_rdoc_files: []
64
64
  files:
65
65
  - README.md
66
66
  - bin/n2b
67
+ - bin/n2b-test-jira
67
68
  - lib/n2b.rb
68
69
  - lib/n2b/base.rb
69
70
  - lib/n2b/cli.rb
70
71
  - lib/n2b/config/models.yml
71
72
  - lib/n2b/errors.rb
72
73
  - lib/n2b/irb.rb
74
+ - lib/n2b/jira_client.rb
73
75
  - lib/n2b/llm/claude.rb
74
76
  - lib/n2b/llm/gemini.rb
75
77
  - lib/n2b/llm/ollama.rb
@@ -81,9 +83,9 @@ homepage: https://github.com/stefan-kp/n2b
81
83
  licenses:
82
84
  - MIT
83
85
  metadata:
84
- homepage_uri: https://github.com/stefan-kp/n2b
85
86
  source_code_uri: https://github.com/stefan-kp/n2b
86
87
  changelog_uri: https://github.com/stefan-kp/n2b/blob/main/CHANGELOG.md
88
+ documentation_uri: https://github.com/stefan-kp/n2b/blob/main/README.md
87
89
  post_install_message:
88
90
  rdoc_options: []
89
91
  require_paths: