evalgate-sdk 3.5.1__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.
Files changed (256) hide show
  1. evalgate_sdk-3.13.0/.evalgate/harness-events.jsonl +1 -0
  2. evalgate_sdk-3.13.0/.evalgate/last-report.json +23 -0
  3. evalgate_sdk-3.13.0/CHANGELOG.md +436 -0
  4. evalgate_sdk-3.13.0/PKG-INFO +454 -0
  5. evalgate_sdk-3.13.0/README.md +404 -0
  6. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/pyproject.toml +26 -13
  7. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/__init__.py +225 -2
  8. evalgate_sdk-3.13.0/src/evalgate_sdk/_generated_capabilities.py +955 -0
  9. evalgate_sdk-3.13.0/src/evalgate_sdk/_generated_operations.py +2614 -0
  10. evalgate_sdk-3.13.0/src/evalgate_sdk/_version.py +3 -0
  11. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/assertions.py +11 -10
  12. evalgate_sdk-3.13.0/src/evalgate_sdk/baseline_attestation.py +108 -0
  13. evalgate_sdk-3.13.0/src/evalgate_sdk/capability_selection.py +118 -0
  14. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/__init__.py +194 -0
  15. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/agent_connect.py +348 -0
  16. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/agent_evidence_utils.py +87 -0
  17. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/ai_usage.py +531 -0
  18. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/api.py +2 -2
  19. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/api_command_config.py +131 -0
  20. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/application_health.py +388 -0
  21. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/application_health_skill.py +89 -0
  22. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/baseline_contract.py +236 -0
  23. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/capabilities_command.py +211 -0
  24. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/check_runner.py +337 -0
  25. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/cli_constants.py +9 -0
  26. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/command_registry.py +295 -0
  27. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/commands.py +2170 -0
  28. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/config.py +81 -15
  29. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/datasets.py +153 -0
  30. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/evidence_persistence.py +391 -0
  31. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/exit_contract.py +158 -0
  32. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/failure_modes.py +131 -0
  33. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/gate_evaluator.py +291 -0
  34. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/golden_commands.py +63 -3
  35. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/harness_capture.py +454 -0
  36. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/harness_delegation.py +829 -0
  37. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/harness_optimization.py +1379 -0
  38. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/harness_optimization_skill.py +174 -0
  39. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/judge_commands.py +8 -4
  40. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/langsmith_migration.py +150 -0
  41. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/lifecycle.py +1300 -0
  42. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/local_gate_readiness.py +205 -0
  43. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/machine_errors.py +108 -0
  44. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/mcp.py +820 -0
  45. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/measurement.py +137 -0
  46. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/native_adapters.py +208 -0
  47. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/new_commands.py +172 -99
  48. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/next_actions.py +128 -0
  49. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/offline_sandbox.py +91 -0
  50. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/openapi_command.py +178 -0
  51. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/package_handlers.py +458 -0
  52. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/product_intelligence.py +311 -0
  53. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/project_contract.py +814 -0
  54. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/prompts.py +274 -0
  55. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/quality.py +792 -0
  56. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/quality_profile.py +82 -0
  57. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/red_team.py +376 -0
  58. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/regression_gate.py +1024 -0
  59. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/run_cli.py +718 -0
  60. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/sprint4_commands.py +46 -0
  61. evalgate_sdk-3.13.0/src/evalgate_sdk/cli/understand.py +79 -0
  62. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/workflow_commands.py +5 -2
  63. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/client.py +1201 -53
  64. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/collector.py +2 -2
  65. evalgate_sdk-3.13.0/src/evalgate_sdk/compat_evals.py +113 -0
  66. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/constants.py +1 -1
  67. evalgate_sdk-3.13.0/src/evalgate_sdk/data/standards-catalog.data.json +91 -0
  68. evalgate_sdk-3.13.0/src/evalgate_sdk/evals_as_code.py +160 -0
  69. evalgate_sdk-3.13.0/src/evalgate_sdk/evaluation_process.py +432 -0
  70. evalgate_sdk-3.13.0/src/evalgate_sdk/evaluators.py +390 -0
  71. evalgate_sdk-3.13.0/src/evalgate_sdk/export.py +477 -0
  72. evalgate_sdk-3.13.0/src/evalgate_sdk/formatters/json_fmt.py +50 -0
  73. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/golden.py +109 -4
  74. evalgate_sdk-3.13.0/src/evalgate_sdk/golden_admission.py +178 -0
  75. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/openai_eval.py +3 -2
  76. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/knowledge.py +16 -10
  77. evalgate_sdk-3.13.0/src/evalgate_sdk/local_promote.py +123 -0
  78. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/matchers.py +2 -1
  79. evalgate_sdk-3.13.0/src/evalgate_sdk/measurement.py +388 -0
  80. evalgate_sdk-3.13.0/src/evalgate_sdk/openapi_client.py +375 -0
  81. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/pagination.py +2 -2
  82. evalgate_sdk-3.13.0/src/evalgate_sdk/product_understanding.py +1206 -0
  83. evalgate_sdk-3.13.0/src/evalgate_sdk/pytest_plugin.py +245 -0
  84. evalgate_sdk-3.13.0/src/evalgate_sdk/quality_profile.py +465 -0
  85. evalgate_sdk-3.13.0/src/evalgate_sdk/red_team_admission.py +891 -0
  86. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/regression.py +8 -2
  87. evalgate_sdk-3.13.0/src/evalgate_sdk/remote_runner.py +240 -0
  88. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/replay_decision.py +3 -3
  89. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/adapters/testsuite_to_dsl.py +4 -0
  90. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/eval.py +3 -3
  91. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/execution_mode.py +3 -4
  92. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/registry.py +31 -2
  93. evalgate_sdk-3.13.0/src/evalgate_sdk/standards_catalog.py +48 -0
  94. evalgate_sdk-3.13.0/src/evalgate_sdk/synthesize.py +427 -0
  95. evalgate_sdk-3.13.0/src/evalgate_sdk/testing.py +280 -0
  96. evalgate_sdk-3.13.0/src/evalgate_sdk/trajectory_analysis.py +96 -0
  97. evalgate_sdk-3.13.0/src/evalgate_sdk/trajectory_gate.py +172 -0
  98. evalgate_sdk-3.13.0/src/evalgate_sdk/trajectory_match.py +254 -0
  99. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/types.py +535 -27
  100. evalgate_sdk-3.13.0/tests/__init__.py +0 -0
  101. evalgate_sdk-3.13.0/tests/_linked_repository.py +83 -0
  102. evalgate_sdk-3.13.0/tests/conftest.py +10 -0
  103. evalgate_sdk-3.13.0/tests/fixtures/product-understanding-cross-language/README.md +3 -0
  104. evalgate_sdk-3.13.0/tests/fixtures/product-understanding-cross-language/src/response-schema.ts +1 -0
  105. evalgate_sdk-3.13.0/tests/test_agent_experience_closure.py +97 -0
  106. evalgate_sdk-3.13.0/tests/test_annotation_tasks.py +75 -0
  107. evalgate_sdk-3.13.0/tests/test_application_health.py +111 -0
  108. evalgate_sdk-3.13.0/tests/test_auth.py +16 -0
  109. evalgate_sdk-3.13.0/tests/test_baseline_attestation.py +42 -0
  110. evalgate_sdk-3.13.0/tests/test_baseline_contract.py +73 -0
  111. evalgate_sdk-3.13.0/tests/test_capabilities.py +120 -0
  112. evalgate_sdk-3.13.0/tests/test_capability_selection.py +69 -0
  113. evalgate_sdk-3.13.0/tests/test_cli_agent_connect.py +86 -0
  114. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_cli_golden_commands.py +1 -2
  115. evalgate_sdk-3.13.0/tests/test_cli_hardening_351.py +687 -0
  116. evalgate_sdk-3.13.0/tests/test_cli_install_auth.py +117 -0
  117. evalgate_sdk-3.13.0/tests/test_cli_lifecycle.py +928 -0
  118. evalgate_sdk-3.13.0/tests/test_cli_measurement.py +177 -0
  119. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_cli_new_commands.py +11 -24
  120. evalgate_sdk-3.13.0/tests/test_cli_portable_quality.py +375 -0
  121. evalgate_sdk-3.13.0/tests/test_cli_red_team_evidence.py +384 -0
  122. evalgate_sdk-3.13.0/tests/test_cli_sprint4.py +279 -0
  123. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_client.py +21 -0
  124. evalgate_sdk-3.13.0/tests/test_compat_evals.py +39 -0
  125. evalgate_sdk-3.13.0/tests/test_cost_parity_summary.py +41 -0
  126. evalgate_sdk-3.13.0/tests/test_datasets_cli.py +12 -0
  127. evalgate_sdk-3.13.0/tests/test_decision_judge_types.py +44 -0
  128. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_decorators_and_integrations.py +4 -1
  129. evalgate_sdk-3.13.0/tests/test_developer_usage.py +106 -0
  130. evalgate_sdk-3.13.0/tests/test_evals_as_code.py +136 -0
  131. evalgate_sdk-3.13.0/tests/test_evaluation_lifecycle_contract.py +45 -0
  132. evalgate_sdk-3.13.0/tests/test_evaluation_process.py +135 -0
  133. evalgate_sdk-3.13.0/tests/test_evaluation_prompt_versions.py +75 -0
  134. evalgate_sdk-3.13.0/tests/test_evaluators.py +123 -0
  135. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_execution_mode.py +7 -7
  136. evalgate_sdk-3.13.0/tests/test_execution_state_openapi_parity.py +44 -0
  137. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_formatters.py +21 -0
  138. evalgate_sdk-3.13.0/tests/test_golden_admission.py +43 -0
  139. evalgate_sdk-3.13.0/tests/test_golden_failure_slice.py +185 -0
  140. evalgate_sdk-3.13.0/tests/test_harness_delegation.py +348 -0
  141. evalgate_sdk-3.13.0/tests/test_harness_optimization.py +207 -0
  142. evalgate_sdk-3.13.0/tests/test_hub_clients.py +170 -0
  143. evalgate_sdk-3.13.0/tests/test_langsmith_migration.py +190 -0
  144. evalgate_sdk-3.13.0/tests/test_measurement.py +264 -0
  145. evalgate_sdk-3.13.0/tests/test_native_adapters_capture.py +100 -0
  146. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_new_modules.py +12 -0
  147. evalgate_sdk-3.13.0/tests/test_offline_sandbox.py +47 -0
  148. evalgate_sdk-3.13.0/tests/test_openapi_cli.py +116 -0
  149. evalgate_sdk-3.13.0/tests/test_openapi_client.py +220 -0
  150. evalgate_sdk-3.13.0/tests/test_organization_members.py +147 -0
  151. evalgate_sdk-3.13.0/tests/test_package_handlers.py +195 -0
  152. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_parity_gap_modules.py +3 -3
  153. evalgate_sdk-3.13.0/tests/test_portable_quality.py +280 -0
  154. evalgate_sdk-3.13.0/tests/test_product_cli.py +62 -0
  155. evalgate_sdk-3.13.0/tests/test_product_understanding.py +452 -0
  156. evalgate_sdk-3.13.0/tests/test_project_contract.py +245 -0
  157. evalgate_sdk-3.13.0/tests/test_proposed_changes_governance_human_review.py +288 -0
  158. evalgate_sdk-3.13.0/tests/test_provider_keys.py +150 -0
  159. evalgate_sdk-3.13.0/tests/test_public_metadata.py +26 -0
  160. evalgate_sdk-3.13.0/tests/test_red_team_admission.py +509 -0
  161. evalgate_sdk-3.13.0/tests/test_release_readiness.py +38 -0
  162. evalgate_sdk-3.13.0/tests/test_remote_runner.py +233 -0
  163. evalgate_sdk-3.13.0/tests/test_ruff_pin.py +58 -0
  164. evalgate_sdk-3.13.0/tests/test_run_regression_contract.py +40 -0
  165. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_runtime_dsl.py +38 -0
  166. evalgate_sdk-3.13.0/tests/test_testing.py +273 -0
  167. evalgate_sdk-3.13.0/tests/test_trace_timing_contract.py +60 -0
  168. evalgate_sdk-3.13.0/tests/test_trajectory_analysis.py +65 -0
  169. evalgate_sdk-3.13.0/tests/test_warning_silence.py +88 -0
  170. evalgate_sdk-3.5.1/CHANGELOG.md +0 -177
  171. evalgate_sdk-3.5.1/PKG-INFO +0 -250
  172. evalgate_sdk-3.5.1/README.md +0 -196
  173. evalgate_sdk-3.5.1/src/evalgate_sdk/_version.py +0 -3
  174. evalgate_sdk-3.5.1/src/evalgate_sdk/cli/__init__.py +0 -149
  175. evalgate_sdk-3.5.1/src/evalgate_sdk/cli/api_command_config.py +0 -83
  176. evalgate_sdk-3.5.1/src/evalgate_sdk/cli/commands.py +0 -1322
  177. evalgate_sdk-3.5.1/src/evalgate_sdk/cli/regression_gate.py +0 -327
  178. evalgate_sdk-3.5.1/src/evalgate_sdk/export.py +0 -238
  179. evalgate_sdk-3.5.1/src/evalgate_sdk/formatters/json_fmt.py +0 -11
  180. evalgate_sdk-3.5.1/src/evalgate_sdk/pytest_plugin.py +0 -96
  181. evalgate_sdk-3.5.1/src/evalgate_sdk/synthesize.py +0 -239
  182. evalgate_sdk-3.5.1/src/evalgate_sdk/testing.py +0 -128
  183. evalgate_sdk-3.5.1/tests/test_cli_hardening_351.py +0 -321
  184. evalgate_sdk-3.5.1/tests/test_testing.py +0 -100
  185. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/.gitignore +0 -0
  186. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/auto.py +0 -0
  187. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/auto_experiment_runner.py +0 -0
  188. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/auto_failure_analyzer.py +0 -0
  189. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/auto_mutation_engine.py +0 -0
  190. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/batch.py +0 -0
  191. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cache.py +0 -0
  192. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/ci_context.py +0 -0
  193. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/env.py +0 -0
  194. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/formatters/types.py +0 -0
  195. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/manifest.py +0 -0
  196. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/policy_packs.py +0 -0
  197. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/profiles.py +0 -0
  198. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/render/__init__.py +0 -0
  199. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/render/snippet.py +0 -0
  200. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/render/sort.py +0 -0
  201. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/report/__init__.py +0 -0
  202. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/report/build_check_report.py +0 -0
  203. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/traces.py +0 -0
  204. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cli/workspace.py +0 -0
  205. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/cluster.py +0 -0
  206. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/context.py +0 -0
  207. {evalgate_sdk-3.5.1/tests → evalgate_sdk-3.13.0/src/evalgate_sdk/data}/__init__.py +0 -0
  208. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/errors.py +0 -0
  209. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/formatters/__init__.py +0 -0
  210. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/formatters/github.py +0 -0
  211. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/formatters/human.py +0 -0
  212. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/formatters/pr_comment.py +0 -0
  213. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/__init__.py +0 -0
  214. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/anthropic.py +0 -0
  215. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/autogen.py +0 -0
  216. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/crewai.py +0 -0
  217. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/langchain.py +0 -0
  218. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/integrations/openai.py +0 -0
  219. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/local.py +0 -0
  220. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/logger.py +0 -0
  221. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/otel.py +0 -0
  222. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/py.typed +0 -0
  223. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/reason_codes.py +0 -0
  224. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/__init__.py +0 -0
  225. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/adapters/__init__.py +0 -0
  226. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/adapters/config_to_dsl.py +0 -0
  227. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/context.py +0 -0
  228. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/executor.py +0 -0
  229. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/run_report.py +0 -0
  230. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/runtime/types.py +0 -0
  231. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/snapshot.py +0 -0
  232. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/streaming.py +0 -0
  233. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/utils/__init__.py +0 -0
  234. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/utils/input_hash.py +0 -0
  235. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/src/evalgate_sdk/workflows.py +0 -0
  236. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_assertions.py +0 -0
  237. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_assertions_async.py +0 -0
  238. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_auto_mutation_engine_parity.py +0 -0
  239. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_auto_session_methods.py +0 -0
  240. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_batch_collector.py +0 -0
  241. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_ci_context.py +0 -0
  242. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_collector.py +0 -0
  243. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_contract_payloads.py +0 -0
  244. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_errors.py +0 -0
  245. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_knowledge_methods.py +0 -0
  246. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_local_storage.py +0 -0
  247. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_openapi_contracts.py +0 -0
  248. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_otel.py +0 -0
  249. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_parity_gaps.py +0 -0
  250. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_prod_hardening.py +0 -0
  251. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_pytest_plugin.py +0 -0
  252. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_run_report.py +0 -0
  253. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_sdk_contract_scaffold.py +0 -0
  254. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_types.py +0 -0
  255. {evalgate_sdk-3.5.1 → evalgate_sdk-3.13.0}/tests/test_workflows.py +0 -0
  256. {evalgate_sdk-3.5.1 → 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