benchflow 0.7.10.dev2406__tar.gz → 0.7.11__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 (808) hide show
  1. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/CHANGELOG.md +81 -0
  2. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/PKG-INFO +1 -1
  3. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/pyproject.toml +1 -1
  4. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/scoring.py +4 -0
  5. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/yaml_loader.py +2 -0
  6. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/main.py +43 -0
  7. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/eval_plan.py +4 -0
  8. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/eval_sharding.py +2 -0
  9. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/eval_worker.py +2 -0
  10. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/evaluation.py +10 -0
  11. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/evidence.py +28 -6
  12. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout/__init__.py +57 -0
  13. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout/_config.py +10 -0
  14. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout/_results.py +5 -0
  15. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout/_review.py +82 -3
  16. benchflow-0.7.11/src/benchflow/rollout/_separate_verifier.py +651 -0
  17. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout/task_runtime.py +4 -0
  18. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/runtime.py +6 -0
  19. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/_cache_reclaim.py +2 -4
  20. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/lockdown.py +26 -14
  21. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sdk.py +5 -0
  22. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/runtime_capabilities.py +44 -15
  23. benchflow-0.7.11/src/benchflow/task/verifier_sandbox.py +241 -0
  24. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_review_evidence.py +49 -0
  25. benchflow-0.7.11/tests/test_root_helpers_isolated.py +175 -0
  26. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_hardening.py +13 -10
  27. benchflow-0.7.11/tests/test_separate_verifier.py +1121 -0
  28. benchflow-0.7.11/tests/test_verifier_user_config.py +94 -0
  29. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/.gitignore +0 -0
  30. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/LICENSE +0 -0
  31. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/README.md +0 -0
  32. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/__init__.py +0 -0
  33. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_dotenv.py +0 -0
  34. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_paths.py +0 -0
  35. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_run.py +0 -0
  36. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_types.py +0 -0
  37. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/__init__.py +0 -0
  38. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/benchmark_repos.py +0 -0
  39. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/build_context_stage.py +0 -0
  40. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/config.py +0 -0
  41. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/config_override.py +0 -0
  42. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/config_redaction.py +0 -0
  43. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/content_address.py +0 -0
  44. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/dataset_registry.py +0 -0
  45. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/env_registry.py +0 -0
  46. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/evaluation_results.py +0 -0
  47. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/hf_datasets.py +0 -0
  48. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/json_safe.py +0 -0
  49. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/learner_memory.py +0 -0
  50. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/live_activity.py +0 -0
  51. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/result_metadata.py +0 -0
  52. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/result_paths.py +0 -0
  53. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/reward_events.py +0 -0
  54. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/source_provenance.py +0 -0
  55. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/task_authoring/__init__.py +0 -0
  56. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/task_authoring/_evidence_paths.py +0 -0
  57. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/task_authoring/acceptance_evidence.py +0 -0
  58. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/task_authoring/scaffolding.py +0 -0
  59. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/task_authoring/structural_checks.py +0 -0
  60. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/_utils/text.py +0 -0
  61. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/acp/__init__.py +0 -0
  62. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/acp/client.py +0 -0
  63. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/acp/container_transport.py +0 -0
  64. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/acp/runtime.py +0 -0
  65. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/acp/selection.py +0 -0
  66. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/acp/session.py +0 -0
  67. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/acp/timeout_cleanup.py +0 -0
  68. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/acp/transport.py +0 -0
  69. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/acp/types.py +0 -0
  70. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/acp/watchdog.py +0 -0
  71. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/__init__.py +0 -0
  72. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/_toolathlon.py +0 -0
  73. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/_toolathlon_container.py +0 -0
  74. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/_toolathlon_fake_mail.py +0 -0
  75. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/_toolathlon_poste_users.tsv +0 -0
  76. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/_toolathlon_services.py +0 -0
  77. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/harbor.py +0 -0
  78. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/inbound.py +0 -0
  79. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/inspect_ai.py +0 -0
  80. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/ors.py +0 -0
  81. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/resources/__init__.py +0 -0
  82. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/resources/mcp_atlas_bridge.py +0 -0
  83. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/resources/mcp_atlas_judge.py +0 -0
  84. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/adapters/source.py +0 -0
  85. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agent_router.py +0 -0
  86. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agent_router_guide.py +0 -0
  87. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agent_router_parity.py +0 -0
  88. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agent_router_scaffold.py +0 -0
  89. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/__init__.py +0 -0
  90. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/antigravity_acp_shim.py +0 -0
  91. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/antigravity_config.py +0 -0
  92. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/codex_config.py +0 -0
  93. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/credentials.py +0 -0
  94. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/deepagents_acp_shim.py +0 -0
  95. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/env.py +0 -0
  96. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/errors.py +0 -0
  97. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/harvey_lab_acp_shim.py +0 -0
  98. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/install.py +0 -0
  99. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/manifest.py +0 -0
  100. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/openclaw_acp_shim.py +0 -0
  101. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/pi_acp_launcher.py +0 -0
  102. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/protocol.py +0 -0
  103. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/providers.py +0 -0
  104. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/registry.py +0 -0
  105. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/agents/remote_manifests.py +0 -0
  106. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/branch.py +0 -0
  107. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/__init__.py +0 -0
  108. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/_failure_evidence.py +0 -0
  109. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/_hosted_env.py +0 -0
  110. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/_live_progress.py +0 -0
  111. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/_options.py +0 -0
  112. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/_shared.py +0 -0
  113. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/_traj_tui.py +0 -0
  114. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/_traj_upload_ui.py +0 -0
  115. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/adopt.py +0 -0
  116. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/agent.py +0 -0
  117. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/continue_cmd.py +0 -0
  118. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/environment.py +0 -0
  119. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/eval_artifacts.py +0 -0
  120. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/eval_lift.py +0 -0
  121. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/hub.py +0 -0
  122. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/monitor.py +0 -0
  123. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/rescore.py +0 -0
  124. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/review.py +0 -0
  125. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/reviewer_options.py +0 -0
  126. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/sandbox.py +0 -0
  127. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/skills.py +0 -0
  128. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/tasks.py +0 -0
  129. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/trace_import.py +0 -0
  130. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/train.py +0 -0
  131. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/cli/traj.py +0 -0
  132. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/continue_run/__init__.py +0 -0
  133. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/continue_run/batch.py +0 -0
  134. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/continue_run/orchestrator.py +0 -0
  135. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/continue_run/replay_proxy.py +0 -0
  136. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/continue_run/run_folder.py +0 -0
  137. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/continue_run/sandbox_proxy.py +0 -0
  138. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/contracts/__init__.py +0 -0
  139. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/contracts/planes.py +0 -0
  140. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/contracts/user.py +0 -0
  141. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/demo_task/environment/Dockerfile +0 -0
  142. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/demo_task/instruction.md +0 -0
  143. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/demo_task/task.md +0 -0
  144. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/demo_task/task.toml +0 -0
  145. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/demo_task/tests/test.sh +0 -0
  146. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/diagnostics.py +0 -0
  147. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/environment/__init__.py +0 -0
  148. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/environment/_registry/env0@outage.toml +0 -0
  149. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/environment/_registry/env0@prod.toml +0 -0
  150. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/environment/manifest.py +0 -0
  151. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/environment/manifest_env.py +0 -0
  152. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/environment/protocol.py +0 -0
  153. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/environment/readiness.py +0 -0
  154. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/eval_artifacts.py +0 -0
  155. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/eval_lift.py +0 -0
  156. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/experimental/__init__.py +0 -0
  157. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/experimental/mcp/__init__.py +0 -0
  158. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/experimental/mcp/hooks.py +0 -0
  159. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/experimental/mcp/reviewer_server.py +0 -0
  160. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/hosted_env.py +0 -0
  161. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/hub/__init__.py +0 -0
  162. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/hub/harbor_registry.py +0 -0
  163. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/integrations/__init__.py +0 -0
  164. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/integrations/skillevaluator.py +0 -0
  165. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/integrations/trl/__init__.py +0 -0
  166. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/integrations/trl/spec.py +0 -0
  167. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/learner_skills.py +0 -0
  168. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/learner_store.py +0 -0
  169. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/loop_strategies.py +0 -0
  170. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/loop_sweep.py +0 -0
  171. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/metrics.py +0 -0
  172. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/models.py +0 -0
  173. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/monitor.py +0 -0
  174. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/providers/__init__.py +0 -0
  175. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/providers/litellm_bedrock_patch.py +0 -0
  176. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/providers/litellm_bedrock_preflight.py +0 -0
  177. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/providers/litellm_config.py +0 -0
  178. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/providers/litellm_gemini_passthrough_patch.py +0 -0
  179. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/providers/litellm_logging.py +0 -0
  180. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/providers/litellm_runtime.py +0 -0
  181. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/providers/runtime.py +0 -0
  182. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/publish/__init__.py +0 -0
  183. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/publish/_progress.py +0 -0
  184. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/publish/azure_blob.py +0 -0
  185. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/publish/broker.py +0 -0
  186. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/publish/huggingface.py +0 -0
  187. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/publish/redact.py +0 -0
  188. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/publish/traj_capture.py +0 -0
  189. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/publish/traj_report.py +0 -0
  190. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/py.typed +0 -0
  191. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/__init__.py +0 -0
  192. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/automatic.py +0 -0
  193. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/config.py +0 -0
  194. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/default-rubric.json +0 -0
  195. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/evidence_runtime.py +0 -0
  196. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/options.py +0 -0
  197. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/outcome.py +0 -0
  198. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/persistence.py +0 -0
  199. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/preflight.py +0 -0
  200. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/prompts.py +0 -0
  201. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/resume.py +0 -0
  202. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/runner.py +0 -0
  203. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/scoring.py +0 -0
  204. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/review/wrapper.py +0 -0
  205. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/README.md +0 -0
  206. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/__init__.py +0 -0
  207. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/builtins.py +0 -0
  208. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/events.py +0 -0
  209. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/file_readers.py +0 -0
  210. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/llm.py +0 -0
  211. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/memory_scorer.py +0 -0
  212. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/node.py +0 -0
  213. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/protocol.py +0 -0
  214. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/rubric.py +0 -0
  215. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/rubric_config.py +0 -0
  216. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rewards/validation.py +0 -0
  217. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout/_deadline.py +0 -0
  218. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout/_setup.py +0 -0
  219. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout/_skills.py +0 -0
  220. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout/_usage.py +0 -0
  221. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout/_user_loop.py +0 -0
  222. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout/session_factory_runtime.py +0 -0
  223. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout_branch.py +0 -0
  224. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/rollout_planes.py +0 -0
  225. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/__init__.py +0 -0
  226. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/_base.py +0 -0
  227. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/_compose.py +0 -0
  228. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/_compose_files/docker-compose-base.yaml +0 -0
  229. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/_compose_files/docker-compose-build.yaml +0 -0
  230. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/_compose_files/docker-compose-net-admin.yaml +0 -0
  231. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/_compose_files/docker-compose-no-network.yaml +0 -0
  232. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/_compose_files/docker-compose-prebuilt.yaml +0 -0
  233. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/_egress_denylist_proxy.py +0 -0
  234. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/_sdk_ops.py +0 -0
  235. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/agentcore.py +0 -0
  236. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/agentcore_builder.py +0 -0
  237. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/agentcore_image.py +0 -0
  238. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/agentcore_provisioning.py +0 -0
  239. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/agentcore_reaper.py +0 -0
  240. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/agentcore_sealed.py +0 -0
  241. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/apple_container.py +0 -0
  242. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/daytona.py +0 -0
  243. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/daytona_dind.py +0 -0
  244. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/daytona_pty.py +0 -0
  245. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/daytona_reaper.py +0 -0
  246. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/daytona_strategies.py +0 -0
  247. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/docker.py +0 -0
  248. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/egress_denylist.py +0 -0
  249. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/metadata.py +0 -0
  250. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/modal_impl.py +0 -0
  251. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/process/__init__.py +0 -0
  252. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/process/_base.py +0 -0
  253. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/process/agentcore.py +0 -0
  254. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/process/apple.py +0 -0
  255. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/process/daytona.py +0 -0
  256. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/process/docker.py +0 -0
  257. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/protocol.py +0 -0
  258. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/providers.py +0 -0
  259. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/services.py +0 -0
  260. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/setup.py +0 -0
  261. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/snapshot.py +0 -0
  262. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/sandbox/user.py +0 -0
  263. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/scenes.py +0 -0
  264. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/self_gen.py +0 -0
  265. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/skill_eval/__init__.py +0 -0
  266. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/skill_eval/_core.py +0 -0
  267. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/skill_eval/gepa_export.py +0 -0
  268. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/skill_eval/schema.py +0 -0
  269. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/skill_policy.py +0 -0
  270. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/skills.py +0 -0
  271. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/__init__.py +0 -0
  272. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/_document_evidence.py +0 -0
  273. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/_document_normalize.py +0 -0
  274. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/_document_parse.py +0 -0
  275. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/_document_profiles.py +0 -0
  276. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/acceptance_live.py +0 -0
  277. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/acceptance_live_model.py +0 -0
  278. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/acceptance_live_report.py +0 -0
  279. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/acceptance_live_validation.py +0 -0
  280. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/config.py +0 -0
  281. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/discovery.py +0 -0
  282. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/document.py +0 -0
  283. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/env.py +0 -0
  284. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/export.py +0 -0
  285. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/imports.py +0 -0
  286. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/output_format.py +0 -0
  287. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/package.py +0 -0
  288. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/paths.py +0 -0
  289. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/prompts.py +0 -0
  290. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/runtime_view.py +0 -0
  291. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/task.py +0 -0
  292. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/verifier.py +0 -0
  293. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/verifier_core.py +0 -0
  294. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/verifier_document.py +0 -0
  295. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/verifier_errors.py +0 -0
  296. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/verifier_judge_inputs.py +0 -0
  297. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/verifier_ors_episode.py +0 -0
  298. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/verifier_reward_kit.py +0 -0
  299. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/verifier_scan.py +0 -0
  300. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/task/verifier_script_strategy.py +0 -0
  301. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/templates/__init__.py +0 -0
  302. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/templates/judge.py.tmpl +0 -0
  303. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/templates/test.sh.tmpl +0 -0
  304. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/traces/__init__.py +0 -0
  305. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/traces/huggingface.py +0 -0
  306. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/traces/local.py +0 -0
  307. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/traces/models.py +0 -0
  308. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/traces/parsers.py +0 -0
  309. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/traces/task_gen.py +0 -0
  310. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/training/__init__.py +0 -0
  311. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/training/backends/__init__.py +0 -0
  312. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/training/backends/prime_rl.py +0 -0
  313. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/training/run_manifest.py +0 -0
  314. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/__init__.py +0 -0
  315. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/_capture.py +0 -0
  316. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/_export_common.py +0 -0
  317. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/_llm_capture.py +0 -0
  318. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/_snapshot.py +0 -0
  319. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/call_purpose.py +0 -0
  320. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/export.py +0 -0
  321. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/export_adp.py +0 -0
  322. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/export_atif.py +0 -0
  323. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/export_prime_sft.py +0 -0
  324. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/export_trl_sft.py +0 -0
  325. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/metrics.py +0 -0
  326. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/results.py +0 -0
  327. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/sessions.py +0 -0
  328. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/tree.py +0 -0
  329. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/trl_sft_tokenization.py +0 -0
  330. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/types.py +0 -0
  331. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/__init__.py +0 -0
  332. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/__main__.py +0 -0
  333. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/boot.js +0 -0
  334. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/catalog.js +0 -0
  335. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/detail.js +0 -0
  336. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/fonts/OFL-google-sans-code.txt +0 -0
  337. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/fonts/google-sans-code-400-latin.woff2 +0 -0
  338. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/fonts/google-sans-code-600-latin.woff2 +0 -0
  339. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/template.html +0 -0
  340. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/theme.css +0 -0
  341. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/theme.js +0 -0
  342. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/vendor/LICENSE.highlight.js +0 -0
  343. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/vendor/highlight.min.js +0 -0
  344. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/viewer.css +0 -0
  345. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/assets/viewer.js +0 -0
  346. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/catalog.py +0 -0
  347. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/legacy.py +0 -0
  348. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/models.py +0 -0
  349. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/payload.py +0 -0
  350. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/render.py +0 -0
  351. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/server.py +0 -0
  352. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/trajectories/viewer/sources.py +0 -0
  353. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/src/benchflow/usage_tracking.py +0 -0
  354. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/__init__.py +0 -0
  355. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/acceptance_live_harness.py +0 -0
  356. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/agents/__init__.py +0 -0
  357. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/agents/test_codex_config.py +0 -0
  358. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/agents/test_manifest_dirscan.py +0 -0
  359. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/agents/test_manifest_loader.py +0 -0
  360. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/agents/test_manifest_parity.py +0 -0
  361. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/agents/test_manifest_wiring.py +0 -0
  362. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/agents/test_namespace_shorthand.py +0 -0
  363. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/agents/test_plugin_entry_points.py +0 -0
  364. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/agents/test_protocol.py +0 -0
  365. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/agents/test_remote_manifest_autoload.py +0 -0
  366. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/README.md +0 -0
  367. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/acp_smoke/environment/Dockerfile +0 -0
  368. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/acp_smoke/environment/docker-compose.yaml +0 -0
  369. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/acp_smoke/environment/skills/conformance-writer/SKILL.md +0 -0
  370. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/acp_smoke/instruction.md +0 -0
  371. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/acp_smoke/solution/solve.sh +0 -0
  372. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/acp_smoke/task.md +0 -0
  373. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/acp_smoke/task.toml +0 -0
  374. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/acp_smoke/tests/test.sh +0 -0
  375. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/conformance-results.json +0 -0
  376. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/proof_multi_agent.py +0 -0
  377. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/proof_snapshot.py +0 -0
  378. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/run_conformance.py +0 -0
  379. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conformance/self_gen_smoke_skills/skill-creator/SKILL.md +0 -0
  380. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/conftest.py +0 -0
  381. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/continue_run/__init__.py +0 -0
  382. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/continue_run/_helpers.py +0 -0
  383. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/continue_run/test_batch.py +0 -0
  384. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/continue_run/test_orchestrator.py +0 -0
  385. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/continue_run/test_replay_proxy.py +0 -0
  386. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/continue_run/test_run_folder.py +0 -0
  387. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/environment/__init__.py +0 -0
  388. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/environment/test_chibench_manifest.py +0 -0
  389. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/environment/test_clawsbench_manifest.py +0 -0
  390. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/environment/test_manifest.py +0 -0
  391. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/environment/test_manifest_env.py +0 -0
  392. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/environment/test_protocol.py +0 -0
  393. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/environment/test_readiness.py +0 -0
  394. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/hello-world-task/environment/Dockerfile +0 -0
  395. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/hello-world-task/instruction.md +0 -0
  396. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/hello-world-task/solution/solve.sh +0 -0
  397. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/hello-world-task/task.md +0 -0
  398. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/hello-world-task/task.toml +0 -0
  399. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/hello-world-task/tests/test.sh +0 -0
  400. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/test_antigravity.sh +0 -0
  401. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/test_claude.sh +0 -0
  402. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/test_codex.sh +0 -0
  403. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/test_codex_custom_provider.sh +0 -0
  404. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/test_gemini.sh +0 -0
  405. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/test_openclaw.sh +0 -0
  406. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/traces/minimal-claude.jsonl +0 -0
  407. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/examples/traces/minimal-opentraces.jsonl +0 -0
  408. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/digest/README.md +0 -0
  409. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/digest/alpha-task/environment/Dockerfile +0 -0
  410. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/digest/alpha-task/instruction.md +0 -0
  411. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/digest/alpha-task/task.toml +0 -0
  412. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/digest/alpha-task/tests/test.sh +0 -0
  413. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/digest/beta-task/data/empty.bin +0 -0
  414. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/digest/beta-task/data/unicode.txt +0 -0
  415. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/digest/beta-task/instruction.md +0 -0
  416. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/digest/beta-task/task.toml +0 -0
  417. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/digest/not-a-task/notes.txt +0 -0
  418. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/mock_acp_agent.py +0 -0
  419. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/mock_acp_agent_interleaved.py +0 -0
  420. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/mock_acp_agent_multi_turn.py +0 -0
  421. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/mock_openai_responses_server.py +0 -0
  422. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/Dockerfile +0 -0
  423. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/data/michigan_stations.txt +0 -0
  424. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/flood-detection/SKILL.md +0 -0
  425. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/nws-flood-thresholds/SKILL.md +0 -0
  426. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/usgs-data-download/SKILL.md +0 -0
  427. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/flood-risk-analysis/instruction.md +0 -0
  428. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/flood-risk-analysis/solution/solve.sh +0 -0
  429. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/flood-risk-analysis/task.toml +0 -0
  430. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test.sh +0 -0
  431. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test_outputs.py +0 -0
  432. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/Dockerfile +0 -0
  433. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/climate.csv +0 -0
  434. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/hydrology.csv +0 -0
  435. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/land_cover.csv +0 -0
  436. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/water_temperature.csv +0 -0
  437. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/contribution-analysis/SKILL.md +0 -0
  438. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/meteorology-driver-classification/SKILL.md +0 -0
  439. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/pca-decomposition/SKILL.md +0 -0
  440. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/trend-analysis/SKILL.md +0 -0
  441. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/instruction.md +0 -0
  442. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/solution/solve.sh +0 -0
  443. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/task.toml +0 -0
  444. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test.sh +0 -0
  445. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test_outputs.py +0 -0
  446. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/manifest.json +0 -0
  447. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/Dockerfile +0 -0
  448. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/r2r_simulator.py +0 -0
  449. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/finite-horizon-lqr/SKILL.md +0 -0
  450. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/integral-action-design/SKILL.md +0 -0
  451. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/mpc-horizon-tuning/SKILL.md +0 -0
  452. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/state-space-linearization/SKILL.md +0 -0
  453. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/system_config.json +0 -0
  454. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/instruction.md +0 -0
  455. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/solution/solve.sh +0 -0
  456. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/task.toml +0 -0
  457. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test.sh +0 -0
  458. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test_outputs.py +0 -0
  459. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/Dockerfile +0 -0
  460. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/generate_training_pcaps.py +0 -0
  461. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/local.rules +0 -0
  462. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/SKILL.md +0 -0
  463. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/scripts/summarize_http_requests.sh +0 -0
  464. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/SKILL.md +0 -0
  465. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/scripts/run_suricata_offline.sh +0 -0
  466. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-rules-basics/SKILL.md +0 -0
  467. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/suricata.yaml +0 -0
  468. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/instruction.md +0 -0
  469. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/solution/solve.sh +0 -0
  470. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/task.toml +0 -0
  471. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test.sh +0 -0
  472. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test_outputs.py +0 -0
  473. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/Dockerfile +0 -0
  474. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syz-extract-constants/SKILL.md +0 -0
  475. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzkaller-build-loop/SKILL.md +0 -0
  476. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzlang-ioctl-basics/SKILL.md +0 -0
  477. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/instruction.md +0 -0
  478. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/solution/solve.sh +0 -0
  479. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/task.toml +0 -0
  480. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test.sh +0 -0
  481. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test_outputs.py +0 -0
  482. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/_consistency.py +0 -0
  483. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/agent_judge.py +0 -0
  484. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/check_adapter_evidence.py +0 -0
  485. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/check_hosted_env_evidence.py +0 -0
  486. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/check_results.py +0 -0
  487. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/check_skillsbench_harbor_parity.py +0 -0
  488. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/check_trace_to_task_evidence.py +0 -0
  489. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/configs/antigravity.yaml +0 -0
  490. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/configs/claude-agent-acp.yaml +0 -0
  491. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/configs/codex-acp.yaml +0 -0
  492. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/configs/gemini.yaml +0 -0
  493. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/configs/harvey-lab-harness.yaml +0 -0
  494. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/configs/mimo.yaml +0 -0
  495. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/configs/openclaw.yaml +0 -0
  496. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/configs/opencode.yaml +0 -0
  497. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/configs/openhands.yaml +0 -0
  498. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/configs/pi-acp.yaml +0 -0
  499. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/deepagents_harness.py +0 -0
  500. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/rubric_checks.py +0 -0
  501. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/run.sh +0 -0
  502. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/run_suite.py +0 -0
  503. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/scenarios.py +0 -0
  504. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/integration/suites/release.yaml +0 -0
  505. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_acceptance_evidence.py +0 -0
  506. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_acceptance_live.py +0 -0
  507. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_acceptance_live_execution.py +0 -0
  508. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_acp.py +0 -0
  509. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_acp_buffered_timeout.py +0 -0
  510. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_acp_capability_advertising.py +0 -0
  511. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_acp_mcp_servers.py +0 -0
  512. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_acp_model_config_dispatch.py +0 -0
  513. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_acp_pinned_protocol_guard.py +0 -0
  514. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_acp_setup_failure_propagation.py +0 -0
  515. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_acp_timeout_evidence.py +0 -0
  516. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_adapter_scripts.py +0 -0
  517. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_adapters.py +0 -0
  518. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_antigravity.py +0 -0
  519. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_cli.py +0 -0
  520. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_egress_firewall.py +0 -0
  521. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_env_resolution.py +0 -0
  522. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_gemini_defaults.py +0 -0
  523. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_idle_timeout_cli.py +0 -0
  524. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_model_decouple.py +0 -0
  525. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_registry.py +0 -0
  526. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_router.py +0 -0
  527. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_router_cli_e2e.py +0 -0
  528. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_router_scaffold.py +0 -0
  529. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_setup.py +0 -0
  530. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agent_spec.py +0 -0
  531. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agentcore_builder.py +0 -0
  532. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agentcore_parallel.py +0 -0
  533. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agentcore_reaper.py +0 -0
  534. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agentcore_sandbox.py +0 -0
  535. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_agentcore_transport.py +0 -0
  536. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_api_error_capture.py +0 -0
  537. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_apple_container_sandbox.py +0 -0
  538. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_automatic_review_scoring.py +0 -0
  539. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_bare_model_provider.py +0 -0
  540. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_base_install_imports.py +0 -0
  541. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_bedrock_thinking.py +0 -0
  542. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_benchflow_experiment_review_validator.py +0 -0
  543. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_benchmark_repos_resolve_repo_path.py +0 -0
  544. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_branch.py +0 -0
  545. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_build_context_stage.py +0 -0
  546. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_build_review_pack.py +0 -0
  547. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_capture_trajectory.py +0 -0
  548. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_check_skillsbench_harbor_parity.py +0 -0
  549. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_clawsbench_slice.py +0 -0
  550. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_cli_adopt_aliases.py +0 -0
  551. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_cli_arg_validation.py +0 -0
  552. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_cli_daytona.py +0 -0
  553. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_cli_docs_drift.py +0 -0
  554. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_cli_edge_case_hardening.py +0 -0
  555. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_cli_hub_env.py +0 -0
  556. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_cli_live_progress.py +0 -0
  557. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_cli_misc.py +0 -0
  558. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_codex_bare_model_id.py +0 -0
  559. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_codex_review.py +0 -0
  560. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_codex_self_write_auth.py +0 -0
  561. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_config_override.py +0 -0
  562. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_config_redaction.py +0 -0
  563. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_connect_as_env.py +0 -0
  564. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_console_error_truncation.py +0 -0
  565. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_console_progress.py +0 -0
  566. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_continuallearningbench_adapter.py +0 -0
  567. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_dataset_registry.py +0 -0
  568. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_daytona_command_polling.py +0 -0
  569. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_daytona_dind_compose_up.py +0 -0
  570. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_daytona_download.py +0 -0
  571. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_daytona_litellm_runtime.py +0 -0
  572. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_daytona_poll_deadline.py +0 -0
  573. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_daytona_reap.py +0 -0
  574. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_deepagents_agent.py +0 -0
  575. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_diagnostics.py +0 -0
  576. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_docker_prune_scoping.py +0 -0
  577. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_docker_uploads.py +0 -0
  578. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_docs_examples.py +0 -0
  579. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_egress_connect_authority.py +0 -0
  580. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_egress_denylist.py +0 -0
  581. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_egress_denylist_integration.py +0 -0
  582. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_egress_dynamic_certs.py +0 -0
  583. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_egress_model_gateway.py +0 -0
  584. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_eng50_capabilities.py +0 -0
  585. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_env_registry.py +0 -0
  586. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_env_setup.py +0 -0
  587. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_environment_manifest_controls.py +0 -0
  588. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_eval_artifact_cli.py +0 -0
  589. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_eval_filters_applied.py +0 -0
  590. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_eval_lift.py +0 -0
  591. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_eval_sharding.py +0 -0
  592. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_eval_single_task_summary.py +0 -0
  593. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_eval_source_provenance.py +0 -0
  594. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_eval_worker_retry.py +0 -0
  595. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_eval_zero_task_guard.py +0 -0
  596. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_evaluation_environment_manifest.py +0 -0
  597. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_exclude_tasks.py +0 -0
  598. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_filter_credentialed_cells.py +0 -0
  599. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_harvey_lab_shim.py +0 -0
  600. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_hilbench_adapter.py +0 -0
  601. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_hosted_env.py +0 -0
  602. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_hosted_env_rollout_contract.py +0 -0
  603. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_hosted_search_policy.py +0 -0
  604. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_hub_harbor_registry.py +0 -0
  605. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_inbound_adapter_manifest.py +0 -0
  606. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_inbound_adapters.py +0 -0
  607. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_integration_agent_judge.py +0 -0
  608. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_integration_check_results.py +0 -0
  609. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_integration_consistency.py +0 -0
  610. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_integration_matrix.py +0 -0
  611. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_integration_provider_selection.py +0 -0
  612. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_integration_run_suite.py +0 -0
  613. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_integration_suite.py +0 -0
  614. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_internet_policy.py +0 -0
  615. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_job.py +0 -0
  616. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_job_sequential_shared.py +0 -0
  617. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_job_sequential_shared_resume.py +0 -0
  618. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_judge_robustness.py +0 -0
  619. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_judge_symlink_ingestion.py +0 -0
  620. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_learner_skills.py +0 -0
  621. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_learner_skills_traversal.py +0 -0
  622. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_learner_store.py +0 -0
  623. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_learner_store_persistence.py +0 -0
  624. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_litellm_config.py +0 -0
  625. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_litellm_gemini_passthrough_patch.py +0 -0
  626. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_litellm_hardening.py +0 -0
  627. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_litellm_logging.py +0 -0
  628. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_litellm_model_via_env_generic.py +0 -0
  629. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_litellm_reasoning_passthrough.py +0 -0
  630. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_litellm_runtime.py +0 -0
  631. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_litellm_smoke.py +0 -0
  632. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_live_llm_trajectory.py +0 -0
  633. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_llm_judge.py +0 -0
  634. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_llm_judge_event_tags.py +0 -0
  635. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_llm_judge_verifier.py +0 -0
  636. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_loop_strategies.py +0 -0
  637. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_loop_summary.py +0 -0
  638. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_loop_sweep.py +0 -0
  639. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_memory_scorer.py +0 -0
  640. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_metrics.py +0 -0
  641. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_mle_bench_adapter.py +0 -0
  642. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_mock_openai_responses_server.py +0 -0
  643. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_monitor_scaffold.py +0 -0
  644. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_native_acp_usage.py +0 -0
  645. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_network_denylist_config.py +0 -0
  646. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_no_cross_provider_fallback.py +0 -0
  647. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_notification_order_real.py +0 -0
  648. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_opencode_family_proxy_tracking.py +0 -0
  649. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_oracle.py +0 -0
  650. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_oracle_chokepoint.py +0 -0
  651. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_paths_safe.py +0 -0
  652. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_paths_symlink_helpers.py +0 -0
  653. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_pi_acp_launcher.py +0 -0
  654. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_pi_acp_proxy_routing.py +0 -0
  655. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_process.py +0 -0
  656. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_project_skills_layout.py +0 -0
  657. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_provider_auth_detection.py +0 -0
  658. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_providers.py +0 -0
  659. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_publish_azure_blob.py +0 -0
  660. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_publish_huggingface.py +0 -0
  661. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_redacted_snapshot.py +0 -0
  662. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_reexport.py +0 -0
  663. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_registry_invariants.py +0 -0
  664. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_release_hardening_r5.py +0 -0
  665. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_release_version.py +0 -0
  666. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_release_workflow_wiring.py +0 -0
  667. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_resolve_env_helpers.py +0 -0
  668. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_review_automatic.py +0 -0
  669. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_review_boundaries.py +0 -0
  670. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_review_evidence_runtime.py +0 -0
  671. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_review_lifecycle.py +0 -0
  672. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_review_resume.py +0 -0
  673. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_review_rubric.py +0 -0
  674. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_review_runtime.py +0 -0
  675. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_review_runtime_automatic.py +0 -0
  676. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_review_snapshot.py +0 -0
  677. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_reviewer_options.py +0 -0
  678. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_reward_lenient.py +0 -0
  679. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_reward_node.py +0 -0
  680. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_reward_range.py +0 -0
  681. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_reward_unified_contract.py +0 -0
  682. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rewards.py +0 -0
  683. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rewards_jsonl.py +0 -0
  684. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_architecture.py +0 -0
  685. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_branch.py +0 -0
  686. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_config_path_coercion.py +0 -0
  687. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_environment.py +0 -0
  688. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_hard_deadline.py +0 -0
  689. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_import_no_side_effects.py +0 -0
  690. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_on_ask_user_wiring.py +0 -0
  691. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_planes_contract.py +0 -0
  692. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_probe_sandbox_health.py +0 -0
  693. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_session_factory_dispatch.py +0 -0
  694. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_setup_commands.py +0 -0
  695. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rollout_upload.py +0 -0
  696. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rubric_checks.py +0 -0
  697. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_rubric_config.py +0 -0
  698. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_runtime.py +0 -0
  699. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_runtime_capabilities.py +0 -0
  700. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_runtime_config_wired.py +0 -0
  701. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_runtime_live_sandbox.py +0 -0
  702. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox.py +0 -0
  703. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_exec_secret_handling.py +0 -0
  704. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_isolation_copy_traversal.py +0 -0
  705. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_live_process.py +0 -0
  706. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_multi_service.py +0 -0
  707. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_prebuilt_validation.py +0 -0
  708. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_protocol.py +0 -0
  709. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_provider_registry_drift.py +0 -0
  710. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_setup.py +0 -0
  711. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_snapshot_contract.py +0 -0
  712. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_upload_symlink.py +0 -0
  713. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sandbox_verifier_workspace.py +0 -0
  714. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_scene.py +0 -0
  715. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_scene_outbox_trial.py +0 -0
  716. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_scene_parallel_group.py +0 -0
  717. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_scene_result_aggregation.py +0 -0
  718. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_scoring.py +0 -0
  719. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sdk_internals.py +0 -0
  720. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sdk_lockdown.py +0 -0
  721. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sdk_run_alias.py +0 -0
  722. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_sealed_channel_container.py +0 -0
  723. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_self_gen_cli.py +0 -0
  724. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_self_gen_export_error_channel.py +0 -0
  725. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_self_gen_export_failures.py +0 -0
  726. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_self_gen_orchestration.py +0 -0
  727. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_session_factory_runtime.py +0 -0
  728. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_session_request_permission_dispatch.py +0 -0
  729. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skill_eval.py +0 -0
  730. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skill_eval_dryrun.py +0 -0
  731. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skill_eval_integration.py +0 -0
  732. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skill_eval_sweep.py +0 -0
  733. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skill_eval_traversal.py +0 -0
  734. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skill_invocation_artifacts.py +0 -0
  735. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skill_policy.py +0 -0
  736. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skillevaluator_integration.py +0 -0
  737. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skills.py +0 -0
  738. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skills_dir_agent_home_link.py +0 -0
  739. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skillsbench_conversion_conformance.py +0 -0
  740. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_skillsbench_harbor_run_suite.py +0 -0
  741. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_smoke.py +0 -0
  742. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_smoke_wiring.py +0 -0
  743. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_source_adapters.py +0 -0
  744. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_subscription_auth.py +0 -0
  745. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_task_check_eval_consistency.py +0 -0
  746. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_task_config.py +0 -0
  747. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_task_digest.py +0 -0
  748. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_task_document.py +0 -0
  749. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_task_download.py +0 -0
  750. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_task_export.py +0 -0
  751. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_task_output_format.py +0 -0
  752. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_task_package.py +0 -0
  753. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_task_runtime_primitive.py +0 -0
  754. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_tasks.py +0 -0
  755. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_token_usage_normalization.py +0 -0
  756. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_tool_call_raw_io.py +0 -0
  757. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_trace_import_cli.py +0 -0
  758. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_trace_task_gen_traversal.py +0 -0
  759. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_trace_to_task_evidence.py +0 -0
  760. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_traces_huggingface.py +0 -0
  761. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_traces_parsers.py +0 -0
  762. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_traces_task_gen.py +0 -0
  763. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_train_cli.py +0 -0
  764. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_train_mode_artifact_emission.py +0 -0
  765. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_train_trl_cli.py +0 -0
  766. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_traj_report.py +0 -0
  767. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_traj_staging_phases.py +0 -0
  768. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_traj_tui.py +0 -0
  769. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_traj_upload_cli.py +0 -0
  770. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_traj_upload_skill.py +0 -0
  771. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_traj_workspace.py +0 -0
  772. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_trajectory_integration.py +0 -0
  773. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_trajectory_streaming.py +0 -0
  774. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_trajectory_upload_layout.py +0 -0
  775. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_trajectory_upload_service.py +0 -0
  776. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_trial_agent_timeout_verify.py +0 -0
  777. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_trial_install_agent_timeout.py +0 -0
  778. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_trial_litellm_runtime.py +0 -0
  779. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_trl_integration.py +0 -0
  780. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_usage_litellm.py +0 -0
  781. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_usage_required.py +0 -0
  782. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_usage_tracking.py +0 -0
  783. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_user.py +0 -0
  784. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_v06_guard_ports.py +0 -0
  785. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_verifier_document.py +0 -0
  786. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_verifier_multi_container.py +0 -0
  787. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_verifier_output.py +0 -0
  788. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_verifier_output_freshness.py +0 -0
  789. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_verifier_strategies.py +0 -0
  790. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_verifier_wedge_retry.py +0 -0
  791. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_verify.py +0 -0
  792. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_viewer_confirm.py +0 -0
  793. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_workflow_action_pinning.py +0 -0
  794. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/test_yaml_config.py +0 -0
  795. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/__init__.py +0 -0
  796. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_export.py +0 -0
  797. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_export_adp.py +0 -0
  798. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_export_atif.py +0 -0
  799. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_export_common.py +0 -0
  800. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_export_nan_handling.py +0 -0
  801. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_export_prime_sft.py +0 -0
  802. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_redaction.py +0 -0
  803. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_step_granularity.py +0 -0
  804. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_tree.py +0 -0
  805. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_viewer_acp_renderer.py +0 -0
  806. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_viewer_browser.py +0 -0
  807. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_viewer_rubric.py +0 -0
  808. {benchflow-0.7.10.dev2406 → benchflow-0.7.11}/tests/trajectories/test_viewer_theme.py +0 -0
@@ -2,6 +2,87 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## 0.7.11 — 2026-10-16
6
+
7
+ ### Added
8
+
9
+ - **`--separate-verifier-include PATH` carries outputs outside the workspace
10
+ into a separate verifier sandbox.** Only the workspace (`sandbox.workdir`,
11
+ else the image's `WORKDIR`) crossed, so a task whose agent writes graded
12
+ files elsewhere scored 0 with no error: FrontierPhysics
13
+ `kinked-ladder-polymer-scattering` (workspace `/app`, outputs in `/root`)
14
+ went from 19/19 in shared mode to 0/19 with `--separate-verifier`, and 14
15
+ of its 56 tasks grade files outside the workspace. Each include path
16
+ (repeatable; SDK and config `separate_verifier_include`) is captured beside
17
+ the workspace into `evidence/artifacts/`, hash-checked, and laid over the
18
+ verifier image's copy at the same path; pseudo filesystems and roots such as
19
+ `/`, `/usr` and `/home` are refused before any sandbox starts.
20
+ `config.json` records `verifier_include`, and the transfer inventory lists
21
+ each path as captured, missing or already in the workspace.
22
+ - **A separate verifier lists files the agent left outside everything that
23
+ crosses.** When the workspace is frozen, the regular files written during
24
+ the agent phase outside the workspace and include paths (skipping system,
25
+ scratch and provider trees, package caches and the agent's home) are logged
26
+ as a warning with a count per directory and examples, and recorded under
27
+ `outside_workspace_writes` in `verifier-sandbox/verifier-sandbox.json`.
28
+ Advisory: it never fails a rollout.
29
+
30
+ ### Fixed
31
+
32
+ - **The verifier ignores pip's and git's per-user config under `/root`.**
33
+ The verifier runs as root with `HOME=/root`, the agent's workspace in many
34
+ tasks, so `~/.config/pip/pip.conf` or `~/.gitconfig` there were whatever the
35
+ agent left, in both modes (a separate verifier receives the `/root`
36
+ workspace too). `VERIFIER_ENV` now sets `PIP_CONFIG_FILE=/dev/null` and
37
+ `GIT_CONFIG_GLOBAL=/dev/null` (git 2.32+; `/etc/gitconfig` still applies),
38
+ and drops `PIP_NO_USER_CONFIG`, which is not a pip option and did nothing.
39
+ A task that needs either config back sets it in its verifier `env`.
40
+ - **Package-manager caches stay out of workspace evidence.** `.cache/pip`,
41
+ `.cache/uv` and npm's `_cacache`, `_npx` and `_logs` below a captured root
42
+ are recorded as `package_cache` exclusions instead of captured. With a
43
+ `/root` workspace the harness's own installs fill them as root before the
44
+ agent starts: on a FrontierPhysics ion-trap-design run they were 97% of the
45
+ 745 MB the separate verifier received, and of the rubric review's upload.
46
+ - **`mcp` 1.30.0 in `uv.lock`** for CVE-2026-59951 (was 1.28.1), which failed
47
+ the `pip-audit` job and, through it, `main`'s release gate.
48
+
49
+ ## 0.7.10 — 2026-10-16
50
+
51
+ ### Added
52
+
53
+ - **Separate verifier sandboxes run on Docker and Daytona.** A task that sets
54
+ `[verifier] sandbox_mode = "separate"` (Harbor `environment_mode`) or
55
+ declares `[verifier.sandbox]` was refused with "separate verifier
56
+ sandboxes are parsed but not executed". It now runs: after the agent stops,
57
+ the workspace is frozen into `evidence/`, and a fresh sandbox built from
58
+ the verifier image (`[verifier.sandbox].docker_image`, `[sandbox]
59
+ .docker_image`, `tests/Dockerfile`, then the task's own
60
+ `environment/Dockerfile`) receives only those hash-checked bytes before the
61
+ normal hardening and `test.sh` run there. Nothing else from the agent's
62
+ sandbox reaches the verifier. `bench eval run --separate-verifier` (SDK and
63
+ config `separate_verifier`) forces the mode for every task of a run without
64
+ editing them, so task digests do not change. A transfer or sandbox failure
65
+ is a verifier infrastructure error, never a score;
66
+ `verifier-sandbox/verifier-sandbox.json` records the image source, sandbox
67
+ id, transfer inventory and timing, and `config.json` records
68
+ `verifier_sandbox_mode`. Ported from release/0.8's separate verifier,
69
+ without its declared-artifact and `/logs/artifacts` transfer, which main
70
+ does not have.
71
+
72
+ ### Fixed
73
+
74
+ - **Root helpers no longer import modules from the agent's workspace.** The
75
+ helpers BenchFlow runs as root after the agent stops (disk reclaim, the
76
+ verifier PATH check, pytest-plugin discovery, the external-symlink purge,
77
+ the workspace-restore fallback, workspace evidence capture and its
78
+ reviewer-side admission) ran plain `python3 -c` from the sandbox's default
79
+ working directory, which is the agent's workspace, so a `json.py` or
80
+ `glob.py` left there was imported as root before the verifier. They now run
81
+ `python3 -I`; the `.pth`/`sitecustomize.py` purge keeps its environment
82
+ but runs from `/`. Pytest-plugin discovery therefore scans only the
83
+ interpreter's site-packages: declare a plugin installed elsewhere in
84
+ `verifier.pytest_plugins`.
85
+
5
86
  ## 0.7.9 — 2026-10-14
6
87
 
7
88
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: benchflow
3
- Version: 0.7.10.dev2406
3
+ Version: 0.7.11
4
4
  Summary: Multi-turn agent benchmarking with ACP — run any agent, any model, any provider.
5
5
  Project-URL: Homepage, https://github.com/benchflow-ai/benchflow
6
6
  Project-URL: Repository, https://github.com/benchflow-ai/benchflow
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "benchflow"
3
- version = "0.7.10.dev2406"
3
+ version = "0.7.11"
4
4
  description = "Multi-turn agent benchmarking with ACP — run any agent, any model, any provider."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -225,6 +225,10 @@ def classify_verifier_error(verifier_error: str | None) -> str | None:
225
225
  if not verifier_error:
226
226
  return None
227
227
  lower = verifier_error.lower()
228
+ if lower.startswith("separate verifier "):
229
+ # The verifier sandbox never received the agent's outputs (or never
230
+ # started): nothing was assessed.
231
+ return VERIFIER_INFRA
228
232
  if "verifier crashed" in verifier_error:
229
233
  if contains_verifier_dep_install_marker(lower):
230
234
  return VERIFIER_DEP_INSTALL
@@ -125,6 +125,8 @@ def rollout_config_from_dict(
125
125
  ),
126
126
  context_root=raw.get("context_root"),
127
127
  base_image_override=raw.get("base_image_override"),
128
+ separate_verifier=bool(raw.get("separate_verifier", False)),
129
+ separate_verifier_include=tuple(raw.get("separate_verifier_include") or ()),
128
130
  agent=raw.get("agent", "claude-agent-acp"),
129
131
  model=raw.get("model"),
130
132
  reasoning_effort=raw.get("reasoning_effort"),
@@ -75,6 +75,7 @@ from benchflow.eval_plan import EvalCreateRequest, EvalPlanError, build_eval_pla
75
75
  from benchflow.evaluation import DEFAULT_AGENT, effective_model
76
76
  from benchflow.sandbox.providers import providers_phrase
77
77
  from benchflow.skill_policy import SKILL_MODE_NO_SKILL
78
+ from benchflow.task.verifier_sandbox import normalize_include_paths
78
79
 
79
80
  if TYPE_CHECKING:
80
81
  from benchflow.eval_plan import EvalPlan
@@ -446,6 +447,29 @@ def eval_run(
446
447
  ),
447
448
  ),
448
449
  ] = None,
450
+ separate_verifier: Annotated[
451
+ bool,
452
+ typer.Option(
453
+ "--separate-verifier",
454
+ help=(
455
+ "Run each verifier in a fresh sandbox built from the task image "
456
+ "that receives only the frozen workspace, as if every task set "
457
+ "\\[verifier].sandbox_mode = 'separate'. Docker and Daytona only."
458
+ ),
459
+ ),
460
+ ] = False,
461
+ separate_verifier_include: Annotated[
462
+ list[str] | None,
463
+ typer.Option(
464
+ "--separate-verifier-include",
465
+ help=(
466
+ "A path outside the workspace that a separate verifier sandbox "
467
+ "receives too, at the same path, for tasks whose agent writes "
468
+ "graded files there (e.g. /root when the workspace is /app). "
469
+ "Repeatable."
470
+ ),
471
+ ),
472
+ ] = None,
449
473
  skills_dir: Annotated[
450
474
  Path | None,
451
475
  typer.Option("--skills-dir", help="Skills directory to deploy"),
@@ -652,6 +676,12 @@ def eval_run(
652
676
  # the TTY Rich dashboard (see cli._live_progress.progress_enabled).
653
677
  os.environ["BENCHFLOW_NO_PROGRESS"] = "1"
654
678
 
679
+ try:
680
+ include_paths = normalize_include_paths(separate_verifier_include or ())
681
+ except ValueError as exc:
682
+ print_error(f"{exc}")
683
+ raise typer.Exit(1) from None
684
+
655
685
  request = EvalCreateRequest(
656
686
  config_file=config_file,
657
687
  tasks_dir=tasks_dir,
@@ -677,6 +707,8 @@ def eval_run(
677
707
  sandbox_setup_timeout=sandbox_setup_timeout,
678
708
  context_root=context_root,
679
709
  base_image_override=base_image_override,
710
+ separate_verifier=separate_verifier,
711
+ separate_verifier_include=include_paths,
680
712
  skills_dir=skills_dir,
681
713
  skill_mode=skill_mode,
682
714
  skill_creator_dir=skill_creator_dir,
@@ -1019,6 +1051,17 @@ def _run_config_file_eval(plan: "EvalPlan") -> None:
1019
1051
  # run-config file was a no-op.
1020
1052
  if plan.eval_config_override is not None:
1021
1053
  j._config.config_override = plan.eval_config_override
1054
+ # --separate-verifier only ever strengthens isolation, so it wins over
1055
+ # a config file that leaves it off.
1056
+ if plan.request.separate_verifier:
1057
+ j._config.separate_verifier = True
1058
+ if plan.request.separate_verifier_include:
1059
+ j._config.separate_verifier_include = normalize_include_paths(
1060
+ [
1061
+ *j._config.separate_verifier_include,
1062
+ *plan.request.separate_verifier_include,
1063
+ ]
1064
+ )
1022
1065
  except subprocess.CalledProcessError as e:
1023
1066
  # A source.repo clone/fetch failure (git exits non-zero) otherwise escapes
1024
1067
  # as a raw traceback — it is not a config-parse error, so give it its own
@@ -103,6 +103,8 @@ class EvalCreateRequest:
103
103
  sandbox_setup_timeout: int = 120
104
104
  context_root: Path | None = None
105
105
  base_image_override: str | None = None
106
+ separate_verifier: bool = False
107
+ separate_verifier_include: tuple[str, ...] = ()
106
108
  skills_dir: Path | None = None
107
109
  skill_mode: str = SKILL_MODE_NO_SKILL
108
110
  skill_creator_dir: Path | None = None
@@ -201,6 +203,8 @@ class EvalPlan:
201
203
  sandbox_setup_timeout=req.sandbox_setup_timeout,
202
204
  context_root=str(req.context_root) if req.context_root else None,
203
205
  base_image_override=req.base_image_override,
206
+ separate_verifier=req.separate_verifier,
207
+ separate_verifier_include=req.separate_verifier_include,
204
208
  skills_dir=str(req.skills_dir) if req.skills_dir else None,
205
209
  skill_mode=req.skill_mode,
206
210
  skill_creator_dir=(
@@ -134,6 +134,8 @@ def _config_payload(
134
134
  "agent_idle_timeout": config.agent_idle_timeout,
135
135
  "context_root": config.context_root,
136
136
  "base_image_override": config.base_image_override,
137
+ "separate_verifier": config.separate_verifier,
138
+ "separate_verifier_include": list(config.separate_verifier_include),
137
139
  "exclude_tasks": sorted(config.exclude_tasks),
138
140
  "include_tasks": sorted(shard.task_names),
139
141
  "skill_mode": config.skill_mode,
@@ -69,6 +69,8 @@ def _evaluation_config(raw: dict[str, Any]) -> EvaluationConfig:
69
69
  agent_idle_timeout=raw.get("agent_idle_timeout"),
70
70
  context_root=raw.get("context_root"),
71
71
  base_image_override=raw.get("base_image_override"),
72
+ separate_verifier=bool(raw.get("separate_verifier", False)),
73
+ separate_verifier_include=tuple(raw.get("separate_verifier_include") or ()),
72
74
  exclude_tasks=set(raw.get("exclude_tasks") or []),
73
75
  include_tasks=set(raw.get("include_tasks") or []),
74
76
  skill_mode=raw.get("skill_mode") or SKILL_MODE_NO_SKILL,
@@ -501,6 +501,8 @@ class EvaluationConfig:
501
501
  agent_idle_timeout: int | None = 600
502
502
  context_root: str | None = None
503
503
  base_image_override: str | None = None
504
+ separate_verifier: bool = False
505
+ separate_verifier_include: tuple[str, ...] = ()
504
506
  exclude_tasks: set[str] = field(default_factory=set)
505
507
  include_tasks: set[str] = field(default_factory=set)
506
508
  skill_mode: str = SKILL_MODE_NO_SKILL
@@ -910,6 +912,8 @@ class Evaluation:
910
912
  ),
911
913
  context_root=raw.get("context_root"),
912
914
  base_image_override=raw.get("base_image_override"),
915
+ separate_verifier=bool(raw.get("separate_verifier", False)),
916
+ separate_verifier_include=tuple(raw.get("separate_verifier_include") or ()),
913
917
  exclude_tasks=exclude,
914
918
  include_tasks=include,
915
919
  skill_mode=raw.get("skill_mode", SKILL_MODE_NO_SKILL),
@@ -1007,6 +1011,8 @@ class Evaluation:
1007
1011
  ),
1008
1012
  context_root=raw.get("context_root"),
1009
1013
  base_image_override=raw.get("base_image_override"),
1014
+ separate_verifier=bool(raw.get("separate_verifier", False)),
1015
+ separate_verifier_include=tuple(raw.get("separate_verifier_include") or ()),
1010
1016
  include_tasks=include,
1011
1017
  exclude_tasks=exclude,
1012
1018
  skill_mode=raw.get("skill_mode", SKILL_MODE_NO_SKILL),
@@ -1284,6 +1290,8 @@ class Evaluation:
1284
1290
  agent_idle_timeout=cfg.agent_idle_timeout,
1285
1291
  context_root=cfg.context_root,
1286
1292
  base_image_override=cfg.base_image_override,
1293
+ separate_verifier=cfg.separate_verifier,
1294
+ separate_verifier_include=cfg.separate_verifier_include,
1287
1295
  skill_mode=skill_mode,
1288
1296
  skill_creator_dir=cfg.skill_creator_dir,
1289
1297
  self_gen_no_internet=cfg.self_gen_no_internet,
@@ -1345,6 +1353,8 @@ class Evaluation:
1345
1353
  agent_idle_timeout=cfg.agent_idle_timeout,
1346
1354
  context_root=cfg.context_root,
1347
1355
  base_image_override=cfg.base_image_override,
1356
+ separate_verifier=cfg.separate_verifier,
1357
+ separate_verifier_include=cfg.separate_verifier_include,
1348
1358
  skill_mode=cfg.skill_mode,
1349
1359
  skill_creator_dir=cfg.skill_creator_dir,
1350
1360
  self_gen_no_internet=cfg.self_gen_no_internet,
@@ -30,6 +30,19 @@ from benchflow.task.config import ArtifactConfig
30
30
 
31
31
  logger = logging.getLogger(__name__)
32
32
 
33
+ # Package-manager caches, matched as path components below a captured root.
34
+ # With a /root workspace, the harness's own installs (codex-acp through npm,
35
+ # tools through uv) fill these as root before the agent starts, and they can
36
+ # be most of the workspace's bytes. A cache is never an output: the review and
37
+ # the separate verifier sandbox both do without it.
38
+ PACKAGE_CACHE_PATHS = (
39
+ ".cache/pip",
40
+ ".cache/uv",
41
+ ".npm/_cacache",
42
+ ".npm/_logs",
43
+ ".npm/_npx",
44
+ )
45
+
33
46
 
34
47
  class EvidenceError(RuntimeError):
35
48
  """Required evidence could not be captured or verified completely."""
@@ -51,7 +64,9 @@ class EvidenceExclusion(BaseModel):
51
64
  model_config = ConfigDict(extra="forbid", frozen=True)
52
65
 
53
66
  original_path: str
54
- reason: Literal["credential", "sandbox_runtime", "special_file", "task_exclude"]
67
+ reason: Literal[
68
+ "credential", "sandbox_runtime", "package_cache", "special_file", "task_exclude"
69
+ ]
55
70
 
56
71
 
57
72
  class ArtifactEvidence(BaseModel):
@@ -125,6 +140,8 @@ def excluded(path):
125
140
  # but a root that itself lies under such a directory is still captured.
126
141
  if reason is None and any(component("/" + relative, rule) for rule in rules["sandbox_runtime"]):
127
142
  reason = "sandbox_runtime"
143
+ if reason is None and any(component("/" + relative, rule) for rule in rules["package_cache"]):
144
+ reason = "package_cache"
128
145
  if reason is None and any(fnmatch.fnmatchcase(relative, rule) or fnmatch.fnmatchcase(path.name, rule) for rule in rules["exclude"]):
129
146
  reason = "task_exclude"
130
147
  if reason:
@@ -346,9 +363,9 @@ async def capture_workspace(
346
363
  ``destination`` must not exist. It receives ``workspace/`` and
347
364
  ``manifest.json`` together after successful validation. Capture limits are
348
365
  hard errors: this API never labels a truncated tree complete. Credential
349
- files, provider runtime state (``SANDBOX_RUNTIME_STATE_PATHS``) and
350
- sockets, FIFOs or device nodes stay out of the bundle, each recorded in
351
- ``manifest.exclusions``.
366
+ files, provider runtime state (``SANDBOX_RUNTIME_STATE_PATHS``), package
367
+ manager caches (``PACKAGE_CACHE_PATHS``) and sockets, FIFOs or device
368
+ nodes stay out of the bundle, each recorded in ``manifest.exclusions``.
352
369
  """
353
370
  if destination.exists() or destination.is_symlink():
354
371
  raise EvidenceError(f"Evidence destination already exists: {destination}")
@@ -361,6 +378,7 @@ async def capture_workspace(
361
378
  {
362
379
  "credentials": CREDENTIAL_EVIDENCE_PATHS,
363
380
  "sandbox_runtime": SANDBOX_RUNTIME_STATE_PATHS,
381
+ "package_cache": PACKAGE_CACHE_PATHS,
364
382
  "exclude": list(exclude),
365
383
  "paths": list(excluded_paths),
366
384
  }
@@ -368,6 +386,7 @@ async def capture_workspace(
368
386
  command = shlex.join(
369
387
  [
370
388
  "python3",
389
+ "-I",
371
390
  "-c",
372
391
  _CAPTURE_SCRIPT,
373
392
  workspace,
@@ -475,7 +494,9 @@ async def validate_uploaded_workspace(
475
494
  env: Sandbox, workspace: str, manifest_path: str, *, timeout_sec: int = 600
476
495
  ) -> None:
477
496
  """Reject missing or changed files in the reviewer sandbox after upload."""
478
- command = shlex.join(["python3", "-c", _ADMISSION_SCRIPT, workspace, manifest_path])
497
+ command = shlex.join(
498
+ ["python3", "-I", "-c", _ADMISSION_SCRIPT, workspace, manifest_path]
499
+ )
479
500
  result = await env.exec(command, user="root", timeout_sec=timeout_sec)
480
501
  if result.return_code:
481
502
  raise EvidenceError(
@@ -574,7 +595,7 @@ async def install_uploaded_workspace(
574
595
  The destination must be fresh; a failed installation is never admissible.
575
596
  """
576
597
  command = shlex.join(
577
- ["python3", "-c", _UNPACK_SCRIPT, archive_path, workspace, manifest_path]
598
+ ["python3", "-I", "-c", _UNPACK_SCRIPT, archive_path, workspace, manifest_path]
578
599
  )
579
600
  result = await env.exec(command, user="root", timeout_sec=timeout_sec)
580
601
  if result.return_code:
@@ -646,6 +667,7 @@ async def capture_task_evidence(
646
667
  command = shlex.join(
647
668
  [
648
669
  "python3",
670
+ "-I",
649
671
  "-c",
650
672
  _ARTIFACT_PROBE_SCRIPT,
651
673
  manifest.workspace,
@@ -124,8 +124,10 @@ from benchflow.rollout._results import (
124
124
  from benchflow.rollout._review import (
125
125
  capture_terminal_workspace,
126
126
  finish_terminal_review,
127
+ mark_agent_phase_start,
127
128
  prepare_terminal_review,
128
129
  )
130
+ from benchflow.rollout._separate_verifier import run_separate_verifier
129
131
  from benchflow.rollout._setup import (
130
132
  _agent_launch_with_web_policy as _agent_launch_with_web_policy,
131
133
  )
@@ -219,6 +221,10 @@ from benchflow.skill_policy import (
219
221
  task_bundled_skills_dir,
220
222
  )
221
223
  from benchflow.skill_policy import SKILL_MODE_WITH_SKILL as SKILL_MODE_WITH_SKILL
224
+ from benchflow.task.verifier_sandbox import (
225
+ apply_separate_verifier_flag,
226
+ separate_verifier_requested,
227
+ )
222
228
  from benchflow.trajectories._capture import (
223
229
  TrajectoryWriter,
224
230
  _capture_session_trajectory,
@@ -770,6 +776,10 @@ class Rollout:
770
776
  # an export-time infra failure ("connection lost") as the agent's own
771
777
  # infra_failure category in dashboards.
772
778
  self._export_error: str | None = None
779
+ # Separate verifier only: the sandbox clock as the agent phase began,
780
+ # and the files written outside everything that crosses since then.
781
+ self._agent_phase_started: float | None = None
782
+ self._outside_workspace_writes: dict | None = None
773
783
  # Single bag for the four parallel diagnostic fields the old code
774
784
  # carried as separate attrs (issue #503). Each callsite that used
775
785
  # to assign to one of those slots now calls ``self._diagnostics.set(...)``
@@ -967,6 +977,23 @@ class Rollout:
967
977
  self._task.config, cfg.config_override
968
978
  )
969
979
 
980
+ if cfg.separate_verifier:
981
+ # --separate-verifier: this run's verifier gets its own sandbox,
982
+ # the task's files (and digest) stay as they are. Refused here,
983
+ # before any sandbox exists, where that sandbox cannot run.
984
+ self._task.config = apply_separate_verifier_flag(
985
+ self._task.config, sandbox=cfg.environment, task_dir=cfg.task_path
986
+ )
987
+
988
+ if cfg.separate_verifier_include and not separate_verifier_requested(
989
+ self._task.config
990
+ ):
991
+ logger.warning(
992
+ "--separate-verifier-include has no effect for %s: its verifier "
993
+ "runs in the agent's sandbox",
994
+ self._task.name,
995
+ )
996
+
970
997
  prepare_terminal_review(self)
971
998
 
972
999
  self._disallow_web_tools = (
@@ -1106,6 +1133,16 @@ class Rollout:
1106
1133
  started_at=self._started_at,
1107
1134
  agent_env=self._agent_env,
1108
1135
  base_image_override=cfg.base_image_override,
1136
+ verifier_sandbox_mode=(
1137
+ "separate"
1138
+ if separate_verifier_requested(getattr(self._task, "config", None))
1139
+ else "shared"
1140
+ ),
1141
+ verifier_include=(
1142
+ cfg.separate_verifier_include
1143
+ if separate_verifier_requested(getattr(self._task, "config", None))
1144
+ else ()
1145
+ ),
1109
1146
  usage_tracking=cfg.usage_tracking.with_env_defaults(),
1110
1147
  concurrency=cfg.concurrency,
1111
1148
  agent_idle_timeout=cfg.agent_idle_timeout,
@@ -1224,6 +1261,7 @@ class Rollout:
1224
1261
  self._env, cfg.generated_skills_root, cfg.sandbox_user
1225
1262
  )
1226
1263
  await self._planes.lockdown_paths(self._env, self._effective_locked)
1264
+ await mark_agent_phase_start(self)
1227
1265
  self._phase = "installed"
1228
1266
  return
1229
1267
 
@@ -1291,6 +1329,7 @@ class Rollout:
1291
1329
  self._env, cfg.generated_skills_root, cfg.sandbox_user
1292
1330
  )
1293
1331
  await self._planes.lockdown_paths(self._env, self._effective_locked)
1332
+ await mark_agent_phase_start(self)
1294
1333
 
1295
1334
  self._phase = "installed"
1296
1335
 
@@ -1899,6 +1938,13 @@ class Rollout:
1899
1938
  f"Using scraped trajectory ({len(scraped)} events) — UNTRUSTED"
1900
1939
  )
1901
1940
 
1941
+ if separate_verifier_requested(getattr(self._task, "config", None)):
1942
+ # The verifier never runs in the agent's sandbox: a fresh one gets
1943
+ # only the frozen workspace.
1944
+ self._rewards, self._verifier_error = await run_separate_verifier(self)
1945
+ self._phase = "verified"
1946
+ return self._rewards
1947
+
1902
1948
  await _publish_trajectory_for_verifier(
1903
1949
  self._env, self._trajectory, self._rollout_paths.agent_dir
1904
1950
  )
@@ -1933,6 +1979,14 @@ class Rollout:
1933
1979
  Returns (rewards, verifier_output, verifier_error). The final
1934
1980
  verify() still does full hardening.
1935
1981
  """
1982
+ if separate_verifier_requested(getattr(self._task, "config", None)):
1983
+ # Soft verification would upload tests/ into the agent's sandbox.
1984
+ return (
1985
+ None,
1986
+ None,
1987
+ "soft_verify is unavailable: the task uses a separate verifier "
1988
+ "sandbox, so tests never enter the agent's sandbox",
1989
+ )
1936
1990
  self._rollout_paths.verifier_dir.mkdir(parents=True, exist_ok=True)
1937
1991
  # Clean verifier output dir — chmod 777 so non-root verifier processes can write.
1938
1992
  # Keep /app present for task/verifier paths that still use the legacy
@@ -2221,6 +2275,9 @@ class Rollout:
2221
2275
  user="root",
2222
2276
  timeout_sec=10,
2223
2277
  )
2278
+ # That harness step writes /root/.gitconfig: restart the agent
2279
+ # phase clock so it is not listed as the solver's output.
2280
+ await mark_agent_phase_start(self)
2224
2281
  self._trajectory, self._agent_name = await _run_oracle(
2225
2282
  self._env, cfg.task_path, self._timeout, sandbox_user=None
2226
2283
  )
@@ -166,6 +166,12 @@ class RolloutConfig:
166
166
  generated_skills_root: str = GENERATED_SKILLS_ROOT
167
167
  self_gen_no_internet: bool = False
168
168
  skip_verify: bool = False
169
+ # Run the verifier in a fresh sandbox that receives only the frozen
170
+ # workspace, whatever the task declares (``--separate-verifier``).
171
+ separate_verifier: bool = False
172
+ # Paths outside the workspace that a separate verifier sandbox receives
173
+ # too, at the same path (``--separate-verifier-include``).
174
+ separate_verifier_include: tuple[str, ...] = ()
169
175
  reviewer: ReviewerConfig = field(default_factory=ReviewerConfig)
170
176
  purpose: Literal["task", "reviewer"] = "task"
171
177
  parent_rollout: str | None = None
@@ -183,6 +189,7 @@ class RolloutConfig:
183
189
 
184
190
  def __post_init__(self) -> None:
185
191
  from benchflow._utils.config import normalize_agent_idle_timeout
192
+ from benchflow.task.verifier_sandbox import normalize_include_paths
186
193
 
187
194
  if not isinstance(self.task_path, Path):
188
195
  self.task_path = Path(self.task_path)
@@ -197,6 +204,9 @@ class RolloutConfig:
197
204
  self.base_image_override = base_image
198
205
  if self.skills_dir is not None and not isinstance(self.skills_dir, Path):
199
206
  self.skills_dir = Path(self.skills_dir)
207
+ self.separate_verifier_include = normalize_include_paths(
208
+ self.separate_verifier_include or ()
209
+ )
200
210
  self.skill_mode = normalize_skill_mode(self.skill_mode)
201
211
  if self.artifact_skill_mode is not None:
202
212
  self.artifact_skill_mode = normalize_skill_mode(self.artifact_skill_mode)
@@ -16,6 +16,7 @@ from __future__ import annotations
16
16
 
17
17
  import json
18
18
  import logging
19
+ from collections.abc import Sequence
19
20
  from datetime import datetime
20
21
  from pathlib import Path
21
22
  from typing import Any, Literal
@@ -121,6 +122,8 @@ def _write_config(
121
122
  started_at: datetime,
122
123
  agent_env: dict[str, str],
123
124
  base_image_override: str | None = None,
125
+ verifier_sandbox_mode: str = "shared",
126
+ verifier_include: Sequence[str] = (),
124
127
  reasoning_effort: str | None = None,
125
128
  usage_tracking: UsageTrackingConfig | None = None,
126
129
  concurrency: int | None = None,
@@ -170,6 +173,8 @@ def _write_config(
170
173
  else effective_install_timeout(agent, sandbox_setup_timeout),
171
174
  "context_root": str(context_root) if context_root else None,
172
175
  "base_image_override": base_image_override,
176
+ "verifier_sandbox_mode": verifier_sandbox_mode,
177
+ "verifier_include": list(verifier_include),
173
178
  "timeout_sec": timeout,
174
179
  "concurrency": concurrency,
175
180
  "agent_idle_timeout_sec": agent_idle_timeout,