omniai 2.8.3 → 2.8.4

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: 37bf696e25507734a39d98d3d17666a65e748fe0f3b63b3b5469270c91851e33
4
- data.tar.gz: 71fe1fa42b566d2b3173fd58c08983d07956ebd05fdc30b9970c44c456cc3e94
3
+ metadata.gz: 533dd085c62bb70b08d71d16025423b981d96cbffe7a1280072908f175800d28
4
+ data.tar.gz: c40684be74123a132c11ecc70a620ee49d4b6e949daf08f91c8f5a360d0ea56f
5
5
  SHA512:
6
- metadata.gz: c1b49be9e006dab6c28a63620ee853141059b9ff27774a62347f5283bdea58f79867c8cbcc41a3e08e1203f77e7f3464410f7b92b80708c97dfcf61484f46c27
7
- data.tar.gz: ac59249678da47bf2207b2fa1d204d525b31a0c0bfabebebcf873c3910ab35433e51c60dceaf9d4fcedd6562953d8f997d3458e018edc4ed9ca5064cf23f40c4
6
+ metadata.gz: 355abe067bdc6a6156300ea305b441a14388239506565a753f12dfc7824fe2d1a7acee4772fe8556fec5dbee2a9a3a9e25506ddb9faa7d78d3838bf647d17424
7
+ data.tar.gz: 03d292f24d8345c4f4043f185b4c5e01ce09894afc7e9cd72e81f251cd9c394c8af2165f2c054bcb0cff60f50f75498efb90f4eb79e724e829b86561420819ff
@@ -19,6 +19,8 @@ module OmniAI
19
19
 
20
20
  # @param transport [OmniAI::MCP::Transport]
21
21
  def run(transport: OmniAI::MCP::Transport::Stdio.new)
22
+ @logger&.info("#{self.class}#run: running")
23
+
22
24
  loop do
23
25
  message = transport.gets
24
26
  break if message.nil?
@@ -29,9 +31,9 @@ module OmniAI
29
31
 
30
32
  transport.puts(response) if response
31
33
  end
32
- end
33
34
 
34
- private
35
+ @logger&.info("#{self.class}#run: finished")
36
+ end
35
37
 
36
38
  # @param message [String]
37
39
  #
@@ -68,7 +70,9 @@ module OmniAI
68
70
  name: @name,
69
71
  version: @version,
70
72
  },
71
- capabilities: {},
73
+ capabilities: {
74
+ tools: { listChanged: true },
75
+ },
72
76
  })
73
77
  end
74
78
 
@@ -84,7 +88,7 @@ module OmniAI
84
88
  #
85
89
  # @return [JRPC::Response]
86
90
  def process_tools_list(request:)
87
- result = @tools.map do |tool|
91
+ tools = @tools.map do |tool|
88
92
  {
89
93
  name: tool.name,
90
94
  description: tool.description,
@@ -92,7 +96,7 @@ module OmniAI
92
96
  }
93
97
  end
94
98
 
95
- JRPC::Response.new(id: request.id, result:)
99
+ JRPC::Response.new(id: request.id, result: { tools: })
96
100
  end
97
101
 
98
102
  # @param request [JRPC::Request]
@@ -104,14 +108,21 @@ module OmniAI
104
108
  name = request.params["name"]
105
109
  tool = @tools.find { |tool| tool.name.eql?(name) }
106
110
 
107
- result =
111
+ text =
108
112
  begin
109
- tool.call(request.params["input"])
113
+ tool.call(request.params["arguments"])
110
114
  rescue StandardError => e
111
115
  raise JRPC::Error.new(code: JRPC::Error::Code::INTERNAL_ERROR, message: e.message)
112
116
  end
113
117
 
114
- JRPC::Response.new(id: request.id, result:)
118
+ JRPC::Response.new(id: request.id, result: {
119
+ content: [
120
+ {
121
+ type: "text",
122
+ text:,
123
+ },
124
+ ],
125
+ })
115
126
  end
116
127
  end
117
128
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OmniAI
4
+ # An error that wraps a JSON::ParserError when using schemas.
5
+ class ParseError < Error
6
+ end
7
+ end
@@ -62,9 +62,13 @@ module OmniAI
62
62
  #
63
63
  # @param text [String]
64
64
  #
65
+ # @raise OmniAI::ParseError
66
+ #
65
67
  # @return [Hash]
66
68
  def parse(text)
67
69
  schema.parse(JSON.parse(text))
70
+ rescue JSON::ParserError => e
71
+ raise OmniAI::ParseError, "Unable to parse JSON text=#{text.inspect} message=#{e.message.inspect}."
68
72
  end
69
73
  end
70
74
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OmniAI
4
- VERSION = "2.8.3"
4
+ VERSION = "2.8.4"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniai
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.3
4
+ version: 2.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Sylvestre
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-06-10 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: base64
@@ -136,6 +136,7 @@ files:
136
136
  - lib/omniai/mcp/server.rb
137
137
  - lib/omniai/mcp/transport/base.rb
138
138
  - lib/omniai/mcp/transport/stdio.rb
139
+ - lib/omniai/parse_error.rb
139
140
  - lib/omniai/schema.rb
140
141
  - lib/omniai/schema/array.rb
141
142
  - lib/omniai/schema/format.rb
@@ -168,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
169
  - !ruby/object:Gem::Version
169
170
  version: '0'
170
171
  requirements: []
171
- rubygems_version: 3.6.3
172
+ rubygems_version: 3.7.2
172
173
  specification_version: 4
173
174
  summary: A generalized framework for interacting with many AI services
174
175
  test_files: []