"""Smoke test: post-rename, the new feedback module imports cleanly."""


def test_feedback_module_imports():
    """recoil.execution.feedback package must be importable."""
    import recoil.execution.feedback  # noqa: F401


def test_feedback_agent_class_exists():
    """FeedbackAgent class should be exported from the package."""
    try:
        from recoil.execution.feedback import FeedbackAgent  # noqa: F401
    except ImportError:
        # If it's nested, try the module it's defined in
        try:
            from recoil.execution.feedback.agent import FeedbackAgent  # noqa: F401
        except ImportError:
            import pytest
            pytest.skip("FeedbackAgent not yet exposed — check execution/feedback/__init__.py")


def test_feedback_constants_import():
    """MAX_KEYFRAME_FEEDBACK_ATTEMPTS and MAX_FEEDBACK_COST_PER_SHOT should exist."""
    try:
        from recoil.execution.feedback.constants import (
            MAX_KEYFRAME_FEEDBACK_ATTEMPTS,
            MAX_FEEDBACK_COST_PER_SHOT,
        )
    except ImportError:
        import pytest
        pytest.skip("feedback constants not yet migrated — check execution/feedback/constants.py")
    else:
        assert MAX_KEYFRAME_FEEDBACK_ATTEMPTS > 0
        assert MAX_FEEDBACK_COST_PER_SHOT > 0


def test_step_runner_imports_feedback_not_healer():
    import inspect
    from recoil.execution import step_runner
    src = inspect.getsource(step_runner)
    assert "recoil.execution.healer" not in src, "step_runner still imports execution.healer"
    assert ("recoil.execution.feedback" in src) or ("from execution import feedback" in src) or ("feedback_log" in src), \
        "step_runner doesn't import feedback"
