Class: Aireview::DryRunPrompts

Inherits:
Object
  • Object
show all
Defined in:
lib/aireview/dry_run_prompts.rb

Overview

The prompts of a run without calling a model, and everything --dry-run shows. The review key is computed from them too (ReviewMarker): the LLM Critique prompt is built only when an LLM Critique can run, the Jev question templates only when Jev decides.

Constant Summary collapse

CANDIDATES_JSON =
'[{"id":"C1","file":"path/from/diff.rb","line":1,' \
'"quoted_code":"...","problem":"...","why":"...","suggestion":"...",' \
'"category":"bug","severity":"major"}]'

Instance Method Summary collapse

Constructor Details

#initialize(config:, context_builder:, logger: Logger.new($stderr)) ⇒ DryRunPrompts

Returns a new instance of DryRunPrompts.



17
18
19
20
21
# File 'lib/aireview/dry_run_prompts.rb', line 17

def initialize(config:, context_builder:, logger: Logger.new($stderr))
  @config = config
  @context_builder = context_builder
  @logger = logger
end

Instance Method Details

#build(merge_request:, changes:, jira_issue: nil, critique: true) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/aireview/dry_run_prompts.rb', line 23

def build(merge_request:, changes:, jira_issue: nil, critique: true)
  @config.require_models!(critique: critique)
  stages = @config.llm_stages(critique: critique)
  context = @context_builder.prepare(
    merge_request: merge_request,
    changes: changes,
    jira_issue: jira_issue,
    critique: critique
  )

  prompts(context, stages, critique).merge(settings(context, stages, critique))
end