raix 2.0.0 → 2.0.2
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/CHANGELOG.md +11 -0
- data/Gemfile.lock +22 -16
- data/lib/raix/chat_completion.rb +0 -4
- data/lib/{mcp → raix/mcp}/sse_client.rb +0 -1
- data/lib/{mcp → raix/mcp}/stdio_client.rb +0 -1
- data/lib/raix/mcp.rb +0 -3
- data/lib/raix/version.rb +1 -1
- data/lib/raix.rb +6 -13
- data/raix.gemspec +43 -0
- metadata +20 -5
- /data/lib/{mcp → raix/mcp}/tool.rb +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 254c9a26d73389e655db17cf571ab2a47b54e6b2bc664741e0a260534d6d2537
|
|
4
|
+
data.tar.gz: f7846475556924487dc0206ba340f2c568a23e85ef4a0b2bd0504231c175f02a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8301e1d977df4f84c587da285890382856d7f1490845cec4b4ab19e955462680e55b1dc9263166250b5f2697eae8e4005939e2d12e1ab70ca2c8b6d81ea7e9d0
|
|
7
|
+
data.tar.gz: b30eb6832ab3a658a8bfcb6b7e6bf6d4349462d81dd35f79bab514be08104eee0712219b98169e692943413ad4bc47ad8e7a8883e74d1df47da48a59f9c41c4e
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
## [2.0.2] - 2026-03-27
|
|
2
|
+
|
|
3
|
+
### Fixed
|
|
4
|
+
- Ensure gem files are world-readable (644) for Docker deployments where gems are installed as root but the app runs as a non-root user
|
|
5
|
+
- Added gemspec-level safety net that normalizes file permissions at build time
|
|
6
|
+
|
|
7
|
+
## [2.0.1] - 2026-03-20
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- Replaced `require_relative` with Zeitwerk autoloading (thanks @seuros, PR #47)
|
|
11
|
+
|
|
1
12
|
## [2.0.0] - 2025-12-17
|
|
2
13
|
|
|
3
14
|
### Breaking Changes
|
data/Gemfile.lock
CHANGED
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
raix (2.0.
|
|
4
|
+
raix (2.0.1)
|
|
5
5
|
activesupport (>= 6.0)
|
|
6
6
|
faraday-retry (~> 2.0)
|
|
7
7
|
ostruct
|
|
8
8
|
ruby_llm (~> 1.9)
|
|
9
|
+
zeitwerk (~> 2.7)
|
|
9
10
|
|
|
10
11
|
GEM
|
|
11
12
|
remote: https://rubygems.org/
|
|
12
13
|
specs:
|
|
13
|
-
activesupport (7.
|
|
14
|
+
activesupport (7.2.3)
|
|
14
15
|
base64
|
|
16
|
+
benchmark (>= 0.3)
|
|
15
17
|
bigdecimal
|
|
16
|
-
concurrent-ruby (~> 1.0, >= 1.
|
|
18
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
17
19
|
connection_pool (>= 2.2.5)
|
|
18
20
|
drb
|
|
19
21
|
i18n (>= 1.6, < 2)
|
|
22
|
+
logger (>= 1.4.2)
|
|
20
23
|
minitest (>= 5.1)
|
|
21
|
-
|
|
22
|
-
tzinfo (~> 2.0)
|
|
24
|
+
securerandom (>= 0.3)
|
|
25
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
|
23
26
|
addressable (2.8.6)
|
|
24
27
|
public_suffix (>= 2.0.2, < 6.0)
|
|
25
28
|
ast (2.4.2)
|
|
@@ -40,14 +43,14 @@ GEM
|
|
|
40
43
|
event_stream_parser (1.0.0)
|
|
41
44
|
faraday (2.9.2)
|
|
42
45
|
faraday-net_http (>= 2.0, < 3.2)
|
|
43
|
-
faraday-multipart (1.0
|
|
44
|
-
multipart-post (~> 2)
|
|
46
|
+
faraday-multipart (1.2.0)
|
|
47
|
+
multipart-post (~> 2.0)
|
|
45
48
|
faraday-net_http (3.1.0)
|
|
46
49
|
net-http
|
|
47
|
-
faraday-retry (2.
|
|
50
|
+
faraday-retry (2.4.0)
|
|
48
51
|
faraday (~> 2.0)
|
|
52
|
+
ffi (1.17.2)
|
|
49
53
|
ffi (1.17.2-arm64-darwin)
|
|
50
|
-
ffi (1.17.2-x86_64-linux-gnu)
|
|
51
54
|
formatador (1.1.0)
|
|
52
55
|
guard (2.18.1)
|
|
53
56
|
formatador (>= 0.2.4)
|
|
@@ -76,19 +79,21 @@ GEM
|
|
|
76
79
|
listen (3.9.0)
|
|
77
80
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
78
81
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
82
|
+
logger (1.7.0)
|
|
79
83
|
lumberjack (1.2.10)
|
|
80
84
|
marcel (1.1.0)
|
|
81
85
|
method_source (1.1.0)
|
|
82
|
-
|
|
86
|
+
mini_portile2 (2.8.9)
|
|
87
|
+
minitest (5.27.0)
|
|
83
88
|
multipart-post (2.4.1)
|
|
84
|
-
mutex_m (0.2.0)
|
|
85
89
|
nenv (0.3.0)
|
|
86
90
|
net-http (0.4.1)
|
|
87
91
|
uri
|
|
88
92
|
netrc (0.11.0)
|
|
89
|
-
nokogiri (1.18.8
|
|
93
|
+
nokogiri (1.18.8)
|
|
94
|
+
mini_portile2 (~> 2.8.2)
|
|
90
95
|
racc (~> 1.4)
|
|
91
|
-
nokogiri (1.18.8-
|
|
96
|
+
nokogiri (1.18.8-arm64-darwin)
|
|
92
97
|
racc (~> 1.4)
|
|
93
98
|
notiffany (0.1.3)
|
|
94
99
|
nenv (~> 0.1)
|
|
@@ -144,17 +149,18 @@ GEM
|
|
|
144
149
|
rubocop-ast (1.31.2)
|
|
145
150
|
parser (>= 3.3.0.4)
|
|
146
151
|
ruby-progressbar (1.13.0)
|
|
147
|
-
ruby_llm (1.
|
|
152
|
+
ruby_llm (1.14.0)
|
|
148
153
|
base64
|
|
149
154
|
event_stream_parser (~> 1)
|
|
150
155
|
faraday (>= 1.10.0)
|
|
151
156
|
faraday-multipart (>= 1)
|
|
152
157
|
faraday-net_http (>= 1)
|
|
153
158
|
faraday-retry (>= 1)
|
|
154
|
-
marcel (~> 1
|
|
155
|
-
ruby_llm-schema (~> 0
|
|
159
|
+
marcel (~> 1)
|
|
160
|
+
ruby_llm-schema (~> 0)
|
|
156
161
|
zeitwerk (~> 2)
|
|
157
162
|
ruby_llm-schema (0.2.5)
|
|
163
|
+
securerandom (0.4.1)
|
|
158
164
|
shellany (0.0.1)
|
|
159
165
|
solargraph (0.50.0)
|
|
160
166
|
backport (~> 1.2)
|
data/lib/raix/chat_completion.rb
CHANGED
|
@@ -6,10 +6,6 @@ require "active_support/core_ext/string/filters"
|
|
|
6
6
|
require "active_support/core_ext/hash/indifferent_access"
|
|
7
7
|
require "ruby_llm"
|
|
8
8
|
|
|
9
|
-
require_relative "message_adapters/base"
|
|
10
|
-
require_relative "transcript_adapter"
|
|
11
|
-
require_relative "function_tool_adapter"
|
|
12
|
-
|
|
13
9
|
module Raix
|
|
14
10
|
class UndeclaredToolError < StandardError; end
|
|
15
11
|
|
data/lib/raix/mcp.rb
CHANGED
data/lib/raix/version.rb
CHANGED
data/lib/raix.rb
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require "ruby_llm"
|
|
4
|
+
require "zeitwerk"
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
require_relative "raix/configuration"
|
|
7
|
-
require_relative "raix/version"
|
|
8
|
-
require_relative "raix/transcript_adapter"
|
|
9
|
-
require_relative "raix/function_tool_adapter"
|
|
10
|
-
require_relative "raix/chat_completion"
|
|
11
|
-
require_relative "raix/function_dispatch"
|
|
12
|
-
require_relative "raix/prompt_declarations"
|
|
13
|
-
require_relative "raix/predicate"
|
|
14
|
-
require_relative "raix/response_format"
|
|
15
|
-
require_relative "raix/mcp"
|
|
16
|
-
|
|
17
|
-
# The Raix module provides configuration options for the Raix gem.
|
|
6
|
+
# Ruby AI eXtensions
|
|
18
7
|
module Raix
|
|
19
8
|
class << self
|
|
20
9
|
attr_writer :configuration
|
|
@@ -30,3 +19,7 @@ module Raix
|
|
|
30
19
|
yield(configuration)
|
|
31
20
|
end
|
|
32
21
|
end
|
|
22
|
+
|
|
23
|
+
loader = Zeitwerk::Loader.for_gem
|
|
24
|
+
loader.inflector.inflect("mcp" => "MCP")
|
|
25
|
+
loader.setup
|
data/raix.gemspec
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "lib/raix/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = "raix"
|
|
7
|
+
spec.version = Raix::VERSION
|
|
8
|
+
spec.authors = ["Obie Fernandez"]
|
|
9
|
+
spec.email = ["obiefernandez@gmail.com"]
|
|
10
|
+
|
|
11
|
+
spec.summary = "Ruby AI eXtensions"
|
|
12
|
+
spec.homepage = "https://github.com/OlympiaAI/raix"
|
|
13
|
+
spec.license = "MIT"
|
|
14
|
+
spec.required_ruby_version = ">= 3.2.2"
|
|
15
|
+
|
|
16
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
17
|
+
spec.metadata["source_code_uri"] = "https://github.com/OlympiaAI/raix"
|
|
18
|
+
spec.metadata["changelog_uri"] = "https://github.com/OlympiaAI/raix/blob/main/CHANGELOG.md"
|
|
19
|
+
|
|
20
|
+
# Specify which files should be added to the gem when it is released.
|
|
21
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
22
|
+
spec.files = Dir.chdir(__dir__) do
|
|
23
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
|
24
|
+
(File.expand_path(f) == __FILE__) || f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor])
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Ensure all gem files are world-readable so they work in Docker containers
|
|
29
|
+
# where gems are installed as root but the app runs as a non-root user.
|
|
30
|
+
spec.files.each do |f|
|
|
31
|
+
path = File.join(__dir__, f)
|
|
32
|
+
File.chmod(0o644, path) if File.file?(path) && !File.executable?(path)
|
|
33
|
+
end
|
|
34
|
+
spec.bindir = "exe"
|
|
35
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
36
|
+
spec.require_paths = ["lib"]
|
|
37
|
+
|
|
38
|
+
spec.add_dependency "activesupport", ">= 6.0"
|
|
39
|
+
spec.add_dependency "faraday-retry", "~> 2.0"
|
|
40
|
+
spec.add_dependency "ostruct"
|
|
41
|
+
spec.add_dependency "ruby_llm", "~> 1.9"
|
|
42
|
+
spec.add_dependency "zeitwerk", "~> 2.7"
|
|
43
|
+
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: raix
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Obie Fernandez
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 2026-03-27 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: activesupport
|
|
@@ -65,6 +65,20 @@ dependencies:
|
|
|
65
65
|
- - "~>"
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
67
|
version: '1.9'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: zeitwerk
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '2.7'
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '2.7'
|
|
68
82
|
email:
|
|
69
83
|
- obiefernandez@gmail.com
|
|
70
84
|
executables: []
|
|
@@ -84,9 +98,6 @@ files:
|
|
|
84
98
|
- README.llm
|
|
85
99
|
- README.md
|
|
86
100
|
- Rakefile
|
|
87
|
-
- lib/mcp/sse_client.rb
|
|
88
|
-
- lib/mcp/stdio_client.rb
|
|
89
|
-
- lib/mcp/tool.rb
|
|
90
101
|
- lib/raix.rb
|
|
91
102
|
- lib/raix/chat_completion.rb
|
|
92
103
|
- lib/raix/completion_context.rb
|
|
@@ -94,12 +105,16 @@ files:
|
|
|
94
105
|
- lib/raix/function_dispatch.rb
|
|
95
106
|
- lib/raix/function_tool_adapter.rb
|
|
96
107
|
- lib/raix/mcp.rb
|
|
108
|
+
- lib/raix/mcp/sse_client.rb
|
|
109
|
+
- lib/raix/mcp/stdio_client.rb
|
|
110
|
+
- lib/raix/mcp/tool.rb
|
|
97
111
|
- lib/raix/message_adapters/base.rb
|
|
98
112
|
- lib/raix/predicate.rb
|
|
99
113
|
- lib/raix/prompt_declarations.rb
|
|
100
114
|
- lib/raix/response_format.rb
|
|
101
115
|
- lib/raix/transcript_adapter.rb
|
|
102
116
|
- lib/raix/version.rb
|
|
117
|
+
- raix.gemspec
|
|
103
118
|
- sig/raix.rbs
|
|
104
119
|
homepage: https://github.com/OlympiaAI/raix
|
|
105
120
|
licenses:
|
|
File without changes
|