evalgate-sdk 3.6.0__tar.gz → 3.13.0__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.
- evalgate_sdk-3.13.0/.evalgate/harness-events.jsonl +1 -0
- evalgate_sdk-3.13.0/.evalgate/last-report.json +23 -0
- evalgate_sdk-3.13.0/CHANGELOG.md +436 -0
- evalgate_sdk-3.13.0/PKG-INFO +454 -0
- evalgate_sdk-3.13.0/README.md +404 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/pyproject.toml +26 -13
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/__init__.py +215 -2
- evalgate_sdk-3.13.0/src/evalgate_sdk/_generated_capabilities.py +955 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/_generated_operations.py +2614 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/_version.py +3 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/assertions.py +11 -10
- evalgate_sdk-3.13.0/src/evalgate_sdk/baseline_attestation.py +108 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/capability_selection.py +118 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/__init__.py +194 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/agent_connect.py +348 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/ai_usage.py +531 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/api.py +2 -2
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/api_command_config.py +131 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/application_health.py +388 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/application_health_skill.py +89 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/baseline_contract.py +236 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/capabilities_command.py +211 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/check_runner.py +59 -13
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/cli_constants.py +4 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/command_registry.py +295 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/commands.py +2170 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/config.py +81 -15
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/datasets.py +153 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/evidence_persistence.py +1 -1
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/exit_contract.py +158 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/failure_modes.py +2 -2
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/golden_commands.py +63 -3
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/harness_capture.py +454 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/harness_delegation.py +829 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/harness_optimization.py +1379 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/harness_optimization_skill.py +174 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/judge_commands.py +6 -2
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/langsmith_migration.py +150 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/lifecycle.py +1300 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/local_gate_readiness.py +205 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/machine_errors.py +108 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/measurement.py +137 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/native_adapters.py +208 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/new_commands.py +57 -97
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/next_actions.py +128 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/offline_sandbox.py +91 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/openapi_command.py +178 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/package_handlers.py +458 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/product_intelligence.py +311 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/project_contract.py +814 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/prompts.py +274 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/quality.py +792 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/quality_profile.py +82 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/red_team.py +376 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/regression_gate.py +1024 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/sprint4_commands.py +8 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/cli/understand.py +79 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/workflow_commands.py +5 -2
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/client.py +1168 -54
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/collector.py +2 -2
- evalgate_sdk-3.13.0/src/evalgate_sdk/compat_evals.py +113 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/constants.py +1 -1
- evalgate_sdk-3.13.0/src/evalgate_sdk/data/standards-catalog.data.json +91 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/evals_as_code.py +160 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/evaluation_process.py +432 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/evaluators.py +390 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/export.py +477 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/formatters/json_fmt.py +50 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/golden.py +109 -4
- evalgate_sdk-3.13.0/src/evalgate_sdk/golden_admission.py +178 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/openai_eval.py +3 -2
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/knowledge.py +16 -10
- evalgate_sdk-3.13.0/src/evalgate_sdk/local_promote.py +123 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/matchers.py +2 -1
- evalgate_sdk-3.13.0/src/evalgate_sdk/measurement.py +388 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/openapi_client.py +375 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/pagination.py +2 -2
- evalgate_sdk-3.13.0/src/evalgate_sdk/product_understanding.py +1206 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/pytest_plugin.py +245 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/quality_profile.py +465 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/red_team_admission.py +891 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/regression.py +8 -2
- evalgate_sdk-3.13.0/src/evalgate_sdk/remote_runner.py +240 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/replay_decision.py +3 -3
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/adapters/testsuite_to_dsl.py +4 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/eval.py +3 -3
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/execution_mode.py +3 -4
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/registry.py +31 -2
- evalgate_sdk-3.13.0/src/evalgate_sdk/standards_catalog.py +48 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/synthesize.py +427 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/testing.py +280 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/trajectory_analysis.py +96 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/trajectory_gate.py +172 -0
- evalgate_sdk-3.13.0/src/evalgate_sdk/trajectory_match.py +254 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/types.py +485 -23
- evalgate_sdk-3.13.0/tests/__init__.py +0 -0
- evalgate_sdk-3.13.0/tests/_linked_repository.py +83 -0
- evalgate_sdk-3.13.0/tests/conftest.py +10 -0
- evalgate_sdk-3.13.0/tests/fixtures/product-understanding-cross-language/README.md +3 -0
- evalgate_sdk-3.13.0/tests/fixtures/product-understanding-cross-language/src/response-schema.ts +1 -0
- evalgate_sdk-3.13.0/tests/test_agent_experience_closure.py +97 -0
- evalgate_sdk-3.13.0/tests/test_annotation_tasks.py +75 -0
- evalgate_sdk-3.13.0/tests/test_application_health.py +111 -0
- evalgate_sdk-3.13.0/tests/test_auth.py +16 -0
- evalgate_sdk-3.13.0/tests/test_baseline_attestation.py +42 -0
- evalgate_sdk-3.13.0/tests/test_baseline_contract.py +73 -0
- evalgate_sdk-3.13.0/tests/test_capabilities.py +120 -0
- evalgate_sdk-3.13.0/tests/test_capability_selection.py +69 -0
- evalgate_sdk-3.13.0/tests/test_cli_agent_connect.py +86 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_cli_golden_commands.py +1 -2
- evalgate_sdk-3.13.0/tests/test_cli_hardening_351.py +687 -0
- evalgate_sdk-3.13.0/tests/test_cli_install_auth.py +117 -0
- evalgate_sdk-3.13.0/tests/test_cli_lifecycle.py +928 -0
- evalgate_sdk-3.13.0/tests/test_cli_measurement.py +177 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_cli_new_commands.py +7 -24
- evalgate_sdk-3.13.0/tests/test_cli_portable_quality.py +375 -0
- evalgate_sdk-3.13.0/tests/test_cli_red_team_evidence.py +384 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_cli_sprint4.py +16 -14
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_client.py +21 -0
- evalgate_sdk-3.13.0/tests/test_compat_evals.py +39 -0
- evalgate_sdk-3.13.0/tests/test_cost_parity_summary.py +41 -0
- evalgate_sdk-3.13.0/tests/test_datasets_cli.py +12 -0
- evalgate_sdk-3.13.0/tests/test_decision_judge_types.py +44 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_decorators_and_integrations.py +4 -1
- evalgate_sdk-3.13.0/tests/test_developer_usage.py +106 -0
- evalgate_sdk-3.13.0/tests/test_evals_as_code.py +136 -0
- evalgate_sdk-3.13.0/tests/test_evaluation_lifecycle_contract.py +45 -0
- evalgate_sdk-3.13.0/tests/test_evaluation_process.py +135 -0
- evalgate_sdk-3.13.0/tests/test_evaluation_prompt_versions.py +75 -0
- evalgate_sdk-3.13.0/tests/test_evaluators.py +123 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_execution_mode.py +7 -7
- evalgate_sdk-3.13.0/tests/test_execution_state_openapi_parity.py +44 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_formatters.py +21 -0
- evalgate_sdk-3.13.0/tests/test_golden_admission.py +43 -0
- evalgate_sdk-3.13.0/tests/test_golden_failure_slice.py +185 -0
- evalgate_sdk-3.13.0/tests/test_harness_delegation.py +348 -0
- evalgate_sdk-3.13.0/tests/test_harness_optimization.py +207 -0
- evalgate_sdk-3.13.0/tests/test_hub_clients.py +170 -0
- evalgate_sdk-3.13.0/tests/test_langsmith_migration.py +190 -0
- evalgate_sdk-3.13.0/tests/test_measurement.py +264 -0
- evalgate_sdk-3.13.0/tests/test_native_adapters_capture.py +100 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_new_modules.py +12 -0
- evalgate_sdk-3.13.0/tests/test_offline_sandbox.py +47 -0
- evalgate_sdk-3.13.0/tests/test_openapi_cli.py +116 -0
- evalgate_sdk-3.13.0/tests/test_openapi_client.py +220 -0
- evalgate_sdk-3.13.0/tests/test_organization_members.py +147 -0
- evalgate_sdk-3.13.0/tests/test_package_handlers.py +195 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_parity_gap_modules.py +3 -3
- evalgate_sdk-3.13.0/tests/test_portable_quality.py +280 -0
- evalgate_sdk-3.13.0/tests/test_product_cli.py +62 -0
- evalgate_sdk-3.13.0/tests/test_product_understanding.py +452 -0
- evalgate_sdk-3.13.0/tests/test_project_contract.py +245 -0
- evalgate_sdk-3.13.0/tests/test_proposed_changes_governance_human_review.py +288 -0
- evalgate_sdk-3.13.0/tests/test_public_metadata.py +26 -0
- evalgate_sdk-3.13.0/tests/test_red_team_admission.py +509 -0
- evalgate_sdk-3.13.0/tests/test_release_readiness.py +38 -0
- evalgate_sdk-3.13.0/tests/test_remote_runner.py +233 -0
- evalgate_sdk-3.13.0/tests/test_ruff_pin.py +58 -0
- evalgate_sdk-3.13.0/tests/test_run_regression_contract.py +40 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_runtime_dsl.py +38 -0
- evalgate_sdk-3.13.0/tests/test_testing.py +273 -0
- evalgate_sdk-3.13.0/tests/test_trace_timing_contract.py +60 -0
- evalgate_sdk-3.13.0/tests/test_trajectory_analysis.py +65 -0
- evalgate_sdk-3.13.0/tests/test_warning_silence.py +88 -0
- evalgate_sdk-3.6.0/CHANGELOG.md +0 -182
- evalgate_sdk-3.6.0/PKG-INFO +0 -250
- evalgate_sdk-3.6.0/README.md +0 -196
- evalgate_sdk-3.6.0/src/evalgate_sdk/_version.py +0 -3
- evalgate_sdk-3.6.0/src/evalgate_sdk/cli/__init__.py +0 -166
- evalgate_sdk-3.6.0/src/evalgate_sdk/cli/api_command_config.py +0 -83
- evalgate_sdk-3.6.0/src/evalgate_sdk/cli/commands.py +0 -1366
- evalgate_sdk-3.6.0/src/evalgate_sdk/cli/regression_gate.py +0 -411
- evalgate_sdk-3.6.0/src/evalgate_sdk/export.py +0 -238
- evalgate_sdk-3.6.0/src/evalgate_sdk/formatters/json_fmt.py +0 -11
- evalgate_sdk-3.6.0/src/evalgate_sdk/pytest_plugin.py +0 -96
- evalgate_sdk-3.6.0/src/evalgate_sdk/synthesize.py +0 -239
- evalgate_sdk-3.6.0/src/evalgate_sdk/testing.py +0 -128
- evalgate_sdk-3.6.0/tests/test_cli_hardening_351.py +0 -357
- evalgate_sdk-3.6.0/tests/test_testing.py +0 -100
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/.gitignore +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/auto.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/auto_experiment_runner.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/auto_failure_analyzer.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/auto_mutation_engine.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/batch.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cache.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/ci_context.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/agent_evidence_utils.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/env.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/formatters/types.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/gate_evaluator.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/manifest.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/mcp.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/policy_packs.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/profiles.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/render/__init__.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/render/snippet.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/render/sort.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/report/__init__.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/report/build_check_report.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/run_cli.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/traces.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/workspace.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cluster.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/context.py +0 -0
- {evalgate_sdk-3.6.0/tests → evalgate_sdk-3.13.0/src/evalgate_sdk/data}/__init__.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/errors.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/formatters/__init__.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/formatters/github.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/formatters/human.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/formatters/pr_comment.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/__init__.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/anthropic.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/autogen.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/crewai.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/langchain.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/openai.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/local.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/logger.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/otel.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/py.typed +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/reason_codes.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/__init__.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/adapters/__init__.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/adapters/config_to_dsl.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/context.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/executor.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/run_report.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/types.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/snapshot.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/streaming.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/utils/__init__.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/utils/input_hash.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/src/evalgate_sdk/workflows.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_assertions.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_assertions_async.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_auto_mutation_engine_parity.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_auto_session_methods.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_batch_collector.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_ci_context.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_collector.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_contract_payloads.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_errors.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_knowledge_methods.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_local_storage.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_openapi_contracts.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_otel.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_parity_gaps.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_prod_hardening.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_provider_keys.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_pytest_plugin.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_run_report.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_sdk_contract_scaffold.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_types.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_workflows.py +0 -0
- {evalgate_sdk-3.6.0 → evalgate_sdk-3.13.0}/tests/test_workflows_parity.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"schemaVersion":1,"sessionId":"evalgate-gate-32a53eb6f72d470c066c32d8","harnessKey":"evalgate","agent":"evalgate","outcome":"passed","inputTokens":0,"outputTokens":0,"recordedAt":"2026-10-13T02:13:37.125450Z","taskKey":"latest","captureSource":"evalgate_gate","evidenceHash":"32a53eb6f72d470c066c32d828dd4b6f64d3e4e5539a0f0ea7bdf247056fd3de","evidencePath":".evalgate/last-report.json","qualityScore":91.0}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"evaluationId": "42",
|
|
3
|
+
"verdict": "pass",
|
|
4
|
+
"gateApplied": true,
|
|
5
|
+
"gateMode": "enforced",
|
|
6
|
+
"reasonCode": "PASS",
|
|
7
|
+
"schemaVersion": 1,
|
|
8
|
+
"score": 91.0,
|
|
9
|
+
"thresholds": {
|
|
10
|
+
"minScore": 90,
|
|
11
|
+
"allowWeakEvidence": false,
|
|
12
|
+
"baseline": "published"
|
|
13
|
+
},
|
|
14
|
+
"n": 12,
|
|
15
|
+
"evidenceLevel": "strong",
|
|
16
|
+
"failedCases": [],
|
|
17
|
+
"requestId": "test-req",
|
|
18
|
+
"decisionPassed": true,
|
|
19
|
+
"reportingPassed": true,
|
|
20
|
+
"evidencePassed": true,
|
|
21
|
+
"releaseReady": true,
|
|
22
|
+
"evidenceMode": "offline"
|
|
23
|
+
}
|
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the EvalGate Python SDK will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
Version numbering is aligned with the TypeScript SDK (`@evalgate/sdk`) and the platform API.
|
|
9
|
+
|
|
10
|
+
**Version history note:** The Python SDK jumped from 1.0.0 → 1.9.x → 2.0.0 to stay in sync with the TypeScript SDK. The TypeScript SDK had many releases (1.1–1.9) before the Python SDK existed. We now align both SDKs on the same major.minor version.
|
|
11
|
+
|
|
12
|
+
## [Unreleased]
|
|
13
|
+
|
|
14
|
+
## [3.13.0] - 2026-10-11 (source candidate; PyPI publication pending)
|
|
15
|
+
|
|
16
|
+
- Align the Python source and generated client contracts with October's
|
|
17
|
+
OpenAPI 13.1.1 and durable repository-scan enqueue/phase semantics.
|
|
18
|
+
- Preserve Python 3.10+ runtime compatibility and strict type checks; refresh
|
|
19
|
+
reviewed Connections, scan, evaluation and CLI interface metadata.
|
|
20
|
+
- A source version is not a registry release. PyPI remains separately
|
|
21
|
+
governed; run Python 3.10–3.13 tests, mypy, Ruff, build/wheel smoke and
|
|
22
|
+
registry publication validation before claiming a published SDK.
|
|
23
|
+
|
|
24
|
+
## [3.12.5] - 2026-09-30
|
|
25
|
+
|
|
26
|
+
- Align Python source package version with TypeScript `3.12.5` tip identity.
|
|
27
|
+
PyPI remains separately governed at its last published line.
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## [3.12.4] - 2026-09-29
|
|
31
|
+
|
|
32
|
+
- Align Python source package version with TypeScript `3.12.4` tip identity.
|
|
33
|
+
PyPI remains separately governed at its last published line.
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## [3.12.3] - 2026-09-23
|
|
37
|
+
|
|
38
|
+
Aligns Python source with the TypeScript 3.12.3 patch identity, including
|
|
39
|
+
`login --scope` for consented collector reads. PyPI publication remains
|
|
40
|
+
separately governed.
|
|
41
|
+
|
|
42
|
+
- Source version tracks `@evalgate/sdk` 3.12.3 / OpenAPI 12.0.0.
|
|
43
|
+
- Device login accepts validated `--scope`; defaults still omit `traces:read`.
|
|
44
|
+
|
|
45
|
+
## [3.12.2] - 2026-09-23
|
|
46
|
+
|
|
47
|
+
Aligns Python source with the TypeScript 3.12.2 patch identity. PyPI
|
|
48
|
+
publication remains separately governed.
|
|
49
|
+
|
|
50
|
+
- Source version tracks `@evalgate/sdk` 3.12.2 / OpenAPI 12.0.0.
|
|
51
|
+
|
|
52
|
+
## [3.12.1] - 2026-09-23
|
|
53
|
+
|
|
54
|
+
Aligns Python source with the TypeScript 3.12.1 patch identity. PyPI
|
|
55
|
+
publication remains separately governed.
|
|
56
|
+
|
|
57
|
+
- Source version tracks `@evalgate/sdk` 3.12.1 / OpenAPI 12.0.0.
|
|
58
|
+
|
|
59
|
+
## [3.12.0] - 2026-09-23
|
|
60
|
+
|
|
61
|
+
Aligns Python source with the TypeScript 3.12.0 release-delta identity and the
|
|
62
|
+
refreshed OpenAPI 12.0.0 contract. PyPI publication remains separately
|
|
63
|
+
governed.
|
|
64
|
+
|
|
65
|
+
- Source version tracks `@evalgate/sdk` 3.12.0 / OpenAPI 12.0.0.
|
|
66
|
+
- Regenerated operation registry includes adjudication prepare/activity and
|
|
67
|
+
evaluator-validation plan/resume.
|
|
68
|
+
- No PyPI publish is claimed by this cut; registry publish remains blocked
|
|
69
|
+
with TypeScript under DISC-20260922-001 until Actions can start Release.
|
|
70
|
+
|
|
71
|
+
## [3.11.0] - 2026-09-19
|
|
72
|
+
|
|
73
|
+
Aligns Python source with the TypeScript 3.11.0 release-delta identity. PyPI
|
|
74
|
+
publication remains separately governed.
|
|
75
|
+
|
|
76
|
+
- Source version tracks `@evalgate/sdk` 3.11.0 / OpenAPI 7.0.0.
|
|
77
|
+
- No PyPI publish is claimed by this cut; registry remains at 3.6.0 until a
|
|
78
|
+
separately governed publish.
|
|
79
|
+
|
|
80
|
+
## [3.10.0] - 2026-09-09
|
|
81
|
+
|
|
82
|
+
Aligns Python source with the TypeScript 3.10.0 credential-free local gate and
|
|
83
|
+
release-evidence honesty release. PyPI publication remains separately governed.
|
|
84
|
+
|
|
85
|
+
- Add source parity for credential-free local initialization, canonical local
|
|
86
|
+
gate readiness, baseline artifact hygiene, and intent-specific next actions
|
|
87
|
+
without creating hosted organization or repository identity.
|
|
88
|
+
- Add targeted JSON-safe migration handling for removed lifecycle commands and
|
|
89
|
+
align Red Team evidence discovery/error categories with TypeScript.
|
|
90
|
+
- Reframe the source README around distinct local and hosted workflows while
|
|
91
|
+
retaining the separately governed PyPI publication boundary.
|
|
92
|
+
|
|
93
|
+
## [3.9.0] - 2026-09-04
|
|
94
|
+
|
|
95
|
+
Aligns Python source with the TypeScript 3.9.0 Red Team release-evidence
|
|
96
|
+
contract: exact campaign export, Ed25519 trust-anchor verification,
|
|
97
|
+
lifecycle-aware strict profiles, fail-closed deferral semantics, cross-field
|
|
98
|
+
evidence validation, and structured export failure categories. PyPI publication
|
|
99
|
+
remains separately governed.
|
|
100
|
+
|
|
101
|
+
Python source also converges on the clean CLI activation lifecycle: browser-
|
|
102
|
+
approved `login`, identity-preserving `whoami`, durable non-secret repository
|
|
103
|
+
`link`, split link/checkout/cloud/readiness `status`, control-plane `open`,
|
|
104
|
+
remotely revoking `logout`, and TTY-aware `init`. Version 2 project context
|
|
105
|
+
separates organization/repository/root identity from the last exact activation
|
|
106
|
+
snapshot, so branch movement does not unlink the project and cloud work never
|
|
107
|
+
silently substitutes a different commit. Explicit preview, JSON, and non-TTY
|
|
108
|
+
init remain non-mutating without `--apply`. The prior auth/setup families and
|
|
109
|
+
mutation aliases are removed.
|
|
110
|
+
|
|
111
|
+
## [3.8.2] - 2026-08-31
|
|
112
|
+
|
|
113
|
+
Aligns Python source with the TypeScript 3.8.2 baseline source-identity and
|
|
114
|
+
init/exit contract fixes. PyPI publication remains separately governed.
|
|
115
|
+
|
|
116
|
+
## [3.8.1] - 2026-08-30
|
|
117
|
+
|
|
118
|
+
Aligns Python source with the TypeScript 3.8.1 release-evidence hotfix. Pending
|
|
119
|
+
baselines fail closed, local and hosted gates share one envelope, and generated
|
|
120
|
+
CI remains read-only. PyPI publication remains separately governed.
|
|
121
|
+
|
|
122
|
+
## [3.8.0] - 2026-08-29
|
|
123
|
+
|
|
124
|
+
Aligns Python source with the 3.8.0 reliability and strict gate envelope
|
|
125
|
+
release. PyPI publication remains separately governed.
|
|
126
|
+
|
|
127
|
+
### Changed
|
|
128
|
+
|
|
129
|
+
- Regression gate and formatter output follow the same strict envelope and
|
|
130
|
+
trajectory-gate contracts as the TypeScript SDK.
|
|
131
|
+
|
|
132
|
+
## [3.7.11] - 2026-08-28
|
|
133
|
+
|
|
134
|
+
Aligns Python source with the 3.7.11 discovery, skill-contract, and public
|
|
135
|
+
sharing hardening release. PyPI publication remains separately governed.
|
|
136
|
+
|
|
137
|
+
### Discovery
|
|
138
|
+
|
|
139
|
+
- Public metadata and generated operations stay aligned with the published
|
|
140
|
+
package identity and first-hop agent discovery surfaces.
|
|
141
|
+
|
|
142
|
+
### Security and reliability
|
|
143
|
+
|
|
144
|
+
- Public-sharing policy and execution recovery contracts match the TypeScript
|
|
145
|
+
release boundary.
|
|
146
|
+
|
|
147
|
+
## [3.7.10] - 2026-08-27
|
|
148
|
+
|
|
149
|
+
Hardens CLI credential storage for the Python package while keeping PyPI
|
|
150
|
+
publication as a separately governed release boundary.
|
|
151
|
+
|
|
152
|
+
### Security
|
|
153
|
+
|
|
154
|
+
- **User-scoped credential storage** — `evalgate auth configure` stores bearer
|
|
155
|
+
credentials in the operating-system user configuration directory instead of
|
|
156
|
+
the repository. Repository configuration cannot supply API keys or redirect a
|
|
157
|
+
user/environment credential to another API origin. Trusted alternate origins
|
|
158
|
+
require HTTPS, except explicit localhost and loopback development.
|
|
159
|
+
- **Safe upgrade boundary** — repository-local `.evalgate/config.json`
|
|
160
|
+
credentials are ignored without automatic migration. Re-run `auth configure`
|
|
161
|
+
or use `EVALGATE_API_KEY`, then delete and rotate any legacy secret that may
|
|
162
|
+
have entered Git history.
|
|
163
|
+
|
|
164
|
+
## [3.7.9] - 2026-08-26
|
|
165
|
+
|
|
166
|
+
The 3.7.9 source expands Python from evaluation execution into the same guided
|
|
167
|
+
repository-to-release workflow as the TypeScript CLI. PyPI publication remains a
|
|
168
|
+
separately governed release boundary; source availability is not a registry
|
|
169
|
+
claim.
|
|
170
|
+
|
|
171
|
+
### Connect and activate
|
|
172
|
+
|
|
173
|
+
- Authentication and setup commands support scoped key validation, signed-in
|
|
174
|
+
repository installation, human approval, and durable activation status.
|
|
175
|
+
- `connect --client` plans native Codex, Claude Code, and Cursor instructions or
|
|
176
|
+
a portable Skill without writing credentials or contacting a provider.
|
|
177
|
+
|
|
178
|
+
### Measure and improve
|
|
179
|
+
|
|
180
|
+
- On-demand application-health commands capture bounded, redacted HTTP and
|
|
181
|
+
command evidence without an always-on collector.
|
|
182
|
+
- Harness optimization uses metadata-only capture, reviewed feedback, managed
|
|
183
|
+
Skill mutation, and rollback contracts aligned with TypeScript.
|
|
184
|
+
- Product-understanding and quality-profile commands keep inferred context
|
|
185
|
+
provisional, ground cases in examples, and preview writes before apply.
|
|
186
|
+
|
|
187
|
+
### Automate through the shared contract
|
|
188
|
+
|
|
189
|
+
The generated OpenAPI client and capability map cover repository activation,
|
|
190
|
+
execution state, agent authentication, and the expanded 3.7.9 source contract.
|
|
191
|
+
|
|
192
|
+
## [3.7.8] - 2026-08-15
|
|
193
|
+
|
|
194
|
+
### Fixed
|
|
195
|
+
|
|
196
|
+
- **Spec identity** — the client advertises OpenAPI spec `3.7.8`, which documents five previously missing operations.
|
|
197
|
+
|
|
198
|
+
## [3.7.7] - 2026-08-14
|
|
199
|
+
|
|
200
|
+
### Added
|
|
201
|
+
|
|
202
|
+
- **Understand-first CLI** — `evalgate understand` produces evidence-backed local product context, confidence, open questions, and apply-gated `evalgate.product.json` output aligned with the TypeScript SDK.
|
|
203
|
+
- **Quality-profile synthesis** — `evalgate synthesize --profile` reads versioned preferred/undesired examples, previews by default, and writes only quarantined draft cases after explicit apply.
|
|
204
|
+
|
|
205
|
+
### Fixed
|
|
206
|
+
|
|
207
|
+
- **Package release identity** — advances the Python package/runtime version with the TypeScript SDK and advertises OpenAPI spec `3.7.7` (Copilot repository domain).
|
|
208
|
+
- **Grounded dimension handling** — profile dimensions are validated as vocabulary unless examples provide explicit values, preventing synthetic contradictions.
|
|
209
|
+
|
|
210
|
+
- **Python 3.10 compatibility** — `evaluators`, `pytest_plugin`, and the LangSmith migration CLI imported `datetime.UTC`, which doesn't exist before Python 3.11. Despite `requires-python = ">=3.10"`, using the SDK on 3.10 raised `ImportError` at import time. Switched to `datetime.timezone.utc`, which works on all supported versions.
|
|
211
|
+
- **Annotation task/item routes 404'd** — `client.annotations.tasks` and `.tasks.items` called `/api/annotation-tasks`, a URL that doesn't exist on the backend. The real routes are `/api/annotations/tasks[...]`, matching the TypeScript SDK. `tasks.get()` also failed to unwrap the `{ task: ... }` response envelope. Neither had any test coverage, which is how this went unnoticed.
|
|
212
|
+
- **`developer.get_usage()` / `get_usage_summary()` silently returned empty data** — `UsageStats` and `UsageSummary` modeled a flat shape, but the API nests fields under `analytics`/`period` and `summary`/`period` respectively. Every field would have come back at its default (usually `0`) with no error. Also, `get_usage_summary()` sent an `organizationId` query parameter the endpoint doesn't accept instead of `period`, and required an argument the endpoint doesn't need.
|
|
213
|
+
|
|
214
|
+
### Added
|
|
215
|
+
|
|
216
|
+
Closed a Python ⟷ TypeScript SDK parity audit — the following existed in `@evalgate/sdk` but not `evalgate-sdk`:
|
|
217
|
+
|
|
218
|
+
- **`client.proposed_changes`** — list/get/approve/reject proposed prompt changes from the autonomous-improvement review queue.
|
|
219
|
+
- **`client.governance`** — evaluate an agent decision against a configured compliance preset (SOC2/GDPR/HIPAA/PCI-DSS/etc).
|
|
220
|
+
- **`client.human_review`** — create/fetch human-review sampling batches and submit reviewer verdicts.
|
|
221
|
+
- **`client.evaluations.list_prompt_versions()` / `.set_active_prompt_version()` / `.rollback_prompt()`** — evaluation-scoped prompt version history and rollback.
|
|
222
|
+
- **`client.organizations.list_members()` / `.list_invitations()` / `.invite_member()` / `.resend_invitation()` / `.revoke_invitation()` / `.update_member_role()` / `.remove_member()`** — organization member and invitation management.
|
|
223
|
+
- **`client.datasets.update()` / `.archive()` / `.list_rows()` / `.from_traces()` / `.health()`** — the remaining Dataset Hub operations.
|
|
224
|
+
|
|
225
|
+
### Security
|
|
226
|
+
|
|
227
|
+
- **Raised the pydantic floor to 2.4** — `pydantic>=2.0` allowed installs on a version with a known regular-expression denial-of-service in email-string validation (fixed upstream in 2.4.0, [GHSA-mr82-8j83-vxmv](https://github.com/advisories/GHSA-mr82-8j83-vxmv)).
|
|
228
|
+
|
|
229
|
+
## [3.7.4] - 2026-08-03
|
|
230
|
+
|
|
231
|
+
### Added
|
|
232
|
+
|
|
233
|
+
- **First-class Python and JavaScript package handlers** — the Python CLI now models npm, pnpm, Yarn, Bun, pip, Poetry, and uv with explicit install, execution, script, and lockfile behavior aligned to the TypeScript CLI.
|
|
234
|
+
|
|
235
|
+
### Fixed
|
|
236
|
+
|
|
237
|
+
- **Package-aware initialization and gates** — project discovery, generated commands, regression baselines, and gate execution retain the detected package manager instead of substituting a generic fallback.
|
|
238
|
+
|
|
239
|
+
## [3.7.3] - 2026-08-02
|
|
240
|
+
|
|
241
|
+
### Fixed
|
|
242
|
+
|
|
243
|
+
- **Exact template transactions** — template-aware plans enumerate the files apply creates, rollback owns those files, and initialization no longer edits user `.gitignore` files.
|
|
244
|
+
- **Accurate gate evidence** — repository-connected eval gates report `evalgate run`/`evalgate` and include evaluation execution time in their duration instead of labeling the work as pytest.
|
|
245
|
+
|
|
246
|
+
## [3.7.2] - 2026-07-27
|
|
247
|
+
|
|
248
|
+
### Added
|
|
249
|
+
|
|
250
|
+
- **Evaluator measurement workflows** — adds typed validation-run, release, observation, metric, outcome, and measurement CLI contracts aligned with API spec `3.7.3`.
|
|
251
|
+
|
|
252
|
+
### Changed
|
|
253
|
+
|
|
254
|
+
- **Version alignment** — package and runtime SDK identity advance to `3.7.2` while `SPEC_VERSION` tracks the stacked evaluator-measurement API contract at `3.7.3`.
|
|
255
|
+
|
|
256
|
+
## [3.7.1] - 2026-07-21
|
|
257
|
+
|
|
258
|
+
### Added
|
|
259
|
+
- **Production-loop scaffold parity** — `evalgate init --template production-loop`, `evalgate verify --local`, configured `discover`, JSON `validate`, and JSON/dry-run `gate` now work together from a clean Python SDK install.
|
|
260
|
+
|
|
261
|
+
- **Complete generated operation registry** — Python parity metadata now covers all 603 source-verified public API operations.
|
|
262
|
+
|
|
263
|
+
### Changed
|
|
264
|
+
|
|
265
|
+
- **Version alignment** — package, runtime, and OpenAPI spec constants now identify the coordinated `3.7.1` release.
|
|
266
|
+
|
|
267
|
+
### Fixed
|
|
268
|
+
|
|
269
|
+
- **Trusted PyPI identity** — publishing runs as the top-level `publish-pypi.yml` workflow with the protected `pypi` environment, avoiding unsupported reusable-workflow OIDC claims.
|
|
270
|
+
|
|
271
|
+
## [3.5.1] - 2026-06-26
|
|
272
|
+
|
|
273
|
+
### Fixed
|
|
274
|
+
- **CLI JSON contracts** — `check --format json` now emits one parseable JSON document.
|
|
275
|
+
- **Zero-config scaffolds** — `start --template` writes config that `run` and `doctor` discover consistently.
|
|
276
|
+
- **Runtime scoring defaults** — boolean/dict executor fallbacks now use the SDK's 0-100 score scale.
|
|
277
|
+
- **Sync safety** — missing labeled datasets surface an explicit error, and prompt pulls write UTF-8 content on Windows.
|
|
278
|
+
- **Default CLI install** — `pip install evalgate-sdk` now includes the runtime dependencies needed for the `evalgate` command.
|
|
279
|
+
|
|
280
|
+
## [3.5.0] - 2026-04-09
|
|
281
|
+
|
|
282
|
+
### Added
|
|
283
|
+
- **Knowledge API parity** — new `client.knowledge.search()`, `upload_document()`, and `get_grounding_context()` methods matching the TypeScript SDK surface.
|
|
284
|
+
- **Auto-session SDK methods** — `evaluations.create_auto_session()`, `list_auto_sessions()`, `get_auto_session()`, `get_quality_score()`, and `synthesize_test_cases()` for autonomous loop management.
|
|
285
|
+
- **Batch trace ingestion** — `report_traces()` function for sending up to 100 traces per request.
|
|
286
|
+
- **Offline trace persistence** — `WorkflowTracer` supports JSON file persistence when disconnected.
|
|
287
|
+
|
|
288
|
+
### Changed
|
|
289
|
+
- **Version alignment** — bumped Python SDK package metadata and spec constants to `3.5.0`.
|
|
290
|
+
|
|
291
|
+
## [3.4.0] - 2026-03-29
|
|
292
|
+
|
|
293
|
+
### Added
|
|
294
|
+
- **Judge orchestration parity** — added Python client and CLI support for the normalized judge registry, presets, run/case judge inspection, and multi-judge evidence payloads.
|
|
295
|
+
- **Workflow and controls parity** — expanded Python operator surfaces for workflow execution, system controls, and workflow-aware parity with the TypeScript SDK.
|
|
296
|
+
- **Provider/PII safeguards** — outbound judge/assertion flows now enforce shared provider policy and pre-send PII protection semantics in the Python SDK path too.
|
|
297
|
+
|
|
298
|
+
### Changed
|
|
299
|
+
- **Canonical contract alignment** — updated Python types and CLI copy to match the workflow-native and judge-orchestration model used across the platform.
|
|
300
|
+
- **Version alignment** — bumped Python SDK package metadata and spec constants to `3.4.0`.
|
|
301
|
+
|
|
302
|
+
## [3.3.1] - 2026-03-24
|
|
303
|
+
|
|
304
|
+
### Changed
|
|
305
|
+
- **PyPI distribution name** — package metadata publishes under `evalgate-sdk` on PyPI (import package remains `evalgate_sdk`).
|
|
306
|
+
- **Install and extras guidance** — CLI/runtime error messages, examples, and docs now consistently use `evalgate-sdk`, `evalgate-sdk[cli]`, `evalgate-sdk[openai]`, and `evalgate-sdk[anthropic]`.
|
|
307
|
+
- **Version alignment** — bumped Python SDK version and spec constants to `3.3.1` for synchronized release metadata.
|
|
308
|
+
|
|
309
|
+
## [3.3.0] - 2026-03-23
|
|
310
|
+
|
|
311
|
+
### Changed
|
|
312
|
+
- **Version bump** — Python SDK version and spec constants bumped to 3.3.0, aligned with TypeScript SDK and platform.
|
|
313
|
+
|
|
314
|
+
## [3.2.7] - 2026-03-22
|
|
315
|
+
|
|
316
|
+
### Changed
|
|
317
|
+
|
|
318
|
+
- **Release continuation** — Advanced the Python SDK release target to `3.2.7` to stay aligned with the coordinated npm and platform release after another day of shipped fixes.
|
|
319
|
+
- **Package metadata alignment** — Updated `pyproject.toml` and release validation inputs so the next PyPI publish uses the new version number consistently.
|
|
320
|
+
|
|
321
|
+
### Fixed
|
|
322
|
+
|
|
323
|
+
- **Assertion contract normalization** — sync assertion helpers now consistently return `AssertionResult` with boolean truthiness, including schema, syntax, instruction-following, and required-field checks.
|
|
324
|
+
- **Schema and negation parity** — `matches_schema()` / `expect(...).to_match_json()` accept JSON strings and embedded JSON snippets, and `expect(...).not_` now mirrors the TypeScript fluent negation flow.
|
|
325
|
+
- **`run_assertions()` compatibility** — legacy boolean and mapping-returning assertion callables are coerced into `AssertionResult` so mixed assertion batches no longer fail at runtime.
|
|
326
|
+
- **Starter templates** — Python scaffolded eval examples now use `.passed` when converting assertion results into runtime `create_result()` payloads.
|
|
327
|
+
- **Async assertion configuration parity** — `configure_assertions()` now accepts keyword arguments like `provider=`, `api_key=`, `model=`, and `timeout_ms=` in addition to `AssertionLLMConfig(...)`.
|
|
328
|
+
- **Optional dependency guidance** — async assertion errors, docstrings, and README examples now point to the correct extras such as `pauly4010-evalgate-sdk[openai]` and `pauly4010-evalgate-sdk[anthropic]`.
|
|
329
|
+
- **PyPI package metadata** — author metadata now points to EvalGate organization branding instead of a personal handle.
|
|
330
|
+
|
|
331
|
+
## [3.0.2] - 2026-03-09
|
|
332
|
+
|
|
333
|
+
### Changed
|
|
334
|
+
|
|
335
|
+
- **Version alignment** — bumped to v3.0.2 to stay in sync with the platform API and `@evalgate/sdk` TypeScript SDK
|
|
336
|
+
- **Autonomous workflow guidance** — clarified that the newest autonomous loop, clustering, synthesis, and daemon workflows currently ship in the TypeScript CLI; the Python SDK remains compatible with the shared EvalGate dataset, run-artifact, and CI flows while those advanced controls mature cross-SDK.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## [2.2.1] - 2026-03-03
|
|
341
|
+
|
|
342
|
+
### Changed
|
|
343
|
+
|
|
344
|
+
- **Version alignment** — bumped to v2.2.1 to stay in sync with `@evalgate/sdk` TypeScript SDK
|
|
345
|
+
- No Python-specific changes in this release; see [TypeScript SDK CHANGELOG](../../src/packages/sdk/CHANGELOG.md) for 2.2.1 details
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## [2.2.0] - 2026-03-03
|
|
350
|
+
|
|
351
|
+
### Changed
|
|
352
|
+
|
|
353
|
+
- **Version alignment** — bumped to v2.2.0 to stay in sync with `@evalgate/sdk` TypeScript SDK
|
|
354
|
+
- No Python-specific changes in this release; see [TypeScript SDK CHANGELOG](../../src/packages/sdk/CHANGELOG.md) for full 2.2.0 details
|
|
355
|
+
|
|
356
|
+
## [2.1.2] - 2026-03-02
|
|
357
|
+
|
|
358
|
+
### Fixed
|
|
359
|
+
|
|
360
|
+
- **Type safety** — aligned with platform 2.1.2; all CI checks passing
|
|
361
|
+
|
|
362
|
+
## [2.1.1] - 2026-03-02
|
|
363
|
+
|
|
364
|
+
### Fixed
|
|
365
|
+
|
|
366
|
+
- **Contract payload validation** - Fixed ruff errors in test_contract_payloads.py
|
|
367
|
+
- **CI integration** - Resolved test suite compatibility issues
|
|
368
|
+
- **Linting compliance** - Fixed SIM102, E501, SIM105, I001, SIM300 ruff violations
|
|
369
|
+
|
|
370
|
+
### Changed
|
|
371
|
+
|
|
372
|
+
- **Test coverage** - Improved test matrix for TypeScript/Python SDK compatibility
|
|
373
|
+
- **Documentation** - Updated README with PyPI downloads badge and GitHub stars
|
|
374
|
+
|
|
375
|
+
## [2.0.0] - 2026-03-01
|
|
376
|
+
|
|
377
|
+
### Breaking
|
|
378
|
+
|
|
379
|
+
- **Rebrand:** Package renamed `pauly4010-evalai-sdk` → `pauly4010-evalgate-sdk`, module `evalai_sdk` → `evalgate_sdk`
|
|
380
|
+
- **CLI:** `evalai` → `evalgate`
|
|
381
|
+
- **Config:** `.evalai/` → `.evalgate/` (legacy `.evalai/` still read, with deprecation warning)
|
|
382
|
+
- **Env vars:** `EVALAI_*` → `EVALGATE_*` (legacy `EVALAI_*` still work, with deprecation warning)
|
|
383
|
+
- **Error class:** `EvalAIError` → `EvalGateError`
|
|
384
|
+
|
|
385
|
+
### Added
|
|
386
|
+
|
|
387
|
+
- Deprecation warnings when using legacy env vars or config paths
|
|
388
|
+
|
|
389
|
+
## [1.9.1] - 2026-03-01
|
|
390
|
+
|
|
391
|
+
### Fixed
|
|
392
|
+
|
|
393
|
+
- Align `SPEC_VERSION` with OpenAPI spec 1.9.1
|
|
394
|
+
- Ruff lint and format fixes (SIM102, E501, SIM105, I001, SIM300)
|
|
395
|
+
|
|
396
|
+
### Changed
|
|
397
|
+
|
|
398
|
+
- Package metadata: Production/Stable status, improved description and keywords
|
|
399
|
+
- README: Added PyPI downloads badge, GitHub stars, status section, changelog link
|
|
400
|
+
|
|
401
|
+
## [1.9.0] - 2026-02-27
|
|
402
|
+
|
|
403
|
+
### Added
|
|
404
|
+
|
|
405
|
+
- Full parity with TypeScript SDK 1.9.0
|
|
406
|
+
- `evalai ci` CLI command — one-command CI loop
|
|
407
|
+
- Run artifact retention and diff system
|
|
408
|
+
- Impact analysis integration
|
|
409
|
+
- Schema versioning for run reports
|
|
410
|
+
|
|
411
|
+
### Changed
|
|
412
|
+
|
|
413
|
+
- Exit codes standardized: 0=clean, 1=regressions, 2=config/infra
|
|
414
|
+
- CLI output improvements for CI environments
|
|
415
|
+
|
|
416
|
+
## [1.0.1] - 2026-02-26
|
|
417
|
+
|
|
418
|
+
### Fixed
|
|
419
|
+
|
|
420
|
+
- CLI init template and credential resolution
|
|
421
|
+
- Run output formatting
|
|
422
|
+
|
|
423
|
+
## [1.0.0] - 2026-02-25
|
|
424
|
+
|
|
425
|
+
### Added
|
|
426
|
+
|
|
427
|
+
- Initial Python SDK release
|
|
428
|
+
- `AIEvalClient` — async HTTP client for EvalGate API
|
|
429
|
+
- 20+ assertions: `expect()`, `to_contain`, `to_not_contain_pii`, `to_be_professional`, etc.
|
|
430
|
+
- Test suites: `create_test_suite`, `TestSuiteConfig`, `TestSuiteCase`
|
|
431
|
+
- Integrations: OpenAI, Anthropic, LangChain, CrewAI, AutoGen tracing
|
|
432
|
+
- Workflow tracing: `WorkflowTracer`, handoffs, cost tracking
|
|
433
|
+
- Regression gates: `evaluate_regression`, `to_pass_gate`
|
|
434
|
+
- CLI: `evalai init`, `evalai run`, `evalai gate`, `evalai ci`, `evalai doctor`
|
|
435
|
+
- Batch processing, caching, pagination, structured errors
|
|
436
|
+
- Full type hints (`py.typed`), mypy and Pyright compatible
|