benchflow 0.6.7.dev1823__tar.gz → 0.6.7.dev1827__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 (701) hide show
  1. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/CHANGELOG.md +38 -0
  2. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/PKG-INFO +1 -1
  3. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/pyproject.toml +1 -1
  4. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/benchmark_repos.py +16 -3
  5. benchflow-0.6.7.dev1827/src/benchflow/_utils/live_activity.py +53 -0
  6. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/session.py +18 -6
  7. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/_live_progress.py +31 -3
  8. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/evaluation.py +14 -5
  9. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/__init__.py +22 -1
  10. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_live_progress.py +79 -0
  11. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_console_progress.py +22 -0
  12. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_download.py +16 -4
  13. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/.gitignore +0 -0
  14. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/LICENSE +0 -0
  15. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/README.md +0 -0
  16. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/__init__.py +0 -0
  17. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_dotenv.py +0 -0
  18. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_paths.py +0 -0
  19. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_run.py +0 -0
  20. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_types.py +0 -0
  21. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/__init__.py +0 -0
  22. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/build_context_stage.py +0 -0
  23. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/config.py +0 -0
  24. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/config_override.py +0 -0
  25. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/content_address.py +0 -0
  26. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/dataset_registry.py +0 -0
  27. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/env_registry.py +0 -0
  28. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/evaluation_results.py +0 -0
  29. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/hf_datasets.py +0 -0
  30. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/json_safe.py +0 -0
  31. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/learner_memory.py +0 -0
  32. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/result_metadata.py +0 -0
  33. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/reward_events.py +0 -0
  34. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/scoring.py +0 -0
  35. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/source_provenance.py +0 -0
  36. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/task_authoring/__init__.py +0 -0
  37. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/task_authoring/_evidence_paths.py +0 -0
  38. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/task_authoring/acceptance_evidence.py +0 -0
  39. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/task_authoring/scaffolding.py +0 -0
  40. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/task_authoring/structural_checks.py +0 -0
  41. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/text.py +0 -0
  42. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/yaml_loader.py +0 -0
  43. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/__init__.py +0 -0
  44. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/client.py +0 -0
  45. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/container_transport.py +0 -0
  46. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/runtime.py +0 -0
  47. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/selection.py +0 -0
  48. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/transport.py +0 -0
  49. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/types.py +0 -0
  50. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/__init__.py +0 -0
  51. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon.py +0 -0
  52. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon_container.py +0 -0
  53. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon_fake_mail.py +0 -0
  54. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon_poste_users.tsv +0 -0
  55. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon_services.py +0 -0
  56. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/harbor.py +0 -0
  57. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/inbound.py +0 -0
  58. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/inspect_ai.py +0 -0
  59. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/ors.py +0 -0
  60. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/resources/__init__.py +0 -0
  61. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/resources/mcp_atlas_bridge.py +0 -0
  62. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/resources/mcp_atlas_judge.py +0 -0
  63. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/source.py +0 -0
  64. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agent_router.py +0 -0
  65. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agent_router_guide.py +0 -0
  66. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agent_router_parity.py +0 -0
  67. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agent_router_scaffold.py +0 -0
  68. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/__init__.py +0 -0
  69. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/codex_config.py +0 -0
  70. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/credentials.py +0 -0
  71. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/deepagents_acp_shim.py +0 -0
  72. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/env.py +0 -0
  73. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/errors.py +0 -0
  74. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/harvey_lab_acp_shim.py +0 -0
  75. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/install.py +0 -0
  76. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/manifest.py +0 -0
  77. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/openclaw_acp_shim.py +0 -0
  78. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/pi_acp_launcher.py +0 -0
  79. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/protocol.py +0 -0
  80. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/providers.py +0 -0
  81. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/registry.py +0 -0
  82. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/remote_manifests.py +0 -0
  83. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/branch.py +0 -0
  84. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/__init__.py +0 -0
  85. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/_hosted_env.py +0 -0
  86. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/_options.py +0 -0
  87. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/_shared.py +0 -0
  88. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/adopt.py +0 -0
  89. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/agent.py +0 -0
  90. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/continue_cmd.py +0 -0
  91. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/environment.py +0 -0
  92. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/eval_artifacts.py +0 -0
  93. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/eval_lift.py +0 -0
  94. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/hub.py +0 -0
  95. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/main.py +0 -0
  96. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/monitor.py +0 -0
  97. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/review.py +0 -0
  98. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/sandbox.py +0 -0
  99. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/skills.py +0 -0
  100. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/tasks.py +0 -0
  101. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/trace_import.py +0 -0
  102. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/train.py +0 -0
  103. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/__init__.py +0 -0
  104. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/batch.py +0 -0
  105. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/orchestrator.py +0 -0
  106. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/replay_proxy.py +0 -0
  107. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/run_folder.py +0 -0
  108. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/sandbox_proxy.py +0 -0
  109. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/contracts/__init__.py +0 -0
  110. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/contracts/planes.py +0 -0
  111. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/contracts/user.py +0 -0
  112. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/demo_task/environment/Dockerfile +0 -0
  113. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/demo_task/instruction.md +0 -0
  114. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/demo_task/task.md +0 -0
  115. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/demo_task/task.toml +0 -0
  116. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/demo_task/tests/test.sh +0 -0
  117. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/diagnostics.py +0 -0
  118. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/environment/__init__.py +0 -0
  119. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/environment/manifest.py +0 -0
  120. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/environment/manifest_env.py +0 -0
  121. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/environment/protocol.py +0 -0
  122. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/environment/readiness.py +0 -0
  123. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/eval_artifacts.py +0 -0
  124. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/eval_lift.py +0 -0
  125. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/eval_plan.py +0 -0
  126. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/eval_sharding.py +0 -0
  127. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/eval_worker.py +0 -0
  128. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/experimental/__init__.py +0 -0
  129. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/experimental/mcp/__init__.py +0 -0
  130. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/experimental/mcp/hooks.py +0 -0
  131. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/experimental/mcp/reviewer_server.py +0 -0
  132. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/hosted_env.py +0 -0
  133. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/hub/__init__.py +0 -0
  134. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/hub/harbor_registry.py +0 -0
  135. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/integrations/__init__.py +0 -0
  136. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/integrations/trl/__init__.py +0 -0
  137. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/integrations/trl/spec.py +0 -0
  138. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/learner_skills.py +0 -0
  139. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/learner_store.py +0 -0
  140. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/loop_strategies.py +0 -0
  141. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/loop_sweep.py +0 -0
  142. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/metrics.py +0 -0
  143. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/models.py +0 -0
  144. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/monitor.py +0 -0
  145. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/__init__.py +0 -0
  146. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/litellm_bedrock_patch.py +0 -0
  147. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/litellm_bedrock_preflight.py +0 -0
  148. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/litellm_config.py +0 -0
  149. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/litellm_logging.py +0 -0
  150. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/litellm_runtime.py +0 -0
  151. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/runtime.py +0 -0
  152. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/publish/__init__.py +0 -0
  153. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/publish/huggingface.py +0 -0
  154. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/py.typed +0 -0
  155. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/__init__.py +0 -0
  156. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/config.py +0 -0
  157. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/default-rubric.json +0 -0
  158. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/prompts.py +0 -0
  159. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/runner.py +0 -0
  160. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/wrapper.py +0 -0
  161. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/README.md +0 -0
  162. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/__init__.py +0 -0
  163. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/builtins.py +0 -0
  164. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/events.py +0 -0
  165. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/file_readers.py +0 -0
  166. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/llm.py +0 -0
  167. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/memory_scorer.py +0 -0
  168. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/node.py +0 -0
  169. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/protocol.py +0 -0
  170. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/rubric.py +0 -0
  171. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/rubric_config.py +0 -0
  172. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/validation.py +0 -0
  173. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_config.py +0 -0
  174. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_deadline.py +0 -0
  175. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_results.py +0 -0
  176. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_setup.py +0 -0
  177. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_skills.py +0 -0
  178. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_usage.py +0 -0
  179. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_user_loop.py +0 -0
  180. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/session_factory_runtime.py +0 -0
  181. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/task_runtime.py +0 -0
  182. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout_branch.py +0 -0
  183. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout_planes.py +0 -0
  184. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/runtime.py +0 -0
  185. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/__init__.py +0 -0
  186. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_base.py +0 -0
  187. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_cache_reclaim.py +0 -0
  188. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_compose.py +0 -0
  189. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_compose_files/docker-compose-base.yaml +0 -0
  190. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_compose_files/docker-compose-build.yaml +0 -0
  191. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_compose_files/docker-compose-no-network.yaml +0 -0
  192. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_compose_files/docker-compose-prebuilt.yaml +0 -0
  193. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_sdk_ops.py +0 -0
  194. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore.py +0 -0
  195. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore_builder.py +0 -0
  196. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore_image.py +0 -0
  197. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore_provisioning.py +0 -0
  198. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore_reaper.py +0 -0
  199. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore_sealed.py +0 -0
  200. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/apple_container.py +0 -0
  201. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/daytona.py +0 -0
  202. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/daytona_dind.py +0 -0
  203. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/daytona_pty.py +0 -0
  204. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/daytona_reaper.py +0 -0
  205. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/daytona_strategies.py +0 -0
  206. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/docker.py +0 -0
  207. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/lockdown.py +0 -0
  208. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/metadata.py +0 -0
  209. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/modal_impl.py +0 -0
  210. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/__init__.py +0 -0
  211. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/_base.py +0 -0
  212. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/agentcore.py +0 -0
  213. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/apple.py +0 -0
  214. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/daytona.py +0 -0
  215. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/docker.py +0 -0
  216. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/protocol.py +0 -0
  217. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/providers.py +0 -0
  218. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/services.py +0 -0
  219. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/setup.py +0 -0
  220. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/snapshot.py +0 -0
  221. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/user.py +0 -0
  222. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/scenes.py +0 -0
  223. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sdk.py +0 -0
  224. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/self_gen.py +0 -0
  225. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skill_eval/__init__.py +0 -0
  226. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skill_eval/_core.py +0 -0
  227. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skill_eval/gepa_export.py +0 -0
  228. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skill_eval/schema.py +0 -0
  229. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skill_policy.py +0 -0
  230. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skills.py +0 -0
  231. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/__init__.py +0 -0
  232. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/_document_evidence.py +0 -0
  233. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/_document_normalize.py +0 -0
  234. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/_document_parse.py +0 -0
  235. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/_document_profiles.py +0 -0
  236. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/acceptance_live.py +0 -0
  237. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/acceptance_live_model.py +0 -0
  238. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/acceptance_live_report.py +0 -0
  239. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/acceptance_live_validation.py +0 -0
  240. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/config.py +0 -0
  241. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/discovery.py +0 -0
  242. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/document.py +0 -0
  243. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/env.py +0 -0
  244. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/export.py +0 -0
  245. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/imports.py +0 -0
  246. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/output_format.py +0 -0
  247. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/package.py +0 -0
  248. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/paths.py +0 -0
  249. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/prompts.py +0 -0
  250. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/runtime_capabilities.py +0 -0
  251. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/runtime_view.py +0 -0
  252. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/task.py +0 -0
  253. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier.py +0 -0
  254. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_core.py +0 -0
  255. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_document.py +0 -0
  256. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_errors.py +0 -0
  257. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_judge_inputs.py +0 -0
  258. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_ors_episode.py +0 -0
  259. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_reward_kit.py +0 -0
  260. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_scan.py +0 -0
  261. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_script_strategy.py +0 -0
  262. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/templates/__init__.py +0 -0
  263. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/templates/judge.py.tmpl +0 -0
  264. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/templates/test.sh.tmpl +0 -0
  265. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/__init__.py +0 -0
  266. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/huggingface.py +0 -0
  267. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/local.py +0 -0
  268. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/models.py +0 -0
  269. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/parsers.py +0 -0
  270. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/task_gen.py +0 -0
  271. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/training/__init__.py +0 -0
  272. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/training/backends/__init__.py +0 -0
  273. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/training/backends/prime_rl.py +0 -0
  274. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/training/run_manifest.py +0 -0
  275. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/__init__.py +0 -0
  276. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/_capture.py +0 -0
  277. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/_export_common.py +0 -0
  278. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/_llm_capture.py +0 -0
  279. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/call_purpose.py +0 -0
  280. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/export.py +0 -0
  281. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/export_adp.py +0 -0
  282. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/export_atif.py +0 -0
  283. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/export_prime_sft.py +0 -0
  284. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/export_trl_sft.py +0 -0
  285. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/metrics.py +0 -0
  286. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/results.py +0 -0
  287. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/tree.py +0 -0
  288. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/trl_sft_tokenization.py +0 -0
  289. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/types.py +0 -0
  290. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/viewer.py +0 -0
  291. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/usage_tracking.py +0 -0
  292. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/__init__.py +0 -0
  293. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/acceptance_live_harness.py +0 -0
  294. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/__init__.py +0 -0
  295. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_manifest_dirscan.py +0 -0
  296. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_manifest_loader.py +0 -0
  297. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_manifest_parity.py +0 -0
  298. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_manifest_wiring.py +0 -0
  299. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_namespace_shorthand.py +0 -0
  300. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_plugin_entry_points.py +0 -0
  301. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_protocol.py +0 -0
  302. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_remote_manifest_autoload.py +0 -0
  303. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/README.md +0 -0
  304. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/environment/Dockerfile +0 -0
  305. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/environment/docker-compose.yaml +0 -0
  306. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/environment/skills/conformance-writer/SKILL.md +0 -0
  307. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/instruction.md +0 -0
  308. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/solution/solve.sh +0 -0
  309. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/task.md +0 -0
  310. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/task.toml +0 -0
  311. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/tests/test.sh +0 -0
  312. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/conformance-results.json +0 -0
  313. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/proof_multi_agent.py +0 -0
  314. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/proof_snapshot.py +0 -0
  315. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/run_conformance.py +0 -0
  316. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/self_gen_smoke_skills/skill-creator/SKILL.md +0 -0
  317. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conftest.py +0 -0
  318. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/__init__.py +0 -0
  319. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/_helpers.py +0 -0
  320. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/test_batch.py +0 -0
  321. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/test_orchestrator.py +0 -0
  322. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/test_replay_proxy.py +0 -0
  323. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/test_run_folder.py +0 -0
  324. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/__init__.py +0 -0
  325. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_chibench_manifest.py +0 -0
  326. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_clawsbench_manifest.py +0 -0
  327. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_manifest.py +0 -0
  328. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_manifest_env.py +0 -0
  329. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_protocol.py +0 -0
  330. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_readiness.py +0 -0
  331. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/environment/Dockerfile +0 -0
  332. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/instruction.md +0 -0
  333. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/solution/solve.sh +0 -0
  334. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/task.md +0 -0
  335. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/task.toml +0 -0
  336. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/tests/test.sh +0 -0
  337. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/test_claude.sh +0 -0
  338. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/test_codex.sh +0 -0
  339. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/test_codex_custom_provider.sh +0 -0
  340. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/test_gemini.sh +0 -0
  341. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/test_openclaw.sh +0 -0
  342. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/traces/minimal-claude.jsonl +0 -0
  343. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/traces/minimal-opentraces.jsonl +0 -0
  344. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/README.md +0 -0
  345. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/alpha-task/environment/Dockerfile +0 -0
  346. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/alpha-task/instruction.md +0 -0
  347. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/alpha-task/task.toml +0 -0
  348. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/alpha-task/tests/test.sh +0 -0
  349. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/beta-task/data/empty.bin +0 -0
  350. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/beta-task/data/unicode.txt +0 -0
  351. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/beta-task/instruction.md +0 -0
  352. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/beta-task/task.toml +0 -0
  353. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/not-a-task/notes.txt +0 -0
  354. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/mock_acp_agent.py +0 -0
  355. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/mock_acp_agent_interleaved.py +0 -0
  356. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/mock_acp_agent_multi_turn.py +0 -0
  357. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/mock_openai_responses_server.py +0 -0
  358. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/Dockerfile +0 -0
  359. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/data/michigan_stations.txt +0 -0
  360. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/flood-detection/SKILL.md +0 -0
  361. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/nws-flood-thresholds/SKILL.md +0 -0
  362. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/usgs-data-download/SKILL.md +0 -0
  363. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/instruction.md +0 -0
  364. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/solution/solve.sh +0 -0
  365. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/task.toml +0 -0
  366. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test.sh +0 -0
  367. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test_outputs.py +0 -0
  368. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/Dockerfile +0 -0
  369. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/climate.csv +0 -0
  370. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/hydrology.csv +0 -0
  371. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/land_cover.csv +0 -0
  372. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/water_temperature.csv +0 -0
  373. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/contribution-analysis/SKILL.md +0 -0
  374. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/meteorology-driver-classification/SKILL.md +0 -0
  375. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/pca-decomposition/SKILL.md +0 -0
  376. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/trend-analysis/SKILL.md +0 -0
  377. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/instruction.md +0 -0
  378. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/solution/solve.sh +0 -0
  379. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/task.toml +0 -0
  380. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test.sh +0 -0
  381. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test_outputs.py +0 -0
  382. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/manifest.json +0 -0
  383. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/Dockerfile +0 -0
  384. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/r2r_simulator.py +0 -0
  385. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/finite-horizon-lqr/SKILL.md +0 -0
  386. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/integral-action-design/SKILL.md +0 -0
  387. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/mpc-horizon-tuning/SKILL.md +0 -0
  388. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/state-space-linearization/SKILL.md +0 -0
  389. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/system_config.json +0 -0
  390. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/instruction.md +0 -0
  391. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/solution/solve.sh +0 -0
  392. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/task.toml +0 -0
  393. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test.sh +0 -0
  394. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test_outputs.py +0 -0
  395. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/Dockerfile +0 -0
  396. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/generate_training_pcaps.py +0 -0
  397. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/local.rules +0 -0
  398. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/SKILL.md +0 -0
  399. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/scripts/summarize_http_requests.sh +0 -0
  400. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/SKILL.md +0 -0
  401. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/scripts/run_suricata_offline.sh +0 -0
  402. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-rules-basics/SKILL.md +0 -0
  403. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/suricata.yaml +0 -0
  404. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/instruction.md +0 -0
  405. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/solution/solve.sh +0 -0
  406. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/task.toml +0 -0
  407. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test.sh +0 -0
  408. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test_outputs.py +0 -0
  409. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/Dockerfile +0 -0
  410. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syz-extract-constants/SKILL.md +0 -0
  411. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzkaller-build-loop/SKILL.md +0 -0
  412. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzlang-ioctl-basics/SKILL.md +0 -0
  413. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/instruction.md +0 -0
  414. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/solution/solve.sh +0 -0
  415. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/task.toml +0 -0
  416. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test.sh +0 -0
  417. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test_outputs.py +0 -0
  418. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/_consistency.py +0 -0
  419. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/agent_judge.py +0 -0
  420. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/check_adapter_evidence.py +0 -0
  421. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/check_hosted_env_evidence.py +0 -0
  422. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/check_results.py +0 -0
  423. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/check_skillsbench_harbor_parity.py +0 -0
  424. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/check_trace_to_task_evidence.py +0 -0
  425. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/claude-agent-acp.yaml +0 -0
  426. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/codex-acp.yaml +0 -0
  427. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/gemini.yaml +0 -0
  428. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/harvey-lab-harness.yaml +0 -0
  429. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/mimo.yaml +0 -0
  430. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/openclaw.yaml +0 -0
  431. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/opencode.yaml +0 -0
  432. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/openhands.yaml +0 -0
  433. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/pi-acp.yaml +0 -0
  434. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/deepagents_harness.py +0 -0
  435. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/rubric_checks.py +0 -0
  436. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/run.sh +0 -0
  437. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/run_suite.py +0 -0
  438. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/scenarios.py +0 -0
  439. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/suites/release.yaml +0 -0
  440. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acceptance_evidence.py +0 -0
  441. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acceptance_live.py +0 -0
  442. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acceptance_live_execution.py +0 -0
  443. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp.py +0 -0
  444. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp_capability_advertising.py +0 -0
  445. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp_mcp_servers.py +0 -0
  446. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp_model_config_dispatch.py +0 -0
  447. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp_pinned_protocol_guard.py +0 -0
  448. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp_setup_failure_propagation.py +0 -0
  449. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_adapter_scripts.py +0 -0
  450. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_adapters.py +0 -0
  451. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_cli.py +0 -0
  452. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_env_resolution.py +0 -0
  453. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_gemini_defaults.py +0 -0
  454. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_idle_timeout_cli.py +0 -0
  455. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_model_decouple.py +0 -0
  456. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_registry.py +0 -0
  457. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_router.py +0 -0
  458. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_router_cli_e2e.py +0 -0
  459. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_router_scaffold.py +0 -0
  460. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_setup.py +0 -0
  461. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_spec.py +0 -0
  462. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agentcore_builder.py +0 -0
  463. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agentcore_parallel.py +0 -0
  464. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agentcore_reaper.py +0 -0
  465. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agentcore_sandbox.py +0 -0
  466. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agentcore_transport.py +0 -0
  467. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_api_error_capture.py +0 -0
  468. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_apple_container_sandbox.py +0 -0
  469. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_bare_model_provider.py +0 -0
  470. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_base_install_imports.py +0 -0
  471. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_bedrock_thinking.py +0 -0
  472. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_benchflow_experiment_review_validator.py +0 -0
  473. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_benchmark_repos_resolve_repo_path.py +0 -0
  474. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_branch.py +0 -0
  475. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_build_context_stage.py +0 -0
  476. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_build_review_pack.py +0 -0
  477. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_capture_trajectory.py +0 -0
  478. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_check_skillsbench_harbor_parity.py +0 -0
  479. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_clawsbench_slice.py +0 -0
  480. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_adopt_aliases.py +0 -0
  481. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_arg_validation.py +0 -0
  482. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_daytona.py +0 -0
  483. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_docs_drift.py +0 -0
  484. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_edge_case_hardening.py +0 -0
  485. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_hub_env.py +0 -0
  486. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_misc.py +0 -0
  487. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_codex_review.py +0 -0
  488. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_codex_self_write_auth.py +0 -0
  489. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_config_override.py +0 -0
  490. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_config_redaction.py +0 -0
  491. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_connect_as_env.py +0 -0
  492. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_console_error_truncation.py +0 -0
  493. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_continuallearningbench_adapter.py +0 -0
  494. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_dataset_registry.py +0 -0
  495. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_command_polling.py +0 -0
  496. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_dind_compose_up.py +0 -0
  497. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_download.py +0 -0
  498. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_litellm_runtime.py +0 -0
  499. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_poll_deadline.py +0 -0
  500. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_reap.py +0 -0
  501. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_deepagents_agent.py +0 -0
  502. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_docker_prune_scoping.py +0 -0
  503. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_docker_uploads.py +0 -0
  504. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_docs_examples.py +0 -0
  505. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eng50_capabilities.py +0 -0
  506. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_env_registry.py +0 -0
  507. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_env_setup.py +0 -0
  508. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_environment_manifest_controls.py +0 -0
  509. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_artifact_cli.py +0 -0
  510. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_filters_applied.py +0 -0
  511. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_lift.py +0 -0
  512. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_sharding.py +0 -0
  513. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_single_task_summary.py +0 -0
  514. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_source_provenance.py +0 -0
  515. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_worker_retry.py +0 -0
  516. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_zero_task_guard.py +0 -0
  517. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_evaluation_environment_manifest.py +0 -0
  518. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_exclude_tasks.py +0 -0
  519. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_filter_credentialed_cells.py +0 -0
  520. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_harvey_lab_shim.py +0 -0
  521. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_hilbench_adapter.py +0 -0
  522. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_hosted_env.py +0 -0
  523. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_hosted_env_rollout_contract.py +0 -0
  524. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_hub_harbor_registry.py +0 -0
  525. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_inbound_adapter_manifest.py +0 -0
  526. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_inbound_adapters.py +0 -0
  527. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_agent_judge.py +0 -0
  528. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_check_results.py +0 -0
  529. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_consistency.py +0 -0
  530. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_matrix.py +0 -0
  531. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_provider_selection.py +0 -0
  532. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_run_suite.py +0 -0
  533. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_suite.py +0 -0
  534. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_internet_policy.py +0 -0
  535. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_job.py +0 -0
  536. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_job_sequential_shared.py +0 -0
  537. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_job_sequential_shared_resume.py +0 -0
  538. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_judge_robustness.py +0 -0
  539. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_judge_symlink_ingestion.py +0 -0
  540. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_learner_skills.py +0 -0
  541. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_learner_skills_traversal.py +0 -0
  542. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_learner_store.py +0 -0
  543. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_learner_store_persistence.py +0 -0
  544. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_config.py +0 -0
  545. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_hardening.py +0 -0
  546. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_logging.py +0 -0
  547. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_model_via_env_generic.py +0 -0
  548. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_reasoning_passthrough.py +0 -0
  549. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_runtime.py +0 -0
  550. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_smoke.py +0 -0
  551. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_live_llm_trajectory.py +0 -0
  552. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_llm_judge.py +0 -0
  553. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_llm_judge_event_tags.py +0 -0
  554. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_llm_judge_verifier.py +0 -0
  555. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_loop_strategies.py +0 -0
  556. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_loop_summary.py +0 -0
  557. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_loop_sweep.py +0 -0
  558. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_memory_scorer.py +0 -0
  559. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_metrics.py +0 -0
  560. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_mle_bench_adapter.py +0 -0
  561. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_mock_openai_responses_server.py +0 -0
  562. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_monitor_scaffold.py +0 -0
  563. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_native_acp_usage.py +0 -0
  564. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_no_cross_provider_fallback.py +0 -0
  565. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_notification_order_real.py +0 -0
  566. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_opencode_family_proxy_tracking.py +0 -0
  567. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_oracle.py +0 -0
  568. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_oracle_chokepoint.py +0 -0
  569. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_paths_safe.py +0 -0
  570. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_paths_symlink_helpers.py +0 -0
  571. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_pi_acp_launcher.py +0 -0
  572. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_pi_acp_proxy_routing.py +0 -0
  573. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_process.py +0 -0
  574. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_project_skills_layout.py +0 -0
  575. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_provider_auth_detection.py +0 -0
  576. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_providers.py +0 -0
  577. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_reexport.py +0 -0
  578. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_registry_invariants.py +0 -0
  579. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_release_hardening_r5.py +0 -0
  580. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_release_version.py +0 -0
  581. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_release_workflow_wiring.py +0 -0
  582. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_resolve_env_helpers.py +0 -0
  583. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_review_boundaries.py +0 -0
  584. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_review_rubric.py +0 -0
  585. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_review_runtime.py +0 -0
  586. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_reward_lenient.py +0 -0
  587. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_reward_node.py +0 -0
  588. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_reward_range.py +0 -0
  589. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_reward_unified_contract.py +0 -0
  590. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rewards.py +0 -0
  591. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rewards_jsonl.py +0 -0
  592. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_architecture.py +0 -0
  593. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_branch.py +0 -0
  594. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_config_path_coercion.py +0 -0
  595. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_environment.py +0 -0
  596. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_hard_deadline.py +0 -0
  597. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_import_no_side_effects.py +0 -0
  598. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_on_ask_user_wiring.py +0 -0
  599. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_planes_contract.py +0 -0
  600. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_probe_sandbox_health.py +0 -0
  601. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_session_factory_dispatch.py +0 -0
  602. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_setup_commands.py +0 -0
  603. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_upload.py +0 -0
  604. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rubric_checks.py +0 -0
  605. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rubric_config.py +0 -0
  606. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_runtime.py +0 -0
  607. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_runtime_capabilities.py +0 -0
  608. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_runtime_config_wired.py +0 -0
  609. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_runtime_live_sandbox.py +0 -0
  610. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox.py +0 -0
  611. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_exec_secret_handling.py +0 -0
  612. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_hardening.py +0 -0
  613. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_isolation_copy_traversal.py +0 -0
  614. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_live_process.py +0 -0
  615. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_multi_service.py +0 -0
  616. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_prebuilt_validation.py +0 -0
  617. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_protocol.py +0 -0
  618. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_provider_registry_drift.py +0 -0
  619. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_setup.py +0 -0
  620. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_snapshot_contract.py +0 -0
  621. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_upload_symlink.py +0 -0
  622. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_verifier_workspace.py +0 -0
  623. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_scene.py +0 -0
  624. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_scene_outbox_trial.py +0 -0
  625. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_scene_parallel_group.py +0 -0
  626. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_scene_result_aggregation.py +0 -0
  627. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_scoring.py +0 -0
  628. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sdk_internals.py +0 -0
  629. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sdk_lockdown.py +0 -0
  630. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sdk_run_alias.py +0 -0
  631. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sealed_channel_container.py +0 -0
  632. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_self_gen_cli.py +0 -0
  633. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_self_gen_export_error_channel.py +0 -0
  634. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_self_gen_export_failures.py +0 -0
  635. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_self_gen_orchestration.py +0 -0
  636. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_session_factory_runtime.py +0 -0
  637. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_session_request_permission_dispatch.py +0 -0
  638. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_eval.py +0 -0
  639. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_eval_dryrun.py +0 -0
  640. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_eval_integration.py +0 -0
  641. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_eval_sweep.py +0 -0
  642. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_eval_traversal.py +0 -0
  643. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_invocation_artifacts.py +0 -0
  644. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_policy.py +0 -0
  645. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skills.py +0 -0
  646. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skills_dir_agent_home_link.py +0 -0
  647. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skillsbench_conversion_conformance.py +0 -0
  648. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skillsbench_harbor_run_suite.py +0 -0
  649. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_smoke.py +0 -0
  650. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_smoke_wiring.py +0 -0
  651. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_source_adapters.py +0 -0
  652. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_subscription_auth.py +0 -0
  653. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_check_eval_consistency.py +0 -0
  654. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_config.py +0 -0
  655. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_digest.py +0 -0
  656. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_document.py +0 -0
  657. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_export.py +0 -0
  658. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_output_format.py +0 -0
  659. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_package.py +0 -0
  660. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_runtime_primitive.py +0 -0
  661. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_tasks.py +0 -0
  662. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_token_usage_normalization.py +0 -0
  663. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trace_import_cli.py +0 -0
  664. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trace_task_gen_traversal.py +0 -0
  665. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trace_to_task_evidence.py +0 -0
  666. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_traces_huggingface.py +0 -0
  667. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_traces_parsers.py +0 -0
  668. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_traces_task_gen.py +0 -0
  669. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_train_cli.py +0 -0
  670. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_train_mode_artifact_emission.py +0 -0
  671. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_train_trl_cli.py +0 -0
  672. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trajectory_integration.py +0 -0
  673. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trajectory_streaming.py +0 -0
  674. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trial_agent_timeout_verify.py +0 -0
  675. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trial_install_agent_timeout.py +0 -0
  676. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trial_litellm_runtime.py +0 -0
  677. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trl_integration.py +0 -0
  678. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_usage_litellm.py +0 -0
  679. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_usage_required.py +0 -0
  680. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_usage_tracking.py +0 -0
  681. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_user.py +0 -0
  682. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_v06_guard_ports.py +0 -0
  683. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_document.py +0 -0
  684. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_multi_container.py +0 -0
  685. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_output.py +0 -0
  686. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_output_freshness.py +0 -0
  687. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_strategies.py +0 -0
  688. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_wedge_retry.py +0 -0
  689. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verify.py +0 -0
  690. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_workflow_action_pinning.py +0 -0
  691. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_yaml_config.py +0 -0
  692. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/__init__.py +0 -0
  693. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export.py +0 -0
  694. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export_adp.py +0 -0
  695. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export_atif.py +0 -0
  696. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export_common.py +0 -0
  697. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export_nan_handling.py +0 -0
  698. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export_prime_sft.py +0 -0
  699. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_redaction.py +0 -0
  700. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_step_granularity.py +0 -0
  701. {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_tree.py +0 -0
@@ -2,9 +2,47 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ### Added
6
+ - **Console progress heartbeat.** Single-concurrency eval runs print a
7
+ throttled progress line (`… 6.2min, 12 tool calls (last: …)`) about every
8
+ 45 seconds while the agent works, so a long prompt is distinguishable from
9
+ a hang. The heartbeat is auto-gated off for multi-concurrency jobs;
10
+ `bench eval run --quiet` suppresses it, and `BENCHFLOW_PROGRESS=on`/`off`
11
+ overrides the auto-gate. (#951)
12
+
13
+ ### Changed
14
+ - Migrated the clawsbench `archive-amazon-shipping` task to the native
15
+ `task.md` package layout (`bench tasks migrate --remove-legacy`), and a
16
+ clawsbench run launched without `--environment-manifest` now fails with an
17
+ actionable verifier message naming the exact flag to pass instead of an
18
+ opaque connection error. (#952)
19
+
5
20
  ### Fixed
6
21
  - Isolated pull-request and post-test integration concurrency groups so a
7
22
  credential-free workflow completion cannot cancel an active PR rollout.
23
+ - **Host-side hard rollout deadline.** An await wedged below the phase-level
24
+ watchdogs (e.g. a Daytona PTY teardown on a dead websocket) could freeze an
25
+ entire eval job. Every rollout attempt now runs under a host-side hard
26
+ deadline derived from the task's own phase budgets plus a fixed margin; a
27
+ trip returns a retryable infra-error result and abandons the sandbox after
28
+ a bounded cleanup grace. Override with `BENCHFLOW_ROLLOUT_HARD_DEADLINE`
29
+ (seconds; `off`/`none`/`0` disables). Verifier timeouts that produced zero
30
+ output are retried once — that signature is an exec-layer wedge, not a slow
31
+ verifier. Agent-sent reasoning parameters are also forwarded through the
32
+ LLM gateway, and DeepSeek routes natively with `reasoning_effort` passed
33
+ verbatim. (#949)
34
+ - Quieter Daytona teardown: successful runs end at the score line — the
35
+ atexit client cleanup no longer prints a cancelled-reader traceback after
36
+ `✓ Score`, and benign engineio PTY-disconnect errors are silenced. (#951)
37
+ - Accept the Harbor 1.3 `[task] version` field in task configs. It is
38
+ informational and stored verbatim; the strict schema previously rejected
39
+ it, which made every Harbor-1.3 curated task unloadable. (#953)
40
+ - Synced the committed `env0@prod` / `env0@outage` environment pins with the
41
+ upstream `benchflow-ai/env0` manifest (the pins had drifted to stale
42
+ service CLI names, a phantom service, and shifted ports), and a manifest
43
+ environment now fails loud when it declares services but none are startable
44
+ in the image, instead of passing a vacuous readiness gate and dying at the
45
+ verifier. (#954)
8
46
 
9
47
  ## 0.6.6 — 2026-08-04
10
48
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: benchflow
3
- Version: 0.6.7.dev1823
3
+ Version: 0.6.7.dev1827
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.6.7.dev1823"
3
+ version = "0.6.7.dev1827"
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"
@@ -95,11 +95,21 @@ def _looks_like_commit_sha(ref: str) -> bool:
95
95
 
96
96
  def _checkout_fetched_ref(repo_root: Path, ref: str) -> None:
97
97
  subprocess.run(
98
- ["git", "-C", str(repo_root), "fetch", "--depth", "1", "origin", ref],
98
+ [
99
+ "git",
100
+ "-C",
101
+ str(repo_root),
102
+ "fetch",
103
+ "--quiet",
104
+ "--depth",
105
+ "1",
106
+ "origin",
107
+ ref,
108
+ ],
99
109
  check=True,
100
110
  )
101
111
  subprocess.run(
102
- ["git", "-C", str(repo_root), "checkout", "--detach", "FETCH_HEAD"],
112
+ ["git", "-C", str(repo_root), "checkout", "--quiet", "--detach", "FETCH_HEAD"],
103
113
  check=True,
104
114
  )
105
115
 
@@ -155,7 +165,10 @@ def _clone_repo_unlocked(org: str, repo: str, ref: str | None = None) -> Path:
155
165
  try:
156
166
  if clone_tmp.exists():
157
167
  shutil.rmtree(clone_tmp)
158
- cmd = ["git", "clone", "--depth", "1"]
168
+ # --quiet: raw clone progress ("remote: Counting objects: …") on the
169
+ # console pre-dashboard is noise; the "Cloning …" log line above is
170
+ # the one-line summary. Errors still print (git keeps stderr on fail).
171
+ cmd = ["git", "clone", "--quiet", "--depth", "1"]
159
172
  if ref and not _looks_like_commit_sha(ref):
160
173
  cmd.extend(["--branch", ref])
161
174
  cmd.extend([url, str(clone_tmp)])
@@ -0,0 +1,53 @@
1
+ """Process-global registry of live rollouts for the eval dashboard.
2
+
3
+ The Rich dashboard (``cli/_live_progress.py``) renders in the same process as
4
+ the engine's rollouts, so surfacing per-task activity needs no new event
5
+ plumbing: the engine registers each live Rollout under its task name and the
6
+ dashboard polls the rollout's ACP session counters — the exact ones the
7
+ console heartbeat (``ACPSession._maybe_log_progress``) logs — at render time.
8
+ Best-effort by contract: every reader failure degrades to "no activity",
9
+ never to a render error.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import threading
15
+ from typing import Any
16
+
17
+ _lock = threading.Lock()
18
+ # Task name -> live Rollout. Task basenames are unique keys by engine-wide
19
+ # invariant: the whole run pipeline (resume filtering, result keying — see
20
+ # Evaluation's `d.name not in completed` plan filter) is keyed by basename,
21
+ # so each name is scheduled at most once at a time.
22
+ _live: dict[str, Any] = {}
23
+
24
+
25
+ def register(task_name: str, rollout: Any) -> None:
26
+ """Expose a live rollout to the dashboard under its task name."""
27
+ with _lock:
28
+ _live[task_name] = rollout
29
+
30
+
31
+ def unregister(task_name: str) -> None:
32
+ with _lock:
33
+ _live.pop(task_name, None)
34
+
35
+
36
+ def activity(task_name: str) -> tuple[int, str, int | None] | None:
37
+ """(tool calls, last tool title, total tokens) for a running task.
38
+
39
+ None until the task's agent session exists — including non-ACP
40
+ (session-factory) agents, which never grow an ACP client. The dig into
41
+ client/session state lives on ``Rollout.activity_snapshot()`` (typed,
42
+ owner-side); the except here only guards renders racing rollout teardown.
43
+ """
44
+ with _lock:
45
+ rollout = _live.get(task_name)
46
+ if rollout is None:
47
+ return None
48
+ try:
49
+ return rollout.activity_snapshot()
50
+ except Exception:
51
+ # Dashboard reads race a live rollout; degrading to "no activity" is
52
+ # always preferable to perturbing the render.
53
+ return None
@@ -221,6 +221,20 @@ class ACPSession:
221
221
  # which is otherwise easy to miss in a 64-concurrency log.
222
222
  logger.error(f"ACPSession on_change callback failed: {e}")
223
223
 
224
+ def progress_snapshot(self) -> tuple[int, str]:
225
+ """(tool-call count, last tool title) — the console heartbeat's
226
+ counters, also polled by the live eval dashboard's activity cell.
227
+
228
+ The title is the raw first line (untruncated — display width belongs
229
+ to each render site); ``split`` not ``splitlines`` so a whitespace-only
230
+ title strips to ``""`` instead of raising on an empty line list.
231
+ """
232
+ title = ""
233
+ if self.tool_calls:
234
+ last = self.tool_calls[-1]
235
+ title = (last.title or last.kind or "").strip().split("\n", 1)[0]
236
+ return len(self.tool_calls), title
237
+
224
238
  def _maybe_log_progress(self) -> None:
225
239
  if not self._progress_enabled or self._prompt_started_at is None:
226
240
  return
@@ -229,12 +243,10 @@ class ACPSession:
229
243
  return
230
244
  self._last_progress_at = now
231
245
  elapsed_min = (now - self._prompt_started_at) / 60.0
232
- line = f" … {elapsed_min:.1f}min, {len(self.tool_calls)} tool calls"
233
- if self.tool_calls:
234
- last = self.tool_calls[-1]
235
- title = (last.title or last.kind or "").strip().splitlines()[0][:60]
236
- if title:
237
- line += f" (last: {title})"
246
+ calls, title = self.progress_snapshot()
247
+ line = f" … {elapsed_min:.1f}min, {calls} tool calls"
248
+ if title:
249
+ line += f" (last: {title[:60]})"
238
250
  logger.info(line)
239
251
 
240
252
  def record_user_prompt(self, text: str) -> None:
@@ -27,6 +27,7 @@ from rich.markup import escape
27
27
  from rich.table import Table
28
28
  from rich.text import Text
29
29
 
30
+ from benchflow._utils import live_activity
30
31
  from benchflow.cli._shared import console
31
32
  from benchflow.usage_tracking import is_trusted_usage_source
32
33
 
@@ -127,6 +128,27 @@ def _fmt_tokens(n: int) -> str:
127
128
  return str(n)
128
129
 
129
130
 
131
+ def _activity_cell(name: str) -> str:
132
+ """Per-task activity for the "running now" table, e.g.
133
+ ``38 calls · last: file_editor``.
134
+
135
+ Polls the live rollout's ACP session counters — the same ones the console
136
+ heartbeat logs, which the Live display otherwise mutes — via the
137
+ live-activity registry. Empty until the agent session exists. Tokens appear
138
+ only once the session has a usage snapshot (i.e. after a completed prompt).
139
+ """
140
+ snap = live_activity.activity(name)
141
+ if snap is None:
142
+ return ""
143
+ calls, last_title, tokens = snap
144
+ cell = f"{calls} calls"
145
+ if tokens:
146
+ cell += f" · {_fmt_tokens(tokens)} tok"
147
+ if last_title:
148
+ cell += f" · last: {last_title[:30]}"
149
+ return cell
150
+
151
+
130
152
  class LiveEvalProgress:
131
153
  """A live ``Live``-rendered dashboard, driven by the engine's progress hooks.
132
154
 
@@ -295,17 +317,23 @@ class LiveEvalProgress:
295
317
  )
296
318
  tbl.add_column("running now", no_wrap=True)
297
319
  tbl.add_column("elapsed", justify="right")
320
+ tbl.add_column("activity", no_wrap=True)
298
321
  now = time.monotonic()
299
322
  for name in sorted(running, key=lambda n: running[n])[:_MAX_RUNNING_ROWS]:
300
323
  # Text() so a task name containing Rich markup (`[` is legal in
301
324
  # SkillsBench dir names) is rendered literally, not parsed as
302
325
  # markup — a MarkupError here escapes __rich__ and aborts the
303
326
  # CLI on live-context exit, violating this module's "a render
304
- # bug can never perturb a run" contract.
305
- tbl.add_row(Text(name), _fmt_dur(now - running[name]))
327
+ # bug can never perturb a run" contract. Same for the activity
328
+ # cell, which carries agent-authored tool titles.
329
+ tbl.add_row(
330
+ Text(name),
331
+ _fmt_dur(now - running[name]),
332
+ Text(_activity_cell(name), style="dim"),
333
+ )
306
334
  extra = len(running) - _MAX_RUNNING_ROWS
307
335
  if extra > 0:
308
- tbl.add_row(f"… {extra} more", "")
336
+ tbl.add_row(f"… {extra} more", "", "")
309
337
  parts.append(tbl)
310
338
 
311
339
  # Footer: pass-rate (excl errors) + token/cost economics. Show "—" (not
@@ -1250,11 +1250,20 @@ class Evaluation:
1250
1250
 
1251
1251
  return await run_self_gen(rollout_config)
1252
1252
  rollout = await Rollout.create(rollout_config)
1253
- # Rollout.run() enforces its own host-side hard deadline against
1254
- # awaits wedged below the phase-level timeouts see
1255
- # benchflow.rollout._deadline. A trip surfaces here as a normal
1256
- # infra-retryable error result.
1257
- return await rollout.run()
1253
+ # Expose the live rollout to the eval dashboard's activity cell —
1254
+ # a same-process poll of the session's heartbeat counters, see
1255
+ # benchflow._utils.live_activity.
1256
+ from benchflow._utils import live_activity
1257
+
1258
+ live_activity.register(task_dir.name, rollout)
1259
+ try:
1260
+ # Rollout.run() enforces its own host-side hard deadline against
1261
+ # awaits wedged below the phase-level timeouts — see
1262
+ # benchflow.rollout._deadline. A trip surfaces here as a normal
1263
+ # infra-retryable error result.
1264
+ return await rollout.run()
1265
+ finally:
1266
+ live_activity.unregister(task_dir.name)
1258
1267
 
1259
1268
  async def _run_single_task_legacy(
1260
1269
  self, task_dir: Path, cfg: EvaluationConfig
@@ -755,6 +755,23 @@ class Rollout:
755
755
  def acp_client(self) -> Any:
756
756
  return self._acp_client
757
757
 
758
+ def activity_snapshot(self) -> tuple[int, str, int | None] | None:
759
+ """(tool calls, last tool title, total tokens) for the eval
760
+ dashboard's activity cell, or None before the agent session exists.
761
+
762
+ Rollout owns the client/session dig so a rename breaks here — in
763
+ typed, tested code — instead of silently blanking the dashboard cell
764
+ (see benchflow._utils.live_activity). Session-factory agents have no
765
+ ACP client and always return None.
766
+ """
767
+ session = self._acp_client.session if self._acp_client else None
768
+ if session is None:
769
+ return None
770
+ calls, last_title = session.progress_snapshot()
771
+ usage = session.latest_usage_totals()
772
+ tokens = usage.get("total_tokens") if usage else None
773
+ return calls, last_title, tokens
774
+
758
775
  @property
759
776
  def trajectory(self) -> list[dict]:
760
777
  return self._trajectory
@@ -2401,7 +2418,11 @@ class Rollout:
2401
2418
  TrajectoryWriter(
2402
2419
  self._rollout_dir / "trajectory" / "acp_trajectory.jsonl"
2403
2420
  ).write_final(self._trajectory)
2404
- logger.warning(
2421
+ # info, not warning: trajectory repair is evidence-mutation an auditor
2422
+ # should find at default (non-TTY/CI) verbosity, but as a warning it
2423
+ # survived the live dashboard's WARNING+ replay and printed between
2424
+ # teardown and the score line (dogfood 2026-08-09).
2425
+ logger.info(
2405
2426
  "Repaired %d lossy ACP tool event(s) from trusted provider capture",
2406
2427
  repaired,
2407
2428
  )
@@ -92,6 +92,85 @@ def test_trusted_telemetry_accumulates():
92
92
  assert d._covered == 2
93
93
 
94
94
 
95
+ class _FakeSession:
96
+ def progress_snapshot(self):
97
+ return 38, "file_editor"
98
+
99
+ def latest_usage_totals(self):
100
+ return {"total_tokens": 1500}
101
+
102
+
103
+ def test_activity_cell_polls_live_session_counters():
104
+ # Per-task activity in the running-now table (fresh-user dogfood
105
+ # 2026-08-09): the heartbeat's counters must reach the dashboard, since
106
+ # the Live mutes the logged heartbeat line itself.
107
+ from benchflow._utils import live_activity
108
+ from benchflow.cli._live_progress import _activity_cell
109
+
110
+ live_activity.register(
111
+ "edit-pdf", SimpleNamespace(activity_snapshot=lambda: (38, "file_editor", 1500))
112
+ )
113
+ try:
114
+ assert _activity_cell("edit-pdf") == "38 calls · 1.5k tok · last: file_editor"
115
+ finally:
116
+ live_activity.unregister("edit-pdf")
117
+ # Unregistered tasks (and pre-session rollouts) degrade to empty, not raise.
118
+ assert _activity_cell("edit-pdf") == ""
119
+
120
+
121
+ def test_rollout_activity_snapshot_reads_acp_session():
122
+ # The client/session dig lives on Rollout (typed, owner-side) so a rename
123
+ # of session counters breaks HERE instead of silently blanking the cell.
124
+ from benchflow.rollout import Rollout
125
+
126
+ connected = SimpleNamespace(_acp_client=SimpleNamespace(session=_FakeSession()))
127
+ assert Rollout.activity_snapshot(connected) == (38, "file_editor", 1500)
128
+ # Pre-connect (and session-factory) rollouts have no client -> None.
129
+ assert Rollout.activity_snapshot(SimpleNamespace(_acp_client=None)) is None
130
+
131
+
132
+ def test_dashboard_renders_activity_for_registered_running_task():
133
+ # End-to-end through __rich__: a registered running task's activity must
134
+ # appear in the rendered panel — reverting the table wiring fails this.
135
+ import io
136
+
137
+ from benchflow._utils import live_activity
138
+
139
+ live_activity.register(
140
+ "edit-pdf", SimpleNamespace(activity_snapshot=lambda: (38, "file_editor", None))
141
+ )
142
+ try:
143
+ d = _dash()
144
+ d.on_plan(total=1, done=0, remaining=1)
145
+ d.on_task_start("edit-pdf")
146
+ out = Console(file=io.StringIO(), width=120)
147
+ out.print(d.__rich__())
148
+ text = out.file.getvalue()
149
+ assert "38 calls" in text
150
+ assert "file_editor" in text
151
+ finally:
152
+ live_activity.unregister("edit-pdf")
153
+
154
+
155
+ def test_activity_cell_empty_before_session_exists():
156
+ from benchflow._utils import live_activity
157
+ from benchflow.cli._live_progress import _activity_cell
158
+
159
+ # Rollout registered but not yet connected (no ACP client / session):
160
+ # the cell stays empty and the render is unperturbed.
161
+ live_activity.register(
162
+ "warming-up", SimpleNamespace(activity_snapshot=lambda: None)
163
+ )
164
+ try:
165
+ assert _activity_cell("warming-up") == ""
166
+ d = _dash()
167
+ d.on_plan(total=1, done=0, remaining=1)
168
+ d.on_task_start("warming-up")
169
+ d.__rich__() # builds the running-now table row; must not raise
170
+ finally:
171
+ live_activity.unregister("warming-up")
172
+
173
+
95
174
  def test_progress_enabled_respects_tty_and_optout(monkeypatch):
96
175
  tty = SimpleNamespace(is_terminal=True)
97
176
  notty = SimpleNamespace(is_terminal=False)
@@ -75,6 +75,28 @@ def test_heartbeat_silent_when_disabled(monkeypatch, caplog):
75
75
  assert not [r for r in caplog.records if "tool calls" in r.message]
76
76
 
77
77
 
78
+ def test_progress_snapshot_exposes_heartbeat_counters(monkeypatch):
79
+ """The dashboard's activity cell polls the same counters the line logs."""
80
+ monkeypatch.setenv("BENCHFLOW_PROGRESS", "off")
81
+ s = ACPSession("sid")
82
+ assert s.progress_snapshot() == (0, "")
83
+ _drive_tool_call(s, "tc1")
84
+ assert s.progress_snapshot() == (1, "IPython cell")
85
+
86
+
87
+ def test_progress_snapshot_whitespace_only_title(monkeypatch):
88
+ """A whitespace-only title strips to "" instead of raising IndexError
89
+
90
+ (truthy title -> strip() -> "" -> splitlines() == [] under the old code).
91
+ """
92
+ monkeypatch.setenv("BENCHFLOW_PROGRESS", "off")
93
+ s = ACPSession("sid")
94
+ s.handle_update(
95
+ {"sessionUpdate": "tool_call", "toolCallId": "tc1", "title": " ", "kind": ""}
96
+ )
97
+ assert s.progress_snapshot() == (1, "")
98
+
99
+
78
100
  def test_heartbeat_silent_outside_prompt(monkeypatch, caplog):
79
101
  """No heartbeat before the first prompt or after mark_prompt_end."""
80
102
  monkeypatch.setenv("BENCHFLOW_PROGRESS", "on")
@@ -51,6 +51,7 @@ def test_skillsbench_alias_clones_main_branch(tmp_path, monkeypatch):
51
51
  [
52
52
  "git",
53
53
  "clone",
54
+ "--quiet",
54
55
  "--depth",
55
56
  "1",
56
57
  "--branch",
@@ -733,13 +734,24 @@ def test_resolve_source_with_sha_ref_fetches_after_clone(tmp_path, monkeypatch):
733
734
  [
734
735
  "git",
735
736
  "clone",
737
+ "--quiet",
736
738
  "--depth",
737
739
  "1",
738
740
  "https://github.com/org/repo.git",
739
741
  str(clone_tmp),
740
742
  ],
741
- ["git", "-C", str(clone_tmp), "fetch", "--depth", "1", "origin", sha_ref],
742
- ["git", "-C", str(clone_tmp), "checkout", "--detach", "FETCH_HEAD"],
743
+ [
744
+ "git",
745
+ "-C",
746
+ str(clone_tmp),
747
+ "fetch",
748
+ "--quiet",
749
+ "--depth",
750
+ "1",
751
+ "origin",
752
+ sha_ref,
753
+ ],
754
+ ["git", "-C", str(clone_tmp), "checkout", "--quiet", "--detach", "FETCH_HEAD"],
743
755
  ]
744
756
 
745
757
 
@@ -760,8 +772,8 @@ def test_resolve_source_with_ref_refreshes_cached_checkout(tmp_path, monkeypatch
760
772
  resolve_source("org/repo", path="tasks", ref="main")
761
773
 
762
774
  assert calls == [
763
- ["git", "-C", str(cache), "fetch", "--depth", "1", "origin", "main"],
764
- ["git", "-C", str(cache), "checkout", "--detach", "FETCH_HEAD"],
775
+ ["git", "-C", str(cache), "fetch", "--quiet", "--depth", "1", "origin", "main"],
776
+ ["git", "-C", str(cache), "checkout", "--quiet", "--detach", "FETCH_HEAD"],
765
777
  ]
766
778
 
767
779