riffer 0.33.0 → 0.35.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/.release-please-manifest.json +1 -1
  3. data/CHANGELOG.md +19 -0
  4. data/docs/03_AGENTS.md +44 -0
  5. data/docs/10_CONFIGURATION.md +15 -15
  6. data/docs/16_TRACING.md +32 -4
  7. data/docs/17_METRICS.md +36 -4
  8. data/lib/riffer/agent/run.rb +82 -49
  9. data/lib/riffer/agent.rb +20 -13
  10. data/lib/riffer/config.rb +23 -24
  11. data/lib/riffer/guardrails/runner.rb +40 -11
  12. data/lib/riffer/metrics/instruments.rb +6 -0
  13. data/lib/riffer/metrics/{null.rb → no_op.rb} +1 -1
  14. data/lib/riffer/metrics/otel.rb +4 -3
  15. data/lib/riffer/metrics.rb +7 -6
  16. data/lib/riffer/providers/amazon_bedrock.rb +7 -1
  17. data/lib/riffer/providers/anthropic.rb +8 -1
  18. data/lib/riffer/providers/base.rb +38 -26
  19. data/lib/riffer/providers/gemini.rb +5 -1
  20. data/lib/riffer/providers/open_ai.rb +10 -1
  21. data/lib/riffer/providers/open_router.rb +10 -1
  22. data/lib/riffer/tools/runtime.rb +30 -20
  23. data/lib/riffer/tracing/{null.rb → no_op.rb} +3 -3
  24. data/lib/riffer/tracing/otel.rb +4 -3
  25. data/lib/riffer/tracing.rb +9 -9
  26. data/lib/riffer/version.rb +1 -1
  27. data/sig/generated/riffer/agent/run.rbs +47 -30
  28. data/sig/generated/riffer/agent.rbs +16 -9
  29. data/sig/generated/riffer/config.rbs +14 -14
  30. data/sig/generated/riffer/guardrails/runner.rbs +15 -4
  31. data/sig/generated/riffer/metrics/instruments.rbs +2 -0
  32. data/sig/generated/riffer/metrics/{null.rbs → no_op.rbs} +2 -2
  33. data/sig/generated/riffer/metrics/otel.rbs +4 -3
  34. data/sig/generated/riffer/metrics.rbs +7 -6
  35. data/sig/generated/riffer/providers/base.rbs +26 -20
  36. data/sig/generated/riffer/tools/runtime.rbs +24 -18
  37. data/sig/generated/riffer/tracing/{null.rbs → no_op.rbs} +5 -5
  38. data/sig/generated/riffer/tracing/otel.rbs +4 -3
  39. data/sig/generated/riffer/tracing.rbs +9 -9
  40. data/sig/manual/riffer/metrics/no_op.rbs +5 -0
  41. data/sig/manual/riffer/tracing/no_op.rbs +5 -0
  42. metadata +11 -11
  43. data/sig/manual/riffer/metrics/null.rbs +0 -5
  44. data/sig/manual/riffer/tracing/null.rbs +0 -5
@@ -91,50 +91,56 @@ class Riffer::Providers::Base
91
91
  REQUEST_PARAM_ATTRIBUTES: Hash[Symbol, String]
92
92
 
93
93
  # --
94
- # : [R] (String?, Array[Riffer::Messages::Base], Hash[Symbol, untyped]) { (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span) -> R } -> R
95
- def in_chat_span: [R] (String?, Array[Riffer::Messages::Base], Hash[Symbol, untyped]) { (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span) -> R } -> R
94
+ # : [R] (String?, Array[Riffer::Messages::Base], Hash[Symbol, untyped]) { (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span) -> R } -> R
95
+ def in_chat_span: [R] (String?, Array[Riffer::Messages::Base], Hash[Symbol, untyped]) { (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span) -> R } -> R
96
96
 
97
97
  # --
98
98
  # : (String?, Hash[Symbol, untyped]) -> Hash[String, untyped]
99
99
  def chat_span_attributes: (String?, Hash[Symbol, untyped]) -> Hash[String, untyped]
100
100
 
101
101
  # --
102
- # : (String?) -> Hash[String, untyped]
103
- def chat_metric_base_attributes: (String?) -> Hash[String, untyped]
102
+ # : (String?, ?Hash[String, String]) -> Hash[String, untyped]
103
+ def chat_metric_base_attributes: (String?, ?Hash[String, String]) -> Hash[String, untyped]
104
104
 
105
105
  # --
106
- # : (String?, String?) -> Hash[String, untyped]
107
- def chat_metric_attributes: (String?, String?) -> Hash[String, untyped]
106
+ # : (String?, String?, ?Hash[String, String]) -> Hash[String, untyped]
107
+ def chat_metric_attributes: (String?, String?, ?Hash[String, String]) -> Hash[String, untyped]
108
+
109
+ # Maps normalized tags to their namespaced span/metric attribute form. An
110
+ # empty map yields an empty hash, so merging it is a no-op.
111
+ # --
112
+ # : (Hash[String, String]) -> Hash[String, String]
113
+ def tag_attributes: (Hash[String, String]) -> Hash[String, String]
108
114
 
109
115
  # Per-call only — the run level would double-count an aggregate.
110
116
  # --
111
- # : (String?, Riffer::Providers::TokenUsage?) -> void
112
- def record_token_usage_metric: (String?, Riffer::Providers::TokenUsage?) -> void
117
+ # : (String?, Riffer::Providers::TokenUsage?, ?Hash[String, String]) -> void
118
+ def record_token_usage_metric: (String?, Riffer::Providers::TokenUsage?, ?Hash[String, String]) -> void
113
119
 
114
120
  # Per-call only — the run level would double-count an aggregate.
115
121
  # --
116
- # : (String?, Riffer::Providers::TokenUsage?) -> void
117
- def record_cost_metric: (String?, Riffer::Providers::TokenUsage?) -> void
122
+ # : (String?, Riffer::Providers::TokenUsage?, ?Hash[String, String]) -> void
123
+ def record_cost_metric: (String?, Riffer::Providers::TokenUsage?, ?Hash[String, String]) -> void
118
124
 
119
125
  # --
120
- # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span), Symbol?, String?) -> void
121
- def record_finish_reason: (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span, Symbol?, String?) -> void
126
+ # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span), Symbol?, String?) -> void
127
+ def record_finish_reason: (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span, Symbol?, String?) -> void
122
128
 
123
129
  # --
124
- # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span), Riffer::Tracing::StreamRecorder) -> void
125
- def record_stream_outcome: (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span, Riffer::Tracing::StreamRecorder) -> void
130
+ # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span), Riffer::Tracing::StreamRecorder) -> void
131
+ def record_stream_outcome: (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span, Riffer::Tracing::StreamRecorder) -> void
126
132
 
127
133
  # --
128
- # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span), Array[Riffer::Messages::Base]) -> void
129
- def capture_input: (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span, Array[Riffer::Messages::Base]) -> void
134
+ # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span), Array[Riffer::Messages::Base]) -> void
135
+ def capture_input: (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span, Array[Riffer::Messages::Base]) -> void
130
136
 
131
137
  # --
132
- # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span), content: String?, tool_calls: Array[Riffer::Messages::Assistant::ToolCall], finish_reason: Symbol?) -> void
133
- def capture_output: (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span, content: String?, tool_calls: Array[Riffer::Messages::Assistant::ToolCall], finish_reason: Symbol?) -> void
138
+ # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span), content: String?, tool_calls: Array[Riffer::Messages::Assistant::ToolCall], finish_reason: Symbol?) -> void
139
+ def capture_output: (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span, content: String?, tool_calls: Array[Riffer::Messages::Assistant::ToolCall], finish_reason: Symbol?) -> void
134
140
 
135
141
  # --
136
- # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span)) -> bool
137
- def capture_messages?: (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span) -> bool
142
+ # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span)) -> bool
143
+ def capture_messages?: (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span) -> bool
138
144
 
139
145
  # --
140
146
  # : (Riffer::Providers::_EventSink, Riffer::Providers::FinishReason?) -> void
@@ -12,8 +12,8 @@ class Riffer::Tools::Runtime
12
12
 
13
13
  # Executes a batch of tool calls, returning <tt>[tool_call, response]</tt> pairs.
14
14
  # --
15
- # : (Array[Riffer::Messages::Assistant::ToolCall], tools: Array[singleton(Riffer::Tool)], context: Riffer::Agent::Context?, ?assistant_message: Riffer::Messages::Assistant?) -> Array[[Riffer::Messages::Assistant::ToolCall, Riffer::Tools::Response]]
16
- def execute: (Array[Riffer::Messages::Assistant::ToolCall], tools: Array[singleton(Riffer::Tool)], context: Riffer::Agent::Context?, ?assistant_message: Riffer::Messages::Assistant?) -> Array[[ Riffer::Messages::Assistant::ToolCall, Riffer::Tools::Response ]]
15
+ # : (Array[Riffer::Messages::Assistant::ToolCall], tools: Array[singleton(Riffer::Tool)], context: Riffer::Agent::Context?, ?assistant_message: Riffer::Messages::Assistant?, ?tags: Hash[String, String]) -> Array[[Riffer::Messages::Assistant::ToolCall, Riffer::Tools::Response]]
16
+ def execute: (Array[Riffer::Messages::Assistant::ToolCall], tools: Array[singleton(Riffer::Tool)], context: Riffer::Agent::Context?, ?assistant_message: Riffer::Messages::Assistant?, ?tags: Hash[String, String]) -> Array[[ Riffer::Messages::Assistant::ToolCall, Riffer::Tools::Response ]]
17
17
 
18
18
  # Hook wrapping each tool call; override in subclasses to instrument or
19
19
  # customize. Must +yield+ to continue.
@@ -36,8 +36,8 @@ class Riffer::Tools::Runtime
36
36
  private
37
37
 
38
38
  # --
39
- # : (Riffer::Messages::Assistant::ToolCall) { () -> Riffer::Tools::Response } -> [Riffer::Messages::Assistant::ToolCall, Riffer::Tools::Response]
40
- def instrument_tool_call: (Riffer::Messages::Assistant::ToolCall) { () -> Riffer::Tools::Response } -> [ Riffer::Messages::Assistant::ToolCall, Riffer::Tools::Response ]
39
+ # : (Riffer::Messages::Assistant::ToolCall, ?Hash[String, String]) { () -> Riffer::Tools::Response } -> [Riffer::Messages::Assistant::ToolCall, Riffer::Tools::Response]
40
+ def instrument_tool_call: (Riffer::Messages::Assistant::ToolCall, ?Hash[String, String]) { () -> Riffer::Tools::Response } -> [ Riffer::Messages::Assistant::ToolCall, Riffer::Tools::Response ]
41
41
 
42
42
  # --
43
43
  # : (Riffer::Messages::Assistant::ToolCall, tools: Array[singleton(Riffer::Tool)], context: Riffer::Agent::Context?, ?assistant_message: Riffer::Messages::Assistant?) -> Riffer::Tools::Response
@@ -49,32 +49,38 @@ class Riffer::Tools::Runtime
49
49
 
50
50
  # Emitted outside +around_tool_call+ so host enrichment spans nest beneath it.
51
51
  # --
52
- # : [R] (Riffer::Messages::Assistant::ToolCall) { ((Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span)) -> R } -> R
53
- def in_tool_span: [R] (Riffer::Messages::Assistant::ToolCall) { (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span) -> R } -> R
52
+ # : [R] (Riffer::Messages::Assistant::ToolCall, ?Hash[String, String]) { ((Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span)) -> R } -> R
53
+ def in_tool_span: [R] (Riffer::Messages::Assistant::ToolCall, ?Hash[String, String]) { (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span) -> R } -> R
54
54
 
55
55
  # --
56
- # : (Riffer::Messages::Assistant::ToolCall) -> Hash[String, untyped]
57
- def tool_span_attributes: (Riffer::Messages::Assistant::ToolCall) -> Hash[String, untyped]
56
+ # : (Riffer::Messages::Assistant::ToolCall, ?Hash[String, String]) -> Hash[String, untyped]
57
+ def tool_span_attributes: (Riffer::Messages::Assistant::ToolCall, ?Hash[String, String]) -> Hash[String, untyped]
58
58
 
59
59
  # --
60
- # : (Riffer::Messages::Assistant::ToolCall, String?) -> Hash[String, untyped]
61
- def tool_metric_attributes: (Riffer::Messages::Assistant::ToolCall, String?) -> Hash[String, untyped]
60
+ # : (Riffer::Messages::Assistant::ToolCall, String?, ?Hash[String, String]) -> Hash[String, untyped]
61
+ def tool_metric_attributes: (Riffer::Messages::Assistant::ToolCall, String?, ?Hash[String, String]) -> Hash[String, untyped]
62
+
63
+ # Maps normalized tags to their namespaced span/metric attribute form. An
64
+ # empty map yields an empty hash, so merging it is a no-op.
65
+ # --
66
+ # : (Hash[String, String]) -> Hash[String, String]
67
+ def tag_attributes: (Hash[String, String]) -> Hash[String, String]
62
68
 
63
69
  # A returned error Response is a handled outcome, so its status stays unset —
64
70
  # an error span status is reserved for a raised exception.
65
71
  # --
66
- # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span), Riffer::Tools::Response) -> void
67
- def record_tool_outcome: (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span, Riffer::Tools::Response) -> void
72
+ # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span), Riffer::Tools::Response) -> void
73
+ def record_tool_outcome: (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span, Riffer::Tools::Response) -> void
68
74
 
69
75
  # --
70
- # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span), Riffer::Messages::Assistant::ToolCall) -> void
71
- def capture_tool_arguments: (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span, Riffer::Messages::Assistant::ToolCall) -> void
76
+ # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span), Riffer::Messages::Assistant::ToolCall) -> void
77
+ def capture_tool_arguments: (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span, Riffer::Messages::Assistant::ToolCall) -> void
72
78
 
73
79
  # --
74
- # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span), Riffer::Tools::Response) -> void
75
- def capture_tool_result: (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span, Riffer::Tools::Response) -> void
80
+ # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span), Riffer::Tools::Response) -> void
81
+ def capture_tool_result: (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span, Riffer::Tools::Response) -> void
76
82
 
77
83
  # --
78
- # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span)) -> bool
79
- def capture_tool_content?: (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span) -> bool
84
+ # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span)) -> bool
85
+ def capture_tool_content?: (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span) -> bool
80
86
  end
@@ -1,8 +1,8 @@
1
- # Generated from lib/riffer/tracing/null.rb with RBS::Inline
1
+ # Generated from lib/riffer/tracing/no_op.rb with RBS::Inline
2
2
 
3
3
  # No-op tracing backend, used when OTEL is unavailable or tracing is
4
4
  # disabled.
5
- module Riffer::Tracing::Null
5
+ module Riffer::Tracing::NoOp
6
6
  # No-op stand-in for a span; answers <tt>recording?</tt> with +false+ so
7
7
  # callers can skip expensive attribute serialization.
8
8
  class Span
@@ -27,12 +27,12 @@ module Riffer::Tracing::Null
27
27
  def recording?: () -> bool
28
28
  end
29
29
 
30
- SPAN: Riffer::Tracing::Null::Span
30
+ SPAN: Riffer::Tracing::NoOp::Span
31
31
 
32
32
  # Yields the no-op span, ignoring all span options.
33
33
  # --
34
- # : [R] (String, **untyped) { (Riffer::Tracing::Null::Span) -> R } -> R
35
- def in_span: [R] (String, **untyped) { (Riffer::Tracing::Null::Span) -> R } -> R
34
+ # : [R] (String, **untyped) { (Riffer::Tracing::NoOp::Span) -> R } -> R
35
+ def in_span: [R] (String, **untyped) { (Riffer::Tracing::NoOp::Span) -> R } -> R
36
36
 
37
37
  # Returns +nil+; there is no trace context without OTEL.
38
38
  # --
@@ -39,10 +39,11 @@ class Riffer::Tracing::Otel
39
39
  end
40
40
 
41
41
  # Builds a backend when the OpenTelemetry API is loadable at a supported
42
- # version; returns +nil+ so resolution falls back to Null.
42
+ # version; returns +nil+ so resolution falls back to NoOp. +provider+
43
+ # defaults to the global <tt>OpenTelemetry.tracer_provider</tt>.
43
44
  # --
44
- # : (provider: untyped) -> Riffer::Tracing::Otel?
45
- def self.build: (provider: untyped) -> Riffer::Tracing::Otel?
45
+ # : (?provider: untyped) -> Riffer::Tracing::Otel?
46
+ def self.build: (?provider: untyped) -> Riffer::Tracing::Otel?
46
47
 
47
48
  # Whether the OpenTelemetry API gem is loadable at a supported version.
48
49
  # --
@@ -4,7 +4,7 @@
4
4
  # OpenTelemetry API and no-ops otherwise, so riffer never declares an OTEL
5
5
  # dependency.
6
6
  module Riffer::Tracing
7
- @backend: (Riffer::Tracing::Otel | singleton(Riffer::Tracing::Null))?
7
+ @backend: untyped
8
8
 
9
9
  MUTEX: Mutex
10
10
 
@@ -14,8 +14,8 @@ module Riffer::Tracing
14
14
 
15
15
  # Opens a span around the block, yielding the span.
16
16
  # --
17
- # : [R] (String, ?attributes: Hash[String, untyped]?, ?kind: Symbol) { (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span) -> R } -> R
18
- def in_span: [R] (String, ?attributes: Hash[String, untyped]?, ?kind: Symbol) { (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span) -> R } -> R
17
+ # : [R] (String, ?attributes: Hash[String, untyped]?, ?kind: Symbol) { (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span) -> R } -> R
18
+ def in_span: [R] (String, ?attributes: Hash[String, untyped]?, ?kind: Symbol) { (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span) -> R } -> R
19
19
 
20
20
  # Returns the active trace context, for re-attachment across fiber or
21
21
  # thread boundaries.
@@ -32,8 +32,8 @@ module Riffer::Tracing
32
32
  # Stamps token usage onto the span — the <tt>gen_ai.usage.*</tt> counts and,
33
33
  # when the model was priced, <tt>riffer.cost</tt>.
34
34
  # --
35
- # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span), Riffer::Providers::TokenUsage?) -> void
36
- def record_usage: (Riffer::Tracing::Otel::Span | Riffer::Tracing::Null::Span, Riffer::Providers::TokenUsage?) -> void
35
+ # : ((Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span), Riffer::Providers::TokenUsage?) -> void
36
+ def record_usage: (Riffer::Tracing::Otel::Span | Riffer::Tracing::NoOp::Span, Riffer::Providers::TokenUsage?) -> void
37
37
 
38
38
  # Discards the resolved backend so the next span re-resolves it.
39
39
  # --
@@ -43,10 +43,10 @@ module Riffer::Tracing
43
43
  private
44
44
 
45
45
  # --
46
- # : () -> (Riffer::Tracing::Otel | singleton(Riffer::Tracing::Null))
47
- def backend: () -> (Riffer::Tracing::Otel | singleton(Riffer::Tracing::Null))
46
+ # : () -> untyped
47
+ def backend: () -> untyped
48
48
 
49
49
  # --
50
- # : () -> (Riffer::Tracing::Otel | singleton(Riffer::Tracing::Null))
51
- def resolve_backend: () -> (Riffer::Tracing::Otel | singleton(Riffer::Tracing::Null))
50
+ # : () -> untyped
51
+ def resolve_backend: () -> untyped
52
52
  end
@@ -0,0 +1,5 @@
1
+ # `Riffer::Metrics::NoOp` uses `extend self`; rbs-inline doesn't emit that, so
2
+ # re-extend here to expose its instance methods as singleton methods.
3
+ module Riffer::Metrics::NoOp
4
+ extend ::Riffer::Metrics::NoOp
5
+ end
@@ -0,0 +1,5 @@
1
+ # `Riffer::Tracing::NoOp` uses `extend self`; rbs-inline doesn't emit that, so
2
+ # re-extend here to expose its instance methods as singleton methods.
3
+ module Riffer::Tracing::NoOp
4
+ extend ::Riffer::Tracing::NoOp
5
+ 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.33.0
4
+ version: 0.35.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Bottrall
@@ -35,14 +35,14 @@ dependencies:
35
35
  requirements:
36
36
  - - "~>"
37
37
  - !ruby/object:Gem::Version
38
- version: 1.48.1
38
+ version: 1.49.0
39
39
  type: :development
40
40
  prerelease: false
41
41
  version_requirements: !ruby/object:Gem::Requirement
42
42
  requirements:
43
43
  - - "~>"
44
44
  - !ruby/object:Gem::Version
45
- version: 1.48.1
45
+ version: 1.49.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: aws-sdk-bedrockruntime
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -91,14 +91,14 @@ dependencies:
91
91
  requirements:
92
92
  - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: 0.66.1
94
+ version: 0.68.0
95
95
  type: :development
96
96
  prerelease: false
97
97
  version_requirements: !ruby/object:Gem::Requirement
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: 0.66.1
101
+ version: 0.68.0
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: async
104
104
  requirement: !ruby/object:Gem::Requirement
@@ -336,7 +336,7 @@ files:
336
336
  - lib/riffer/messages/user.rb
337
337
  - lib/riffer/metrics.rb
338
338
  - lib/riffer/metrics/instruments.rb
339
- - lib/riffer/metrics/null.rb
339
+ - lib/riffer/metrics/no_op.rb
340
340
  - lib/riffer/metrics/otel.rb
341
341
  - lib/riffer/params.rb
342
342
  - lib/riffer/params/boolean.rb
@@ -393,7 +393,7 @@ files:
393
393
  - lib/riffer/tools/toolable.rb
394
394
  - lib/riffer/tracing.rb
395
395
  - lib/riffer/tracing/capture.rb
396
- - lib/riffer/tracing/null.rb
396
+ - lib/riffer/tracing/no_op.rb
397
397
  - lib/riffer/tracing/otel.rb
398
398
  - lib/riffer/tracing/stream_recorder.rb
399
399
  - lib/riffer/version.rb
@@ -457,7 +457,7 @@ files:
457
457
  - sig/generated/riffer/messages/user.rbs
458
458
  - sig/generated/riffer/metrics.rbs
459
459
  - sig/generated/riffer/metrics/instruments.rbs
460
- - sig/generated/riffer/metrics/null.rbs
460
+ - sig/generated/riffer/metrics/no_op.rbs
461
461
  - sig/generated/riffer/metrics/otel.rbs
462
462
  - sig/generated/riffer/params.rbs
463
463
  - sig/generated/riffer/params/boolean.rbs
@@ -514,7 +514,7 @@ files:
514
514
  - sig/generated/riffer/tools/toolable.rbs
515
515
  - sig/generated/riffer/tracing.rbs
516
516
  - sig/generated/riffer/tracing/capture.rbs
517
- - sig/generated/riffer/tracing/null.rbs
517
+ - sig/generated/riffer/tracing/no_op.rbs
518
518
  - sig/generated/riffer/tracing/otel.rbs
519
519
  - sig/generated/riffer/tracing/stream_recorder.rbs
520
520
  - sig/generated/riffer/version.rbs
@@ -533,12 +533,12 @@ files:
533
533
  - sig/manual/riffer/mcp/registry.rbs
534
534
  - sig/manual/riffer/mcp/tool_factory.rbs
535
535
  - sig/manual/riffer/metrics.rbs
536
- - sig/manual/riffer/metrics/null.rbs
536
+ - sig/manual/riffer/metrics/no_op.rbs
537
537
  - sig/manual/riffer/providers.rbs
538
538
  - sig/manual/riffer/providers/repository.rbs
539
539
  - sig/manual/riffer/tracing.rbs
540
540
  - sig/manual/riffer/tracing/capture.rbs
541
- - sig/manual/riffer/tracing/null.rbs
541
+ - sig/manual/riffer/tracing/no_op.rbs
542
542
  homepage: https://riffer.ai
543
543
  licenses:
544
544
  - MIT
@@ -1,5 +0,0 @@
1
- # `Riffer::Metrics::Null` uses `extend self`; rbs-inline doesn't emit that, so
2
- # re-extend here to expose its instance methods as singleton methods.
3
- module Riffer::Metrics::Null
4
- extend ::Riffer::Metrics::Null
5
- end
@@ -1,5 +0,0 @@
1
- # `Riffer::Tracing::Null` uses `extend self`; rbs-inline doesn't emit that, so
2
- # re-extend here to expose its instance methods as singleton methods.
3
- module Riffer::Tracing::Null
4
- extend ::Riffer::Tracing::Null
5
- end