Preview, validate and recover bounded AI file operations with a shared MoonBit core.
moon add icyaaaww/moonguard///|
import {
"icyaaaww/moonguard",
}///|
test {
let before : @moonguard.Snapshot = {
files: [{ path: "note.md", content: "draft\n", }],
folders: [],
blocked: [],
}
let planned = @moonguard.plan(before, [
{ kind: "write", path: "note.md", to: None, content: Some("reviewed\n"), },
])
assert_true(planned.ready())
assert_true(@moonguard.check_apply(planned, before).is_empty())
let recovery = @moonguard.restore_plan(planned, planned.result)
assert_true(recovery.ready())
assert_eq(recovery.result.files, before.files)
}moon check --target all
moon test --target js
moon test --target wasm-gc
moon run cmd/main --target jsfn rewrite_links(content : String, old_path : String, new_path : String, moved : Map[String, String]) -> Stringfn valid_path(path : String) -> Booltest {
assert_true(@moonguard.valid_path("notes/设计.md"))
assert_false(@moonguard.valid_path("../private.txt"))
}Install
Download zipPreview, validate and recover bounded AI file operations with a shared MoonBit core.