llm-shell 0.8.0 → 0.9.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.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/lib/llm/shell/renderer.rb +2 -0
- data/lib/llm/shell/repl.rb +9 -6
- data/lib/llm/shell/version.rb +1 -1
- data/llm-shell.gemspec +2 -1
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a36478ef62c7e7db413c26a66d77da788a7135846d27e200dc236ee2480b2af
|
4
|
+
data.tar.gz: 940ecf35df53edd106f0750c3ca6467482ff59c18e45ae05702b9e60a8adff03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c36710535f7e59346fbc85dba3e90e1ad6ef4ea72ac2d799d743c8c9f482ac85172962c817e3817898f1c8e51f64e9cf5c6172f8e48377f647b4a5ba033f8531
|
7
|
+
data.tar.gz: 568944aaf6e69b314bc39714dd2d33896943e9716556f75e1bdb9ac38dc415fdb933943b24c7fc346a9d2ef4b904875ee74d3187e0f5c34616841215d477242f
|
data/README.md
CHANGED
@@ -12,7 +12,7 @@ it in action.
|
|
12
12
|
#### General
|
13
13
|
|
14
14
|
- 🌟 Unified interface for multiple Large Language Models (LLMs)
|
15
|
-
- 🤝 Supports Gemini, OpenAI, Anthropic, DeepSeek, LlamaCpp and Ollama
|
15
|
+
- 🤝 Supports Gemini, OpenAI, Anthropic, xAI (grok), DeepSeek, LlamaCpp and Ollama
|
16
16
|
|
17
17
|
#### Customize
|
18
18
|
|
@@ -131,6 +131,8 @@ gemini:
|
|
131
131
|
key: YOURKEY
|
132
132
|
anthropic:
|
133
133
|
key: YOURKEY
|
134
|
+
xai:
|
135
|
+
key: YOURKEY
|
134
136
|
deepseek:
|
135
137
|
key: YOURKEY
|
136
138
|
ollama:
|
data/lib/llm/shell/renderer.rb
CHANGED
@@ -38,6 +38,8 @@ class LLM::Shell
|
|
38
38
|
body = "Tool call(s) request"
|
39
39
|
elsif message.tool_return?
|
40
40
|
body = "Tool call(s) return"
|
41
|
+
elsif Array === content
|
42
|
+
body = content.map { |c| render_message(c, color) }.join("\n")
|
41
43
|
elsif content =~ file_pattern
|
42
44
|
path = content.match(file_pattern) ? Regexp.last_match[1] : nil
|
43
45
|
body = "<file path=#{path} />"
|
data/lib/llm/shell/repl.rb
CHANGED
@@ -67,21 +67,24 @@ class LLM::Shell
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def eval
|
70
|
+
callables = []
|
71
|
+
cancels = []
|
72
|
+
results = []
|
70
73
|
functions.each do |function|
|
71
74
|
print Paint["system", :bold, :red], " says: ", "\n"
|
72
75
|
print "function: ", function.name, "\n"
|
73
76
|
print "arguments: ", function.arguments, "\n"
|
74
|
-
|
75
|
-
input = $stdin.gets.chomp.downcase
|
77
|
+
input = Readline.readline("Do you want to call it ? ", true)
|
76
78
|
puts
|
77
79
|
if %w(y yes yep yeah ok).include?(input)
|
78
|
-
|
79
|
-
unread.tap { io.rewind }
|
80
|
+
callables << function
|
80
81
|
else
|
81
|
-
|
82
|
-
chat "I decided to not run the function this time. Maybe next time."
|
82
|
+
cancels << function
|
83
83
|
end
|
84
84
|
end
|
85
|
+
results.concat callables.map(&:call)
|
86
|
+
results.concat cancels.map(&:cancel)
|
87
|
+
bot.chat(results)
|
85
88
|
end
|
86
89
|
|
87
90
|
def emit
|
data/lib/llm/shell/version.rb
CHANGED
data/llm-shell.gemspec
CHANGED
@@ -28,10 +28,11 @@ Gem::Specification.new do |spec|
|
|
28
28
|
]
|
29
29
|
spec.require_paths = ["lib"]
|
30
30
|
spec.executables = ["llm-shell"]
|
31
|
-
spec.add_dependency "llm.rb", "~> 0.
|
31
|
+
spec.add_dependency "llm.rb", "~> 0.13"
|
32
32
|
spec.add_dependency "paint", "~> 2.1"
|
33
33
|
spec.add_dependency "redcarpet", "~> 3.6"
|
34
34
|
spec.add_dependency "coderay", "~> 1.1"
|
35
|
+
spec.add_dependency "reline", "~> 0.6"
|
35
36
|
spec.add_development_dependency "webmock", "~> 3.24.0"
|
36
37
|
spec.add_development_dependency "yard", "~> 0.9.37"
|
37
38
|
spec.add_development_dependency "kramdown", "~> 2.4"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: llm-shell
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Antar Azri
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.13'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.13'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: paint
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: reline
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.6'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.6'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: webmock
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -265,7 +279,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
265
279
|
- !ruby/object:Gem::Version
|
266
280
|
version: '0'
|
267
281
|
requirements: []
|
268
|
-
rubygems_version: 3.
|
282
|
+
rubygems_version: 3.6.9
|
269
283
|
specification_version: 4
|
270
284
|
summary: llm-shell is an extensible, developer-oriented command-line console that
|
271
285
|
can interact with multiple Large Language Models (LLMs).
|