| 18 | |
| 19 | |
| 20 | def parser() -> argparse.ArgumentParser: |
| 21 | p = argparse.ArgumentParser(description=__doc__ or "materialize figure asset") |
| 22 | p.add_argument("--source-image", required=True, help="Source image path selected by the model.") |
| 23 | p.add_argument("--input", default="", help="Optional metadata JSON path or JSON string.") |
| 24 | p.add_argument("--title", default="", help="Explicit paper title.") |
| 25 | p.add_argument("--vault", default="", help="Target Obsidian vault path.") |
| 26 | p.add_argument("--subdir", default="", help="Vault-relative note subdirectory.") |
| 27 | p.add_argument("--filename", default="", help="Optional note filename override.") |
| 28 | p.add_argument("--asset-subdir", default="images", help="Asset folder name relative to the note directory.") |
| 29 | p.add_argument("--label", default="", help="Optional human-readable label for the figure.") |
| 30 | p.add_argument("--output", default="", help="JSON output path.") |
| 31 | return p |
| 32 | |
| 33 | |
| 34 | def main() -> None: |