import unittest from pathlib import Path try: import tomllib except ModuleNotFoundError: # pragma: no cover import tomli as tomllib ROOT = Path(__file__).resolve().parents[1] AGENT_PATH = ROOT / ".codex" / "agents" / "reference-model-agent.toml" REFERENCE_MODELS_README = ROOT / "docs" / "reference-models" / "README.md" class ReferenceModelAgentConfigTests(unittest.TestCase): def test_reference_model_agent_toml_has_required_codex_fields(self): data = tomllib.loads(AGENT_PATH.read_text(encoding="utf-8")) self.assertEqual(data["name"], "reference-model-agent") self.assertIn("reference model packages", data["description"]) self.assertEqual(data["sandbox_mode"], "read-only") self.assertEqual(data["model_reasoning_effort"], "high") self.assertIn("developer_instructions", data) def test_reference_model_agent_instructions_enforce_boundaries(self): instructions = AGENT_PATH.read_text(encoding="utf-8") for required_text in ( "Do not implement code.", "Do not implement parsers.", "Do not design C++ APIs", "Do not run Abaqus, Nastran, or any reference solver.", "Do not generate reference CSVs.", "Do not compare solver results.", "Do not approve release readiness.", ): self.assertIn(required_text, instructions) def test_reference_model_agent_instructions_define_reference_contract(self): instructions = AGENT_PATH.read_text(encoding="utf-8") for required_text in ( "FESA reference models use Abaqus input files.", "references///", "model.inp", "metadata.json", "displacements.csv", "reactions.csv", "element_forces.csv", "stresses.csv", ): self.assertIn(required_text, instructions) def test_reference_model_agent_instructions_define_output_contract(self): instructions = AGENT_PATH.read_text(encoding="utf-8") for required_text in ( "Reference Strategy", "Model Inventory", "Abaqus Input Requirements", "Artifact Bundle Contract", "Metadata JSON Contract", "Reference CSV Requirements", "Coverage Matrix", "Downstream Handoff", ): self.assertIn(required_text, instructions) def test_reference_model_document_guide_defines_output_contract(self): guide = REFERENCE_MODELS_README.read_text(encoding="utf-8") for required_text in ( "Reference Strategy", "Model Inventory", "Abaqus Input Requirements", "Artifact Bundle Contract", "Metadata JSON Contract", "Reference CSV Requirements", "Coverage Matrix", "Downstream Handoff", "references///", ): self.assertIn(required_text, guide) if __name__ == "__main__": unittest.main()