raix 2.0.0 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a72cfc7cfe3564db566d644088ca64b8076898a87517da3d2a124123027717a8
4
- data.tar.gz: e956d819cc90487a26abc5d1005ef4311d010f95fe101cc45047af331129b747
3
+ metadata.gz: 101c916df93e569b21330ea028dafac8d095021a7c2c27bb91a911fffc55bc29
4
+ data.tar.gz: 1b4498f818350fab8823a66535334f24f2b89ede02d79cadcc23e052e3cd0dcb
5
5
  SHA512:
6
- metadata.gz: 144cc757f49905ba32b5928a31a60449d8013390d365b9e16b6d88ef0e8c4eb30188a5c96fe3099890e957abae087aef00bc35a578f3ffa5d4b009103219f3cf
7
- data.tar.gz: eca2ca58a34345fc785066482f0b00871cb105e02ff3edae3e3471b5e813fd9e15737bf5e6676374d78d961be64f170c0adc9e62cc285713aff4c90dd5f148ab
6
+ metadata.gz: e5953aa12e7918e5b0266e23017c5c11874d919c4b83a10403c10a75d6998c2d8f2d3f8a11ab3d6abcf996f0ee30d827a564bd9ed5fd5862f673c689c6e8a06a
7
+ data.tar.gz: 41aabaa233555d191a02628055465e5759aea86de69c321ff43145b6ddcc1714d5c2828ebf659d7f4773e6de8d04ec647435c5c7e1a001b196bea7c6dee8c0f7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [2.0.1] - 2026-03-20
2
+
3
+ ### Changed
4
+ - Replaced `require_relative` with Zeitwerk autoloading (thanks @seuros, PR #47)
5
+
1
6
  ## [2.0.0] - 2025-12-17
2
7
 
3
8
  ### Breaking Changes
data/Gemfile.lock CHANGED
@@ -1,25 +1,28 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- raix (2.0.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.1.3.4)
14
+ activesupport (7.2.3)
14
15
  base64
16
+ benchmark (>= 0.3)
15
17
  bigdecimal
16
- concurrent-ruby (~> 1.0, >= 1.0.2)
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
- mutex_m
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.4)
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.3.1)
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
- minitest (5.24.0)
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-arm64-darwin)
93
+ nokogiri (1.18.8)
94
+ mini_portile2 (~> 2.8.2)
90
95
  racc (~> 1.4)
91
- nokogiri (1.18.8-x86_64-linux-gnu)
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.9.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.0)
155
- ruby_llm-schema (~> 0.2.1)
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)
@@ -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
 
@@ -1,4 +1,3 @@
1
- require_relative "tool"
2
1
  require "json"
3
2
  require "securerandom"
4
3
  require "faraday"
@@ -1,4 +1,3 @@
1
- require_relative "tool"
2
1
  require "json"
3
2
  require "securerandom"
4
3
  require "digest"
data/lib/raix/mcp.rb CHANGED
@@ -16,9 +16,6 @@ require "active_support/inflector"
16
16
  require "securerandom"
17
17
  require "uri"
18
18
 
19
- require_relative "../mcp/sse_client"
20
- require_relative "../mcp/stdio_client"
21
-
22
19
  module Raix
23
20
  # Model Context Protocol integration for Raix
24
21
  #
data/lib/raix/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Raix
4
- VERSION = "2.0.0"
4
+ VERSION = "2.0.1"
5
5
  end
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
- require_relative "raix/completion_context"
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,36 @@
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
+ spec.bindir = "exe"
28
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ["lib"]
30
+
31
+ spec.add_dependency "activesupport", ">= 6.0"
32
+ spec.add_dependency "faraday-retry", "~> 2.0"
33
+ spec.add_dependency "ostruct"
34
+ spec.add_dependency "ruby_llm", "~> 1.9"
35
+ spec.add_dependency "zeitwerk", "~> 2.7"
36
+ 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.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Obie Fernandez
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-12-17 00:00:00.000000000 Z
10
+ date: 2026-03-20 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