from __future__ import annotations import argparse import json from pathlib import Path from .generator import generate def main(argv: list[str] | None = None) -> int: parser = argparse.ArgumentParser(description="Generate a TSD and editable draw.io architecture diagram") parser.add_argument("requirements", help="JSON requirements file or plain-text requirements file") parser.add_argument("--output-dir", default="artifacts") args = parser.parse_args(argv) source = Path(args.requirements).read_text(encoding="utf-8") try: requirements = json.loads(source) except json.JSONDecodeError: requirements = source result = generate(requirements, args.output_dir) print(json.dumps(result, indent=2)) return 0 if __name__ == "__main__": raise SystemExit(main())