n2b 0.4.0 → 0.5.1
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/README.md +250 -21
- data/bin/n2b-test-jira +273 -0
- data/lib/n2b/base.rb +171 -54
- data/lib/n2b/cli.rb +206 -18
- data/lib/n2b/irb.rb +1 -1
- data/lib/n2b/jira_client.rb +753 -0
- data/lib/n2b/llm/ollama.rb +1 -1
- data/lib/n2b/model_config.rb +33 -6
- data/lib/n2b/version.rb +1 -1
- metadata +5 -3
data/lib/n2b/llm/ollama.rb
CHANGED
@@ -88,7 +88,7 @@ module N2M
|
|
88
88
|
# The prompt_content for diff analysis should instruct the LLM to return JSON.
|
89
89
|
# For Ollama, you can also try adding "format": "json" to the request if the model supports it.
|
90
90
|
request_body = {
|
91
|
-
"model" =>
|
91
|
+
"model" => get_model_name,
|
92
92
|
"messages" => [
|
93
93
|
{
|
94
94
|
"role" => "user",
|
data/lib/n2b/model_config.rb
CHANGED
@@ -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
|
-
|
103
|
-
|
104
|
-
|
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 "
|
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
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
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Nothegger
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '13.0'
|
55
55
|
description: A tool to convert natural language instructions to bash commands using
|
56
|
-
Claude API or OpenAI's GPT. also is
|
56
|
+
Claude API or OpenAI's GPT. also is a quick helper in the console to provide ruby
|
57
57
|
code snippets and explanations or debug exceptions.
|
58
58
|
email:
|
59
59
|
- stefan@kaproblem.com
|
@@ -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:
|