ruby_llm_swarm 1.9.2 → 1.9.3
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/lib/ruby_llm/aliases.json +3 -287
- data/lib/ruby_llm/connection.rb +2 -1
- data/lib/ruby_llm/models.json +1906 -30771
- data/lib/ruby_llm/provider.rb +2 -0
- data/lib/ruby_llm/version.rb +1 -1
- data/lib/ruby_llm.rb +29 -0
- metadata +1 -1
data/lib/ruby_llm/provider.rb
CHANGED
data/lib/ruby_llm/version.rb
CHANGED
data/lib/ruby_llm.rb
CHANGED
|
@@ -12,6 +12,35 @@ require 'securerandom'
|
|
|
12
12
|
require 'zeitwerk'
|
|
13
13
|
require 'async/http/faraday/default'
|
|
14
14
|
|
|
15
|
+
# Monkey-patch io-endpoint to handle EHOSTUNREACH (IPv6 unreachable)
|
|
16
|
+
# This fixes an issue where the async adapter fails on IPv6 without trying IPv4
|
|
17
|
+
# See: https://github.com/socketry/io-endpoint/issues/XXX
|
|
18
|
+
module IO::Endpoint
|
|
19
|
+
class HostEndpoint < Generic
|
|
20
|
+
def connect(wrapper = self.wrapper, &block)
|
|
21
|
+
last_error = nil
|
|
22
|
+
|
|
23
|
+
Addrinfo.foreach(*@specification) do |address|
|
|
24
|
+
begin
|
|
25
|
+
socket = wrapper.connect(address, **@options)
|
|
26
|
+
rescue Errno::ECONNREFUSED, Errno::ENETUNREACH, Errno::EHOSTUNREACH, Errno::EAGAIN => last_error
|
|
27
|
+
# Try next address
|
|
28
|
+
else
|
|
29
|
+
return socket unless block_given?
|
|
30
|
+
|
|
31
|
+
begin
|
|
32
|
+
return yield(socket)
|
|
33
|
+
ensure
|
|
34
|
+
socket.close
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
raise last_error
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
15
44
|
loader = Zeitwerk::Loader.for_gem
|
|
16
45
|
loader.inflector.inflect(
|
|
17
46
|
'ruby_llm' => 'RubyLLM',
|