Module: Commiti::FlowContextBuilder

Defined in:
lib/services/flow_context_builder.rb

Class Method Summary collapse

Class Method Details

.build(flow_type:, diff:, client:, run_stage:, model:) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/services/flow_context_builder.rb', line 5

def self.build(flow_type:, diff:, client:, run_stage:, model:)
  line_chunks = Commiti::DiffParser.split_by_file_lines(diff)
   = Commiti::DiffParser.(line_chunks)
  change_groups = Commiti::ChangeGrouping.group(line_chunks)

  summarized_result = run_stage.call('Preparing diff for AI model') do
    Commiti::DiffSummarizer.summarize_if_needed(
      diff,
      client: client,
      model: model,
      chunks: summary_chunks(line_chunks)
    )
  end

  prompt = Commiti::PromptBuilder.build(
    type: flow_type,
    diff: summarized_result[:content],
    summarized: summarized_result[:summarized],
    raw_diff: diff,
    diff_metadata: 
  )

  {
    diff_metadata: ,
    change_groups: change_groups,
    summarized_result: summarized_result,
    prompt: prompt
  }
end