benchflow 0.7.2.dev2000__tar.gz → 0.7.4__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 (726) hide show
  1. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/CHANGELOG.md +83 -0
  2. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/PKG-INFO +1 -1
  3. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/pyproject.toml +1 -1
  4. benchflow-0.7.4/src/benchflow/cli/_traj_tui.py +286 -0
  5. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/_traj_upload_ui.py +30 -8
  6. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/traj.py +403 -25
  7. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/publish/broker.py +111 -4
  8. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/publish/traj_capture.py +193 -9
  9. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/metrics.py +60 -14
  10. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/sessions.py +16 -1
  11. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conftest.py +10 -0
  12. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_publish_azure_blob.py +2 -2
  13. benchflow-0.7.4/tests/test_skill_invocation_artifacts.py +397 -0
  14. benchflow-0.7.4/tests/test_traj_tui.py +185 -0
  15. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_traj_upload_cli.py +413 -8
  16. benchflow-0.7.4/tests/test_traj_workspace.py +395 -0
  17. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_trajectory_upload_service.py +299 -7
  18. benchflow-0.7.2.dev2000/tests/test_skill_invocation_artifacts.py +0 -188
  19. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/.gitignore +0 -0
  20. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/LICENSE +0 -0
  21. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/README.md +0 -0
  22. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/__init__.py +0 -0
  23. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_dotenv.py +0 -0
  24. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_paths.py +0 -0
  25. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_run.py +0 -0
  26. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_types.py +0 -0
  27. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/__init__.py +0 -0
  28. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/benchmark_repos.py +0 -0
  29. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/build_context_stage.py +0 -0
  30. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/config.py +0 -0
  31. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/config_override.py +0 -0
  32. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/content_address.py +0 -0
  33. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/dataset_registry.py +0 -0
  34. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/env_registry.py +0 -0
  35. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/evaluation_results.py +0 -0
  36. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/hf_datasets.py +0 -0
  37. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/json_safe.py +0 -0
  38. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/learner_memory.py +0 -0
  39. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/live_activity.py +0 -0
  40. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/result_metadata.py +0 -0
  41. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/reward_events.py +0 -0
  42. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/scoring.py +0 -0
  43. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/source_provenance.py +0 -0
  44. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/task_authoring/__init__.py +0 -0
  45. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/task_authoring/_evidence_paths.py +0 -0
  46. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/task_authoring/acceptance_evidence.py +0 -0
  47. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/task_authoring/scaffolding.py +0 -0
  48. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/task_authoring/structural_checks.py +0 -0
  49. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/text.py +0 -0
  50. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/_utils/yaml_loader.py +0 -0
  51. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/acp/__init__.py +0 -0
  52. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/acp/client.py +0 -0
  53. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/acp/container_transport.py +0 -0
  54. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/acp/runtime.py +0 -0
  55. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/acp/selection.py +0 -0
  56. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/acp/session.py +0 -0
  57. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/acp/transport.py +0 -0
  58. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/acp/types.py +0 -0
  59. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/__init__.py +0 -0
  60. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/_toolathlon.py +0 -0
  61. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/_toolathlon_container.py +0 -0
  62. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/_toolathlon_fake_mail.py +0 -0
  63. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/_toolathlon_poste_users.tsv +0 -0
  64. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/_toolathlon_services.py +0 -0
  65. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/harbor.py +0 -0
  66. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/inbound.py +0 -0
  67. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/inspect_ai.py +0 -0
  68. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/ors.py +0 -0
  69. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/resources/__init__.py +0 -0
  70. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/resources/mcp_atlas_bridge.py +0 -0
  71. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/resources/mcp_atlas_judge.py +0 -0
  72. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/adapters/source.py +0 -0
  73. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agent_router.py +0 -0
  74. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agent_router_guide.py +0 -0
  75. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agent_router_parity.py +0 -0
  76. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agent_router_scaffold.py +0 -0
  77. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/__init__.py +0 -0
  78. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/codex_config.py +0 -0
  79. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/credentials.py +0 -0
  80. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/deepagents_acp_shim.py +0 -0
  81. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/env.py +0 -0
  82. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/errors.py +0 -0
  83. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/harvey_lab_acp_shim.py +0 -0
  84. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/install.py +0 -0
  85. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/manifest.py +0 -0
  86. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/openclaw_acp_shim.py +0 -0
  87. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/pi_acp_launcher.py +0 -0
  88. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/protocol.py +0 -0
  89. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/providers.py +0 -0
  90. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/registry.py +0 -0
  91. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/agents/remote_manifests.py +0 -0
  92. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/branch.py +0 -0
  93. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/__init__.py +0 -0
  94. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/_failure_evidence.py +0 -0
  95. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/_hosted_env.py +0 -0
  96. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/_live_progress.py +0 -0
  97. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/_options.py +0 -0
  98. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/_shared.py +0 -0
  99. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/adopt.py +0 -0
  100. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/agent.py +0 -0
  101. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/continue_cmd.py +0 -0
  102. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/environment.py +0 -0
  103. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/eval_artifacts.py +0 -0
  104. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/eval_lift.py +0 -0
  105. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/hub.py +0 -0
  106. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/main.py +0 -0
  107. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/monitor.py +0 -0
  108. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/review.py +0 -0
  109. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/sandbox.py +0 -0
  110. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/skills.py +0 -0
  111. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/tasks.py +0 -0
  112. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/trace_import.py +0 -0
  113. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/cli/train.py +0 -0
  114. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/continue_run/__init__.py +0 -0
  115. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/continue_run/batch.py +0 -0
  116. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/continue_run/orchestrator.py +0 -0
  117. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/continue_run/replay_proxy.py +0 -0
  118. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/continue_run/run_folder.py +0 -0
  119. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/continue_run/sandbox_proxy.py +0 -0
  120. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/contracts/__init__.py +0 -0
  121. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/contracts/planes.py +0 -0
  122. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/contracts/user.py +0 -0
  123. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/demo_task/environment/Dockerfile +0 -0
  124. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/demo_task/instruction.md +0 -0
  125. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/demo_task/task.md +0 -0
  126. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/demo_task/task.toml +0 -0
  127. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/demo_task/tests/test.sh +0 -0
  128. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/diagnostics.py +0 -0
  129. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/environment/__init__.py +0 -0
  130. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/environment/_registry/env0@outage.toml +0 -0
  131. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/environment/_registry/env0@prod.toml +0 -0
  132. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/environment/manifest.py +0 -0
  133. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/environment/manifest_env.py +0 -0
  134. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/environment/protocol.py +0 -0
  135. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/environment/readiness.py +0 -0
  136. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/eval_artifacts.py +0 -0
  137. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/eval_lift.py +0 -0
  138. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/eval_plan.py +0 -0
  139. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/eval_sharding.py +0 -0
  140. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/eval_worker.py +0 -0
  141. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/evaluation.py +0 -0
  142. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/experimental/__init__.py +0 -0
  143. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/experimental/mcp/__init__.py +0 -0
  144. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/experimental/mcp/hooks.py +0 -0
  145. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/experimental/mcp/reviewer_server.py +0 -0
  146. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/hosted_env.py +0 -0
  147. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/hub/__init__.py +0 -0
  148. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/hub/harbor_registry.py +0 -0
  149. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/integrations/__init__.py +0 -0
  150. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/integrations/trl/__init__.py +0 -0
  151. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/integrations/trl/spec.py +0 -0
  152. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/learner_skills.py +0 -0
  153. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/learner_store.py +0 -0
  154. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/loop_strategies.py +0 -0
  155. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/loop_sweep.py +0 -0
  156. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/metrics.py +0 -0
  157. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/models.py +0 -0
  158. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/monitor.py +0 -0
  159. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/providers/__init__.py +0 -0
  160. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/providers/litellm_bedrock_patch.py +0 -0
  161. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/providers/litellm_bedrock_preflight.py +0 -0
  162. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/providers/litellm_config.py +0 -0
  163. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/providers/litellm_logging.py +0 -0
  164. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/providers/litellm_runtime.py +0 -0
  165. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/providers/runtime.py +0 -0
  166. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/publish/__init__.py +0 -0
  167. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/publish/_progress.py +0 -0
  168. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/publish/azure_blob.py +0 -0
  169. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/publish/huggingface.py +0 -0
  170. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/publish/redact.py +0 -0
  171. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/publish/traj_report.py +0 -0
  172. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/py.typed +0 -0
  173. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/review/__init__.py +0 -0
  174. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/review/config.py +0 -0
  175. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/review/default-rubric.json +0 -0
  176. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/review/prompts.py +0 -0
  177. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/review/runner.py +0 -0
  178. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/review/wrapper.py +0 -0
  179. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/README.md +0 -0
  180. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/__init__.py +0 -0
  181. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/builtins.py +0 -0
  182. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/events.py +0 -0
  183. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/file_readers.py +0 -0
  184. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/llm.py +0 -0
  185. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/memory_scorer.py +0 -0
  186. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/node.py +0 -0
  187. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/protocol.py +0 -0
  188. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/rubric.py +0 -0
  189. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/rubric_config.py +0 -0
  190. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rewards/validation.py +0 -0
  191. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout/__init__.py +0 -0
  192. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout/_config.py +0 -0
  193. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout/_deadline.py +0 -0
  194. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout/_results.py +0 -0
  195. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout/_setup.py +0 -0
  196. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout/_skills.py +0 -0
  197. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout/_usage.py +0 -0
  198. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout/_user_loop.py +0 -0
  199. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout/session_factory_runtime.py +0 -0
  200. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout/task_runtime.py +0 -0
  201. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout_branch.py +0 -0
  202. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/rollout_planes.py +0 -0
  203. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/runtime.py +0 -0
  204. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/__init__.py +0 -0
  205. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/_base.py +0 -0
  206. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/_cache_reclaim.py +0 -0
  207. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/_compose.py +0 -0
  208. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/_compose_files/docker-compose-base.yaml +0 -0
  209. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/_compose_files/docker-compose-build.yaml +0 -0
  210. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/_compose_files/docker-compose-no-network.yaml +0 -0
  211. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/_compose_files/docker-compose-prebuilt.yaml +0 -0
  212. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/_sdk_ops.py +0 -0
  213. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/agentcore.py +0 -0
  214. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/agentcore_builder.py +0 -0
  215. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/agentcore_image.py +0 -0
  216. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/agentcore_provisioning.py +0 -0
  217. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/agentcore_reaper.py +0 -0
  218. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/agentcore_sealed.py +0 -0
  219. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/apple_container.py +0 -0
  220. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/daytona.py +0 -0
  221. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/daytona_dind.py +0 -0
  222. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/daytona_pty.py +0 -0
  223. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/daytona_reaper.py +0 -0
  224. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/daytona_strategies.py +0 -0
  225. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/docker.py +0 -0
  226. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/lockdown.py +0 -0
  227. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/metadata.py +0 -0
  228. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/modal_impl.py +0 -0
  229. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/process/__init__.py +0 -0
  230. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/process/_base.py +0 -0
  231. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/process/agentcore.py +0 -0
  232. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/process/apple.py +0 -0
  233. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/process/daytona.py +0 -0
  234. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/process/docker.py +0 -0
  235. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/protocol.py +0 -0
  236. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/providers.py +0 -0
  237. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/services.py +0 -0
  238. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/setup.py +0 -0
  239. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/snapshot.py +0 -0
  240. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sandbox/user.py +0 -0
  241. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/scenes.py +0 -0
  242. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/sdk.py +0 -0
  243. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/self_gen.py +0 -0
  244. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/skill_eval/__init__.py +0 -0
  245. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/skill_eval/_core.py +0 -0
  246. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/skill_eval/gepa_export.py +0 -0
  247. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/skill_eval/schema.py +0 -0
  248. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/skill_policy.py +0 -0
  249. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/skills.py +0 -0
  250. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/__init__.py +0 -0
  251. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/_document_evidence.py +0 -0
  252. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/_document_normalize.py +0 -0
  253. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/_document_parse.py +0 -0
  254. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/_document_profiles.py +0 -0
  255. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/acceptance_live.py +0 -0
  256. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/acceptance_live_model.py +0 -0
  257. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/acceptance_live_report.py +0 -0
  258. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/acceptance_live_validation.py +0 -0
  259. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/config.py +0 -0
  260. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/discovery.py +0 -0
  261. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/document.py +0 -0
  262. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/env.py +0 -0
  263. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/export.py +0 -0
  264. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/imports.py +0 -0
  265. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/output_format.py +0 -0
  266. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/package.py +0 -0
  267. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/paths.py +0 -0
  268. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/prompts.py +0 -0
  269. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/runtime_capabilities.py +0 -0
  270. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/runtime_view.py +0 -0
  271. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/task.py +0 -0
  272. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/verifier.py +0 -0
  273. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/verifier_core.py +0 -0
  274. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/verifier_document.py +0 -0
  275. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/verifier_errors.py +0 -0
  276. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/verifier_judge_inputs.py +0 -0
  277. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/verifier_ors_episode.py +0 -0
  278. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/verifier_reward_kit.py +0 -0
  279. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/verifier_scan.py +0 -0
  280. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/task/verifier_script_strategy.py +0 -0
  281. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/templates/__init__.py +0 -0
  282. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/templates/judge.py.tmpl +0 -0
  283. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/templates/test.sh.tmpl +0 -0
  284. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/traces/__init__.py +0 -0
  285. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/traces/huggingface.py +0 -0
  286. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/traces/local.py +0 -0
  287. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/traces/models.py +0 -0
  288. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/traces/parsers.py +0 -0
  289. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/traces/task_gen.py +0 -0
  290. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/training/__init__.py +0 -0
  291. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/training/backends/__init__.py +0 -0
  292. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/training/backends/prime_rl.py +0 -0
  293. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/training/run_manifest.py +0 -0
  294. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/__init__.py +0 -0
  295. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/_capture.py +0 -0
  296. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/_export_common.py +0 -0
  297. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/_llm_capture.py +0 -0
  298. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/call_purpose.py +0 -0
  299. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/export.py +0 -0
  300. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/export_adp.py +0 -0
  301. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/export_atif.py +0 -0
  302. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/export_prime_sft.py +0 -0
  303. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/export_trl_sft.py +0 -0
  304. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/results.py +0 -0
  305. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/tree.py +0 -0
  306. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/trl_sft_tokenization.py +0 -0
  307. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/types.py +0 -0
  308. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/trajectories/viewer.py +0 -0
  309. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/src/benchflow/usage_tracking.py +0 -0
  310. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/__init__.py +0 -0
  311. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/acceptance_live_harness.py +0 -0
  312. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/agents/__init__.py +0 -0
  313. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/agents/test_manifest_dirscan.py +0 -0
  314. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/agents/test_manifest_loader.py +0 -0
  315. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/agents/test_manifest_parity.py +0 -0
  316. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/agents/test_manifest_wiring.py +0 -0
  317. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/agents/test_namespace_shorthand.py +0 -0
  318. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/agents/test_plugin_entry_points.py +0 -0
  319. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/agents/test_protocol.py +0 -0
  320. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/agents/test_remote_manifest_autoload.py +0 -0
  321. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/README.md +0 -0
  322. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/acp_smoke/environment/Dockerfile +0 -0
  323. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/acp_smoke/environment/docker-compose.yaml +0 -0
  324. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/acp_smoke/environment/skills/conformance-writer/SKILL.md +0 -0
  325. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/acp_smoke/instruction.md +0 -0
  326. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/acp_smoke/solution/solve.sh +0 -0
  327. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/acp_smoke/task.md +0 -0
  328. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/acp_smoke/task.toml +0 -0
  329. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/acp_smoke/tests/test.sh +0 -0
  330. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/conformance-results.json +0 -0
  331. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/proof_multi_agent.py +0 -0
  332. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/proof_snapshot.py +0 -0
  333. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/run_conformance.py +0 -0
  334. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/conformance/self_gen_smoke_skills/skill-creator/SKILL.md +0 -0
  335. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/continue_run/__init__.py +0 -0
  336. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/continue_run/_helpers.py +0 -0
  337. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/continue_run/test_batch.py +0 -0
  338. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/continue_run/test_orchestrator.py +0 -0
  339. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/continue_run/test_replay_proxy.py +0 -0
  340. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/continue_run/test_run_folder.py +0 -0
  341. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/environment/__init__.py +0 -0
  342. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/environment/test_chibench_manifest.py +0 -0
  343. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/environment/test_clawsbench_manifest.py +0 -0
  344. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/environment/test_manifest.py +0 -0
  345. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/environment/test_manifest_env.py +0 -0
  346. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/environment/test_protocol.py +0 -0
  347. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/environment/test_readiness.py +0 -0
  348. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/hello-world-task/environment/Dockerfile +0 -0
  349. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/hello-world-task/instruction.md +0 -0
  350. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/hello-world-task/solution/solve.sh +0 -0
  351. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/hello-world-task/task.md +0 -0
  352. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/hello-world-task/task.toml +0 -0
  353. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/hello-world-task/tests/test.sh +0 -0
  354. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/test_claude.sh +0 -0
  355. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/test_codex.sh +0 -0
  356. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/test_codex_custom_provider.sh +0 -0
  357. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/test_gemini.sh +0 -0
  358. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/test_openclaw.sh +0 -0
  359. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/traces/minimal-claude.jsonl +0 -0
  360. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/examples/traces/minimal-opentraces.jsonl +0 -0
  361. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/digest/README.md +0 -0
  362. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/digest/alpha-task/environment/Dockerfile +0 -0
  363. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/digest/alpha-task/instruction.md +0 -0
  364. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/digest/alpha-task/task.toml +0 -0
  365. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/digest/alpha-task/tests/test.sh +0 -0
  366. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/digest/beta-task/data/empty.bin +0 -0
  367. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/digest/beta-task/data/unicode.txt +0 -0
  368. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/digest/beta-task/instruction.md +0 -0
  369. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/digest/beta-task/task.toml +0 -0
  370. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/digest/not-a-task/notes.txt +0 -0
  371. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/mock_acp_agent.py +0 -0
  372. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/mock_acp_agent_interleaved.py +0 -0
  373. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/mock_acp_agent_multi_turn.py +0 -0
  374. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/mock_openai_responses_server.py +0 -0
  375. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/Dockerfile +0 -0
  376. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/data/michigan_stations.txt +0 -0
  377. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/flood-detection/SKILL.md +0 -0
  378. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/nws-flood-thresholds/SKILL.md +0 -0
  379. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/usgs-data-download/SKILL.md +0 -0
  380. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/flood-risk-analysis/instruction.md +0 -0
  381. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/flood-risk-analysis/solution/solve.sh +0 -0
  382. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/flood-risk-analysis/task.toml +0 -0
  383. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test.sh +0 -0
  384. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test_outputs.py +0 -0
  385. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/Dockerfile +0 -0
  386. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/climate.csv +0 -0
  387. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/hydrology.csv +0 -0
  388. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/land_cover.csv +0 -0
  389. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/water_temperature.csv +0 -0
  390. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/contribution-analysis/SKILL.md +0 -0
  391. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/meteorology-driver-classification/SKILL.md +0 -0
  392. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/pca-decomposition/SKILL.md +0 -0
  393. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/trend-analysis/SKILL.md +0 -0
  394. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/instruction.md +0 -0
  395. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/solution/solve.sh +0 -0
  396. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/task.toml +0 -0
  397. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test.sh +0 -0
  398. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test_outputs.py +0 -0
  399. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/manifest.json +0 -0
  400. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/Dockerfile +0 -0
  401. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/r2r_simulator.py +0 -0
  402. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/finite-horizon-lqr/SKILL.md +0 -0
  403. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/integral-action-design/SKILL.md +0 -0
  404. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/mpc-horizon-tuning/SKILL.md +0 -0
  405. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/state-space-linearization/SKILL.md +0 -0
  406. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/system_config.json +0 -0
  407. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/instruction.md +0 -0
  408. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/solution/solve.sh +0 -0
  409. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/task.toml +0 -0
  410. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test.sh +0 -0
  411. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test_outputs.py +0 -0
  412. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/Dockerfile +0 -0
  413. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/generate_training_pcaps.py +0 -0
  414. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/local.rules +0 -0
  415. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/SKILL.md +0 -0
  416. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/scripts/summarize_http_requests.sh +0 -0
  417. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/SKILL.md +0 -0
  418. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/scripts/run_suricata_offline.sh +0 -0
  419. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-rules-basics/SKILL.md +0 -0
  420. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/suricata.yaml +0 -0
  421. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/instruction.md +0 -0
  422. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/solution/solve.sh +0 -0
  423. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/task.toml +0 -0
  424. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test.sh +0 -0
  425. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test_outputs.py +0 -0
  426. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/Dockerfile +0 -0
  427. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syz-extract-constants/SKILL.md +0 -0
  428. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzkaller-build-loop/SKILL.md +0 -0
  429. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzlang-ioctl-basics/SKILL.md +0 -0
  430. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/instruction.md +0 -0
  431. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/solution/solve.sh +0 -0
  432. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/task.toml +0 -0
  433. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test.sh +0 -0
  434. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test_outputs.py +0 -0
  435. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/_consistency.py +0 -0
  436. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/agent_judge.py +0 -0
  437. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/check_adapter_evidence.py +0 -0
  438. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/check_hosted_env_evidence.py +0 -0
  439. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/check_results.py +0 -0
  440. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/check_skillsbench_harbor_parity.py +0 -0
  441. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/check_trace_to_task_evidence.py +0 -0
  442. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/configs/claude-agent-acp.yaml +0 -0
  443. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/configs/codex-acp.yaml +0 -0
  444. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/configs/gemini.yaml +0 -0
  445. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/configs/harvey-lab-harness.yaml +0 -0
  446. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/configs/mimo.yaml +0 -0
  447. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/configs/openclaw.yaml +0 -0
  448. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/configs/opencode.yaml +0 -0
  449. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/configs/openhands.yaml +0 -0
  450. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/configs/pi-acp.yaml +0 -0
  451. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/deepagents_harness.py +0 -0
  452. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/rubric_checks.py +0 -0
  453. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/run.sh +0 -0
  454. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/run_suite.py +0 -0
  455. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/scenarios.py +0 -0
  456. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/integration/suites/release.yaml +0 -0
  457. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_acceptance_evidence.py +0 -0
  458. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_acceptance_live.py +0 -0
  459. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_acceptance_live_execution.py +0 -0
  460. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_acp.py +0 -0
  461. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_acp_capability_advertising.py +0 -0
  462. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_acp_mcp_servers.py +0 -0
  463. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_acp_model_config_dispatch.py +0 -0
  464. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_acp_pinned_protocol_guard.py +0 -0
  465. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_acp_setup_failure_propagation.py +0 -0
  466. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_adapter_scripts.py +0 -0
  467. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_adapters.py +0 -0
  468. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agent_cli.py +0 -0
  469. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agent_env_resolution.py +0 -0
  470. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agent_gemini_defaults.py +0 -0
  471. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agent_idle_timeout_cli.py +0 -0
  472. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agent_model_decouple.py +0 -0
  473. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agent_registry.py +0 -0
  474. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agent_router.py +0 -0
  475. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agent_router_cli_e2e.py +0 -0
  476. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agent_router_scaffold.py +0 -0
  477. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agent_setup.py +0 -0
  478. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agent_spec.py +0 -0
  479. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agentcore_builder.py +0 -0
  480. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agentcore_parallel.py +0 -0
  481. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agentcore_reaper.py +0 -0
  482. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agentcore_sandbox.py +0 -0
  483. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_agentcore_transport.py +0 -0
  484. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_api_error_capture.py +0 -0
  485. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_apple_container_sandbox.py +0 -0
  486. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_bare_model_provider.py +0 -0
  487. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_base_install_imports.py +0 -0
  488. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_bedrock_thinking.py +0 -0
  489. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_benchflow_experiment_review_validator.py +0 -0
  490. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_benchmark_repos_resolve_repo_path.py +0 -0
  491. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_branch.py +0 -0
  492. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_build_context_stage.py +0 -0
  493. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_build_review_pack.py +0 -0
  494. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_capture_trajectory.py +0 -0
  495. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_check_skillsbench_harbor_parity.py +0 -0
  496. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_clawsbench_slice.py +0 -0
  497. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_cli_adopt_aliases.py +0 -0
  498. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_cli_arg_validation.py +0 -0
  499. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_cli_daytona.py +0 -0
  500. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_cli_docs_drift.py +0 -0
  501. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_cli_edge_case_hardening.py +0 -0
  502. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_cli_hub_env.py +0 -0
  503. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_cli_live_progress.py +0 -0
  504. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_cli_misc.py +0 -0
  505. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_codex_review.py +0 -0
  506. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_codex_self_write_auth.py +0 -0
  507. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_config_override.py +0 -0
  508. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_config_redaction.py +0 -0
  509. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_connect_as_env.py +0 -0
  510. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_console_error_truncation.py +0 -0
  511. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_console_progress.py +0 -0
  512. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_continuallearningbench_adapter.py +0 -0
  513. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_dataset_registry.py +0 -0
  514. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_daytona_command_polling.py +0 -0
  515. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_daytona_dind_compose_up.py +0 -0
  516. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_daytona_download.py +0 -0
  517. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_daytona_litellm_runtime.py +0 -0
  518. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_daytona_poll_deadline.py +0 -0
  519. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_daytona_reap.py +0 -0
  520. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_deepagents_agent.py +0 -0
  521. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_diagnostics.py +0 -0
  522. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_docker_prune_scoping.py +0 -0
  523. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_docker_uploads.py +0 -0
  524. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_docs_examples.py +0 -0
  525. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_eng50_capabilities.py +0 -0
  526. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_env_registry.py +0 -0
  527. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_env_setup.py +0 -0
  528. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_environment_manifest_controls.py +0 -0
  529. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_eval_artifact_cli.py +0 -0
  530. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_eval_filters_applied.py +0 -0
  531. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_eval_lift.py +0 -0
  532. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_eval_sharding.py +0 -0
  533. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_eval_single_task_summary.py +0 -0
  534. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_eval_source_provenance.py +0 -0
  535. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_eval_worker_retry.py +0 -0
  536. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_eval_zero_task_guard.py +0 -0
  537. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_evaluation_environment_manifest.py +0 -0
  538. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_exclude_tasks.py +0 -0
  539. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_filter_credentialed_cells.py +0 -0
  540. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_harvey_lab_shim.py +0 -0
  541. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_hilbench_adapter.py +0 -0
  542. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_hosted_env.py +0 -0
  543. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_hosted_env_rollout_contract.py +0 -0
  544. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_hub_harbor_registry.py +0 -0
  545. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_inbound_adapter_manifest.py +0 -0
  546. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_inbound_adapters.py +0 -0
  547. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_integration_agent_judge.py +0 -0
  548. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_integration_check_results.py +0 -0
  549. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_integration_consistency.py +0 -0
  550. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_integration_matrix.py +0 -0
  551. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_integration_provider_selection.py +0 -0
  552. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_integration_run_suite.py +0 -0
  553. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_integration_suite.py +0 -0
  554. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_internet_policy.py +0 -0
  555. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_job.py +0 -0
  556. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_job_sequential_shared.py +0 -0
  557. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_job_sequential_shared_resume.py +0 -0
  558. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_judge_robustness.py +0 -0
  559. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_judge_symlink_ingestion.py +0 -0
  560. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_learner_skills.py +0 -0
  561. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_learner_skills_traversal.py +0 -0
  562. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_learner_store.py +0 -0
  563. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_learner_store_persistence.py +0 -0
  564. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_litellm_config.py +0 -0
  565. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_litellm_hardening.py +0 -0
  566. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_litellm_logging.py +0 -0
  567. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_litellm_model_via_env_generic.py +0 -0
  568. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_litellm_reasoning_passthrough.py +0 -0
  569. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_litellm_runtime.py +0 -0
  570. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_litellm_smoke.py +0 -0
  571. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_live_llm_trajectory.py +0 -0
  572. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_llm_judge.py +0 -0
  573. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_llm_judge_event_tags.py +0 -0
  574. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_llm_judge_verifier.py +0 -0
  575. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_loop_strategies.py +0 -0
  576. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_loop_summary.py +0 -0
  577. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_loop_sweep.py +0 -0
  578. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_memory_scorer.py +0 -0
  579. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_metrics.py +0 -0
  580. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_mle_bench_adapter.py +0 -0
  581. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_mock_openai_responses_server.py +0 -0
  582. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_monitor_scaffold.py +0 -0
  583. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_native_acp_usage.py +0 -0
  584. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_no_cross_provider_fallback.py +0 -0
  585. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_notification_order_real.py +0 -0
  586. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_opencode_family_proxy_tracking.py +0 -0
  587. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_oracle.py +0 -0
  588. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_oracle_chokepoint.py +0 -0
  589. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_paths_safe.py +0 -0
  590. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_paths_symlink_helpers.py +0 -0
  591. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_pi_acp_launcher.py +0 -0
  592. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_pi_acp_proxy_routing.py +0 -0
  593. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_process.py +0 -0
  594. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_project_skills_layout.py +0 -0
  595. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_provider_auth_detection.py +0 -0
  596. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_providers.py +0 -0
  597. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_reexport.py +0 -0
  598. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_registry_invariants.py +0 -0
  599. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_release_hardening_r5.py +0 -0
  600. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_release_version.py +0 -0
  601. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_release_workflow_wiring.py +0 -0
  602. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_resolve_env_helpers.py +0 -0
  603. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_review_boundaries.py +0 -0
  604. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_review_rubric.py +0 -0
  605. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_review_runtime.py +0 -0
  606. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_reward_lenient.py +0 -0
  607. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_reward_node.py +0 -0
  608. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_reward_range.py +0 -0
  609. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_reward_unified_contract.py +0 -0
  610. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rewards.py +0 -0
  611. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rewards_jsonl.py +0 -0
  612. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_architecture.py +0 -0
  613. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_branch.py +0 -0
  614. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_config_path_coercion.py +0 -0
  615. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_environment.py +0 -0
  616. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_hard_deadline.py +0 -0
  617. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_import_no_side_effects.py +0 -0
  618. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_on_ask_user_wiring.py +0 -0
  619. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_planes_contract.py +0 -0
  620. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_probe_sandbox_health.py +0 -0
  621. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_session_factory_dispatch.py +0 -0
  622. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_setup_commands.py +0 -0
  623. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rollout_upload.py +0 -0
  624. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rubric_checks.py +0 -0
  625. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_rubric_config.py +0 -0
  626. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_runtime.py +0 -0
  627. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_runtime_capabilities.py +0 -0
  628. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_runtime_config_wired.py +0 -0
  629. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_runtime_live_sandbox.py +0 -0
  630. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox.py +0 -0
  631. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_exec_secret_handling.py +0 -0
  632. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_hardening.py +0 -0
  633. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_isolation_copy_traversal.py +0 -0
  634. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_live_process.py +0 -0
  635. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_multi_service.py +0 -0
  636. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_prebuilt_validation.py +0 -0
  637. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_protocol.py +0 -0
  638. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_provider_registry_drift.py +0 -0
  639. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_setup.py +0 -0
  640. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_snapshot_contract.py +0 -0
  641. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_upload_symlink.py +0 -0
  642. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sandbox_verifier_workspace.py +0 -0
  643. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_scene.py +0 -0
  644. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_scene_outbox_trial.py +0 -0
  645. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_scene_parallel_group.py +0 -0
  646. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_scene_result_aggregation.py +0 -0
  647. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_scoring.py +0 -0
  648. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sdk_internals.py +0 -0
  649. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sdk_lockdown.py +0 -0
  650. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sdk_run_alias.py +0 -0
  651. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_sealed_channel_container.py +0 -0
  652. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_self_gen_cli.py +0 -0
  653. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_self_gen_export_error_channel.py +0 -0
  654. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_self_gen_export_failures.py +0 -0
  655. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_self_gen_orchestration.py +0 -0
  656. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_session_factory_runtime.py +0 -0
  657. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_session_request_permission_dispatch.py +0 -0
  658. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_skill_eval.py +0 -0
  659. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_skill_eval_dryrun.py +0 -0
  660. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_skill_eval_integration.py +0 -0
  661. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_skill_eval_sweep.py +0 -0
  662. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_skill_eval_traversal.py +0 -0
  663. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_skill_policy.py +0 -0
  664. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_skills.py +0 -0
  665. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_skills_dir_agent_home_link.py +0 -0
  666. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_skillsbench_conversion_conformance.py +0 -0
  667. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_skillsbench_harbor_run_suite.py +0 -0
  668. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_smoke.py +0 -0
  669. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_smoke_wiring.py +0 -0
  670. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_source_adapters.py +0 -0
  671. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_subscription_auth.py +0 -0
  672. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_task_check_eval_consistency.py +0 -0
  673. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_task_config.py +0 -0
  674. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_task_digest.py +0 -0
  675. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_task_document.py +0 -0
  676. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_task_download.py +0 -0
  677. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_task_export.py +0 -0
  678. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_task_output_format.py +0 -0
  679. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_task_package.py +0 -0
  680. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_task_runtime_primitive.py +0 -0
  681. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_tasks.py +0 -0
  682. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_token_usage_normalization.py +0 -0
  683. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_trace_import_cli.py +0 -0
  684. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_trace_task_gen_traversal.py +0 -0
  685. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_trace_to_task_evidence.py +0 -0
  686. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_traces_huggingface.py +0 -0
  687. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_traces_parsers.py +0 -0
  688. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_traces_task_gen.py +0 -0
  689. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_train_cli.py +0 -0
  690. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_train_mode_artifact_emission.py +0 -0
  691. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_train_trl_cli.py +0 -0
  692. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_traj_report.py +0 -0
  693. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_traj_staging_phases.py +0 -0
  694. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_traj_upload_skill.py +0 -0
  695. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_trajectory_integration.py +0 -0
  696. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_trajectory_streaming.py +0 -0
  697. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_trajectory_upload_layout.py +0 -0
  698. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_trial_agent_timeout_verify.py +0 -0
  699. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_trial_install_agent_timeout.py +0 -0
  700. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_trial_litellm_runtime.py +0 -0
  701. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_trl_integration.py +0 -0
  702. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_usage_litellm.py +0 -0
  703. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_usage_required.py +0 -0
  704. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_usage_tracking.py +0 -0
  705. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_user.py +0 -0
  706. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_v06_guard_ports.py +0 -0
  707. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_verifier_document.py +0 -0
  708. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_verifier_multi_container.py +0 -0
  709. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_verifier_output.py +0 -0
  710. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_verifier_output_freshness.py +0 -0
  711. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_verifier_strategies.py +0 -0
  712. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_verifier_wedge_retry.py +0 -0
  713. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_verify.py +0 -0
  714. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_viewer_confirm.py +0 -0
  715. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_workflow_action_pinning.py +0 -0
  716. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/test_yaml_config.py +0 -0
  717. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/trajectories/__init__.py +0 -0
  718. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/trajectories/test_export.py +0 -0
  719. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/trajectories/test_export_adp.py +0 -0
  720. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/trajectories/test_export_atif.py +0 -0
  721. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/trajectories/test_export_common.py +0 -0
  722. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/trajectories/test_export_nan_handling.py +0 -0
  723. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/trajectories/test_export_prime_sft.py +0 -0
  724. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/trajectories/test_redaction.py +0 -0
  725. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/trajectories/test_step_granularity.py +0 -0
  726. {benchflow-0.7.2.dev2000 → benchflow-0.7.4}/tests/trajectories/test_tree.py +0 -0
@@ -2,6 +2,81 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## 0.7.4 — 2026-08-16
6
+
7
+ ### Added
8
+ - **Uploads are confirmed all the way into cloud storage.** After the
9
+ progress bar finishes, `bench traj upload` now polls the contribution
10
+ service's new `GET /v1/uploads/{digest}` capture-status endpoint (the
11
+ validation ledger) until the validator's verdict: `✓ Verified in cloud
12
+ storage` once the capture is promoted to `sources/community/<digest>/`, a
13
+ concise exit-1 error with the fixable detail if the validator rejects it,
14
+ and a `bench traj status sha256:<digest>` handoff line if validation is
15
+ still running when the budget (default 240 s, `BENCHFLOW_TRAJ_WAIT_SECONDS`
16
+ override, `--no-wait` opt-out) runs out. A handshake 409 ("already
17
+ submitted") prints the verified line immediately, and a deployed broker
18
+ that predates the endpoint (404) keeps today's behavior unchanged. The new
19
+ `bench traj status DIGEST` command runs one check on demand. Status polls
20
+ consume a separate, higher rate-limit budget (`TRAJ_STATUS_RATE_LIMIT`,
21
+ default 720/hour/IP) and reveal only the ledger state, the bounded
22
+ rejection detail, and the public promotion prefix — never contributor
23
+ identity or quarantine internals. The broker must be redeployed
24
+ (`deploy-trajectory-upload` workflow or `scripts/deploy.sh`) before the
25
+ endpoint answers in production; the CLI degrades gracefully until then.
26
+ - **The `bench traj` family shares one polished terminal design language.**
27
+ A new presentation-only kit (`cli/_traj_tui.py`) gives `traj setup`,
28
+ `traj upload`, and `traj status` a coherent look: a `◆ benchflow · <command>`
29
+ banner, styled `◇` input prompts, an arrow-key recent-session picker (↑/↓,
30
+ 1-9 jump, esc to fall back to typing a path) on real terminals, colored
31
+ step kinds in the report preview matching the browser viewer's palette,
32
+ and rounded panels. Every interactive affordance degrades to the exact
33
+ previous prompt-driven flow off-TTY (agents, pipes, CI, Windows), and all
34
+ machine-read lines (`Masked for you:`, `Digest:`, `Repo:`) stay plain.
35
+ - **Uploads can carry the session's workspace folder as a zip attachment.**
36
+ `bench traj upload` reads the session's recorded working directory (the
37
+ same Claude `cwd` / Codex `session_meta` provenance as repo tagging) and
38
+ archives it into the capture as `workspace/<name>.zip`, printing
39
+ `Workspace: <path> (from session cwd; use --no-workspace to omit)` and a
40
+ `Workspace attached:` line with size, file count, and exclusion count.
41
+ VCS internals, dependency trees, caches, symlinks, and secret-shaped
42
+ filenames (`.env*`, `*.pem`, `*.key`, `id_rsa*`, `.netrc`, …) never enter
43
+ the archive; everything else is archived as-is without content redaction,
44
+ and the attach line says so. Workspaces over 1 GiB (measured before
45
+ compression, so the zip is never created), over 50,000 files, missing, or
46
+ empty are skipped with a printed reason instead of failing the upload.
47
+ When detection fails on a real terminal, one optional prompt accepts a
48
+ folder or skips on Enter; `--workspace-dir` overrides detection and
49
+ `--no-workspace` opts out. The archive is staged in the upload's
50
+ temporary directory and always deleted afterwards. Server side, the
51
+ contribution service accepts the new `workspace/*.zip` namespace with a
52
+ 1 GiB per-archive cap (trajectory JSONL keeps 128 MiB), allows at most
53
+ one archive per capture and never an archive alone, verifies the zip
54
+ container format instead of JSONL strictness, promotes it with an
55
+ `application/zip` content type, and scopes trajectory-report
56
+ cross-checks to trajectory artifacts so an attachment cannot fail
57
+ report equality.
58
+
59
+ ## 0.7.3 — 2026-08-16
60
+
61
+ ### Added
62
+ - **`bench traj upload` waits out short rate-limit responses instead of
63
+ failing.** When the contribution service answers 429 with a short
64
+ `Retry-After`, the handshake now sleeps it out with jitter and retries up
65
+ to three times (two-minute cap per wait), so a crowd of simultaneous
66
+ contributors self-heals instead of surfacing errors. Longer waits still
67
+ fail fast with the actionable retry-after message. (#1027)
68
+
69
+ ### Changed
70
+ - **The contribution service rate-limits per contributor, not per venue.**
71
+ Upload budgets are token buckets keyed on contributor identity with a
72
+ wide per-IP abuse backstop, refill continuously, and answer 429 with
73
+ seconds-until-next-token instead of the remainder of the clock hour, so
74
+ many contributors behind one NAT no longer starve each other. Contended
75
+ bucket updates back off with jitter rather than shedding simultaneous
76
+ crowds. (#1027, #1028)
77
+
78
+ ## 0.7.2 — 2026-08-16
79
+
5
80
  ### Added
6
81
  - **The upload preview itemizes what redaction masked, by kind.** The
7
82
  redactor now categorizes every replacement by the rule that fired — API
@@ -61,6 +136,14 @@
61
136
  `version` / `sessionId`, the filename stem as a session fallback) and
62
137
  hides any badge whose value is unknown — including the cost badge when no
63
138
  event carries cost data. Presentation only.
139
+ - **Upload progress no longer claims the broker is waking up.** A warm
140
+ retry printed `Uploading… the first request can take a minute while the
141
+ service wakes up` even when the service was already up. The line is now
142
+ `Uploading… this can take up to a minute; retries are safe.`
143
+ - **`bench traj setup --list` no longer wraps session paths mid-token.**
144
+ Each hit prints index/source/time, then the path on its own line, then
145
+ the snippet, via plain `print` so Rich does not split a long JSONL path
146
+ and break copy-paste.
64
147
 
65
148
  ### Changed
66
149
  - **Trajectory viewer tool calls are color-coded and backgrounds are light.**
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: benchflow
3
- Version: 0.7.2.dev2000
3
+ Version: 0.7.4
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.2.dev2000"
3
+ version = "0.7.4"
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"
@@ -0,0 +1,286 @@
1
+ """Shared terminal design language for the ``bench traj`` command family.
2
+
3
+ ``bench traj setup``, ``bench traj upload``, and ``bench traj status`` render
4
+ through this one small kit — a banner, a glyph vocabulary, styled prompts, and
5
+ an arrow-key list picker — so the family reads as one coherent tool instead of
6
+ three ad-hoc scripts. The look borrows from opencode's TUI: a single accent
7
+ color, dim structural text, `◆`/`◇` step glyphs, and a `❯` selection pointer.
8
+
9
+ Two hard rules keep this compatible with agents and the upload skill:
10
+
11
+ 1. Machine-read lines stay plain. Copy such as ``Masked for you: …``,
12
+ ``Digest: sha256:…``, and the ``Repo:`` line are printed by the command
13
+ modules with ``print`` — never boxed or wrapped here.
14
+ 2. Every interactive affordance has a dumb-terminal fallback. The picker
15
+ degrades to a numbered prompt whenever stdin/stdout is not a TTY (CI,
16
+ agents piping input, Windows without termios), preserving the exact
17
+ prompt-driven contract the tests pin.
18
+ """
19
+
20
+ from __future__ import annotations
21
+
22
+ import sys
23
+ from collections.abc import Sequence
24
+ from dataclasses import dataclass
25
+ from pathlib import Path
26
+
27
+ import typer
28
+ from rich.console import Console, Group
29
+ from rich.rule import Rule
30
+ from rich.text import Text
31
+
32
+ ACCENT = "cyan"
33
+ OK = "green"
34
+ WARN = "yellow"
35
+ ERR = "red"
36
+
37
+ GLYPH_STEP = "◆"
38
+ GLYPH_FIELD = "◇"
39
+ # The heavy angle quotation is the intended selection pointer (same glyph
40
+ # opencode and modern shell prompts use); it is not a mistyped ``>``.
41
+ GLYPH_POINTER = "❯" # noqa: RUF001
42
+ GLYPH_OK = "✓"
43
+ GLYPH_FAIL = "✗"
44
+
45
+ # Preview/table styling for trajectory step kinds, matching the color language
46
+ # of the browser viewer (PR #1020) so the terminal report and the viewer agree.
47
+ KIND_STYLES = {
48
+ "Human": "bold green",
49
+ "Assistant": "cyan",
50
+ "Thinking": "magenta",
51
+ "Tool call": "yellow",
52
+ }
53
+
54
+ _PICKER_HELP = "↑/↓ move · enter select · 1-9 jump · esc cancel"
55
+ # Rows visible at once in the arrow-key picker. The cursor scrolls the list
56
+ # through this viewport (the same feel as Claude Code's session-resume
57
+ # picker), so a week of sessions stays browsable without flooding the screen.
58
+ _PICKER_VIEWPORT_ROWS = 10
59
+
60
+
61
+ def _visible_window(index: int, total: int, height: int) -> tuple[int, int]:
62
+ """First/last-plus-one visible option, keeping the cursor centered."""
63
+ if total <= height:
64
+ return 0, total
65
+ start = max(0, min(index - height // 2, total - height))
66
+ return start, start + height
67
+
68
+
69
+ def banner(console: Console, command: str, subtitle: str = "") -> None:
70
+ """One-line product banner: ``◆ benchflow · <command>`` plus a dim subtitle."""
71
+ console.print(
72
+ f"[bold {ACCENT}]{GLYPH_STEP} benchflow[/] [dim]·[/] [bold]{command}[/]"
73
+ )
74
+ if subtitle:
75
+ console.print(f" [dim]{subtitle}[/]")
76
+ console.print()
77
+
78
+
79
+ def section(console: Console, title: str) -> None:
80
+ """A dim rule that separates flow phases (report / upload / verify)."""
81
+ console.print(Rule(Text(title, style=f"bold {ACCENT}"), style="dim", align="left"))
82
+
83
+
84
+ def field_label(label: str) -> str:
85
+ """Style an input prompt label; the trailing ``:`` stays typer's."""
86
+ return typer.style(f"{GLYPH_FIELD} ", fg="cyan") + typer.style(label, bold=True)
87
+
88
+
89
+ def question_label(label: str) -> str:
90
+ """Style a yes/no confirmation label."""
91
+ return typer.style(f"{GLYPH_STEP} ", fg="cyan") + typer.style(label, bold=True)
92
+
93
+
94
+ @dataclass(frozen=True)
95
+ class SelectOption:
96
+ """One row of the picker: a primary label and an optional dim hint."""
97
+
98
+ label: str
99
+ hint: str = ""
100
+
101
+
102
+ def interactive_terminal() -> bool:
103
+ """True when arrow-key interaction is possible on this terminal."""
104
+ try:
105
+ if not (sys.stdin.isatty() and sys.stdout.isatty()):
106
+ return False
107
+ except (AttributeError, ValueError):
108
+ return False
109
+ import os
110
+
111
+ if os.environ.get("TERM", "").lower() == "dumb":
112
+ return False
113
+ try:
114
+ import termios # noqa: F401
115
+ import tty # noqa: F401
116
+ except ImportError: # Windows: fall back to the numbered prompt
117
+ return False
118
+ return True
119
+
120
+
121
+ def select(
122
+ console: Console,
123
+ *,
124
+ title: str,
125
+ options: Sequence[SelectOption],
126
+ initial: int = 0,
127
+ ) -> int | None:
128
+ """Pick one option; returns its index, or ``None`` when cancelled.
129
+
130
+ Arrow-key navigation on a real terminal, a numbered prompt everywhere
131
+ else. The chosen label is echoed with a ``❯`` so the transcript records
132
+ the decision after the transient picker disappears.
133
+ """
134
+ if not options:
135
+ return None
136
+ initial = max(0, min(initial, len(options) - 1))
137
+ if interactive_terminal():
138
+ choice = _select_tty(console, title=title, options=options, initial=initial)
139
+ else:
140
+ choice = _select_numbered(console, title=title, options=options)
141
+ if choice is not None:
142
+ console.print(f"[{ACCENT}]{GLYPH_POINTER}[/] {_escaped(options[choice].label)}")
143
+ return choice
144
+
145
+
146
+ def _escaped(value: str) -> str:
147
+ from rich.markup import escape
148
+
149
+ return escape(value)
150
+
151
+
152
+ def _select_tty(
153
+ console: Console,
154
+ *,
155
+ title: str,
156
+ options: Sequence[SelectOption],
157
+ initial: int,
158
+ ) -> int | None:
159
+ import termios
160
+ import tty
161
+
162
+ from rich.live import Live
163
+
164
+ index = initial
165
+ # Hints share the row; keep every row one physical line so the Live
166
+ # region never jitters while navigating.
167
+ width = console.width or 100
168
+
169
+ def row(position: int, option: SelectOption) -> Text:
170
+ selected = position == index
171
+ pointer = f" {GLYPH_POINTER} " if selected else " "
172
+ text = Text(no_wrap=True, overflow="ellipsis")
173
+ text.append(pointer, style=ACCENT if selected else "")
174
+ text.append(option.label, style=f"bold {ACCENT}" if selected else "")
175
+ if option.hint:
176
+ text.append(" " + option.hint, style="dim")
177
+ text.truncate(max(20, width - 2), overflow="ellipsis")
178
+ return text
179
+
180
+ def view() -> Group:
181
+ lines: list[Text | Rule] = []
182
+ if title:
183
+ lines.append(Text(f"{GLYPH_STEP} {title}", style=f"bold {ACCENT}"))
184
+ start, end = _visible_window(index, len(options), _PICKER_VIEWPORT_ROWS)
185
+ if start > 0:
186
+ lines.append(Text(f" ↑ {start} more", style="dim"))
187
+ lines.extend(row(position, options[position]) for position in range(start, end))
188
+ if end < len(options):
189
+ lines.append(Text(f" ↓ {len(options) - end} more", style="dim"))
190
+ lines.append(
191
+ Text(
192
+ f"{_PICKER_HELP} · {index + 1}/{len(options)}",
193
+ style="dim",
194
+ )
195
+ )
196
+ return Group(*lines)
197
+
198
+ stream = sys.stdin
199
+ descriptor = stream.fileno()
200
+ saved = termios.tcgetattr(descriptor)
201
+ try:
202
+ tty.setcbreak(descriptor)
203
+ with Live(view(), console=console, auto_refresh=False, transient=True) as live:
204
+ while True:
205
+ key = _read_key(stream)
206
+ if key in {"up", "k"}:
207
+ index = (index - 1) % len(options)
208
+ elif key in {"down", "j"}:
209
+ index = (index + 1) % len(options)
210
+ elif key in {"enter"}:
211
+ return index
212
+ elif key in {"esc", "q", "interrupt"}:
213
+ return None
214
+ elif key.isdigit() and 1 <= int(key) <= len(options):
215
+ index = int(key) - 1
216
+ return index
217
+ live.update(view(), refresh=True)
218
+ finally:
219
+ termios.tcsetattr(descriptor, termios.TCSADRAIN, saved)
220
+
221
+
222
+ def _read_key(stream) -> str:
223
+ """Decode one keypress, folding escape sequences into named keys.
224
+
225
+ Reads the raw descriptor, never the buffered text stream: an arrow key
226
+ arrives as ``ESC [ A`` in one burst, and a buffered ``read(1)`` would
227
+ swallow ``[ A`` into Python's buffer, making the descriptor look idle and
228
+ the ESC read as a bare cancel.
229
+ """
230
+ import os
231
+ import select as selectors
232
+
233
+ descriptor = stream.fileno()
234
+ char = os.read(descriptor, 1).decode("utf-8", "replace")
235
+ if char in {"\r", "\n"}:
236
+ return "enter"
237
+ if char == "\x03":
238
+ return "interrupt"
239
+ if char != "\x1b":
240
+ return char
241
+ # Distinguish a bare Escape from a CSI arrow sequence.
242
+ if not selectors.select([descriptor], [], [], 0.05)[0]:
243
+ return "esc"
244
+ second = os.read(descriptor, 1).decode("utf-8", "replace")
245
+ if second != "[":
246
+ return "esc"
247
+ final = os.read(descriptor, 1).decode("utf-8", "replace")
248
+ return {"A": "up", "B": "down"}.get(final, "esc")
249
+
250
+
251
+ def _select_numbered(
252
+ console: Console,
253
+ *,
254
+ title: str,
255
+ options: Sequence[SelectOption],
256
+ ) -> int | None:
257
+ if title:
258
+ console.print(f"[bold {ACCENT}]{GLYPH_STEP} {title}[/]")
259
+ for position, option in enumerate(options, start=1):
260
+ console.print(f"[bold {ACCENT}]{position:>2}[/] {_escaped(option.label)}")
261
+ if option.hint:
262
+ console.print(f" [dim]{_escaped(option.hint)}[/]")
263
+ while True:
264
+ raw = typer.prompt("Which number?", default="1").strip()
265
+ if raw.lower() in {"q", "quit", "esc"}:
266
+ return None
267
+ try:
268
+ value = int(raw)
269
+ except ValueError:
270
+ console.print(f"[{ERR}]Need a number between 1 and {len(options)}.[/]")
271
+ continue
272
+ if 1 <= value <= len(options):
273
+ return value - 1
274
+ console.print(f"[{ERR}]Need a number between 1 and {len(options)}.[/]")
275
+
276
+
277
+ def compact_path(path: Path, *, limit: int = 64) -> str:
278
+ """Home-relative, tail-preserving path label for one-line picker rows."""
279
+ try:
280
+ text = "~/" + str(path.relative_to(Path.home()))
281
+ except ValueError:
282
+ text = str(path)
283
+ if len(text) <= limit:
284
+ return text
285
+ tail = "/".join(Path(text).parts[-2:])
286
+ return f"…/{tail}" if tail else text
@@ -6,6 +6,7 @@ from collections.abc import Callable, Iterator
6
6
  from contextlib import contextmanager
7
7
  from dataclasses import dataclass
8
8
 
9
+ from rich import box
9
10
  from rich.console import Console
10
11
  from rich.panel import Panel
11
12
  from rich.progress import (
@@ -20,6 +21,7 @@ from rich.progress import (
20
21
  from rich.table import Table
21
22
  from rich.text import Text
22
23
 
24
+ from benchflow.cli._traj_tui import KIND_STYLES
23
25
  from benchflow.publish.redact import REDACTED, format_redaction_breakdown
24
26
  from benchflow.publish.traj_capture import StagedFile
25
27
  from benchflow.publish.traj_report import PREVIEW_WORD_LIMIT, TrajectoryReport
@@ -52,15 +54,15 @@ def render_trajectory_report(report: TrajectoryReport, *, console: Console) -> N
52
54
  facts.add_row("Primary trajectory", Text(report.primary_file))
53
55
  facts.add_row("Format", report.format.value)
54
56
  facts.add_row("Created", _format_created_at(report))
55
- facts.add_row("JSONL files", str(report.file_count))
57
+ facts.add_row("JSONL files", f"{report.file_count:,}")
56
58
  facts.add_row("Trajectory size", format_bytes(report.size_bytes))
57
- facts.add_row("Total steps", str(report.total_steps))
58
- facts.add_row("Thinking steps", str(report.thinking_steps))
59
- facts.add_row("Tool-call steps", str(report.tool_call_steps))
60
- facts.add_row("Human steps", str(report.human_steps))
59
+ facts.add_row("Total steps", f"{report.total_steps:,}")
60
+ facts.add_row("Thinking steps", _kind_count(report.thinking_steps, "Thinking"))
61
+ facts.add_row("Tool-call steps", _kind_count(report.tool_call_steps, "Tool call"))
62
+ facts.add_row("Human steps", _kind_count(report.human_steps, "Human"))
61
63
  facts.add_row(
62
64
  "API keys / secrets masked",
63
- Text(str(report.masked_values), style="bold green"),
65
+ Text(f"{report.masked_values:,}", style="bold green"),
64
66
  )
65
67
  if report.masked_values:
66
68
  facts.add_row(
@@ -70,7 +72,15 @@ def render_trajectory_report(report: TrajectoryReport, *, console: Console) -> N
70
72
  else:
71
73
  facts.add_row("Masked for you", Text(NO_MASKING_NEEDED_COPY, style="dim"))
72
74
  facts.add_row("Safe replacement", Text(REDACTED))
73
- console.print(Panel(facts, title="Trajectory report", border_style="cyan"))
75
+ console.print(
76
+ Panel(
77
+ facts,
78
+ title="[bold]Trajectory report[/]",
79
+ border_style="cyan",
80
+ box=box.ROUNDED,
81
+ padding=(0, 1),
82
+ )
83
+ )
74
84
  if report.masked_values:
75
85
  console.print(f"[dim]{REDACTION_REASSURANCE_COPY}[/dim]")
76
86
 
@@ -81,14 +91,21 @@ def render_trajectory_report(report: TrajectoryReport, *, console: Console) -> N
81
91
  f"First {len(report.preview)} trajectory steps "
82
92
  f"(up to {PREVIEW_WORD_LIMIT} words each)"
83
93
  ),
94
+ title_style="bold",
84
95
  show_lines=True,
85
96
  header_style="bold cyan",
97
+ box=box.ROUNDED,
98
+ border_style="dim",
86
99
  )
87
100
  preview.add_column("#", justify="right", style="dim", no_wrap=True)
88
101
  preview.add_column("Kind", no_wrap=True)
89
102
  preview.add_column("Preview", overflow="fold")
90
103
  for step in report.preview:
91
- preview.add_row(str(step.number), step.kind, Text(step.summary))
104
+ preview.add_row(
105
+ str(step.number),
106
+ Text(step.kind, style=KIND_STYLES.get(step.kind, "")),
107
+ Text(step.summary),
108
+ )
92
109
  console.print(preview)
93
110
  if len(report.preview) < report.total_steps:
94
111
  console.print(
@@ -97,6 +114,11 @@ def render_trajectory_report(report: TrajectoryReport, *, console: Console) -> N
97
114
  )
98
115
 
99
116
 
117
+ def _kind_count(count: int, kind: str) -> Text:
118
+ """A step count tinted with its preview-kind color when nonzero."""
119
+ return Text(f"{count:,}", style=KIND_STYLES.get(kind, "") if count else "dim")
120
+
121
+
100
122
  @dataclass(frozen=True)
101
123
  class UploadProgressHooks:
102
124
  """Transport callbacks that feed one shared progress bar."""