class RabbotMetaAgent::StreamParser
Attributes
Public Class Methods
Source
# File lib/rabbot_meta_agent.rb, line 38 def initialize(model:, on_assistant_text: nil, partial_output: true) @model = model @on_assistant_text = on_assistant_text @partial_output = partial_output @todos = [] @questions = nil @result_event = nil @session_id = nil end
Public Instance Methods
Source
# File lib/rabbot_meta_agent.rb, line 48 def ingest_line(line) line = line.to_s.strip return if line.empty? event = JSON.parse(line) @session_id ||= event["session_id"] handle_event(event) rescue JSON::ParserError nil end
Source
# File lib/rabbot_meta_agent.rb, line 59 def to_result(status:) return nil unless @result_event usage = @result_event["usage"] || {} ok = (status.nil? || status.success?) && @result_event["is_error"] != true questions = @questions needs_input = questions.is_a?(Array) && questions.any? AgentResult.new( success: ok || needs_input, text: @result_event["result"].to_s, duration_ms: @result_event["duration_ms"].to_i, model: @model, input_tokens: usage["inputTokens"].to_i, output_tokens: usage["outputTokens"].to_i, error: nil, todos: @todos, session_id: @session_id || @result_event["session_id"], questions: questions, needs_input: needs_input ) end