riffer 0.47.1 → 0.47.2
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/.claude/rules/rbs-inline.md +5 -1
- data/.release-please-manifest.json +1 -1
- data/CHANGELOG.md +8 -0
- data/Rakefile +1 -1
- data/Steepfile +1 -15
- data/docs/AGENTS.md +1 -1
- data/docs/STREAM_EVENTS.md +23 -0
- data/docs/providers/CUSTOM_PROVIDERS.md +2 -0
- data/lib/riffer/agent/config.rb +11 -11
- data/lib/riffer/agent/outcome.rb +2 -2
- data/lib/riffer/agent/response.rb +9 -9
- data/lib/riffer/agent/run.rb +0 -1
- data/lib/riffer/agent/session.rb +1 -1
- data/lib/riffer/agent/structured_output/result.rb +2 -2
- data/lib/riffer/agent/structured_output.rb +1 -1
- data/lib/riffer/agent.rb +11 -11
- data/lib/riffer/config.rb +30 -30
- data/lib/riffer/evals/judge.rb +2 -3
- data/lib/riffer/evals/result.rb +6 -6
- data/lib/riffer/evals/run_result.rb +1 -1
- data/lib/riffer/evals/scenario_result.rb +6 -6
- data/lib/riffer/guardrails/modification.rb +3 -3
- data/lib/riffer/guardrails/result.rb +3 -3
- data/lib/riffer/guardrails/runner.rb +4 -4
- data/lib/riffer/guardrails/tripwire.rb +4 -4
- data/lib/riffer/mcp/manifest.rb +5 -5
- data/lib/riffer/mcp/registration.rb +1 -1
- data/lib/riffer/mcp/search_tool.rb +1 -1
- data/lib/riffer/messages/assistant.rb +5 -5
- data/lib/riffer/messages/base.rb +2 -4
- data/lib/riffer/messages/file_part.rb +4 -7
- data/lib/riffer/messages/tool.rb +4 -4
- data/lib/riffer/messages/user.rb +1 -1
- data/lib/riffer/params/param.rb +8 -8
- data/lib/riffer/params.rb +1 -1
- data/lib/riffer/providers/amazon_bedrock.rb +29 -2
- data/lib/riffer/providers/anthropic.rb +7 -0
- data/lib/riffer/providers/base.rb +1 -2
- data/lib/riffer/providers/finish_reason.rb +2 -2
- data/lib/riffer/providers/mock.rb +1 -1
- data/lib/riffer/providers/open_ai.rb +8 -0
- data/lib/riffer/providers/repository.rb +0 -4
- data/lib/riffer/providers/token_usage.rb +5 -5
- data/lib/riffer/skills/adapter.rb +1 -1
- data/lib/riffer/skills/context.rb +4 -7
- data/lib/riffer/skills/filesystem_backend.rb +1 -2
- data/lib/riffer/skills/frontmatter.rb +4 -4
- data/lib/riffer/skills/xml_adapter.rb +1 -1
- data/lib/riffer/stream_events/base.rb +1 -1
- data/lib/riffer/stream_events/finish_reason_done.rb +2 -2
- data/lib/riffer/stream_events/guardrail_modification.rb +1 -1
- data/lib/riffer/stream_events/guardrail_tripwire.rb +1 -1
- data/lib/riffer/stream_events/interrupt.rb +2 -2
- data/lib/riffer/stream_events/reasoning_delta.rb +1 -1
- data/lib/riffer/stream_events/reasoning_done.rb +1 -1
- data/lib/riffer/stream_events/skill_activation.rb +1 -1
- data/lib/riffer/stream_events/text_delta.rb +1 -1
- data/lib/riffer/stream_events/text_done.rb +1 -1
- data/lib/riffer/stream_events/token_usage_done.rb +1 -1
- data/lib/riffer/stream_events/tool_call_delta.rb +3 -3
- data/lib/riffer/stream_events/tool_call_done.rb +4 -4
- data/lib/riffer/stream_events/web_search_done.rb +2 -2
- data/lib/riffer/stream_events/web_search_status.rb +3 -3
- data/lib/riffer/tools/response.rb +4 -4
- data/lib/riffer/tracing/stream_recorder.rb +6 -6
- data/lib/riffer/version.rb +1 -1
- data/lib/riffer.rb +7 -0
- data/rbs_collection.lock.yaml +320 -0
- data/rbs_collection.yaml +12 -0
- data/sig/_private/anthropic.rbs +5 -4
- data/sig/_private/aws-sdk-core/event_error.rbs +15 -0
- data/sig/generated/riffer/providers/amazon_bedrock.rbs +10 -1
- data/sig/generated/riffer/providers/repository.rbs +0 -2
- data/sig/generated/riffer.rbs +8 -0
- metadata +4 -3
- data/sig/_private/async.rbs +0 -28
- data/sig/_private/minitest.rbs +0 -9
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# Represents completed text generation during streaming.
|
|
5
5
|
class Riffer::StreamEvents::TextDone < Riffer::StreamEvents::Base
|
|
6
6
|
# The complete text content.
|
|
7
|
-
attr_reader :content #: String
|
|
7
|
+
attr_reader :content #: String # @dynamic content
|
|
8
8
|
|
|
9
9
|
#--
|
|
10
10
|
#: (String, ?role: Symbol) -> void
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# Final token usage for the response, emitted when the LLM finishes.
|
|
5
5
|
class Riffer::StreamEvents::TokenUsageDone < Riffer::StreamEvents::Base
|
|
6
6
|
# The token usage data for this response.
|
|
7
|
-
attr_reader :token_usage #: Riffer::Providers::TokenUsage
|
|
7
|
+
attr_reader :token_usage #: Riffer::Providers::TokenUsage # @dynamic token_usage
|
|
8
8
|
|
|
9
9
|
#--
|
|
10
10
|
#: (token_usage: Riffer::Providers::TokenUsage, ?role: Symbol) -> void
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
# streaming.
|
|
6
6
|
class Riffer::StreamEvents::ToolCallDelta < Riffer::StreamEvents::Base
|
|
7
7
|
# The tool call item identifier.
|
|
8
|
-
attr_reader :item_id #: String
|
|
8
|
+
attr_reader :item_id #: String # @dynamic item_id
|
|
9
9
|
|
|
10
10
|
# The tool name (may only be present in first delta).
|
|
11
|
-
attr_reader :name #: String?
|
|
11
|
+
attr_reader :name #: String? # @dynamic name
|
|
12
12
|
|
|
13
13
|
# The incremental arguments JSON fragment.
|
|
14
|
-
attr_reader :arguments_delta #: String
|
|
14
|
+
attr_reader :arguments_delta #: String # @dynamic arguments_delta
|
|
15
15
|
|
|
16
16
|
#--
|
|
17
17
|
#: (item_id: String, arguments_delta: String, ?name: String?, ?role: Symbol) -> void
|
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
# Represents a completed tool call during streaming.
|
|
5
5
|
class Riffer::StreamEvents::ToolCallDone < Riffer::StreamEvents::Base
|
|
6
6
|
# The tool call item identifier.
|
|
7
|
-
attr_reader :item_id #: String
|
|
7
|
+
attr_reader :item_id #: String # @dynamic item_id
|
|
8
8
|
|
|
9
9
|
# The call identifier for response matching.
|
|
10
|
-
attr_reader :call_id #: String
|
|
10
|
+
attr_reader :call_id #: String # @dynamic call_id
|
|
11
11
|
|
|
12
12
|
# The tool name.
|
|
13
|
-
attr_reader :name #: String
|
|
13
|
+
attr_reader :name #: String # @dynamic name
|
|
14
14
|
|
|
15
15
|
# The complete arguments JSON string.
|
|
16
|
-
attr_reader :arguments #: String
|
|
16
|
+
attr_reader :arguments #: String # @dynamic arguments
|
|
17
17
|
|
|
18
18
|
#--
|
|
19
19
|
#: (item_id: String, call_id: String, name: String, arguments: String, ?role: Symbol) -> void
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
# The result of a completed server-side web search during streaming.
|
|
5
5
|
class Riffer::StreamEvents::WebSearchDone < Riffer::StreamEvents::Base
|
|
6
6
|
# The search query used.
|
|
7
|
-
attr_reader :query #: String
|
|
7
|
+
attr_reader :query #: String # @dynamic query
|
|
8
8
|
|
|
9
9
|
# The search result sources with title and url.
|
|
10
|
-
attr_reader :sources #: Array[Hash[Symbol, String?]]
|
|
10
|
+
attr_reader :sources #: Array[Hash[Symbol, String?]] # @dynamic sources
|
|
11
11
|
|
|
12
12
|
#--
|
|
13
13
|
#: (String, ?sources: Array[Hash[Symbol, String?]], ?role: Symbol) -> void
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
# progresses.
|
|
6
6
|
class Riffer::StreamEvents::WebSearchStatus < Riffer::StreamEvents::Base
|
|
7
7
|
# The web search status ("in_progress", "searching", "completed", "open_page").
|
|
8
|
-
attr_reader :status #: String
|
|
8
|
+
attr_reader :status #: String # @dynamic status
|
|
9
9
|
|
|
10
10
|
# The URL being fetched (present for "open_page" status).
|
|
11
|
-
attr_reader :url #: String?
|
|
11
|
+
attr_reader :url #: String? # @dynamic url
|
|
12
12
|
|
|
13
13
|
# The search query (present when available during status changes).
|
|
14
|
-
attr_reader :query #: String?
|
|
14
|
+
attr_reader :query #: String? # @dynamic query
|
|
15
15
|
|
|
16
16
|
#--
|
|
17
17
|
#: (String, ?url: String?, ?query: String?, ?role: Symbol) -> void
|
|
@@ -20,17 +20,17 @@ class Riffer::Tools::Response
|
|
|
20
20
|
VALID_FORMATS = %i[text json].freeze #: Array[Symbol]
|
|
21
21
|
|
|
22
22
|
# The response content.
|
|
23
|
-
attr_reader :content #: String
|
|
23
|
+
attr_reader :content #: String # @dynamic content
|
|
24
24
|
|
|
25
25
|
# The error message, or +nil+ on success.
|
|
26
|
-
attr_reader :error_message #: String?
|
|
26
|
+
attr_reader :error_message #: String? # @dynamic error_message
|
|
27
27
|
|
|
28
28
|
# The error type, or +nil+ on success.
|
|
29
|
-
attr_reader :error_type #: Symbol?
|
|
29
|
+
attr_reader :error_type #: Symbol? # @dynamic error_type
|
|
30
30
|
|
|
31
31
|
# The exception an unhandled failure was folded from, or +nil+. Kept out of
|
|
32
32
|
# every serialized form so it never reaches an LLM or a message payload.
|
|
33
|
-
attr_reader :exception #: Exception?
|
|
33
|
+
attr_reader :exception #: Exception? # @dynamic exception
|
|
34
34
|
|
|
35
35
|
# Creates a success response.
|
|
36
36
|
#
|
|
@@ -8,17 +8,17 @@ class Riffer::Tracing::StreamRecorder # :nodoc: all
|
|
|
8
8
|
# @rbs @clock: ^() -> Float
|
|
9
9
|
# @rbs @started_at: Float
|
|
10
10
|
|
|
11
|
-
attr_reader :token_usage #: Riffer::Providers::TokenUsage?
|
|
11
|
+
attr_reader :token_usage #: Riffer::Providers::TokenUsage? # @dynamic token_usage
|
|
12
12
|
|
|
13
|
-
attr_reader :time_to_first_chunk #: Float?
|
|
13
|
+
attr_reader :time_to_first_chunk #: Float? # @dynamic time_to_first_chunk
|
|
14
14
|
|
|
15
|
-
attr_reader :finish_reason #: Symbol?
|
|
15
|
+
attr_reader :finish_reason #: Symbol? # @dynamic finish_reason
|
|
16
16
|
|
|
17
|
-
attr_reader :raw_finish_reason #: String?
|
|
17
|
+
attr_reader :raw_finish_reason #: String? # @dynamic raw_finish_reason
|
|
18
18
|
|
|
19
|
-
attr_reader :content #: String?
|
|
19
|
+
attr_reader :content #: String? # @dynamic content
|
|
20
20
|
|
|
21
|
-
attr_reader :tool_calls #: Array[Riffer::Messages::Assistant::ToolCall]
|
|
21
|
+
attr_reader :tool_calls #: Array[Riffer::Messages::Assistant::ToolCall] # @dynamic tool_calls
|
|
22
22
|
|
|
23
23
|
#--
|
|
24
24
|
#: (Enumerator::Yielder, ?clock: ^() -> Float) -> void
|
data/lib/riffer/version.rb
CHANGED
data/lib/riffer.rb
CHANGED
|
@@ -41,6 +41,13 @@ module Riffer
|
|
|
41
41
|
# Raised when a tool encounters an expected execution error.
|
|
42
42
|
class ToolExecutionError < Error; end
|
|
43
43
|
|
|
44
|
+
# Raised when a provider's stream ends before its terminal event (Bedrock's
|
|
45
|
+
# messageStop, Anthropic's message_stop, OpenAI's response.completed /
|
|
46
|
+
# incomplete / failed), so a truncated or empty response is never returned
|
|
47
|
+
# as a complete message. Events already yielded were delivered; the
|
|
48
|
+
# request is safe to retry.
|
|
49
|
+
class IncompleteStreamError < Error; end
|
|
50
|
+
|
|
44
51
|
# Base error for a file attachment that can't be resolved for the provider.
|
|
45
52
|
class FileError < Error; end
|
|
46
53
|
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
---
|
|
2
|
+
path: ".gem_rbs_collection"
|
|
3
|
+
gems:
|
|
4
|
+
- name: addressable
|
|
5
|
+
version: '2.8'
|
|
6
|
+
source:
|
|
7
|
+
type: git
|
|
8
|
+
name: ruby/gem_rbs_collection
|
|
9
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
10
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
11
|
+
repo_dir: gems
|
|
12
|
+
- name: anthropic
|
|
13
|
+
version: 1.71.0
|
|
14
|
+
source:
|
|
15
|
+
type: rubygems
|
|
16
|
+
- name: ast
|
|
17
|
+
version: '2.4'
|
|
18
|
+
source:
|
|
19
|
+
type: git
|
|
20
|
+
name: ruby/gem_rbs_collection
|
|
21
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
22
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
23
|
+
repo_dir: gems
|
|
24
|
+
- name: async
|
|
25
|
+
version: '2.12'
|
|
26
|
+
source:
|
|
27
|
+
type: git
|
|
28
|
+
name: ruby/gem_rbs_collection
|
|
29
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
30
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
31
|
+
repo_dir: gems
|
|
32
|
+
- name: aws-sdk-bedrockruntime
|
|
33
|
+
version: 1.85.0
|
|
34
|
+
source:
|
|
35
|
+
type: rubygems
|
|
36
|
+
- name: aws-sdk-core
|
|
37
|
+
version: 3.257.0
|
|
38
|
+
source:
|
|
39
|
+
type: rubygems
|
|
40
|
+
- name: base64
|
|
41
|
+
version: 0.3.0
|
|
42
|
+
source:
|
|
43
|
+
type: rubygems
|
|
44
|
+
- name: bigdecimal
|
|
45
|
+
version: 4.1.3
|
|
46
|
+
source:
|
|
47
|
+
type: rubygems
|
|
48
|
+
- name: cgi
|
|
49
|
+
version: '0.5'
|
|
50
|
+
source:
|
|
51
|
+
type: git
|
|
52
|
+
name: ruby/gem_rbs_collection
|
|
53
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
54
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
55
|
+
repo_dir: gems
|
|
56
|
+
- name: concurrent-ruby
|
|
57
|
+
version: '1.1'
|
|
58
|
+
source:
|
|
59
|
+
type: git
|
|
60
|
+
name: ruby/gem_rbs_collection
|
|
61
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
62
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
63
|
+
repo_dir: gems
|
|
64
|
+
- name: connection_pool
|
|
65
|
+
version: '2.4'
|
|
66
|
+
source:
|
|
67
|
+
type: git
|
|
68
|
+
name: ruby/gem_rbs_collection
|
|
69
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
70
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
71
|
+
repo_dir: gems
|
|
72
|
+
- name: csv
|
|
73
|
+
version: '3.3'
|
|
74
|
+
source:
|
|
75
|
+
type: git
|
|
76
|
+
name: ruby/gem_rbs_collection
|
|
77
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
78
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
79
|
+
repo_dir: gems
|
|
80
|
+
- name: dbm
|
|
81
|
+
version: '0'
|
|
82
|
+
source:
|
|
83
|
+
type: stdlib
|
|
84
|
+
- name: delegate
|
|
85
|
+
version: '0'
|
|
86
|
+
source:
|
|
87
|
+
type: stdlib
|
|
88
|
+
- name: digest
|
|
89
|
+
version: '0'
|
|
90
|
+
source:
|
|
91
|
+
type: stdlib
|
|
92
|
+
- name: erb
|
|
93
|
+
version: '0'
|
|
94
|
+
source:
|
|
95
|
+
type: stdlib
|
|
96
|
+
- name: faraday
|
|
97
|
+
version: '2.7'
|
|
98
|
+
source:
|
|
99
|
+
type: git
|
|
100
|
+
name: ruby/gem_rbs_collection
|
|
101
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
102
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
103
|
+
repo_dir: gems
|
|
104
|
+
- name: ffi
|
|
105
|
+
version: 1.17.4
|
|
106
|
+
source:
|
|
107
|
+
type: rubygems
|
|
108
|
+
- name: fileutils
|
|
109
|
+
version: '0'
|
|
110
|
+
source:
|
|
111
|
+
type: stdlib
|
|
112
|
+
- name: forwardable
|
|
113
|
+
version: '0'
|
|
114
|
+
source:
|
|
115
|
+
type: stdlib
|
|
116
|
+
- name: hashdiff
|
|
117
|
+
version: '1.1'
|
|
118
|
+
source:
|
|
119
|
+
type: git
|
|
120
|
+
name: ruby/gem_rbs_collection
|
|
121
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
122
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
123
|
+
repo_dir: gems
|
|
124
|
+
- name: io-console
|
|
125
|
+
version: '0'
|
|
126
|
+
source:
|
|
127
|
+
type: stdlib
|
|
128
|
+
- name: json
|
|
129
|
+
version: '0'
|
|
130
|
+
source:
|
|
131
|
+
type: stdlib
|
|
132
|
+
- name: language_server-protocol
|
|
133
|
+
version: 3.17.0.6
|
|
134
|
+
source:
|
|
135
|
+
type: rubygems
|
|
136
|
+
- name: listen
|
|
137
|
+
version: '3.9'
|
|
138
|
+
source:
|
|
139
|
+
type: git
|
|
140
|
+
name: ruby/gem_rbs_collection
|
|
141
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
142
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
143
|
+
repo_dir: gems
|
|
144
|
+
- name: logger
|
|
145
|
+
version: '1.7'
|
|
146
|
+
source:
|
|
147
|
+
type: git
|
|
148
|
+
name: ruby/gem_rbs_collection
|
|
149
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
150
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
151
|
+
repo_dir: gems
|
|
152
|
+
- name: minitest
|
|
153
|
+
version: '5.25'
|
|
154
|
+
source:
|
|
155
|
+
type: git
|
|
156
|
+
name: ruby/gem_rbs_collection
|
|
157
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
158
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
159
|
+
repo_dir: gems
|
|
160
|
+
- name: monitor
|
|
161
|
+
version: '0'
|
|
162
|
+
source:
|
|
163
|
+
type: stdlib
|
|
164
|
+
- name: net-http
|
|
165
|
+
version: '0'
|
|
166
|
+
source:
|
|
167
|
+
type: stdlib
|
|
168
|
+
- name: net-protocol
|
|
169
|
+
version: '0'
|
|
170
|
+
source:
|
|
171
|
+
type: stdlib
|
|
172
|
+
- name: openai
|
|
173
|
+
version: 0.91.0
|
|
174
|
+
source:
|
|
175
|
+
type: rubygems
|
|
176
|
+
- name: openssl
|
|
177
|
+
version: '0'
|
|
178
|
+
source:
|
|
179
|
+
type: stdlib
|
|
180
|
+
- name: optparse
|
|
181
|
+
version: '0'
|
|
182
|
+
source:
|
|
183
|
+
type: stdlib
|
|
184
|
+
- name: parser
|
|
185
|
+
version: '3.2'
|
|
186
|
+
source:
|
|
187
|
+
type: git
|
|
188
|
+
name: ruby/gem_rbs_collection
|
|
189
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
190
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
191
|
+
repo_dir: gems
|
|
192
|
+
- name: pp
|
|
193
|
+
version: '0'
|
|
194
|
+
source:
|
|
195
|
+
type: stdlib
|
|
196
|
+
- name: prettyprint
|
|
197
|
+
version: '0'
|
|
198
|
+
source:
|
|
199
|
+
type: stdlib
|
|
200
|
+
- name: prism
|
|
201
|
+
version: 1.9.0
|
|
202
|
+
source:
|
|
203
|
+
type: rubygems
|
|
204
|
+
- name: pstore
|
|
205
|
+
version: '0.2'
|
|
206
|
+
source:
|
|
207
|
+
type: git
|
|
208
|
+
name: ruby/gem_rbs_collection
|
|
209
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
210
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
211
|
+
repo_dir: gems
|
|
212
|
+
- name: psych
|
|
213
|
+
version: '0'
|
|
214
|
+
source:
|
|
215
|
+
type: stdlib
|
|
216
|
+
- name: rainbow
|
|
217
|
+
version: '3.0'
|
|
218
|
+
source:
|
|
219
|
+
type: git
|
|
220
|
+
name: ruby/gem_rbs_collection
|
|
221
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
222
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
223
|
+
repo_dir: gems
|
|
224
|
+
- name: rake
|
|
225
|
+
version: '13.0'
|
|
226
|
+
source:
|
|
227
|
+
type: git
|
|
228
|
+
name: ruby/gem_rbs_collection
|
|
229
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
230
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
231
|
+
repo_dir: gems
|
|
232
|
+
- name: random-formatter
|
|
233
|
+
version: '0'
|
|
234
|
+
source:
|
|
235
|
+
type: stdlib
|
|
236
|
+
- name: rbs
|
|
237
|
+
version: 4.2.0
|
|
238
|
+
source:
|
|
239
|
+
type: rubygems
|
|
240
|
+
- name: rbs-inline
|
|
241
|
+
version: 0.14.0
|
|
242
|
+
source:
|
|
243
|
+
type: rubygems
|
|
244
|
+
- name: rdoc
|
|
245
|
+
version: '0'
|
|
246
|
+
source:
|
|
247
|
+
type: stdlib
|
|
248
|
+
- name: regexp_parser
|
|
249
|
+
version: '2.8'
|
|
250
|
+
source:
|
|
251
|
+
type: git
|
|
252
|
+
name: ruby/gem_rbs_collection
|
|
253
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
254
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
255
|
+
repo_dir: gems
|
|
256
|
+
- name: securerandom
|
|
257
|
+
version: '0'
|
|
258
|
+
source:
|
|
259
|
+
type: stdlib
|
|
260
|
+
- name: singleton
|
|
261
|
+
version: '0'
|
|
262
|
+
source:
|
|
263
|
+
type: stdlib
|
|
264
|
+
- name: socket
|
|
265
|
+
version: '0'
|
|
266
|
+
source:
|
|
267
|
+
type: stdlib
|
|
268
|
+
- name: stringio
|
|
269
|
+
version: '0'
|
|
270
|
+
source:
|
|
271
|
+
type: stdlib
|
|
272
|
+
- name: strscan
|
|
273
|
+
version: '0'
|
|
274
|
+
source:
|
|
275
|
+
type: stdlib
|
|
276
|
+
- name: tempfile
|
|
277
|
+
version: '0'
|
|
278
|
+
source:
|
|
279
|
+
type: stdlib
|
|
280
|
+
- name: thor
|
|
281
|
+
version: '1.2'
|
|
282
|
+
source:
|
|
283
|
+
type: git
|
|
284
|
+
name: ruby/gem_rbs_collection
|
|
285
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
286
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
287
|
+
repo_dir: gems
|
|
288
|
+
- name: timeout
|
|
289
|
+
version: '0'
|
|
290
|
+
source:
|
|
291
|
+
type: stdlib
|
|
292
|
+
- name: tmpdir
|
|
293
|
+
version: '0'
|
|
294
|
+
source:
|
|
295
|
+
type: stdlib
|
|
296
|
+
- name: tsort
|
|
297
|
+
version: '0'
|
|
298
|
+
source:
|
|
299
|
+
type: stdlib
|
|
300
|
+
- name: uri
|
|
301
|
+
version: '0'
|
|
302
|
+
source:
|
|
303
|
+
type: stdlib
|
|
304
|
+
- name: webmock
|
|
305
|
+
version: '3.19'
|
|
306
|
+
source:
|
|
307
|
+
type: git
|
|
308
|
+
name: ruby/gem_rbs_collection
|
|
309
|
+
revision: 3913b7dffb65bdffdfe5cb9095108f932e85433b
|
|
310
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
311
|
+
repo_dir: gems
|
|
312
|
+
- name: webrick
|
|
313
|
+
version: 1.9.2
|
|
314
|
+
source:
|
|
315
|
+
type: rubygems
|
|
316
|
+
- name: yaml
|
|
317
|
+
version: '0'
|
|
318
|
+
source:
|
|
319
|
+
type: stdlib
|
|
320
|
+
gemfile_lock_path: Gemfile.lock
|
data/rbs_collection.yaml
ADDED
data/sig/_private/anthropic.rbs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# Arity patch for the `anthropic` gem (see openai.rbs for the rationale).
|
|
2
|
-
# `Messages#create`
|
|
3
|
-
#
|
|
4
|
-
# (
|
|
1
|
+
# Arity patch for the `anthropic` gem (see openai.rbs for the rationale). Both
|
|
2
|
+
# `Messages#create` and `Messages#stream` are positional `def x(params)` at
|
|
3
|
+
# runtime but typed keyword-only in the gem's RBS. Streaming returns `untyped`
|
|
4
|
+
# (a MessageStream helper). Loaded only for riffer's own Steep run.
|
|
5
5
|
module Anthropic
|
|
6
6
|
module Resources
|
|
7
7
|
class Messages
|
|
@@ -11,6 +11,7 @@ module Anthropic
|
|
|
11
11
|
|
|
12
12
|
def stream: (Hash[Symbol, untyped] params) -> untyped
|
|
13
13
|
| (**untyped) -> untyped
|
|
14
|
+
| ...
|
|
14
15
|
end
|
|
15
16
|
end
|
|
16
17
|
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# aws-sdk-core ships no signature for EventError; ConverseStream delivers
|
|
2
|
+
# `:message-type: error` frames to the on_event block as instances of it.
|
|
3
|
+
module Aws
|
|
4
|
+
module Errors
|
|
5
|
+
class EventError < RuntimeError
|
|
6
|
+
def initialize: (Symbol event_type, String code, String message) -> void
|
|
7
|
+
|
|
8
|
+
attr_reader event_type: Symbol
|
|
9
|
+
|
|
10
|
+
attr_reader error_code: String
|
|
11
|
+
|
|
12
|
+
attr_reader error_message: String
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -91,10 +91,19 @@ class Riffer::Providers::AmazonBedrock < Riffer::Providers::Base
|
|
|
91
91
|
# : (Hash[Symbol, untyped], Riffer::Providers::_EventSink) -> void
|
|
92
92
|
def execute_stream: (Hash[Symbol, untyped], Riffer::Providers::_EventSink) -> void
|
|
93
93
|
|
|
94
|
+
# Re-raises an +Aws::Errors::EventError+ event with a message built from its
|
|
95
|
+
# error code and message. The SDK's own +#message+ is just the class name,
|
|
96
|
+
# so without this the failure would be unreadable.
|
|
97
|
+
# --
|
|
98
|
+
# : (untyped) -> void
|
|
99
|
+
def raise_stream_event_error!: (untyped) -> void
|
|
100
|
+
|
|
94
101
|
# Re-raises a Bedrock stream-exception event as the matching
|
|
95
102
|
# +Aws::BedrockRuntime::Errors+ class. ConverseStream delivers API errors on
|
|
96
103
|
# the same channel as content, so without this a mid-stream failure would
|
|
97
|
-
# silently end the stream with no content.
|
|
104
|
+
# silently end the stream with no content. Non-exception events that we do
|
|
105
|
+
# not consume (including the SDK's +:unknown_event+ struct) are ignored for
|
|
106
|
+
# forward compatibility.
|
|
98
107
|
# --
|
|
99
108
|
# : (untyped) -> void
|
|
100
109
|
def raise_if_stream_exception!: (untyped) -> void
|
|
@@ -15,8 +15,6 @@ module Riffer::Providers::Repository
|
|
|
15
15
|
#
|
|
16
16
|
# Riffer::Providers::Repository.register(:jane) { MyApp::JaneProvider }
|
|
17
17
|
#
|
|
18
|
-
# Raises Riffer::ArgumentError when called without a block.
|
|
19
|
-
#
|
|
20
18
|
# --
|
|
21
19
|
# : ((String | Symbol)) { () -> singleton(Riffer::Providers::Base) } -> void
|
|
22
20
|
def register: (String | Symbol) { () -> singleton(Riffer::Providers::Base) } -> void
|
data/sig/generated/riffer.rbs
CHANGED
|
@@ -25,6 +25,14 @@ module Riffer
|
|
|
25
25
|
class ToolExecutionError < Error
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
+
# Raised when a provider's stream ends before its terminal event (Bedrock's
|
|
29
|
+
# messageStop, Anthropic's message_stop, OpenAI's response.completed /
|
|
30
|
+
# incomplete / failed), so a truncated or empty response is never returned
|
|
31
|
+
# as a complete message. Events already yielded were delivered; the
|
|
32
|
+
# request is safe to retry.
|
|
33
|
+
class IncompleteStreamError < Error
|
|
34
|
+
end
|
|
35
|
+
|
|
28
36
|
# Base error for a file attachment that can't be resolved for the provider.
|
|
29
37
|
class FileError < Error
|
|
30
38
|
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.47.
|
|
4
|
+
version: 0.47.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jake Bottrall
|
|
@@ -220,12 +220,13 @@ files:
|
|
|
220
220
|
- lib/riffer/tracing/otel.rb
|
|
221
221
|
- lib/riffer/tracing/stream_recorder.rb
|
|
222
222
|
- lib/riffer/version.rb
|
|
223
|
+
- rbs_collection.lock.yaml
|
|
224
|
+
- rbs_collection.yaml
|
|
223
225
|
- sig/_private/anthropic.rbs
|
|
224
|
-
- sig/_private/
|
|
226
|
+
- sig/_private/aws-sdk-core/event_error.rbs
|
|
225
227
|
- sig/_private/aws-sdk-core/seahorse_request_context.rbs
|
|
226
228
|
- sig/_private/aws-sdk-core/static_token_provider.rbs
|
|
227
229
|
- sig/_private/mcp.rbs
|
|
228
|
-
- sig/_private/minitest.rbs
|
|
229
230
|
- sig/_private/openai.rbs
|
|
230
231
|
- sig/_private/opentelemetry.rbs
|
|
231
232
|
- sig/_private/riffer/providers/amazon_bedrock.rbs
|
data/sig/_private/async.rbs
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# Minimal signatures for the optional `async` gem, which ships no RBS.
|
|
2
|
-
#
|
|
3
|
-
# Only the surface used by Riffer::Runner::Fibers is declared; the gem is
|
|
4
|
-
# loaded lazily via depends_on, so this stub keeps Steep aware of the
|
|
5
|
-
# constants without adding a hard `library` dependency.
|
|
6
|
-
module Async
|
|
7
|
-
class Barrier
|
|
8
|
-
def initialize: () -> void
|
|
9
|
-
|
|
10
|
-
def async: () { () -> void } -> untyped
|
|
11
|
-
|
|
12
|
-
def wait: () -> void
|
|
13
|
-
|
|
14
|
-
def stop: () -> void
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
class Semaphore
|
|
18
|
-
def initialize: (Integer, ?parent: untyped) -> void
|
|
19
|
-
|
|
20
|
-
def async: () { () -> void } -> untyped
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
module Kernel
|
|
25
|
-
def Async: () { () -> void } -> untyped
|
|
26
|
-
|
|
27
|
-
def Sync: () { () -> void } -> untyped
|
|
28
|
-
end
|
data/sig/_private/minitest.rbs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Minimal signatures for `minitest`, a development-only framework riffer never
|
|
2
|
-
# depends on. Only the surface `lib/riffer/testing/minitest.rb` touches is
|
|
3
|
-
# declared; the file is required by hand from a consumer's test_helper, so this
|
|
4
|
-
# stub keeps Steep aware of the constants without a `library` dependency.
|
|
5
|
-
module Minitest
|
|
6
|
-
class Test
|
|
7
|
-
def after_teardown: () -> void
|
|
8
|
-
end
|
|
9
|
-
end
|