LICENSE
README.md
pyproject.toml
src/relay_detector/__init__.py
src/relay_detector/cli.py
src/relay_detector/client.py
src/relay_detector/comparator.py
src/relay_detector/config.py
src/relay_detector/models.py
src/relay_detector/report.py
src/relay_detector/runner.py
src/relay_detector/scorer.py
src/relay_detector.egg-info/PKG-INFO
src/relay_detector.egg-info/SOURCES.txt
src/relay_detector.egg-info/dependency_links.txt
src/relay_detector.egg-info/entry_points.txt
src/relay_detector.egg-info/requires.txt
src/relay_detector.egg-info/top_level.txt
src/relay_detector/core/__init__.py
src/relay_detector/core/comparator_framework.py
src/relay_detector/core/detectors_base.py
src/relay_detector/core/long_context.py
src/relay_detector/core/models.py
src/relay_detector/core/runner.py
src/relay_detector/core/scorer.py
src/relay_detector/detectors/__init__.py
src/relay_detector/detectors/base.py
src/relay_detector/detectors/behavioral_signature.py
src/relay_detector/detectors/consistency.py
src/relay_detector/detectors/identity.py
src/relay_detector/detectors/integrity.py
src/relay_detector/detectors/knowledge.py
src/relay_detector/detectors/message_id.py
src/relay_detector/detectors/pdf.py
src/relay_detector/detectors/protocol.py
src/relay_detector/detectors/structured_output.py
src/relay_detector/detectors/thinking_signature.py
src/relay_detector/detectors/token_usage.py
src/relay_detector/openai/__init__.py
src/relay_detector/openai/baseline.py
src/relay_detector/openai/client.py
src/relay_detector/openai/protocol_templates.py
src/relay_detector/protocols/__init__.py
src/relay_detector/protocols/anthropic/__init__.py
src/relay_detector/protocols/anthropic/client.py
src/relay_detector/protocols/anthropic/comparator.py
src/relay_detector/protocols/anthropic/config.py
src/relay_detector/protocols/anthropic/runner.py
src/relay_detector/protocols/anthropic/detectors/__init__.py
src/relay_detector/protocols/anthropic/detectors/base.py
src/relay_detector/protocols/anthropic/detectors/behavioral_signature.py
src/relay_detector/protocols/anthropic/detectors/consistency.py
src/relay_detector/protocols/anthropic/detectors/identity.py
src/relay_detector/protocols/anthropic/detectors/integrity.py
src/relay_detector/protocols/anthropic/detectors/knowledge.py
src/relay_detector/protocols/anthropic/detectors/long_context.py
src/relay_detector/protocols/anthropic/detectors/message_id.py
src/relay_detector/protocols/anthropic/detectors/pdf.py
src/relay_detector/protocols/anthropic/detectors/protocol.py
src/relay_detector/protocols/anthropic/detectors/structured_output.py
src/relay_detector/protocols/anthropic/detectors/thinking_signature.py
src/relay_detector/protocols/anthropic/detectors/token_usage.py
src/relay_detector/protocols/gemini/__init__.py
src/relay_detector/protocols/gemini/client.py
src/relay_detector/protocols/gemini/config.py
src/relay_detector/protocols/gemini/runner.py
src/relay_detector/protocols/gemini/detectors/__init__.py
src/relay_detector/protocols/gemini/detectors/base.py
src/relay_detector/protocols/gemini/detectors/basic_request.py
src/relay_detector/protocols/gemini/detectors/function_calling.py
src/relay_detector/protocols/gemini/detectors/integrity.py
src/relay_detector/protocols/gemini/detectors/model_info.py
src/relay_detector/protocols/gemini/detectors/protocol.py
src/relay_detector/protocols/gemini/detectors/structured_output.py
src/relay_detector/protocols/gemini/detectors/token_usage.py
src/relay_detector/protocols/gemini/detectors/utils.py
src/relay_detector/protocols/openai/__init__.py
src/relay_detector/protocols/openai/baseline.py
src/relay_detector/protocols/openai/client.py
src/relay_detector/protocols/openai/config.py
src/relay_detector/protocols/openai/protocol_templates.py
src/relay_detector/protocols/openai/runner.py
src/relay_detector/protocols/openai/detectors/__init__.py
src/relay_detector/protocols/openai/detectors/base.py
src/relay_detector/protocols/openai/detectors/basic_request.py
src/relay_detector/protocols/openai/detectors/function_calling.py
src/relay_detector/protocols/openai/detectors/integrity.py
src/relay_detector/protocols/openai/detectors/long_context.py
src/relay_detector/protocols/openai/detectors/model_consistency.py
src/relay_detector/protocols/openai/detectors/protocol.py
src/relay_detector/protocols/openai/detectors/structured_output.py
src/relay_detector/protocols/openai/detectors/token_billing.py
src/relay_detector/protocols/openai/detectors/token_parity.py
tests/test_active_detectors.py
tests/test_anthropic_long_context.py
tests/test_apikl_self_host.py
tests/test_cli_protocol_resolve.py
tests/test_client.py
tests/test_comparator.py
tests/test_gemini_phase3.py
tests/test_jobs_long_context.py
tests/test_leaderboard_detail.py
tests/test_leaderboard_ranking.py
tests/test_long_context.py
tests/test_openai_baseline.py
tests/test_openai_phase2.py
tests/test_openai_protocol_templates.py
tests/test_passive_detectors.py
tests/test_probe.py
tests/test_protocol_isolation.py
tests/test_ratelimit.py
tests/test_scorer.py
tests/test_seo_meta.py
tests/test_v2_protocol_layout.py