Class: RailsAiBridge::Serializers::Providers::Collaborators::LineEnforcer::EnforcedLines

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_ai_bridge/serializers/providers/collaborators/line_enforcer.rb

Overview

Applies a line budget while preserving room for the trim notice.

Instance Method Summary collapse

Constructor Details

#initialize(lines, max_lines) ⇒ EnforcedLines

Returns a new instance of EnforcedLines.

Parameters:

  • lines (Array<String>)

    Full document lines

  • max_lines (Integer)

    Maximum line count allowed in the output



29
30
31
32
# File 'lib/rails_ai_bridge/serializers/providers/collaborators/line_enforcer.rb', line 29

def initialize(lines, max_lines)
  @lines = lines
  @max_lines = max_lines
end

Instance Method Details

#to_aArray<String>

Returns Original lines, or trimmed lines with the MCP pointer.

Returns:

  • (Array<String>)

    Original lines, or trimmed lines with the MCP pointer



35
36
37
38
39
40
41
# File 'lib/rails_ai_bridge/serializers/providers/collaborators/line_enforcer.rb', line 35

def to_a
  return @lines.first(line_budget) if within_limit?
  return [] if line_budget.zero?
  return [LineEnforcer::TRIMMER_NOTICE] if line_budget == 1

  @lines.first(safe_count) + ['', LineEnforcer::TRIMMER_NOTICE]
end