omniai-anthropic 2.2.0 → 2.4.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: 01ccd0fcd0d33004c8a3f553f02d98dad9eb45830ea20382390331017a52bfbd
4
- data.tar.gz: 8b0dd8c4dd5a8e561b273be8d7cef6258a59a81bd082d8f2a1fefe015ddccdf7
3
+ metadata.gz: ba39f37eaecb8670c5587d84aa62eacd92c72c5be5ddb02c63d1db7fadb4ab3e
4
+ data.tar.gz: eb002004f145d04eff365de6edc223a67af8aac264987088449ff4eaa60b76fb
5
5
  SHA512:
6
- metadata.gz: d390e445637a515eee0437b193943a35faef8d70b65b7c93e58f0ed2893c6466787b10882896adfde878527d33d6fdd03394ccecbb8bc08897ad46312b4ab1f5
7
- data.tar.gz: 47f551fec380f7dca59480556c669a7c0eec5d12948942a57b452334141c1ae90d719e43420be62809a190e5d97224d4867636ed2db347ab8e19616aab8a4a14
6
+ metadata.gz: d5be2691e742f3e3be9743943c45f2941566d09814d5605bffc874e1c2b81cc3c1f761b8657069af243094a78ae59c18c2c717c866e01493215bb3359184fb05
7
+ data.tar.gz: 9516a220c04e57dabbf59f38ef4deeab2369dae46af99a88daa1e0767850624e60a633599950e94c2ceb76d20778d40f693d9fd0445f974ec7fbbfdccccab4c9
data/Gemfile CHANGED
@@ -6,6 +6,7 @@ gemspec
6
6
 
7
7
  gem "logger"
8
8
  gem "rake"
9
+ gem "redcarpet"
9
10
  gem "rspec"
10
11
  gem "rspec_junit_formatter"
11
12
  gem "rubocop"
@@ -3,13 +3,13 @@
3
3
  module OmniAI
4
4
  module Anthropic
5
5
  class Chat
6
- # Overrides media serialize / deserialize.
7
- module MediaSerializer
6
+ # Overrides file serialize / deserialize.
7
+ module FileSerializer
8
8
  # @param media [OmniAI::Chat::Media]
9
9
  # @return [Hash]
10
10
  def self.serialize(media, *)
11
11
  {
12
- type: media.kind, # i.e. 'image' / 'video' / 'audio' / ...
12
+ type: media.kind, # i.e. 'image' / 'video' / 'audio' / 'document' / ...
13
13
  source: {
14
14
  type: "base64",
15
15
  media_type: media.type, # i.e. 'image/jpeg' / 'video/ogg' / 'audio/mpeg' / ...
@@ -144,7 +144,7 @@ module OmniAI
144
144
 
145
145
  # Handler for Type::CONTENT_BLOCK_STOP
146
146
  #
147
- # @param _data [Hash]
147
+ # @param data [Hash]
148
148
  def content_block_stop(data)
149
149
  index = data["index"]
150
150
  content = @data["content"][index]
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OmniAI
4
+ module Anthropic
5
+ class Chat
6
+ # Overrides url serialize / deserialize.
7
+ module URLSerializer
8
+ # @param url [OmniAI::Chat::Media]
9
+ # @return [Hash]
10
+ def self.serialize(url, *)
11
+ {
12
+ type: url.kind, # i.e. 'image' / 'video' / 'audio' / 'document' / ...
13
+ source: {
14
+ type: "url",
15
+ url: url.uri,
16
+ },
17
+ }
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -42,8 +42,8 @@ module OmniAI
42
42
  CONTEXT = Context.build do |context|
43
43
  context.serializers[:tool] = ToolSerializer.method(:serialize)
44
44
 
45
- context.serializers[:file] = MediaSerializer.method(:serialize)
46
- context.serializers[:url] = MediaSerializer.method(:serialize)
45
+ context.serializers[:file] = FileSerializer.method(:serialize)
46
+ context.serializers[:url] = URLSerializer.method(:serialize)
47
47
 
48
48
  context.serializers[:choice] = ChoiceSerializer.method(:serialize)
49
49
  context.deserializers[:choice] = ChoiceSerializer.method(:deserialize)
@@ -117,8 +117,6 @@ module OmniAI
117
117
  "stdout=#{stdout.inspect} stderr=#{stderr.inspect} status=#{status}"
118
118
  end
119
119
 
120
- # @param cmd [String]
121
- #
122
120
  # @return [String]
123
121
  def xdotool(...)
124
122
  shell("xdotool", ...)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OmniAI
4
4
  module Anthropic
5
- VERSION = "2.2.0"
5
+ VERSION = "2.4.1"
6
6
  end
7
7
  end
@@ -6,6 +6,7 @@ require "zeitwerk"
6
6
 
7
7
  loader = Zeitwerk::Loader.for_gem
8
8
  loader.push_dir(__dir__, namespace: OmniAI)
9
+ loader.inflector.inflect "url_serializer" => "URLSerializer"
9
10
  loader.setup
10
11
 
11
12
  module OmniAI
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniai-anthropic
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Sylvestre
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-03-28 00:00:00.000000000 Z
10
+ date: 2025-04-23 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: event_stream_parser
@@ -29,14 +29,14 @@ dependencies:
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '2.2'
32
+ version: '2.4'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '2.2'
39
+ version: '2.4'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: zeitwerk
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -64,8 +64,8 @@ files:
64
64
  - lib/omniai/anthropic/chat.rb
65
65
  - lib/omniai/anthropic/chat/choice_serializer.rb
66
66
  - lib/omniai/anthropic/chat/content_serializer.rb
67
+ - lib/omniai/anthropic/chat/file_serializer.rb
67
68
  - lib/omniai/anthropic/chat/function_serializer.rb
68
- - lib/omniai/anthropic/chat/media_serializer.rb
69
69
  - lib/omniai/anthropic/chat/message_serializer.rb
70
70
  - lib/omniai/anthropic/chat/response_serializer.rb
71
71
  - lib/omniai/anthropic/chat/stream.rb
@@ -73,6 +73,7 @@ files:
73
73
  - lib/omniai/anthropic/chat/tool_call_result_serializer.rb
74
74
  - lib/omniai/anthropic/chat/tool_call_serializer.rb
75
75
  - lib/omniai/anthropic/chat/tool_serializer.rb
76
+ - lib/omniai/anthropic/chat/url_serializer.rb
76
77
  - lib/omniai/anthropic/client.rb
77
78
  - lib/omniai/anthropic/computer.rb
78
79
  - lib/omniai/anthropic/config.rb