module AiPlanAgent
Constants
- PlanResult
Public Instance Methods
Source
# File lib/ai/plan_agent.rb, line 58 def default_runner(prompt, model, session_id: nil) args = [ "cursor-agent", "--model=#{model}", "--print", "--output-format", "stream-json", "--mode", "plan", "--sandbox", "enabled" ] args << "--resume" << session_id if session_id args << prompt.to_s CursorAgentRunner.capture3(*args, lane: :chat) end
Source
# File lib/ai/plan_agent.rb, line 39 def parse_stream(stdout, model:, status:) parser = StreamParser.new(model: model) stdout.to_s.each_line { |line| parser.ingest_line(line) } parser.to_result(status: status) end
Source
# File lib/ai/plan_agent.rb, line 45 def run_plan(prompt, model:, session_id: nil, runner: method(:default_runner)) stdout, stderr, status = runner.call(prompt, model, session_id: session_id) result = parse_stream(stdout, model: model, status: status) unless result.success? result.text = CursorAgentRunner.failure_message( stdout: result.text, stderr: stderr, fallback: "AI plan request failed" ) end result end