riffer 0.7.0 → 0.9.0

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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.agents/architecture.md +113 -0
  3. data/.agents/code-style.md +42 -0
  4. data/.agents/providers.md +46 -0
  5. data/.agents/rdoc.md +51 -0
  6. data/.agents/testing.md +56 -0
  7. data/.release-please-manifest.json +1 -1
  8. data/AGENTS.md +21 -308
  9. data/CHANGELOG.md +17 -0
  10. data/README.md +21 -112
  11. data/Rakefile +1 -1
  12. data/docs/01_OVERVIEW.md +106 -0
  13. data/docs/02_GETTING_STARTED.md +128 -0
  14. data/docs/03_AGENTS.md +226 -0
  15. data/docs/04_TOOLS.md +342 -0
  16. data/docs/05_MESSAGES.md +173 -0
  17. data/docs/06_STREAM_EVENTS.md +191 -0
  18. data/docs/07_CONFIGURATION.md +195 -0
  19. data/docs_providers/01_PROVIDERS.md +168 -0
  20. data/docs_providers/02_AMAZON_BEDROCK.md +196 -0
  21. data/docs_providers/03_ANTHROPIC.md +211 -0
  22. data/docs_providers/04_OPENAI.md +157 -0
  23. data/docs_providers/05_TEST_PROVIDER.md +163 -0
  24. data/docs_providers/06_CUSTOM_PROVIDERS.md +304 -0
  25. data/lib/riffer/agent.rb +103 -63
  26. data/lib/riffer/config.rb +20 -12
  27. data/lib/riffer/core.rb +7 -7
  28. data/lib/riffer/helpers/class_name_converter.rb +6 -3
  29. data/lib/riffer/helpers/dependencies.rb +18 -0
  30. data/lib/riffer/helpers/validations.rb +9 -0
  31. data/lib/riffer/messages/assistant.rb +23 -1
  32. data/lib/riffer/messages/base.rb +15 -0
  33. data/lib/riffer/messages/converter.rb +15 -5
  34. data/lib/riffer/messages/system.rb +8 -1
  35. data/lib/riffer/messages/tool.rb +45 -2
  36. data/lib/riffer/messages/user.rb +8 -1
  37. data/lib/riffer/messages.rb +7 -0
  38. data/lib/riffer/providers/amazon_bedrock.rb +8 -4
  39. data/lib/riffer/providers/anthropic.rb +209 -0
  40. data/lib/riffer/providers/base.rb +17 -12
  41. data/lib/riffer/providers/open_ai.rb +7 -1
  42. data/lib/riffer/providers/repository.rb +9 -4
  43. data/lib/riffer/providers/test.rb +25 -7
  44. data/lib/riffer/providers.rb +6 -0
  45. data/lib/riffer/stream_events/base.rb +13 -1
  46. data/lib/riffer/stream_events/reasoning_delta.rb +15 -1
  47. data/lib/riffer/stream_events/reasoning_done.rb +15 -1
  48. data/lib/riffer/stream_events/text_delta.rb +14 -1
  49. data/lib/riffer/stream_events/text_done.rb +14 -1
  50. data/lib/riffer/stream_events/tool_call_delta.rb +18 -11
  51. data/lib/riffer/stream_events/tool_call_done.rb +22 -12
  52. data/lib/riffer/stream_events.rb +9 -0
  53. data/lib/riffer/tool.rb +92 -25
  54. data/lib/riffer/tools/param.rb +19 -16
  55. data/lib/riffer/tools/params.rb +28 -22
  56. data/lib/riffer/tools/response.rb +90 -0
  57. data/lib/riffer/tools.rb +6 -0
  58. data/lib/riffer/version.rb +1 -1
  59. data/lib/riffer.rb +21 -21
  60. metadata +35 -1
data/lib/riffer/tools.rb CHANGED
@@ -1,4 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # Namespace for tool-related classes in the Riffer framework.
4
+ #
5
+ # Contains:
6
+ # - Riffer::Tools::Param - Individual parameter definition
7
+ # - Riffer::Tools::Params - DSL for defining tool parameters
8
+ # - Riffer::Tools::Response - Required return type for tool execution
3
9
  module Riffer::Tools
4
10
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Riffer
4
- VERSION = "0.7.0"
4
+ VERSION = "0.9.0"
5
5
  end
data/lib/riffer.rb CHANGED
@@ -2,15 +2,11 @@
2
2
 
3
3
  require "zeitwerk"
4
4
 
5
- # :nodoc:
6
5
  # Riffer is the main module for the Riffer AI framework.
7
6
  #
8
7
  # Provides configuration, error classes, and versioning for the gem.
9
8
  #
10
- # @see Riffer::Config
11
- # @see Riffer::Agent
12
- # @see Riffer::Providers
13
- # @see Riffer::Messages
9
+ # See Riffer::Config, Riffer::Agent, Riffer::Providers, and Riffer::Messages.
14
10
  loader = Zeitwerk::Loader.for_gem
15
11
  loader.inflector.inflect(
16
12
  "open_ai" => "OpenAI"
@@ -18,37 +14,41 @@ loader.inflector.inflect(
18
14
  loader.setup
19
15
 
20
16
  module Riffer
21
- # Base error for Riffer
22
- # @api public
17
+ # Base error class for Riffer.
23
18
  class Error < StandardError; end
24
19
 
25
- # Argument error for Riffer
26
- # @api public
20
+ # Raised when invalid arguments are provided.
27
21
  class ArgumentError < ::ArgumentError; end
28
22
 
29
- # Validation error for tool parameter validation
30
- # @api public
23
+ # Raised when tool parameter validation fails.
31
24
  class ValidationError < Error; end
32
25
 
33
- # Provides configuration and versioning methods for Riffer
34
- #
35
- # @!group Configuration
26
+ # Raised when tool execution times out.
27
+ class TimeoutError < Error; end
28
+
36
29
  class << self
37
- # Returns the Riffer configuration
38
- # @return [Riffer::Config]
30
+ # Returns the Riffer configuration.
31
+ #
32
+ # Returns Riffer::Config.
39
33
  def config
40
34
  @config ||= Config.new
41
35
  end
42
36
 
43
- # Yields the configuration for block-based setup
44
- # @yieldparam config [Riffer::Config] the configuration object
45
- # @return [void]
37
+ # Yields the configuration for block-based setup.
38
+ #
39
+ # Yields config (Riffer::Config) to the block.
40
+ #
41
+ # Riffer.configure do |config|
42
+ # config.openai.api_key = ENV['OPENAI_API_KEY']
43
+ # end
44
+ #
46
45
  def configure
47
46
  yield config if block_given?
48
47
  end
49
48
 
50
- # Returns the gem version
51
- # @return [String] the version string
49
+ # Returns the gem version.
50
+ #
51
+ # Returns String.
52
52
  def version
53
53
  VERSION
54
54
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riffer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Bottrall
@@ -29,6 +29,20 @@ dependencies:
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
31
  version: 2.6.0
32
+ - !ruby/object:Gem::Dependency
33
+ name: anthropic
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - "~>"
37
+ - !ruby/object:Gem::Version
38
+ version: 1.16.3
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - "~>"
44
+ - !ruby/object:Gem::Version
45
+ version: 1.16.3
32
46
  - !ruby/object:Gem::Dependency
33
47
  name: aws-sdk-bedrockruntime
34
48
  requirement: !ruby/object:Gem::Requirement
@@ -139,6 +153,11 @@ extra_rdoc_files:
139
153
  - LICENSE.txt
140
154
  - README.md
141
155
  files:
156
+ - ".agents/architecture.md"
157
+ - ".agents/code-style.md"
158
+ - ".agents/providers.md"
159
+ - ".agents/rdoc.md"
160
+ - ".agents/testing.md"
142
161
  - ".release-please-config.json"
143
162
  - ".release-please-manifest.json"
144
163
  - ".ruby-version"
@@ -149,6 +168,19 @@ files:
149
168
  - LICENSE.txt
150
169
  - README.md
151
170
  - Rakefile
171
+ - docs/01_OVERVIEW.md
172
+ - docs/02_GETTING_STARTED.md
173
+ - docs/03_AGENTS.md
174
+ - docs/04_TOOLS.md
175
+ - docs/05_MESSAGES.md
176
+ - docs/06_STREAM_EVENTS.md
177
+ - docs/07_CONFIGURATION.md
178
+ - docs_providers/01_PROVIDERS.md
179
+ - docs_providers/02_AMAZON_BEDROCK.md
180
+ - docs_providers/03_ANTHROPIC.md
181
+ - docs_providers/04_OPENAI.md
182
+ - docs_providers/05_TEST_PROVIDER.md
183
+ - docs_providers/06_CUSTOM_PROVIDERS.md
152
184
  - lib/riffer.rb
153
185
  - lib/riffer/agent.rb
154
186
  - lib/riffer/config.rb
@@ -165,6 +197,7 @@ files:
165
197
  - lib/riffer/messages/user.rb
166
198
  - lib/riffer/providers.rb
167
199
  - lib/riffer/providers/amazon_bedrock.rb
200
+ - lib/riffer/providers/anthropic.rb
168
201
  - lib/riffer/providers/base.rb
169
202
  - lib/riffer/providers/open_ai.rb
170
203
  - lib/riffer/providers/repository.rb
@@ -181,6 +214,7 @@ files:
181
214
  - lib/riffer/tools.rb
182
215
  - lib/riffer/tools/param.rb
183
216
  - lib/riffer/tools/params.rb
217
+ - lib/riffer/tools/response.rb
184
218
  - lib/riffer/version.rb
185
219
  - sig/riffer.rbs
186
220
  homepage: https://riffer.ai