class CursorAgentOutput::StreamParser
Attributes
Public Class Methods
Source
# File lib/cursor_agent_output.rb, line 26 def initialize(model:, on_assistant_text: nil, partial_output: true) @model = model @on_assistant_text = on_assistant_text @partial_output = partial_output @todos = [] @result_event = nil end
Public Instance Methods
Source
# File lib/cursor_agent_output.rb, line 34 def ingest_line(line) line = line.to_s.strip return if line.empty? event = JSON.parse(line) handle_event(event) rescue JSON::ParserError nil end
Source
# File lib/cursor_agent_output.rb, line 44 def to_result(status:) return nil unless @result_event usage = @result_event["usage"] || {} ok = (status.nil? || status.success?) && @result_event["is_error"] != true StreamResult.new( success: ok, 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 ) end