///|
fn print_result(name : String, input : String, note : String) -> Unit {
let result = @guard.scan(input)
println("== \{name} ==")
println("case: \{note}")
println("safe text: \{result.text()}")
println("removed: \{result.removed_count()}")
println(
"severity: dangerous=\{result.dangerous_count()}, warning=\{result.warning_count()}, info=\{result.info_count()}",
)
println("risk: \{result.risk_level()} (score=\{result.risk_score()})")
if result.is_safe() {
println("decision: display is allowed after sanitizing")
} else {
println("decision: block or review before display")
}
for finding in result.findings() {
println(
" - \{finding.kind().label()} [\{finding.severity().label()}] offset \{finding.offset()}: \{finding.message()}",
)
}
}
///|
fn print_policy_demo() -> Unit {
let input = "deploy: \u{1b}[1;32mOK\u{1b}[0m with trusted styling"
let strict = @guard.scan(input)
let styled = @guard.scan_with_policy(input, @guard.Policy::styled())
println("== policy comparison ==")
println("strict text: \{strict.text()}")
println("strict removed: \{strict.removed_count()}")
println("styled text: \{styled.text()}")
println("styled removed: \{styled.removed_count()}")
}
///|
fn print_report_demo() -> Unit {
let input = "agent output: \u{1b}[31mFAIL\u{1b}[0m\u{1b}]52;c;secret\u{07}"
let result = @guard.scan(input)
println("== audit report ==")
println(result.audit_report())
}
///|
fn main {
println("MoonAnsi Guard demo")
println("Input: untrusted terminal output")
println("Output: safe text + structured audit findings")
println("")
let samples = [
(
"colored build log", "\u{1b}[31mERROR\u{1b}[0m: build failed", "ANSI SGR color and reset sequences",
),
(
"clipboard write", "output\u{1b}]52;c;SGVsbG8=\u{07}done", "OSC 52 may write attacker-controlled data to the clipboard",
),
(
"hidden hyperlink", "\u{1b}]8;;https://evil.example\u{07}click here\u{1b}]8;;\u{07}",
"OSC 8 can hide the real link target behind harmless text",
),
(
"window title spoof", "\u{1b}]2;trusted session\u{07}normal output", "OSC 0/2 can rename terminal titles and mislead operators",
),
(
"cursor and screen rewrite", "line one\u{1b}[2A\u{1b}[2Kline two", "CSI cursor movement and erase commands can rewrite visible logs",
),
(
"log rewrite", "FAILED\rPASSED\b!", "carriage return and backspace can make logs visually misleading",
),
(
"private terminal payload", "safe\u{1b}Pprivate-data\u{1b}\\tail", "DCS payloads can trigger terminal-specific behavior",
),
(
"truncated escape", "prefix\u{1b}]52;c;payload", "unterminated sequences are treated as dangerous malformed input",
),
]
for sample in samples {
let (name, input, note) = sample
print_result(name, input, note)
println("")
}
print_policy_demo()
println("")
print_report_demo()
}