///|
fn main {
  println("MoonAnsi Guard - streaming audit")
  println("The clipboard payload is intentionally split across chunks.")
  println("")
  let chunks = [
    "agent: build completed\n", "tool: \u{1b}]52;c;", "U0VDUkVU", "\u{07}result ready\n",
    "link: \u{1b}]8;;https://evil.example\u{07}", "open report", "\u{1b}]8;;\u{07}\n",
  ]
  let scanner = @guard.StreamScanner::new(policy=@guard.Policy::agent())
  let session = @guard.AuditSession::new()
  for index, chunk in chunks {
    let result = scanner.feed(chunk)
    session.record(result)
    println(
      "chunk \{index + 1}: safe_chars=\{result.text().to_array().length()}, findings=\{result.removed_count()}, pending=\{scanner.pending_length()}",
    )
  }
  session.record(scanner.finish())
  let result = session.result()
  let gate = @guard.GatePolicy::balanced()
  println("")
  println("sanitized output:")
  println(result.text())
  println("audit summary:")
  println(
    "segments=\{session.segment_count()}, findings=\{session.finding_count()}, risk=\{result.risk_level()}, score=\{result.risk_score()}",
  )
  println("gate decision: \{result.decide_with(gate).label()}")
  println("reasons:")
  for reason in result.decision_reasons(gate) {
    println("- \{reason}")
  }
  println("")
  println("machine report:")
  println(result.json_report())
}