LICENSE
README.md
pyproject.toml
setup.py
src/pydantic_llm_tester/.env.example
src/pydantic_llm_tester/__init__.py
src/pydantic_llm_tester/llm_tester.py
src/pydantic_llm_tester.egg-info/PKG-INFO
src/pydantic_llm_tester.egg-info/SOURCES.txt
src/pydantic_llm_tester.egg-info/dependency_links.txt
src/pydantic_llm_tester.egg-info/entry_points.txt
src/pydantic_llm_tester.egg-info/requires.txt
src/pydantic_llm_tester.egg-info/top_level.txt
src/pydantic_llm_tester/bridge/README.md
src/pydantic_llm_tester/bridge/__init__.py
src/pydantic_llm_tester/bridge/analysis_report.py
src/pydantic_llm_tester/bridge/pyllm_bridge.py
src/pydantic_llm_tester/cli/__init__.py
src/pydantic_llm_tester/cli/interactive_ui.py
src/pydantic_llm_tester/cli/main.py
src/pydantic_llm_tester/cli/commands/__init__.py
src/pydantic_llm_tester/cli/commands/configure.py
src/pydantic_llm_tester/cli/commands/costs.py
src/pydantic_llm_tester/cli/commands/interactive.py
src/pydantic_llm_tester/cli/commands/models.py
src/pydantic_llm_tester/cli/commands/paths.py
src/pydantic_llm_tester/cli/commands/prices.py
src/pydantic_llm_tester/cli/commands/providers.py
src/pydantic_llm_tester/cli/commands/recommend.py
src/pydantic_llm_tester/cli/commands/run.py
src/pydantic_llm_tester/cli/commands/scaffold.py
src/pydantic_llm_tester/cli/commands/schemas.py
src/pydantic_llm_tester/cli/core/__init__.py
src/pydantic_llm_tester/cli/core/config_logic.py
src/pydantic_llm_tester/cli/core/cost_update_logic.py
src/pydantic_llm_tester/cli/core/llm_model_logic.py
src/pydantic_llm_tester/cli/core/model_config_logic.py
src/pydantic_llm_tester/cli/core/price_query_logic.py
src/pydantic_llm_tester/cli/core/provider_logic.py
src/pydantic_llm_tester/cli/core/recommend_logic.py
src/pydantic_llm_tester/cli/core/scaffold_logic.py
src/pydantic_llm_tester/cli/core/schema_logic.py
src/pydantic_llm_tester/cli/core/test_runner_logic.py
src/pydantic_llm_tester/cli/templates/__init__.py
src/pydantic_llm_tester/cli/templates/model_init.py.tmpl
src/pydantic_llm_tester/cli/templates/model_model.py.tmpl
src/pydantic_llm_tester/cli/templates/model_test_expected.json.tmpl
src/pydantic_llm_tester/cli/templates/model_test_prompt.txt.tmpl
src/pydantic_llm_tester/cli/templates/model_test_source.txt.tmpl
src/pydantic_llm_tester/cli/templates/model_tests_init.py.tmpl
src/pydantic_llm_tester/cli/templates/provider_config.json.tmpl
src/pydantic_llm_tester/cli/templates/provider_init.py.tmpl
src/pydantic_llm_tester/cli/templates/provider_provider.py.tmpl
src/pydantic_llm_tester/llms/__init__.py
src/pydantic_llm_tester/llms/base.py
src/pydantic_llm_tester/llms/llm_registry.py
src/pydantic_llm_tester/llms/provider_factory.py
src/pydantic_llm_tester/llms/anthropic/__init__.py
src/pydantic_llm_tester/llms/anthropic/config.json
src/pydantic_llm_tester/llms/anthropic/provider.py
src/pydantic_llm_tester/llms/google/__init__.py
src/pydantic_llm_tester/llms/google/config.json
src/pydantic_llm_tester/llms/google/provider.py
src/pydantic_llm_tester/llms/mistral/__init__.py
src/pydantic_llm_tester/llms/mistral/config.json
src/pydantic_llm_tester/llms/mistral/provider.py
src/pydantic_llm_tester/llms/mock/__init__.py
src/pydantic_llm_tester/llms/mock/config.json
src/pydantic_llm_tester/llms/mock/provider.py
src/pydantic_llm_tester/llms/openai/__init__.py
src/pydantic_llm_tester/llms/openai/config.json
src/pydantic_llm_tester/llms/openai/provider.py
src/pydantic_llm_tester/llms/openrouter/__init__.py
src/pydantic_llm_tester/llms/openrouter/config.json
src/pydantic_llm_tester/llms/openrouter/provider.py
src/pydantic_llm_tester/llms/pydantic_ai/__init__.py
src/pydantic_llm_tester/llms/pydantic_ai/config.json
src/pydantic_llm_tester/llms/pydantic_ai/provider.py
src/pydantic_llm_tester/py_models/__init__.py
src/pydantic_llm_tester/py_models/base.py
src/pydantic_llm_tester/py_models/integration_tests/__init__.py
src/pydantic_llm_tester/py_models/integration_tests/model.py
src/pydantic_llm_tester/py_models/integration_tests/tests/__init__.py
src/pydantic_llm_tester/py_models/integration_tests/tests/expected/__init__.py
src/pydantic_llm_tester/py_models/integration_tests/tests/expected/simple.json
src/pydantic_llm_tester/py_models/integration_tests/tests/prompts/__init__.py
src/pydantic_llm_tester/py_models/integration_tests/tests/prompts/simple.txt
src/pydantic_llm_tester/py_models/integration_tests/tests/sources/__init__.py
src/pydantic_llm_tester/py_models/integration_tests/tests/sources/simple.txt
src/pydantic_llm_tester/py_models/job_ads/README.md
src/pydantic_llm_tester/py_models/job_ads/__init__.py
src/pydantic_llm_tester/py_models/job_ads/model.py
src/pydantic_llm_tester/py_models/job_ads/tests/__init__.py
src/pydantic_llm_tester/py_models/job_ads/tests/expected/__init__.py
src/pydantic_llm_tester/py_models/job_ads/tests/expected/complex.json
src/pydantic_llm_tester/py_models/job_ads/tests/expected/example_from_image_google.json
src/pydantic_llm_tester/py_models/job_ads/tests/expected/job_ad_from_image.json
src/pydantic_llm_tester/py_models/job_ads/tests/expected/job_ad_pic.json
src/pydantic_llm_tester/py_models/job_ads/tests/expected/simple.json
src/pydantic_llm_tester/py_models/job_ads/tests/prompts/__init__.py
src/pydantic_llm_tester/py_models/job_ads/tests/prompts/complex.txt
src/pydantic_llm_tester/py_models/job_ads/tests/prompts/job_ad_from_image_prompt.txt
src/pydantic_llm_tester/py_models/job_ads/tests/prompts/simple.txt
src/pydantic_llm_tester/py_models/job_ads/tests/prompts/optimized/complex.txt
src/pydantic_llm_tester/py_models/job_ads/tests/prompts/optimized/simple.txt
src/pydantic_llm_tester/py_models/job_ads/tests/sources/__init__.py
src/pydantic_llm_tester/py_models/job_ads/tests/sources/complex.txt
src/pydantic_llm_tester/py_models/job_ads/tests/sources/job_ad_from_image_source.txt
src/pydantic_llm_tester/py_models/job_ads/tests/sources/simple.txt
src/pydantic_llm_tester/py_models/product_descriptions/README.md
src/pydantic_llm_tester/py_models/product_descriptions/__init__.py
src/pydantic_llm_tester/py_models/product_descriptions/model.py
src/pydantic_llm_tester/py_models/product_descriptions/tests/__init__.py
src/pydantic_llm_tester/py_models/product_descriptions/tests/expected/__init__.py
src/pydantic_llm_tester/py_models/product_descriptions/tests/expected/simple_gadget.json
src/pydantic_llm_tester/py_models/product_descriptions/tests/expected/tech_gadget.json
src/pydantic_llm_tester/py_models/product_descriptions/tests/prompts/__init__.py
src/pydantic_llm_tester/py_models/product_descriptions/tests/prompts/simple_gadget.txt
src/pydantic_llm_tester/py_models/product_descriptions/tests/prompts/tech_gadget.txt
src/pydantic_llm_tester/py_models/product_descriptions/tests/prompts/optimized/simple_gadget.txt
src/pydantic_llm_tester/py_models/product_descriptions/tests/prompts/optimized/tech_gadget.txt
src/pydantic_llm_tester/py_models/product_descriptions/tests/sources/__init__.py
src/pydantic_llm_tester/py_models/product_descriptions/tests/sources/simple_gadget.txt
src/pydantic_llm_tester/py_models/product_descriptions/tests/sources/tech_gadget.txt
src/pydantic_llm_tester/tests/__init__.py
src/pydantic_llm_tester/utils/__init__.py
src/pydantic_llm_tester/utils/common.py
src/pydantic_llm_tester/utils/config_manager.py
src/pydantic_llm_tester/utils/cost_manager.py
src/pydantic_llm_tester/utils/mock_responses.py
src/pydantic_llm_tester/utils/module_discovery.py
src/pydantic_llm_tester/utils/prompt_optimizer.py
src/pydantic_llm_tester/utils/provider_manager.py
src/pydantic_llm_tester/utils/reload_providers.py
src/pydantic_llm_tester/utils/report_generator.py
tests/test_accuracy_calculation.py
tests/test_config_manager.py
tests/test_llm_registry.py
tests/test_llm_tester.py
tests/test_mock_provider.py
tests/test_mock_responses.py
tests/test_openrouter_provider.py
tests/test_provider_connections.py
tests/test_provider_factory.py
tests/test_provider_integration.py
tests/test_provider_manager_refactored.py
tests/test_pyllm_bridge.py
tests/test_refactored_accuracy.py