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.
- checksums.yaml +4 -4
- data/.agents/architecture.md +113 -0
- data/.agents/code-style.md +42 -0
- data/.agents/providers.md +46 -0
- data/.agents/rdoc.md +51 -0
- data/.agents/testing.md +56 -0
- data/.release-please-manifest.json +1 -1
- data/AGENTS.md +21 -308
- data/CHANGELOG.md +17 -0
- data/README.md +21 -112
- data/Rakefile +1 -1
- data/docs/01_OVERVIEW.md +106 -0
- data/docs/02_GETTING_STARTED.md +128 -0
- data/docs/03_AGENTS.md +226 -0
- data/docs/04_TOOLS.md +342 -0
- data/docs/05_MESSAGES.md +173 -0
- data/docs/06_STREAM_EVENTS.md +191 -0
- data/docs/07_CONFIGURATION.md +195 -0
- data/docs_providers/01_PROVIDERS.md +168 -0
- data/docs_providers/02_AMAZON_BEDROCK.md +196 -0
- data/docs_providers/03_ANTHROPIC.md +211 -0
- data/docs_providers/04_OPENAI.md +157 -0
- data/docs_providers/05_TEST_PROVIDER.md +163 -0
- data/docs_providers/06_CUSTOM_PROVIDERS.md +304 -0
- data/lib/riffer/agent.rb +103 -63
- data/lib/riffer/config.rb +20 -12
- data/lib/riffer/core.rb +7 -7
- data/lib/riffer/helpers/class_name_converter.rb +6 -3
- data/lib/riffer/helpers/dependencies.rb +18 -0
- data/lib/riffer/helpers/validations.rb +9 -0
- data/lib/riffer/messages/assistant.rb +23 -1
- data/lib/riffer/messages/base.rb +15 -0
- data/lib/riffer/messages/converter.rb +15 -5
- data/lib/riffer/messages/system.rb +8 -1
- data/lib/riffer/messages/tool.rb +45 -2
- data/lib/riffer/messages/user.rb +8 -1
- data/lib/riffer/messages.rb +7 -0
- data/lib/riffer/providers/amazon_bedrock.rb +8 -4
- data/lib/riffer/providers/anthropic.rb +209 -0
- data/lib/riffer/providers/base.rb +17 -12
- data/lib/riffer/providers/open_ai.rb +7 -1
- data/lib/riffer/providers/repository.rb +9 -4
- data/lib/riffer/providers/test.rb +25 -7
- data/lib/riffer/providers.rb +6 -0
- data/lib/riffer/stream_events/base.rb +13 -1
- data/lib/riffer/stream_events/reasoning_delta.rb +15 -1
- data/lib/riffer/stream_events/reasoning_done.rb +15 -1
- data/lib/riffer/stream_events/text_delta.rb +14 -1
- data/lib/riffer/stream_events/text_done.rb +14 -1
- data/lib/riffer/stream_events/tool_call_delta.rb +18 -11
- data/lib/riffer/stream_events/tool_call_done.rb +22 -12
- data/lib/riffer/stream_events.rb +9 -0
- data/lib/riffer/tool.rb +92 -25
- data/lib/riffer/tools/param.rb +19 -16
- data/lib/riffer/tools/params.rb +28 -22
- data/lib/riffer/tools/response.rb +90 -0
- data/lib/riffer/tools.rb +6 -0
- data/lib/riffer/version.rb +1 -1
- data/lib/riffer.rb +21 -21
- 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
|
data/lib/riffer/version.rb
CHANGED
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
|
-
#
|
|
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
|
-
#
|
|
26
|
-
# @api public
|
|
20
|
+
# Raised when invalid arguments are provided.
|
|
27
21
|
class ArgumentError < ::ArgumentError; end
|
|
28
22
|
|
|
29
|
-
#
|
|
30
|
-
# @api public
|
|
23
|
+
# Raised when tool parameter validation fails.
|
|
31
24
|
class ValidationError < Error; end
|
|
32
25
|
|
|
33
|
-
#
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
# Raised when tool execution times out.
|
|
27
|
+
class TimeoutError < Error; end
|
|
28
|
+
|
|
36
29
|
class << self
|
|
37
|
-
# Returns the Riffer configuration
|
|
38
|
-
#
|
|
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
|
-
#
|
|
45
|
-
#
|
|
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
|
-
#
|
|
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.
|
|
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
|