Files
g3/crates
Dhanji R. Prasanna 51dfe71a2b fix: generate actual Soufflé datalog in .dl files instead of YAML
The rulespec compiler was writing serde_yaml::to_string(&compiled) into
rulespec.compiled.dl files — just YAML, not datalog at all.

Added format_datalog_program() that produces proper Soufflé-style datalog:
- .decl relation declarations (claim_value, claim_length, predicate_pass, predicate_fail)
- Fact assertions from the envelope
- Rules for all 9 predicate types (exists, not_exists, equals, contains,
  greater_than, less_than, min_length, max_length, matches)
- .output directives for query results

Updated verify_envelope() to call the new function instead of
serde_yaml::to_string(). Added 8 unit tests covering all rule types,
edge cases, and the butler rulespec example.
2026-02-07 12:33:50 +11:00
..