from __future__ import annotations import unittest from cognitive_agent.application.capability_registry import CapabilityRegistry from cognitive_agent.application.seat_service import REPOSITORY_ROOT from cognitive_agent.infrastructure.llm.openai_responses import build_intent_schema class CapabilityRegistryTests(unittest.TestCase): def test_loads_domain_owned_capabilities_and_execution_availability(self) -> None: snapshot = CapabilityRegistry(REPOSITORY_ROOT, {"seat"}).snapshot() domains = {item["domain"]: item for item in snapshot["domains"]} self.assertEqual(domains["seat"]["availability"], "executable") self.assertEqual(domains["climate"]["availability"], "catalog_only") seat_capabilities = {item["name"] for item in domains["seat"]["capabilities"]} self.assertIn("seat.set_backrest_recline", seat_capabilities) self.assertIn("seat.set_legrest_extension", seat_capabilities) self.assertIn("seat.save_posture_preset", seat_capabilities) self.assertIn("seat.apply_posture_preset", seat_capabilities) self.assertNotIn("seat.set_height", seat_capabilities) self.assertIn( "prefer_executable_when_equally_suitable", snapshot["execution_policy"]["capability_selection"], ) self.assertFalse(snapshot["execution_policy"]["named_preset_required"]) self.assertEqual( snapshot["execution_policy"]["planning_environment"], "dry_run_candidate_synthesis", ) self.assertIn( "vehicle", next( item for item in domains["climate"]["capabilities"] if item["name"] == "climate.set_fan_level" )["target_scopes"], ) def test_structured_output_schema_is_derived_from_registry(self) -> None: snapshot = CapabilityRegistry(REPOSITORY_ROOT, {"seat"}).snapshot() schema = build_intent_schema(snapshot) properties = schema["properties"] self.assertIn("climate", properties["detected_domains"]["items"]["enum"]) request = properties["requests"]["items"]["properties"] self.assertIn("climate.set_fan_level", request["capability"]["enum"]) self.assertIn("seat.set_cushion_tilt", request["capability"]["enum"]) self.assertIn("seat.save_posture_preset", request["capability"]["enum"]) self.assertIn("save", request["operation"]["enum"]) self.assertIn("apply", request["operation"]["enum"]) self.assertIn("vehicle", request["target_scope"]["enum"]) if __name__ == "__main__": unittest.main()