raix 2.0.1 → 2.0.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/CHANGELOG.md +13 -0
- data/Gemfile.lock +4 -6
- data/lib/raix/chat_completion.rb +3 -3
- data/lib/raix/version.rb +1 -1
- metadata +2 -3
- data/raix.gemspec +0 -36
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 44058aeb590e21ead9e7db9ebdc9a4ecffc9f4771b75663e137b22ecca4cd7d2
|
|
4
|
+
data.tar.gz: c59475844e68ef02379d85f7dde02540a58e7659d6b44a7fb83db7f491998635
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 76c43e2109fc3ec1be374c2b5df9e024ad09274e2ece3df976eb6f961d022123453bb995f6f0680921df5f224c439cbd19ec8eac8d5acc201d80193541396509
|
|
7
|
+
data.tar.gz: c0ee5f840e83718168668cf844a2cb3e7969f2cd5e199235b8532049660aab0cf7750abcf0e8748ffda7427fee73c7739fc37060c739efc64bcf7b04867c9da5
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
## [Unreleased]
|
|
2
|
+
|
|
3
|
+
## [2.0.3] - 2026-04-30
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- `NoMethodError: undefined method 'strip' for nil` in `Raix::ChatCompletion` when an LLM (notably Gemini under certain stop conditions) returns a final assistant message with `"content": null`. Three call sites in `lib/raix/chat_completion.rb` now use `content.to_s.strip` so a nil response coerces to `""` instead of raising.
|
|
7
|
+
|
|
8
|
+
## [2.0.2] - 2026-03-27
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- 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
|
|
12
|
+
- Added gemspec-level safety net that normalizes file permissions at build time
|
|
13
|
+
|
|
1
14
|
## [2.0.1] - 2026-03-20
|
|
2
15
|
|
|
3
16
|
### Changed
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
raix (2.0.
|
|
4
|
+
raix (2.0.3)
|
|
5
5
|
activesupport (>= 6.0)
|
|
6
6
|
faraday-retry (~> 2.0)
|
|
7
7
|
ostruct
|
|
@@ -49,8 +49,8 @@ GEM
|
|
|
49
49
|
net-http
|
|
50
50
|
faraday-retry (2.4.0)
|
|
51
51
|
faraday (~> 2.0)
|
|
52
|
-
ffi (1.17.2)
|
|
53
52
|
ffi (1.17.2-arm64-darwin)
|
|
53
|
+
ffi (1.17.2-x86_64-linux-gnu)
|
|
54
54
|
formatador (1.1.0)
|
|
55
55
|
guard (2.18.1)
|
|
56
56
|
formatador (>= 0.2.4)
|
|
@@ -83,18 +83,16 @@ GEM
|
|
|
83
83
|
lumberjack (1.2.10)
|
|
84
84
|
marcel (1.1.0)
|
|
85
85
|
method_source (1.1.0)
|
|
86
|
-
mini_portile2 (2.8.9)
|
|
87
86
|
minitest (5.27.0)
|
|
88
87
|
multipart-post (2.4.1)
|
|
89
88
|
nenv (0.3.0)
|
|
90
89
|
net-http (0.4.1)
|
|
91
90
|
uri
|
|
92
91
|
netrc (0.11.0)
|
|
93
|
-
nokogiri (1.18.8)
|
|
94
|
-
mini_portile2 (~> 2.8.2)
|
|
95
|
-
racc (~> 1.4)
|
|
96
92
|
nokogiri (1.18.8-arm64-darwin)
|
|
97
93
|
racc (~> 1.4)
|
|
94
|
+
nokogiri (1.18.8-x86_64-linux-gnu)
|
|
95
|
+
racc (~> 1.4)
|
|
98
96
|
notiffany (0.1.3)
|
|
99
97
|
nenv (~> 0.1)
|
|
100
98
|
shellany (~> 0.0)
|
data/lib/raix/chat_completion.rb
CHANGED
|
@@ -174,7 +174,7 @@ module Raix
|
|
|
174
174
|
# Process the final response
|
|
175
175
|
content = response.dig("choices", 0, "message", "content")
|
|
176
176
|
transcript << { assistant: content } if save_response
|
|
177
|
-
return raw ? response : content.strip
|
|
177
|
+
return raw ? response : content.to_s.strip
|
|
178
178
|
end
|
|
179
179
|
|
|
180
180
|
# Dispatch tool calls
|
|
@@ -215,7 +215,7 @@ module Raix
|
|
|
215
215
|
|
|
216
216
|
content = response.dig("choices", 0, "message", "content")
|
|
217
217
|
transcript << { assistant: content } if save_response
|
|
218
|
-
return raw ? response : content.strip
|
|
218
|
+
return raw ? response : content.to_s.strip
|
|
219
219
|
end
|
|
220
220
|
end
|
|
221
221
|
|
|
@@ -223,7 +223,7 @@ module Raix
|
|
|
223
223
|
content = res.dig("choices", 0, "message", "content")
|
|
224
224
|
|
|
225
225
|
transcript << { assistant: content } if save_response
|
|
226
|
-
content = content.strip
|
|
226
|
+
content = content.to_s.strip
|
|
227
227
|
|
|
228
228
|
if json
|
|
229
229
|
# Make automatic JSON parsing available to non-OpenAI providers that don't support the response_format parameter
|
data/lib/raix/version.rb
CHANGED
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.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Obie Fernandez
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-
|
|
10
|
+
date: 2026-04-30 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: activesupport
|
|
@@ -114,7 +114,6 @@ files:
|
|
|
114
114
|
- lib/raix/response_format.rb
|
|
115
115
|
- lib/raix/transcript_adapter.rb
|
|
116
116
|
- lib/raix/version.rb
|
|
117
|
-
- raix.gemspec
|
|
118
117
|
- sig/raix.rbs
|
|
119
118
|
homepage: https://github.com/OlympiaAI/raix
|
|
120
119
|
licenses:
|
data/raix.gemspec
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
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
|