"""Robot Framework helper for skill YAML schema validation. Provides a CLI-style interface for Robot to invoke schema validation on skill YAML files. Exit code 0 = success, 1 = failure. Usage: python robot/helper_skill_schema.py validate python robot/helper_skill_schema.py validate-invalid """ from __future__ import annotations import sys from pathlib import Path _SRC = str(Path(__file__).resolve().parents[1] / "src") if _SRC not in sys.path: sys.path.insert(0, _SRC) from cleveragents.skills.schema import SkillConfigSchema # noqa: E402 def main() -> int: """Entry point called by Robot Framework ``Run Process``.""" if len(sys.argv) < 3: print("Usage: helper_skill_schema.py ") return 1 command = sys.argv[1] yaml_path = sys.argv[2] if command == "validate": try: config = SkillConfigSchema.from_yaml_file(yaml_path) print(f"skill-schema-ok: {config.name}") return 0 except Exception as exc: print(f"skill-schema-fail: {exc}") return 1 if command == "validate-invalid": try: SkillConfigSchema.from_yaml_file(yaml_path) print("skill-schema-unexpected-success") return 1 except Exception as exc: print(f"skill-schema-expected-fail: {exc}") return 0 print(f"Unknown command: {command}") return 1 if __name__ == "__main__": sys.exit(main())