Module: Jekyll::AgentAudit::Reporters::Console

Defined in:
lib/jekyll/agent_audit/reporters/console.rb

Constant Summary collapse

SEVERITIES =
%w[error warning info experimental].freeze
MAX_VALUE_LENGTH =
240

Class Method Summary collapse

Class Method Details

.render(report, verbose: false) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/jekyll/agent_audit/reporters/console.rb', line 11

def render(report, verbose: false)
  data = report.to_h
  summary = data.fetch("summary", {})
  lines = ["AI publishing audit — local build", "", "Documents inspected: #{safe(summary["documents_inspected"])}"]
  lines << "Active findings: #{severity_summary(summary["active"])}"
  lines << "Suppressed findings: #{safe(summary["suppressed"], "0")}"
  lines << coverage_line(data.fetch("coverage", {}), data.dig("run", "complete"))
  lines << ""
  lines << "Discovery: Not assessed — jekyll-agent-discovery"
  append_findings(lines, report.findings, verbose)
  append_diagnostics(lines, data.fetch("diagnostics", []), verbose)
  lines << ""
  lines << result_line(report, data)
  lines.join("\n")
end

.result_line(report, data) ⇒ Object



100
101
102
103
104
# File 'lib/jekyll/agent_audit/reporters/console.rb', line 100

def result_line(report, data)
  code = Array(data["diagnostics"]).any? { |item| (item["code"] || item[:code]).to_s == "interrupted" } ? 130 : report.exit_code
  result = {0 => "passed", 1 => "failed policy", 130 => "interrupted"}.fetch(code, "incomplete")
  "Result: #{result} (fail_on=#{escape(data.dig("policy", "fail_on"))}). Exit #{code}."
end