simpleaudit-studio 0.4.1__tar.gz → 0.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/PKG-INFO +1 -1
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/engine.py +30 -2
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_engine_integration.py +22 -3
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/pyproject.toml +1 -1
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/uv.lock +1 -1
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/.dockerignore +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/.env.example +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/.env.local.example +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/.github/workflows/ci.yml +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/.github/workflows/docker.yml +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/.github/workflows/publish.yml +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/.gitignore +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/Dockerfile +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/LICENSE +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/README.md +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/admin.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/admin_urls.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/apps.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/auth_urls.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/migrations/0001_initial.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/migrations/0002_user_preferences.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/migrations/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/models.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/project_urls.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/serializers.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/services.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/views.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/workos_auth.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/admin.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/apps.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/comparison.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/events.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/experiments.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/migrations/0001_initial.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/migrations/0002_strip_api_keys_from_snapshots.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/migrations/0003_judges.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/migrations/0004_judge_model_per_run.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/migrations/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/models.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/monitors.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/serializers.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/services.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/urls.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/views.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/config/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/config/asgi.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/config/settings.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/config/urls.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/config/wsgi.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/deploy/compose/Dockerfile +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/deploy/mock_openai_server.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/deploy/postgres-init.sql +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/docker-compose.yml +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/docs/architecture.md +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/docs/deployment.md +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/docs/domain-model.md +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/e2e/test_ui.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/admin.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/apps.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/codegen.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/context_processors.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/db.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/exceptions.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/fixtures/demo_audit_results.json +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/hashing.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/health.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/health_api.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/logging.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/bootstrap_platform.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/dev_server.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/purge_test_data.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/run_monitors.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/run_worker.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/seed_demo_audits.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/seed_platform.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/setup_local.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/middleware.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/minimal_config.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/readiness.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/runs_table.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/seed.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/seo.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/simpleaudit_package.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/startup_checks.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/templatetags/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/templatetags/json_filters.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/factories.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_admin_api.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_admin_page.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_api_e2e.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_archive.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_clone.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_events.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_poll_results.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_rename.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_results_live.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_run_freeze.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_sse.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_submission.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_timing.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_auth_projects.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_bootstrap.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_codegen.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_comparison.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_connection_delete.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_connection_sharing.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_db_resilience.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_experiments.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_health.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_health_panel.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_judges.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_middleware.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_minimal_config.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_model_registry.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_monitors.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_profile.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_profile_ui.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_purge_test_data.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_runs_table.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_scenario_import_export.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_scenarios.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_seed_platform.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_smoke_all_pages.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_snapshot_secrets.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_workspace_archive.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_workspaces.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_workspaces_ui.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_write_guard.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/utils.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/ui.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/worker.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/admin.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/apps.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/migrations/0001_judges.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/migrations/0002_judge_model_per_run.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/migrations/0003_composable_judges.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/migrations/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/models.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/services.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/views.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/manage.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/admin.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/apps.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/migrations/0001_initial.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/migrations/0002_descriptions.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/migrations/0003_modelconnection_shared_with_and_more.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/migrations/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/models.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/serializers.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/services.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/urls.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/views.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/scenarios/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/scenarios/admin.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/scenarios/apps.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/scenarios/migrations/0001_initial.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/scenarios/migrations/0002_add_severity_ceiling_documents_file_uri.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/scenarios/migrations/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/scenarios/models.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/scenarios/serializers.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/scenarios/services.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/scenarios/urls.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/scenarios/views.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/simpleaudit_studio/__init__.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/simpleaudit_studio/cli.py +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/static/favicon-16x16.svg +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/static/favicon-32x32.svg +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/static/favicon.svg +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/static/js/diff.min.js +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/static/js/version-diff.js +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/static/logo.png +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/static/logo.svg +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/static/og-image.png +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/404.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/admin.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/auth/login.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/auth/register.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/auth/workos_login.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/auth/workos_verify.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/base.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/compare.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/dashboard.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/experiment_detail.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/experiment_new.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/experiment_review.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/experiments.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/health.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/judge_detail.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/judges.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/models.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/monitor_detail.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/monitors.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/auth_header.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/chip_input.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/compare_run_header.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/footer.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/judge_picker.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/local_time_js.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/model_pickers.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/multi_filter.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/need_help.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/not_found.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/pinned_version.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/result_rep_panel.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/run_results.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/run_settings.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/run_settings_js.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/severity_badge.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/sidebar.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/text_file_modal.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/tooltips.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/ui_js.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/version_badge.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/version_diff_js.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/version_diff_modal.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/profile.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/public/base_public.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/public/landing.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/run_detail.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/run_result.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/scenarios.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/seo/head.html +0 -0
- {simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/workspaces.html +0 -0
|
@@ -140,6 +140,33 @@ def _split_endpoint_params(params: dict[str, Any]) -> tuple[dict | None, dict |
|
|
|
140
140
|
return (gen_params or None), (client_kwargs or None)
|
|
141
141
|
|
|
142
142
|
|
|
143
|
+
# A slow or stuck endpoint must fail and be retried, not hang a run: the
|
|
144
|
+
# OpenAI client's own default is 600 s per request with 2 retries, and
|
|
145
|
+
# SimpleAudit retries on top. An endpoint's default_parameters can set
|
|
146
|
+
# "timeout" / "max_retries" to override these.
|
|
147
|
+
CLIENT_TIMEOUT_S = 180
|
|
148
|
+
CLIENT_MAX_RETRIES = 1
|
|
149
|
+
_CLIENT_DEFAULTS: dict[str, dict] = {}
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def _client_defaults(provider: str) -> dict:
|
|
153
|
+
"""``timeout`` / ``max_retries`` client kwargs, when the provider's client
|
|
154
|
+
takes them (probed once by building one; construction opens no connection).
|
|
155
|
+
Providers that don't, or can't be built here, get none."""
|
|
156
|
+
cached = _CLIENT_DEFAULTS.get(provider)
|
|
157
|
+
if cached is None:
|
|
158
|
+
defaults = {"timeout": CLIENT_TIMEOUT_S, "max_retries": CLIENT_MAX_RETRIES}
|
|
159
|
+
try:
|
|
160
|
+
from any_llm import AnyLLM
|
|
161
|
+
|
|
162
|
+
AnyLLM.create(provider, api_key="probe", **defaults)
|
|
163
|
+
cached = defaults
|
|
164
|
+
except Exception: # noqa: BLE001 - unsupported kwargs or provider extras not installed
|
|
165
|
+
cached = {}
|
|
166
|
+
_CLIENT_DEFAULTS[provider] = cached
|
|
167
|
+
return dict(cached)
|
|
168
|
+
|
|
169
|
+
|
|
143
170
|
def _auditor_kwargs_from_snapshot(snapshot: dict[str, Any], resolve_key=snapshot_api_key) -> dict[str, Any]:
|
|
144
171
|
"""Map a frozen endpoint snapshot onto ModelAuditor constructor kwargs.
|
|
145
172
|
|
|
@@ -159,12 +186,13 @@ def _auditor_kwargs_from_snapshot(snapshot: dict[str, Any], resolve_key=snapshot
|
|
|
159
186
|
# same convention the engine's own preflight probe uses (api_key="probe").
|
|
160
187
|
if not api_key:
|
|
161
188
|
api_key = "no-auth"
|
|
189
|
+
provider = _normalize_provider(snapshot.get("provider"), base_url)
|
|
162
190
|
return {
|
|
163
191
|
"model": snapshot.get("model_id"),
|
|
164
|
-
"provider":
|
|
192
|
+
"provider": provider,
|
|
165
193
|
"base_url": base_url,
|
|
166
194
|
"api_key": api_key,
|
|
167
|
-
"kwargs": client_kwargs,
|
|
195
|
+
"kwargs": {**_client_defaults(provider), **(client_kwargs or {})} or None,
|
|
168
196
|
"gen_params": gen_params,
|
|
169
197
|
}
|
|
170
198
|
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_engine_integration.py
RENAMED
|
@@ -140,8 +140,9 @@ class AuditorKwargsTest(TestCase):
|
|
|
140
140
|
self.assertEqual(language, "Norwegian")
|
|
141
141
|
self.assertEqual((kwargs["model"], kwargs["auditor_model"], kwargs["judge_model"]), ("tgt", "aud", "jdg"))
|
|
142
142
|
self.assertEqual(kwargs["judge_base_url"], "http://jdg.local/v1")
|
|
143
|
-
|
|
144
|
-
self.assertEqual(kwargs["
|
|
143
|
+
# An endpoint's own timeout wins over the default; max_retries is the default.
|
|
144
|
+
self.assertEqual(kwargs["auditor_kwargs"], {"timeout": 5, "max_retries": 1})
|
|
145
|
+
self.assertEqual(kwargs["judge_kwargs"], {"timeout": 9, "max_retries": 1})
|
|
145
146
|
self.assertEqual(kwargs["judge_params"], {"temperature": 0, "top_p": 1})
|
|
146
147
|
self.assertEqual(kwargs["target_params"], {"temperature": 0.1})
|
|
147
148
|
self.assertEqual(kwargs["system_prompt"], "Be brief.")
|
|
@@ -196,7 +197,7 @@ class AuditorKwargsTest(TestCase):
|
|
|
196
197
|
entry = captured["entry"]
|
|
197
198
|
self.assertEqual((entry["model"], entry["auditor_model"], entry["judge_model"]), ("tgt", "aud", "jdg"))
|
|
198
199
|
self.assertEqual(entry["judge_base_url"], "http://jdg.local/v1")
|
|
199
|
-
self.assertEqual(entry["judge_kwargs"], {"timeout": 9})
|
|
200
|
+
self.assertEqual(entry["judge_kwargs"], {"timeout": 9, "max_retries": 1})
|
|
200
201
|
|
|
201
202
|
|
|
202
203
|
class ProviderNormalizationTest(TestCase):
|
|
@@ -774,6 +775,24 @@ class ResumableExecutionTest(TestCase):
|
|
|
774
775
|
self.assertEqual(run.status, AuditRun.Status.COMPLETED)
|
|
775
776
|
|
|
776
777
|
|
|
778
|
+
class ClientDefaultsTest(TestCase):
|
|
779
|
+
"""A stuck endpoint must not hang a run: requests get a bounded timeout."""
|
|
780
|
+
|
|
781
|
+
def test_default_timeout_and_endpoint_override(self):
|
|
782
|
+
from infra.engine import CLIENT_TIMEOUT_S, auditor_kwargs
|
|
783
|
+
|
|
784
|
+
kwargs, _ = auditor_kwargs(target=_snap("t"), auditor=_snap("a", default_parameters={"max_retries": 4}),
|
|
785
|
+
judge=_snap("j"))
|
|
786
|
+
self.assertEqual(kwargs["target_kwargs"], {"timeout": CLIENT_TIMEOUT_S, "max_retries": 1})
|
|
787
|
+
self.assertEqual(kwargs["auditor_kwargs"], {"timeout": CLIENT_TIMEOUT_S, "max_retries": 4})
|
|
788
|
+
|
|
789
|
+
def test_provider_without_support_gets_none(self):
|
|
790
|
+
from infra import engine
|
|
791
|
+
|
|
792
|
+
engine._CLIENT_DEFAULTS.pop("nosuchprovider", None)
|
|
793
|
+
self.assertEqual(engine._client_defaults("nosuchprovider"), {})
|
|
794
|
+
|
|
795
|
+
|
|
777
796
|
class RealAuditorScenarioTest(TestCase):
|
|
778
797
|
"""engine.run_scenario against the real ModelAuditor (fake model clients):
|
|
779
798
|
every scenario field Studio stores must reach SimpleAudit without a
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/accounts/migrations/0002_user_preferences.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/audits/migrations/0004_judge_model_per_run.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/fixtures/demo_audit_results.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/dev_server.py
RENAMED
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/purge_test_data.py
RENAMED
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/run_monitors.py
RENAMED
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/run_worker.py
RENAMED
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/seed_demo_audits.py
RENAMED
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/seed_platform.py
RENAMED
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/management/commands/setup_local.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_poll_results.py
RENAMED
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_audit_results_live.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_connection_sharing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/infra/tests/test_scenario_import_export.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/migrations/0002_judge_model_per_run.py
RENAMED
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/judges/migrations/0003_composable_judges.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/migrations/0001_initial.py
RENAMED
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/model_registry/migrations/0002_descriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/compare_run_header.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/pinned_version.html
RENAMED
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/result_rep_panel.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/run_settings_js.html
RENAMED
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/severity_badge.html
RENAMED
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/text_file_modal.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/version_diff_js.html
RENAMED
|
File without changes
|
{simpleaudit_studio-0.4.1 → simpleaudit_studio-0.4.2}/templates/partials/version_diff_modal.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|