///|
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())
}