class Riffer::Agent::Context
rbs_inline: enabled
Constants
- RESERVED_KEYS
-
@rbs @data: Hash[Symbol, untyped]
Public Class Methods
Source
# File lib/riffer/agent/context.rb, line 12 def initialize(data = {}) reserved = data.keys & RESERVED_KEYS if reserved.any? raise Riffer::ArgumentError, "Reserved keys cannot be passed in context: #{reserved.join(', ')}" end @data = data.dup @data[:skills] = nil @data[:token_usage] = nil @data[:mcp_progressive_tools] = nil @data[:discovered_tools] = nil end
Raises Riffer::ArgumentError if data contains a reserved key.
Public Instance Methods
Source
# File lib/riffer/agent/context.rb, line 107 def discover_tools(tools) existing = @data[:discovered_tools] || [] @data[:discovered_tools] = (existing + tools).uniq(&:name) end
Source
# File lib/riffer/agent/context.rb, line 87 def discovered_tools @data[:discovered_tools] end
Source
# File lib/riffer/agent/context.rb, line 93 def discovered_tools=(value) valid = value.nil? || ( value.is_a?(Array) && value.all? { |tool| tool.is_a?(Class) && tool < Riffer::Tool } ) unless valid raise Riffer::ArgumentError, "discovered_tools must be an Array of Riffer::Tool subclasses or nil, got #{value.class}" end @data[:discovered_tools] = value end
Source
# File lib/riffer/agent/context.rb, line 67 def mcp_progressive_tools @data[:mcp_progressive_tools] end
Source
# File lib/riffer/agent/context.rb, line 73 def mcp_progressive_tools=(value) valid = value.nil? || ( value.is_a?(Array) && value.all? { |tool| tool.is_a?(Class) && tool < Riffer::Tool } ) unless valid raise Riffer::ArgumentError, "mcp_progressive_tools must be an Array of Riffer::Tool subclasses or nil, got #{value.class}" end @data[:mcp_progressive_tools] = value end
Source
# File lib/riffer/agent/context.rb, line 34 def skills=(value) unless value.nil? || value.is_a?(Riffer::Skills::Context) raise Riffer::ArgumentError, "skills must be a Riffer::Skills::Context or nil, got #{value.class}" end @data[:skills] = value end
Source
# File lib/riffer/agent/context.rb, line 45 def token_usage @data[:token_usage] end
Cumulative across every run on this agent.
Source
# File lib/riffer/agent/context.rb, line 51 def token_usage=(value) unless value.nil? || value.is_a?(Riffer::Providers::TokenUsage) raise Riffer::ArgumentError, "token_usage must be a Riffer::Providers::TokenUsage or nil, got #{value.class}" end @data[:token_usage] = value end