ruboto-ai 0.1.0 → 0.2.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 (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -15
  3. data/lib/ruboto/version.rb +1 -1
  4. data/lib/ruboto.rb +19 -9
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aab699c78829f06e755d96f99c0dfcb39053d209e4ee99d61f198a6c33b650c5
4
- data.tar.gz: be0851dcdfb649041a4c75bea567f3369253687e5a4e1fe562f1461c69343ee0
3
+ metadata.gz: 3f21aaee09a5149be822c39199557a7777c82d6736af3dcdc42f0997955fbec0
4
+ data.tar.gz: 61ff45be2a2a1f507fad5feeda74da25c6243f0a1d48a618cbf1563963457045
5
5
  SHA512:
6
- metadata.gz: 6fb78c938b1bbc219b5debd6fcd1e0038a6bfbe176d0abada304aceed5379888274a2106f10e922f8edd63e3c4149d12ad0abad7dc0c0bea78882dc95f6db8f0
7
- data.tar.gz: 7846fad4648aca6329c9db9845624b8c4e2224e5f578c620fea1bae19528be5e2bffb3c07f1faedcbe04dc79f4af5f1c5513755d058ea62ed0955c811ed1f0dc
6
+ metadata.gz: d5addd6c722091e37a0c616435fc4088ca29e63c37208e9cb6e6de6319078d9bf1d8655a512ada5dd6866f3f6645b0ccdb74fb7a4cc7889a66c8c7b8902c139d
7
+ data.tar.gz: 8e8f791844e463063f7ea88df39b5a520d49634272203502d483433c229ac5a200a1b44879b658fd646693d3ad8802dcf43ccd6f9558e5f61d1ef4808137521c
data/README.md CHANGED
@@ -62,15 +62,19 @@ $ ruboto-ai
62
62
 
63
63
  Select a model:
64
64
 
65
- 1. GPT-4o OpenAI flagship
66
- 2. GPT-4o Mini Fast & cheap
67
- 3. Claude Sonnet 4 Anthropic's latest
68
- 4. Claude 3.5 Sonnet Great for code
69
- 5. Gemini 2.0 Flash Google's fast model
70
- 6. Llama 3.3 70B Open source
71
- 7. DeepSeek Chat Strong reasoning
65
+ 1. Claude Sonnet 4.5 Anthropic's best
66
+ 2. Gemini 3 Flash Google's latest
67
+ 3. DeepSeek v3.2 Strong reasoning
68
+ 4. Grok Code Fast xAI coding model
69
+ 5. MiniMax M2.1 Versatile model
70
+ 6. Seed 1.6 ByteDance model
71
+ 7. GLM 4.7 Zhipu AI model
72
+ 8. MiMo v2 Flash Xiaomi (free)
73
+ 9. LFM 2.5 Thinking Liquid (free)
72
74
 
73
- Enter number (1-7):
75
+ Or enter any OpenRouter model ID (e.g., openai/gpt-4o)
76
+
77
+ Choice:
74
78
  ```
75
79
 
76
80
  Select a model by number, then start chatting.
@@ -179,15 +183,29 @@ Added try/catch with proper error handling. Tests still pass.
179
183
 
180
184
  ## Supported Models
181
185
 
186
+ ### Default Models
187
+
182
188
  | Model | Provider | Best For |
183
189
  |-------|----------|----------|
184
- | GPT-4o | OpenAI | General coding tasks |
185
- | GPT-4o Mini | OpenAI | Fast, cheap tasks |
186
- | Claude Sonnet 4 | Anthropic | Complex reasoning |
187
- | Claude 3.5 Sonnet | Anthropic | Code generation |
188
- | Gemini 2.0 Flash | Google | Fast responses |
189
- | Llama 3.3 70B | Meta | Open source option |
190
- | DeepSeek Chat | DeepSeek | Strong reasoning |
190
+ | Claude Sonnet 4.5 | Anthropic | Best overall |
191
+ | Gemini 3 Flash | Google | Fast responses |
192
+ | DeepSeek v3.2 | DeepSeek | Strong reasoning |
193
+ | Grok Code Fast | xAI | Code generation |
194
+ | MiniMax M2.1 | MiniMax | Versatile tasks |
195
+ | Seed 1.6 | ByteDance | General purpose |
196
+ | GLM 4.7 | Zhipu AI | Chinese + English |
197
+ | MiMo v2 Flash | Xiaomi | Free tier |
198
+ | LFM 2.5 Thinking | Liquid | Free tier |
199
+
200
+ ### Custom Models
201
+
202
+ You can use **any model** from [OpenRouter](https://openrouter.ai/models) by entering its ID directly:
203
+
204
+ ```
205
+ Choice: openai/gpt-4o
206
+ Choice: meta-llama/llama-3.3-70b-instruct
207
+ Choice: mistralai/mistral-large
208
+ ```
191
209
 
192
210
  ## Data Storage
193
211
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ruboto
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
data/lib/ruboto.rb CHANGED
@@ -13,13 +13,15 @@ module Ruboto
13
13
  API_URL = "https://openrouter.ai/api/v1/chat/completions"
14
14
 
15
15
  MODELS = [
16
- { id: "openai/gpt-4o", name: "GPT-4o", desc: "OpenAI flagship" },
17
- { id: "openai/gpt-4o-mini", name: "GPT-4o Mini", desc: "Fast & cheap" },
18
- { id: "anthropic/claude-sonnet-4", name: "Claude Sonnet 4", desc: "Anthropic's latest" },
19
- { id: "anthropic/claude-3.5-sonnet", name: "Claude 3.5 Sonnet", desc: "Great for code" },
20
- { id: "google/gemini-2.0-flash-001", name: "Gemini 2.0 Flash", desc: "Google's fast model" },
21
- { id: "meta-llama/llama-3.3-70b-instruct", name: "Llama 3.3 70B", desc: "Open source" },
22
- { id: "deepseek/deepseek-chat", name: "DeepSeek Chat", desc: "Strong reasoning" }
16
+ { id: "anthropic/claude-sonnet-4.5", name: "Claude Sonnet 4.5", desc: "Anthropic's best" },
17
+ { id: "google/gemini-3-flash-preview", name: "Gemini 3 Flash", desc: "Google's latest" },
18
+ { id: "deepseek/deepseek-v3.2", name: "DeepSeek v3.2", desc: "Strong reasoning" },
19
+ { id: "x-ai/grok-code-fast-1", name: "Grok Code Fast", desc: "xAI coding model" },
20
+ { id: "minimax/minimax-m2.1", name: "MiniMax M2.1", desc: "Versatile model" },
21
+ { id: "bytedance-seed/seed-1.6", name: "Seed 1.6", desc: "ByteDance model" },
22
+ { id: "z-ai/glm-4.7", name: "GLM 4.7", desc: "Zhipu AI model" },
23
+ { id: "xiaomi/mimo-v2-flash:free", name: "MiMo v2 Flash", desc: "Xiaomi (free)" },
24
+ { id: "liquid/lfm-2.5-1.2b-thinking:free", name: "LFM 2.5 Thinking", desc: "Liquid (free)" }
23
25
  ].freeze
24
26
 
25
27
  # ANSI colors
@@ -853,20 +855,28 @@ module Ruboto
853
855
  end
854
856
 
855
857
  puts
856
- print " #{DIM}Enter number (1-#{MODELS.length}):#{RESET} "
858
+ puts " #{DIM}Or enter any OpenRouter model ID (e.g., openai/gpt-4o)#{RESET}"
859
+ puts
860
+ print " #{DIM}Choice:#{RESET} "
857
861
 
858
862
  loop do
859
863
  input = gets&.strip
860
864
  return MODELS[0][:id] if input.nil? || input.empty?
861
865
 
866
+ # Check if it's a number selection
862
867
  num = input.to_i
863
868
  if num >= 1 && num <= MODELS.length
864
869
  selected = MODELS[num - 1]
865
870
  puts "\n #{GREEN}✓#{RESET} Using #{BOLD}#{selected[:name]}#{RESET}"
866
871
  puts
867
872
  return selected[:id]
873
+ elsif input.include?("/")
874
+ # Custom model ID (contains slash like "openai/gpt-4o")
875
+ puts "\n #{GREEN}✓#{RESET} Using #{BOLD}#{input}#{RESET}"
876
+ puts
877
+ return input
868
878
  else
869
- print " #{RED}Invalid choice.#{RESET} Enter 1-#{MODELS.length}: "
879
+ print " #{RED}Invalid.#{RESET} Enter 1-#{MODELS.length} or a model ID: "
870
880
  end
871
881
  end
872
882
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruboto-ai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akhil Gautam