Lift the given inputs into a canonical node, mapping a lift failure (unknown directive, missing `id`, malformed `:::ref`, …) to a clean argument error so the CLI reports it gracefully instead of surfacing an internal error.
(inputs: &LiftInputs)
| 81 | /// directive, missing `id`, malformed `:::ref`, …) to a clean argument error so |
| 82 | /// the CLI reports it gracefully instead of surfacing an internal error. |
| 83 | pub fn lift(inputs: &LiftInputs) -> CliResult<CanonicalNode> { |
| 84 | lift_intent(&inputs.frontmatter, &inputs.body).map_err(|e| CliError::InvalidArgument { |
| 85 | message: format!("could not lift intent: {e}"), |
| 86 | }) |
| 87 | } |
| 88 | |
| 89 | /// Sanitize an intent id/key for use as a directory name in the sidecar/vault |
| 90 | /// path. Keeps ASCII alphanumerics, `-` and `_`; everything else becomes `_`. |