benchflow 0.7.2.dev1982__tar.gz → 0.7.2.dev1987__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 (721) hide show
  1. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/CHANGELOG.md +25 -0
  2. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/PKG-INFO +14 -11
  3. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/README.md +13 -10
  4. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/pyproject.toml +1 -1
  5. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/traj.py +132 -11
  6. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_traj_upload_cli.py +170 -5
  7. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/.gitignore +0 -0
  8. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/LICENSE +0 -0
  9. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/__init__.py +0 -0
  10. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_dotenv.py +0 -0
  11. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_paths.py +0 -0
  12. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_run.py +0 -0
  13. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_types.py +0 -0
  14. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/__init__.py +0 -0
  15. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/benchmark_repos.py +0 -0
  16. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/build_context_stage.py +0 -0
  17. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/config.py +0 -0
  18. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/config_override.py +0 -0
  19. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/content_address.py +0 -0
  20. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/dataset_registry.py +0 -0
  21. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/env_registry.py +0 -0
  22. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/evaluation_results.py +0 -0
  23. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/hf_datasets.py +0 -0
  24. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/json_safe.py +0 -0
  25. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/learner_memory.py +0 -0
  26. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/live_activity.py +0 -0
  27. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/result_metadata.py +0 -0
  28. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/reward_events.py +0 -0
  29. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/scoring.py +0 -0
  30. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/source_provenance.py +0 -0
  31. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/task_authoring/__init__.py +0 -0
  32. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/task_authoring/_evidence_paths.py +0 -0
  33. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/task_authoring/acceptance_evidence.py +0 -0
  34. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/task_authoring/scaffolding.py +0 -0
  35. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/task_authoring/structural_checks.py +0 -0
  36. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/text.py +0 -0
  37. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/_utils/yaml_loader.py +0 -0
  38. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/acp/__init__.py +0 -0
  39. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/acp/client.py +0 -0
  40. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/acp/container_transport.py +0 -0
  41. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/acp/runtime.py +0 -0
  42. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/acp/selection.py +0 -0
  43. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/acp/session.py +0 -0
  44. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/acp/transport.py +0 -0
  45. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/acp/types.py +0 -0
  46. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/__init__.py +0 -0
  47. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/_toolathlon.py +0 -0
  48. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/_toolathlon_container.py +0 -0
  49. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/_toolathlon_fake_mail.py +0 -0
  50. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/_toolathlon_poste_users.tsv +0 -0
  51. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/_toolathlon_services.py +0 -0
  52. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/harbor.py +0 -0
  53. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/inbound.py +0 -0
  54. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/inspect_ai.py +0 -0
  55. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/ors.py +0 -0
  56. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/resources/__init__.py +0 -0
  57. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/resources/mcp_atlas_bridge.py +0 -0
  58. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/resources/mcp_atlas_judge.py +0 -0
  59. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/adapters/source.py +0 -0
  60. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agent_router.py +0 -0
  61. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agent_router_guide.py +0 -0
  62. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agent_router_parity.py +0 -0
  63. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agent_router_scaffold.py +0 -0
  64. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/__init__.py +0 -0
  65. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/codex_config.py +0 -0
  66. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/credentials.py +0 -0
  67. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/deepagents_acp_shim.py +0 -0
  68. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/env.py +0 -0
  69. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/errors.py +0 -0
  70. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/harvey_lab_acp_shim.py +0 -0
  71. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/install.py +0 -0
  72. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/manifest.py +0 -0
  73. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/openclaw_acp_shim.py +0 -0
  74. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/pi_acp_launcher.py +0 -0
  75. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/protocol.py +0 -0
  76. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/providers.py +0 -0
  77. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/registry.py +0 -0
  78. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/agents/remote_manifests.py +0 -0
  79. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/branch.py +0 -0
  80. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/__init__.py +0 -0
  81. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/_failure_evidence.py +0 -0
  82. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/_hosted_env.py +0 -0
  83. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/_live_progress.py +0 -0
  84. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/_options.py +0 -0
  85. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/_shared.py +0 -0
  86. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/_traj_upload_ui.py +0 -0
  87. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/adopt.py +0 -0
  88. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/agent.py +0 -0
  89. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/continue_cmd.py +0 -0
  90. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/environment.py +0 -0
  91. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/eval_artifacts.py +0 -0
  92. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/eval_lift.py +0 -0
  93. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/hub.py +0 -0
  94. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/main.py +0 -0
  95. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/monitor.py +0 -0
  96. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/review.py +0 -0
  97. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/sandbox.py +0 -0
  98. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/skills.py +0 -0
  99. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/tasks.py +0 -0
  100. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/trace_import.py +0 -0
  101. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/cli/train.py +0 -0
  102. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/continue_run/__init__.py +0 -0
  103. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/continue_run/batch.py +0 -0
  104. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/continue_run/orchestrator.py +0 -0
  105. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/continue_run/replay_proxy.py +0 -0
  106. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/continue_run/run_folder.py +0 -0
  107. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/continue_run/sandbox_proxy.py +0 -0
  108. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/contracts/__init__.py +0 -0
  109. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/contracts/planes.py +0 -0
  110. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/contracts/user.py +0 -0
  111. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/demo_task/environment/Dockerfile +0 -0
  112. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/demo_task/instruction.md +0 -0
  113. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/demo_task/task.md +0 -0
  114. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/demo_task/task.toml +0 -0
  115. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/demo_task/tests/test.sh +0 -0
  116. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/diagnostics.py +0 -0
  117. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/environment/__init__.py +0 -0
  118. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/environment/_registry/env0@outage.toml +0 -0
  119. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/environment/_registry/env0@prod.toml +0 -0
  120. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/environment/manifest.py +0 -0
  121. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/environment/manifest_env.py +0 -0
  122. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/environment/protocol.py +0 -0
  123. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/environment/readiness.py +0 -0
  124. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/eval_artifacts.py +0 -0
  125. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/eval_lift.py +0 -0
  126. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/eval_plan.py +0 -0
  127. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/eval_sharding.py +0 -0
  128. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/eval_worker.py +0 -0
  129. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/evaluation.py +0 -0
  130. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/experimental/__init__.py +0 -0
  131. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/experimental/mcp/__init__.py +0 -0
  132. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/experimental/mcp/hooks.py +0 -0
  133. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/experimental/mcp/reviewer_server.py +0 -0
  134. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/hosted_env.py +0 -0
  135. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/hub/__init__.py +0 -0
  136. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/hub/harbor_registry.py +0 -0
  137. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/integrations/__init__.py +0 -0
  138. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/integrations/trl/__init__.py +0 -0
  139. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/integrations/trl/spec.py +0 -0
  140. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/learner_skills.py +0 -0
  141. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/learner_store.py +0 -0
  142. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/loop_strategies.py +0 -0
  143. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/loop_sweep.py +0 -0
  144. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/metrics.py +0 -0
  145. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/models.py +0 -0
  146. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/monitor.py +0 -0
  147. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/providers/__init__.py +0 -0
  148. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/providers/litellm_bedrock_patch.py +0 -0
  149. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/providers/litellm_bedrock_preflight.py +0 -0
  150. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/providers/litellm_config.py +0 -0
  151. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/providers/litellm_logging.py +0 -0
  152. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/providers/litellm_runtime.py +0 -0
  153. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/providers/runtime.py +0 -0
  154. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/publish/__init__.py +0 -0
  155. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/publish/_progress.py +0 -0
  156. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/publish/azure_blob.py +0 -0
  157. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/publish/broker.py +0 -0
  158. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/publish/huggingface.py +0 -0
  159. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/publish/redact.py +0 -0
  160. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/publish/traj_capture.py +0 -0
  161. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/publish/traj_report.py +0 -0
  162. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/py.typed +0 -0
  163. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/review/__init__.py +0 -0
  164. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/review/config.py +0 -0
  165. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/review/default-rubric.json +0 -0
  166. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/review/prompts.py +0 -0
  167. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/review/runner.py +0 -0
  168. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/review/wrapper.py +0 -0
  169. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/README.md +0 -0
  170. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/__init__.py +0 -0
  171. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/builtins.py +0 -0
  172. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/events.py +0 -0
  173. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/file_readers.py +0 -0
  174. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/llm.py +0 -0
  175. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/memory_scorer.py +0 -0
  176. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/node.py +0 -0
  177. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/protocol.py +0 -0
  178. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/rubric.py +0 -0
  179. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/rubric_config.py +0 -0
  180. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rewards/validation.py +0 -0
  181. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout/__init__.py +0 -0
  182. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout/_config.py +0 -0
  183. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout/_deadline.py +0 -0
  184. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout/_results.py +0 -0
  185. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout/_setup.py +0 -0
  186. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout/_skills.py +0 -0
  187. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout/_usage.py +0 -0
  188. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout/_user_loop.py +0 -0
  189. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout/session_factory_runtime.py +0 -0
  190. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout/task_runtime.py +0 -0
  191. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout_branch.py +0 -0
  192. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/rollout_planes.py +0 -0
  193. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/runtime.py +0 -0
  194. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/__init__.py +0 -0
  195. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/_base.py +0 -0
  196. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/_cache_reclaim.py +0 -0
  197. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/_compose.py +0 -0
  198. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/_compose_files/docker-compose-base.yaml +0 -0
  199. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/_compose_files/docker-compose-build.yaml +0 -0
  200. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/_compose_files/docker-compose-no-network.yaml +0 -0
  201. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/_compose_files/docker-compose-prebuilt.yaml +0 -0
  202. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/_sdk_ops.py +0 -0
  203. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/agentcore.py +0 -0
  204. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/agentcore_builder.py +0 -0
  205. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/agentcore_image.py +0 -0
  206. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/agentcore_provisioning.py +0 -0
  207. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/agentcore_reaper.py +0 -0
  208. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/agentcore_sealed.py +0 -0
  209. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/apple_container.py +0 -0
  210. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/daytona.py +0 -0
  211. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/daytona_dind.py +0 -0
  212. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/daytona_pty.py +0 -0
  213. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/daytona_reaper.py +0 -0
  214. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/daytona_strategies.py +0 -0
  215. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/docker.py +0 -0
  216. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/lockdown.py +0 -0
  217. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/metadata.py +0 -0
  218. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/modal_impl.py +0 -0
  219. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/process/__init__.py +0 -0
  220. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/process/_base.py +0 -0
  221. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/process/agentcore.py +0 -0
  222. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/process/apple.py +0 -0
  223. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/process/daytona.py +0 -0
  224. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/process/docker.py +0 -0
  225. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/protocol.py +0 -0
  226. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/providers.py +0 -0
  227. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/services.py +0 -0
  228. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/setup.py +0 -0
  229. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/snapshot.py +0 -0
  230. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sandbox/user.py +0 -0
  231. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/scenes.py +0 -0
  232. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/sdk.py +0 -0
  233. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/self_gen.py +0 -0
  234. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/skill_eval/__init__.py +0 -0
  235. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/skill_eval/_core.py +0 -0
  236. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/skill_eval/gepa_export.py +0 -0
  237. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/skill_eval/schema.py +0 -0
  238. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/skill_policy.py +0 -0
  239. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/skills.py +0 -0
  240. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/__init__.py +0 -0
  241. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/_document_evidence.py +0 -0
  242. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/_document_normalize.py +0 -0
  243. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/_document_parse.py +0 -0
  244. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/_document_profiles.py +0 -0
  245. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/acceptance_live.py +0 -0
  246. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/acceptance_live_model.py +0 -0
  247. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/acceptance_live_report.py +0 -0
  248. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/acceptance_live_validation.py +0 -0
  249. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/config.py +0 -0
  250. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/discovery.py +0 -0
  251. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/document.py +0 -0
  252. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/env.py +0 -0
  253. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/export.py +0 -0
  254. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/imports.py +0 -0
  255. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/output_format.py +0 -0
  256. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/package.py +0 -0
  257. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/paths.py +0 -0
  258. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/prompts.py +0 -0
  259. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/runtime_capabilities.py +0 -0
  260. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/runtime_view.py +0 -0
  261. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/task.py +0 -0
  262. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/verifier.py +0 -0
  263. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/verifier_core.py +0 -0
  264. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/verifier_document.py +0 -0
  265. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/verifier_errors.py +0 -0
  266. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/verifier_judge_inputs.py +0 -0
  267. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/verifier_ors_episode.py +0 -0
  268. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/verifier_reward_kit.py +0 -0
  269. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/verifier_scan.py +0 -0
  270. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/task/verifier_script_strategy.py +0 -0
  271. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/templates/__init__.py +0 -0
  272. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/templates/judge.py.tmpl +0 -0
  273. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/templates/test.sh.tmpl +0 -0
  274. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/traces/__init__.py +0 -0
  275. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/traces/huggingface.py +0 -0
  276. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/traces/local.py +0 -0
  277. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/traces/models.py +0 -0
  278. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/traces/parsers.py +0 -0
  279. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/traces/task_gen.py +0 -0
  280. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/training/__init__.py +0 -0
  281. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/training/backends/__init__.py +0 -0
  282. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/training/backends/prime_rl.py +0 -0
  283. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/training/run_manifest.py +0 -0
  284. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/__init__.py +0 -0
  285. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/_capture.py +0 -0
  286. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/_export_common.py +0 -0
  287. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/_llm_capture.py +0 -0
  288. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/call_purpose.py +0 -0
  289. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/export.py +0 -0
  290. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/export_adp.py +0 -0
  291. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/export_atif.py +0 -0
  292. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/export_prime_sft.py +0 -0
  293. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/export_trl_sft.py +0 -0
  294. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/metrics.py +0 -0
  295. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/results.py +0 -0
  296. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/sessions.py +0 -0
  297. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/tree.py +0 -0
  298. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/trl_sft_tokenization.py +0 -0
  299. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/types.py +0 -0
  300. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/trajectories/viewer.py +0 -0
  301. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/src/benchflow/usage_tracking.py +0 -0
  302. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/__init__.py +0 -0
  303. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/acceptance_live_harness.py +0 -0
  304. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/agents/__init__.py +0 -0
  305. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/agents/test_manifest_dirscan.py +0 -0
  306. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/agents/test_manifest_loader.py +0 -0
  307. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/agents/test_manifest_parity.py +0 -0
  308. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/agents/test_manifest_wiring.py +0 -0
  309. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/agents/test_namespace_shorthand.py +0 -0
  310. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/agents/test_plugin_entry_points.py +0 -0
  311. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/agents/test_protocol.py +0 -0
  312. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/agents/test_remote_manifest_autoload.py +0 -0
  313. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/README.md +0 -0
  314. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/acp_smoke/environment/Dockerfile +0 -0
  315. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/acp_smoke/environment/docker-compose.yaml +0 -0
  316. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/acp_smoke/environment/skills/conformance-writer/SKILL.md +0 -0
  317. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/acp_smoke/instruction.md +0 -0
  318. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/acp_smoke/solution/solve.sh +0 -0
  319. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/acp_smoke/task.md +0 -0
  320. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/acp_smoke/task.toml +0 -0
  321. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/acp_smoke/tests/test.sh +0 -0
  322. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/conformance-results.json +0 -0
  323. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/proof_multi_agent.py +0 -0
  324. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/proof_snapshot.py +0 -0
  325. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/run_conformance.py +0 -0
  326. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conformance/self_gen_smoke_skills/skill-creator/SKILL.md +0 -0
  327. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/conftest.py +0 -0
  328. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/continue_run/__init__.py +0 -0
  329. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/continue_run/_helpers.py +0 -0
  330. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/continue_run/test_batch.py +0 -0
  331. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/continue_run/test_orchestrator.py +0 -0
  332. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/continue_run/test_replay_proxy.py +0 -0
  333. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/continue_run/test_run_folder.py +0 -0
  334. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/environment/__init__.py +0 -0
  335. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/environment/test_chibench_manifest.py +0 -0
  336. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/environment/test_clawsbench_manifest.py +0 -0
  337. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/environment/test_manifest.py +0 -0
  338. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/environment/test_manifest_env.py +0 -0
  339. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/environment/test_protocol.py +0 -0
  340. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/environment/test_readiness.py +0 -0
  341. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/hello-world-task/environment/Dockerfile +0 -0
  342. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/hello-world-task/instruction.md +0 -0
  343. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/hello-world-task/solution/solve.sh +0 -0
  344. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/hello-world-task/task.md +0 -0
  345. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/hello-world-task/task.toml +0 -0
  346. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/hello-world-task/tests/test.sh +0 -0
  347. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/test_claude.sh +0 -0
  348. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/test_codex.sh +0 -0
  349. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/test_codex_custom_provider.sh +0 -0
  350. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/test_gemini.sh +0 -0
  351. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/test_openclaw.sh +0 -0
  352. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/traces/minimal-claude.jsonl +0 -0
  353. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/examples/traces/minimal-opentraces.jsonl +0 -0
  354. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/digest/README.md +0 -0
  355. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/digest/alpha-task/environment/Dockerfile +0 -0
  356. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/digest/alpha-task/instruction.md +0 -0
  357. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/digest/alpha-task/task.toml +0 -0
  358. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/digest/alpha-task/tests/test.sh +0 -0
  359. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/digest/beta-task/data/empty.bin +0 -0
  360. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/digest/beta-task/data/unicode.txt +0 -0
  361. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/digest/beta-task/instruction.md +0 -0
  362. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/digest/beta-task/task.toml +0 -0
  363. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/digest/not-a-task/notes.txt +0 -0
  364. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/mock_acp_agent.py +0 -0
  365. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/mock_acp_agent_interleaved.py +0 -0
  366. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/mock_acp_agent_multi_turn.py +0 -0
  367. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/mock_openai_responses_server.py +0 -0
  368. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/Dockerfile +0 -0
  369. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/data/michigan_stations.txt +0 -0
  370. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/flood-detection/SKILL.md +0 -0
  371. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/nws-flood-thresholds/SKILL.md +0 -0
  372. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/usgs-data-download/SKILL.md +0 -0
  373. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/flood-risk-analysis/instruction.md +0 -0
  374. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/flood-risk-analysis/solution/solve.sh +0 -0
  375. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/flood-risk-analysis/task.toml +0 -0
  376. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test.sh +0 -0
  377. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test_outputs.py +0 -0
  378. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/Dockerfile +0 -0
  379. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/climate.csv +0 -0
  380. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/hydrology.csv +0 -0
  381. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/land_cover.csv +0 -0
  382. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/water_temperature.csv +0 -0
  383. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/contribution-analysis/SKILL.md +0 -0
  384. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/meteorology-driver-classification/SKILL.md +0 -0
  385. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/pca-decomposition/SKILL.md +0 -0
  386. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/trend-analysis/SKILL.md +0 -0
  387. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/instruction.md +0 -0
  388. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/solution/solve.sh +0 -0
  389. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/task.toml +0 -0
  390. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test.sh +0 -0
  391. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test_outputs.py +0 -0
  392. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/manifest.json +0 -0
  393. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/Dockerfile +0 -0
  394. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/r2r_simulator.py +0 -0
  395. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/finite-horizon-lqr/SKILL.md +0 -0
  396. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/integral-action-design/SKILL.md +0 -0
  397. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/mpc-horizon-tuning/SKILL.md +0 -0
  398. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/state-space-linearization/SKILL.md +0 -0
  399. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/system_config.json +0 -0
  400. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/instruction.md +0 -0
  401. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/solution/solve.sh +0 -0
  402. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/task.toml +0 -0
  403. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test.sh +0 -0
  404. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test_outputs.py +0 -0
  405. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/Dockerfile +0 -0
  406. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/generate_training_pcaps.py +0 -0
  407. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/local.rules +0 -0
  408. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/SKILL.md +0 -0
  409. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/scripts/summarize_http_requests.sh +0 -0
  410. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/SKILL.md +0 -0
  411. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/scripts/run_suricata_offline.sh +0 -0
  412. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-rules-basics/SKILL.md +0 -0
  413. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/suricata.yaml +0 -0
  414. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/instruction.md +0 -0
  415. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/solution/solve.sh +0 -0
  416. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/task.toml +0 -0
  417. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test.sh +0 -0
  418. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test_outputs.py +0 -0
  419. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/Dockerfile +0 -0
  420. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syz-extract-constants/SKILL.md +0 -0
  421. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzkaller-build-loop/SKILL.md +0 -0
  422. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzlang-ioctl-basics/SKILL.md +0 -0
  423. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/instruction.md +0 -0
  424. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/solution/solve.sh +0 -0
  425. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/task.toml +0 -0
  426. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test.sh +0 -0
  427. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test_outputs.py +0 -0
  428. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/_consistency.py +0 -0
  429. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/agent_judge.py +0 -0
  430. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/check_adapter_evidence.py +0 -0
  431. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/check_hosted_env_evidence.py +0 -0
  432. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/check_results.py +0 -0
  433. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/check_skillsbench_harbor_parity.py +0 -0
  434. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/check_trace_to_task_evidence.py +0 -0
  435. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/configs/claude-agent-acp.yaml +0 -0
  436. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/configs/codex-acp.yaml +0 -0
  437. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/configs/gemini.yaml +0 -0
  438. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/configs/harvey-lab-harness.yaml +0 -0
  439. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/configs/mimo.yaml +0 -0
  440. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/configs/openclaw.yaml +0 -0
  441. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/configs/opencode.yaml +0 -0
  442. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/configs/openhands.yaml +0 -0
  443. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/configs/pi-acp.yaml +0 -0
  444. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/deepagents_harness.py +0 -0
  445. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/rubric_checks.py +0 -0
  446. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/run.sh +0 -0
  447. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/run_suite.py +0 -0
  448. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/scenarios.py +0 -0
  449. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/integration/suites/release.yaml +0 -0
  450. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_acceptance_evidence.py +0 -0
  451. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_acceptance_live.py +0 -0
  452. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_acceptance_live_execution.py +0 -0
  453. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_acp.py +0 -0
  454. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_acp_capability_advertising.py +0 -0
  455. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_acp_mcp_servers.py +0 -0
  456. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_acp_model_config_dispatch.py +0 -0
  457. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_acp_pinned_protocol_guard.py +0 -0
  458. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_acp_setup_failure_propagation.py +0 -0
  459. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_adapter_scripts.py +0 -0
  460. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_adapters.py +0 -0
  461. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agent_cli.py +0 -0
  462. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agent_env_resolution.py +0 -0
  463. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agent_gemini_defaults.py +0 -0
  464. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agent_idle_timeout_cli.py +0 -0
  465. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agent_model_decouple.py +0 -0
  466. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agent_registry.py +0 -0
  467. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agent_router.py +0 -0
  468. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agent_router_cli_e2e.py +0 -0
  469. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agent_router_scaffold.py +0 -0
  470. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agent_setup.py +0 -0
  471. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agent_spec.py +0 -0
  472. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agentcore_builder.py +0 -0
  473. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agentcore_parallel.py +0 -0
  474. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agentcore_reaper.py +0 -0
  475. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agentcore_sandbox.py +0 -0
  476. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_agentcore_transport.py +0 -0
  477. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_api_error_capture.py +0 -0
  478. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_apple_container_sandbox.py +0 -0
  479. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_bare_model_provider.py +0 -0
  480. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_base_install_imports.py +0 -0
  481. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_bedrock_thinking.py +0 -0
  482. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_benchflow_experiment_review_validator.py +0 -0
  483. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_benchmark_repos_resolve_repo_path.py +0 -0
  484. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_branch.py +0 -0
  485. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_build_context_stage.py +0 -0
  486. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_build_review_pack.py +0 -0
  487. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_capture_trajectory.py +0 -0
  488. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_check_skillsbench_harbor_parity.py +0 -0
  489. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_clawsbench_slice.py +0 -0
  490. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_cli_adopt_aliases.py +0 -0
  491. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_cli_arg_validation.py +0 -0
  492. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_cli_daytona.py +0 -0
  493. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_cli_docs_drift.py +0 -0
  494. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_cli_edge_case_hardening.py +0 -0
  495. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_cli_hub_env.py +0 -0
  496. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_cli_live_progress.py +0 -0
  497. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_cli_misc.py +0 -0
  498. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_codex_review.py +0 -0
  499. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_codex_self_write_auth.py +0 -0
  500. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_config_override.py +0 -0
  501. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_config_redaction.py +0 -0
  502. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_connect_as_env.py +0 -0
  503. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_console_error_truncation.py +0 -0
  504. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_console_progress.py +0 -0
  505. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_continuallearningbench_adapter.py +0 -0
  506. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_dataset_registry.py +0 -0
  507. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_daytona_command_polling.py +0 -0
  508. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_daytona_dind_compose_up.py +0 -0
  509. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_daytona_download.py +0 -0
  510. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_daytona_litellm_runtime.py +0 -0
  511. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_daytona_poll_deadline.py +0 -0
  512. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_daytona_reap.py +0 -0
  513. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_deepagents_agent.py +0 -0
  514. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_diagnostics.py +0 -0
  515. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_docker_prune_scoping.py +0 -0
  516. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_docker_uploads.py +0 -0
  517. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_docs_examples.py +0 -0
  518. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_eng50_capabilities.py +0 -0
  519. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_env_registry.py +0 -0
  520. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_env_setup.py +0 -0
  521. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_environment_manifest_controls.py +0 -0
  522. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_eval_artifact_cli.py +0 -0
  523. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_eval_filters_applied.py +0 -0
  524. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_eval_lift.py +0 -0
  525. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_eval_sharding.py +0 -0
  526. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_eval_single_task_summary.py +0 -0
  527. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_eval_source_provenance.py +0 -0
  528. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_eval_worker_retry.py +0 -0
  529. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_eval_zero_task_guard.py +0 -0
  530. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_evaluation_environment_manifest.py +0 -0
  531. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_exclude_tasks.py +0 -0
  532. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_filter_credentialed_cells.py +0 -0
  533. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_harvey_lab_shim.py +0 -0
  534. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_hilbench_adapter.py +0 -0
  535. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_hosted_env.py +0 -0
  536. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_hosted_env_rollout_contract.py +0 -0
  537. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_hub_harbor_registry.py +0 -0
  538. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_inbound_adapter_manifest.py +0 -0
  539. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_inbound_adapters.py +0 -0
  540. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_integration_agent_judge.py +0 -0
  541. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_integration_check_results.py +0 -0
  542. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_integration_consistency.py +0 -0
  543. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_integration_matrix.py +0 -0
  544. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_integration_provider_selection.py +0 -0
  545. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_integration_run_suite.py +0 -0
  546. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_integration_suite.py +0 -0
  547. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_internet_policy.py +0 -0
  548. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_job.py +0 -0
  549. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_job_sequential_shared.py +0 -0
  550. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_job_sequential_shared_resume.py +0 -0
  551. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_judge_robustness.py +0 -0
  552. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_judge_symlink_ingestion.py +0 -0
  553. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_learner_skills.py +0 -0
  554. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_learner_skills_traversal.py +0 -0
  555. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_learner_store.py +0 -0
  556. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_learner_store_persistence.py +0 -0
  557. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_litellm_config.py +0 -0
  558. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_litellm_hardening.py +0 -0
  559. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_litellm_logging.py +0 -0
  560. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_litellm_model_via_env_generic.py +0 -0
  561. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_litellm_reasoning_passthrough.py +0 -0
  562. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_litellm_runtime.py +0 -0
  563. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_litellm_smoke.py +0 -0
  564. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_live_llm_trajectory.py +0 -0
  565. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_llm_judge.py +0 -0
  566. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_llm_judge_event_tags.py +0 -0
  567. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_llm_judge_verifier.py +0 -0
  568. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_loop_strategies.py +0 -0
  569. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_loop_summary.py +0 -0
  570. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_loop_sweep.py +0 -0
  571. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_memory_scorer.py +0 -0
  572. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_metrics.py +0 -0
  573. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_mle_bench_adapter.py +0 -0
  574. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_mock_openai_responses_server.py +0 -0
  575. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_monitor_scaffold.py +0 -0
  576. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_native_acp_usage.py +0 -0
  577. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_no_cross_provider_fallback.py +0 -0
  578. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_notification_order_real.py +0 -0
  579. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_opencode_family_proxy_tracking.py +0 -0
  580. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_oracle.py +0 -0
  581. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_oracle_chokepoint.py +0 -0
  582. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_paths_safe.py +0 -0
  583. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_paths_symlink_helpers.py +0 -0
  584. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_pi_acp_launcher.py +0 -0
  585. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_pi_acp_proxy_routing.py +0 -0
  586. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_process.py +0 -0
  587. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_project_skills_layout.py +0 -0
  588. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_provider_auth_detection.py +0 -0
  589. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_providers.py +0 -0
  590. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_publish_azure_blob.py +0 -0
  591. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_reexport.py +0 -0
  592. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_registry_invariants.py +0 -0
  593. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_release_hardening_r5.py +0 -0
  594. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_release_version.py +0 -0
  595. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_release_workflow_wiring.py +0 -0
  596. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_resolve_env_helpers.py +0 -0
  597. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_review_boundaries.py +0 -0
  598. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_review_rubric.py +0 -0
  599. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_review_runtime.py +0 -0
  600. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_reward_lenient.py +0 -0
  601. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_reward_node.py +0 -0
  602. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_reward_range.py +0 -0
  603. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_reward_unified_contract.py +0 -0
  604. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rewards.py +0 -0
  605. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rewards_jsonl.py +0 -0
  606. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_architecture.py +0 -0
  607. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_branch.py +0 -0
  608. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_config_path_coercion.py +0 -0
  609. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_environment.py +0 -0
  610. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_hard_deadline.py +0 -0
  611. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_import_no_side_effects.py +0 -0
  612. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_on_ask_user_wiring.py +0 -0
  613. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_planes_contract.py +0 -0
  614. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_probe_sandbox_health.py +0 -0
  615. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_session_factory_dispatch.py +0 -0
  616. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_setup_commands.py +0 -0
  617. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rollout_upload.py +0 -0
  618. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rubric_checks.py +0 -0
  619. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_rubric_config.py +0 -0
  620. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_runtime.py +0 -0
  621. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_runtime_capabilities.py +0 -0
  622. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_runtime_config_wired.py +0 -0
  623. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_runtime_live_sandbox.py +0 -0
  624. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox.py +0 -0
  625. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_exec_secret_handling.py +0 -0
  626. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_hardening.py +0 -0
  627. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_isolation_copy_traversal.py +0 -0
  628. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_live_process.py +0 -0
  629. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_multi_service.py +0 -0
  630. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_prebuilt_validation.py +0 -0
  631. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_protocol.py +0 -0
  632. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_provider_registry_drift.py +0 -0
  633. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_setup.py +0 -0
  634. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_snapshot_contract.py +0 -0
  635. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_upload_symlink.py +0 -0
  636. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sandbox_verifier_workspace.py +0 -0
  637. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_scene.py +0 -0
  638. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_scene_outbox_trial.py +0 -0
  639. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_scene_parallel_group.py +0 -0
  640. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_scene_result_aggregation.py +0 -0
  641. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_scoring.py +0 -0
  642. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sdk_internals.py +0 -0
  643. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sdk_lockdown.py +0 -0
  644. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sdk_run_alias.py +0 -0
  645. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_sealed_channel_container.py +0 -0
  646. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_self_gen_cli.py +0 -0
  647. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_self_gen_export_error_channel.py +0 -0
  648. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_self_gen_export_failures.py +0 -0
  649. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_self_gen_orchestration.py +0 -0
  650. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_session_factory_runtime.py +0 -0
  651. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_session_request_permission_dispatch.py +0 -0
  652. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_skill_eval.py +0 -0
  653. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_skill_eval_dryrun.py +0 -0
  654. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_skill_eval_integration.py +0 -0
  655. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_skill_eval_sweep.py +0 -0
  656. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_skill_eval_traversal.py +0 -0
  657. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_skill_invocation_artifacts.py +0 -0
  658. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_skill_policy.py +0 -0
  659. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_skills.py +0 -0
  660. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_skills_dir_agent_home_link.py +0 -0
  661. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_skillsbench_conversion_conformance.py +0 -0
  662. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_skillsbench_harbor_run_suite.py +0 -0
  663. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_smoke.py +0 -0
  664. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_smoke_wiring.py +0 -0
  665. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_source_adapters.py +0 -0
  666. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_subscription_auth.py +0 -0
  667. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_task_check_eval_consistency.py +0 -0
  668. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_task_config.py +0 -0
  669. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_task_digest.py +0 -0
  670. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_task_document.py +0 -0
  671. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_task_download.py +0 -0
  672. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_task_export.py +0 -0
  673. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_task_output_format.py +0 -0
  674. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_task_package.py +0 -0
  675. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_task_runtime_primitive.py +0 -0
  676. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_tasks.py +0 -0
  677. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_token_usage_normalization.py +0 -0
  678. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_trace_import_cli.py +0 -0
  679. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_trace_task_gen_traversal.py +0 -0
  680. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_trace_to_task_evidence.py +0 -0
  681. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_traces_huggingface.py +0 -0
  682. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_traces_parsers.py +0 -0
  683. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_traces_task_gen.py +0 -0
  684. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_train_cli.py +0 -0
  685. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_train_mode_artifact_emission.py +0 -0
  686. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_train_trl_cli.py +0 -0
  687. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_traj_report.py +0 -0
  688. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_traj_staging_phases.py +0 -0
  689. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_traj_upload_skill.py +0 -0
  690. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_trajectory_integration.py +0 -0
  691. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_trajectory_streaming.py +0 -0
  692. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_trajectory_upload_layout.py +0 -0
  693. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_trajectory_upload_service.py +0 -0
  694. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_trial_agent_timeout_verify.py +0 -0
  695. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_trial_install_agent_timeout.py +0 -0
  696. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_trial_litellm_runtime.py +0 -0
  697. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_trl_integration.py +0 -0
  698. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_usage_litellm.py +0 -0
  699. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_usage_required.py +0 -0
  700. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_usage_tracking.py +0 -0
  701. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_user.py +0 -0
  702. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_v06_guard_ports.py +0 -0
  703. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_verifier_document.py +0 -0
  704. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_verifier_multi_container.py +0 -0
  705. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_verifier_output.py +0 -0
  706. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_verifier_output_freshness.py +0 -0
  707. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_verifier_strategies.py +0 -0
  708. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_verifier_wedge_retry.py +0 -0
  709. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_verify.py +0 -0
  710. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_workflow_action_pinning.py +0 -0
  711. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/test_yaml_config.py +0 -0
  712. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/trajectories/__init__.py +0 -0
  713. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/trajectories/test_export.py +0 -0
  714. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/trajectories/test_export_adp.py +0 -0
  715. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/trajectories/test_export_atif.py +0 -0
  716. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/trajectories/test_export_common.py +0 -0
  717. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/trajectories/test_export_nan_handling.py +0 -0
  718. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/trajectories/test_export_prime_sft.py +0 -0
  719. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/trajectories/test_redaction.py +0 -0
  720. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/trajectories/test_step_granularity.py +0 -0
  721. {benchflow-0.7.2.dev1982 → benchflow-0.7.2.dev1987}/tests/trajectories/test_tree.py +0 -0
@@ -2,7 +2,32 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ### Added
6
+ - **Trajectory uploads are tagged with the session's repository by
7
+ default.** Unless `--source-id` is given, `bench traj upload` reads the
8
+ session's recorded working directory (Claude `cwd` events, Codex
9
+ `session_meta`), resolves its git `origin` remote (invocation directory as
10
+ fallback), and stores `repo/<owner>/<name>` as the manifest source id,
11
+ printing `Repo: owner/name (use --no-repo to omit)`. `--no-repo` opts out
12
+ — the `benchflow-traj-upload` skill now surfaces the detected tag during
13
+ the confirm step so contributors can decline it for private repos — and
14
+ undetectable repos fall back silently to the path-derived source id.
15
+
5
16
  ### Changed
17
+ - **The contributor prompt now tells the agent to upgrade BenchFlow first.**
18
+ `CONTRIBUTOR_PROMPT` (kept in sync in `README.md`, `docs/traj-upload.md`,
19
+ and the `benchflow-traj-upload` skill evals) is a three-line block that
20
+ says to run `uv tool install --python 3.12 --upgrade --force benchflow`
21
+ before reading the skill, so agents that skim the skill or hit a stale copy
22
+ still install the latest CLI. The prompt also names OpenCode and Cursor
23
+ sessions and the re:Agent hackathon 72-hour window; README/docs render it
24
+ as a blockquote (soft-wraps on GitHub) behind an explicit "send this to
25
+ your coding agent" framing, and `bench traj setup` prints the same framing.
26
+ The skill's Discover step gains best-effort Cursor
27
+ (`~/.cursor/projects/*/agent-transcripts/`) and OpenCode
28
+ (`~/.local/share/opencode/opencode.db`, `opencode db path`) locations plus
29
+ a prefer-recent-matching-sessions note. Follow-up to the version
30
+ precondition from #1013/#1014.
6
31
  - **Trajectory viewer restyled to match www.benchflow.ai.** All three
7
32
  `bench eval view` pages (stream-json/JSONL, ACP events, multi-turn trial)
8
33
  now share one inline stylesheet with the site's design language: light
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: benchflow
3
- Version: 0.7.2.dev1982
3
+ Version: 0.7.2.dev1987
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
@@ -89,20 +89,23 @@ BenchFlow is a universal environment framework: it runs AI agents against task e
89
89
 
90
90
  ## Quick start: 1. Submit a trajectory
91
91
 
92
- Proud of a Claude Code or Codex session? Copy this line into Claude Code,
93
- Codex, Cursor, or any coding agent. That is the $2,000 eval prize path. No
94
- BenchFlow account, API key, or Azure login.
92
+ **Don't follow these steps yourself send them to your coding agent.** Copy
93
+ the block below and paste it as a message to Claude Code, Codex, OpenCode, or
94
+ Cursor. That is the $2,000 eval prize path. No BenchFlow account, API key, or
95
+ Azure login.
95
96
 
96
- ```
97
- Submit my best local Claude Code or Codex session to the BenchFlow eval prize. Read https://raw.githubusercontent.com/benchflow-ai/benchflow/main/.agents/skills/benchflow-traj-upload/SKILL.md and follow it: find a session, open the viewer, upload only after I review it.
98
- ```
97
+ > Submit my relevant local Claude Code, Codex, OpenCode, or Cursor session from the re:Agent e2e agentic science / ai4bio hackathon (last 72 hours, on this laptop) to the BenchFlow eval prize.
98
+ >
99
+ > 1. First make sure the latest benchflow CLI is installed: uv tool install --python 3.12 --upgrade --force benchflow
100
+ >
101
+ > 2. Then read https://raw.githubusercontent.com/benchflow-ai/benchflow/main/.agents/skills/benchflow-traj-upload/SKILL.md and follow it: find a session, open the viewer, and upload only after I (the human) review it.
99
102
 
100
103
  The agent finds sessions on this machine, opens the viewer, and uploads after
101
104
  you like what you see.
102
105
 
103
- Be on the latest BenchFlow first `uv tool install --python 3.12 --upgrade
104
- --force benchflow`. The `bench traj` commands print a one-line upgrade hint
105
- when a newer release is available.
106
+ The prompt has the agent install the latest BenchFlow first (`uv tool
107
+ install --python 3.12 --upgrade --force benchflow`). The `bench traj` commands
108
+ also print a one-line upgrade hint when a newer release is available.
106
109
 
107
110
  Prefer the terminal instead? The guided upload inspects before anything leaves
108
111
  your machine — it renders a redacted trajectory report (step counts, masked
@@ -128,7 +131,7 @@ bench traj setup
128
131
  ```
129
132
 
130
133
  `npx skills add` asks which agents to install for. `bench traj setup` copies
131
- the skill into this project and prints the same paste line. See the
134
+ the skill into this project and prints the same agent prompt. See the
132
135
  [upload skill](./.agents/skills/benchflow-traj-upload/SKILL.md).
133
136
 
134
137
  ## Quick start: 2. Run with a ChatGPT or Claude subscription
@@ -15,20 +15,23 @@ BenchFlow is a universal environment framework: it runs AI agents against task e
15
15
 
16
16
  ## Quick start: 1. Submit a trajectory
17
17
 
18
- Proud of a Claude Code or Codex session? Copy this line into Claude Code,
19
- Codex, Cursor, or any coding agent. That is the $2,000 eval prize path. No
20
- BenchFlow account, API key, or Azure login.
18
+ **Don't follow these steps yourself send them to your coding agent.** Copy
19
+ the block below and paste it as a message to Claude Code, Codex, OpenCode, or
20
+ Cursor. That is the $2,000 eval prize path. No BenchFlow account, API key, or
21
+ Azure login.
21
22
 
22
- ```
23
- Submit my best local Claude Code or Codex session to the BenchFlow eval prize. Read https://raw.githubusercontent.com/benchflow-ai/benchflow/main/.agents/skills/benchflow-traj-upload/SKILL.md and follow it: find a session, open the viewer, upload only after I review it.
24
- ```
23
+ > Submit my relevant local Claude Code, Codex, OpenCode, or Cursor session from the re:Agent e2e agentic science / ai4bio hackathon (last 72 hours, on this laptop) to the BenchFlow eval prize.
24
+ >
25
+ > 1. First make sure the latest benchflow CLI is installed: uv tool install --python 3.12 --upgrade --force benchflow
26
+ >
27
+ > 2. Then read https://raw.githubusercontent.com/benchflow-ai/benchflow/main/.agents/skills/benchflow-traj-upload/SKILL.md and follow it: find a session, open the viewer, and upload only after I (the human) review it.
25
28
 
26
29
  The agent finds sessions on this machine, opens the viewer, and uploads after
27
30
  you like what you see.
28
31
 
29
- Be on the latest BenchFlow first `uv tool install --python 3.12 --upgrade
30
- --force benchflow`. The `bench traj` commands print a one-line upgrade hint
31
- when a newer release is available.
32
+ The prompt has the agent install the latest BenchFlow first (`uv tool
33
+ install --python 3.12 --upgrade --force benchflow`). The `bench traj` commands
34
+ also print a one-line upgrade hint when a newer release is available.
32
35
 
33
36
  Prefer the terminal instead? The guided upload inspects before anything leaves
34
37
  your machine — it renders a redacted trajectory report (step counts, masked
@@ -54,7 +57,7 @@ bench traj setup
54
57
  ```
55
58
 
56
59
  `npx skills add` asks which agents to install for. `bench traj setup` copies
57
- the skill into this project and prints the same paste line. See the
60
+ the skill into this project and prints the same agent prompt. See the
58
61
  [upload skill](./.agents/skills/benchflow-traj-upload/SKILL.md).
59
62
 
60
63
  ## Quick start: 2. Run with a ChatGPT or Claude subscription
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "benchflow"
3
- version = "0.7.2.dev1982"
3
+ version = "0.7.2.dev1987"
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"
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import json
5
6
  import os
6
7
  import shutil
7
8
  import subprocess
@@ -29,6 +30,7 @@ from benchflow.publish.traj_capture import (
29
30
  stage_trajectory_artifacts,
30
31
  validate_email,
31
32
  validate_github_id,
33
+ validate_source_id,
32
34
  )
33
35
  from benchflow.publish.traj_report import (
34
36
  DEFAULT_PREVIEW_STEPS,
@@ -52,14 +54,26 @@ SKILL_RAW_URL = (
52
54
  "/.agents/skills/benchflow-traj-upload/SKILL.md"
53
55
  )
54
56
 
57
+ UPGRADE_COMMAND = "uv tool install --python 3.12 --upgrade --force benchflow"
58
+
59
+ # Three unwrapped lines separated by blank lines: each logical unit is one
60
+ # full physical line (no hard wraps mid-sentence), so the URL and the upgrade
61
+ # command stay selectable in agents and terminals.
55
62
  CONTRIBUTOR_PROMPT = (
56
- "Submit my best local Claude Code or Codex session to the BenchFlow eval "
57
- "prize. Read "
58
- f"{SKILL_RAW_URL} "
59
- "and follow it: find a session, open the viewer, upload only after I review it."
63
+ "Submit my relevant local Claude Code, Codex, OpenCode, or Cursor session "
64
+ "from the re:Agent e2e agentic science / ai4bio hackathon (last 72 hours, "
65
+ "on this laptop) to the BenchFlow eval prize."
66
+ "\n\n"
67
+ f"1. First make sure the latest benchflow CLI is installed: {UPGRADE_COMMAND}"
68
+ "\n\n"
69
+ f"2. Then read {SKILL_RAW_URL} "
70
+ "and follow it: find a session, open the viewer, and upload only after "
71
+ "I (the human) review it."
60
72
  )
61
73
 
62
- UPGRADE_COMMAND = "uv tool install --python 3.12 --upgrade --force benchflow"
74
+ CONTRIBUTOR_PROMPT_FRAMING = (
75
+ "Send this to your coding agent (it's a prompt for the agent, not steps for you):"
76
+ )
63
77
 
64
78
 
65
79
  def _fetch_latest_version() -> str | None:
@@ -127,6 +141,7 @@ class _UploadOptions:
127
141
  github_id: str | None
128
142
  email: str | None
129
143
  source_id: str | None
144
+ repo: bool
130
145
  direct: bool
131
146
  container_url: str | None
132
147
  dry_run: bool
@@ -163,14 +178,14 @@ def register_traj(app: typer.Typer) -> None:
163
178
  ] = False,
164
179
  prompt_only: Annotated[
165
180
  bool,
166
- typer.Option("--prompt", help="Print the copy-paste agent line and exit"),
181
+ typer.Option("--prompt", help="Print the copy-paste agent prompt and exit"),
167
182
  ] = False,
168
183
  list_sessions: Annotated[
169
184
  bool,
170
185
  typer.Option("--list", help="List recent local sessions and exit"),
171
186
  ] = False,
172
187
  ) -> None:
173
- """Install the submit skill, or print the line to paste into an agent."""
188
+ """Install the submit skill, or print the prompt to send to an agent."""
174
189
  _maybe_print_update_hint()
175
190
  if prompt_only:
176
191
  _print_contributor_prompt()
@@ -191,7 +206,6 @@ def register_traj(app: typer.Typer) -> None:
191
206
  _run_npx_skill_install()
192
207
  else:
193
208
  _install_project_skill(Path.cwd())
194
- console.print("Paste this to your agent:")
195
209
  _print_contributor_prompt()
196
210
  if interactive and typer.confirm(
197
211
  "List recent sessions and open the viewer now?", default=False
@@ -223,6 +237,14 @@ def register_traj(app: typer.Typer) -> None:
223
237
  str | None,
224
238
  typer.Option("--source-id", help="Stable contributor source identifier"),
225
239
  ] = None,
240
+ repo: Annotated[
241
+ bool,
242
+ typer.Option(
243
+ "--repo/--no-repo",
244
+ help="Tag the upload with the session's repository "
245
+ "(owner/name from its git remote) as the source id",
246
+ ),
247
+ ] = True,
226
248
  direct: Annotated[
227
249
  bool,
228
250
  typer.Option("--direct", help="Upload with local Azure credentials"),
@@ -254,6 +276,7 @@ def register_traj(app: typer.Typer) -> None:
254
276
  github_id=github_id,
255
277
  email=email,
256
278
  source_id=source_id,
279
+ repo=repo,
257
280
  direct=direct,
258
281
  container_url=container_url,
259
282
  dry_run=dry_run,
@@ -268,7 +291,17 @@ def register_traj(app: typer.Typer) -> None:
268
291
  def _run_upload(options: _UploadOptions) -> None:
269
292
  prompted = options.path is None
270
293
  path = options.path or _prompt_for_path()
271
- source_id = options.source_id or default_source_id(path)
294
+ repo_slug: str | None = None
295
+ if options.source_id is not None:
296
+ source_id = options.source_id
297
+ else:
298
+ if options.repo:
299
+ repo_slug = _detect_repo_slug(path)
300
+ source_id = f"repo/{repo_slug}" if repo_slug else default_source_id(path)
301
+ if repo_slug:
302
+ # Contributor-visible metadata: surface the tag so private-repo
303
+ # sessions can opt out before anything leaves the machine.
304
+ console.print(f"Repo: {repo_slug} (use --no-repo to omit)")
272
305
  destination = _resolve_destination(options)
273
306
 
274
307
  with (
@@ -381,6 +414,92 @@ def _infer_email() -> str:
381
414
  return ""
382
415
 
383
416
 
417
+ _SESSION_CWD_SCAN_LINES = 50
418
+
419
+
420
+ def _detect_repo_slug(path: Path) -> str | None:
421
+ """Best-effort ``owner/name`` for the repository the session was about.
422
+
423
+ Reads the working directory the session recorded (Claude events carry a
424
+ ``cwd`` field; Codex ``session_meta`` payloads do too), asks that
425
+ directory's git for the ``origin`` remote, and falls back to the
426
+ invocation directory. Every failure is silent — repo tagging must never
427
+ break an upload — and local-path remotes never produce a tag, so no
428
+ local absolute path can leak into the manifest.
429
+ """
430
+ for candidate in (_session_cwd(path), Path.cwd()):
431
+ if candidate is None or not candidate.is_dir():
432
+ continue
433
+ remote = _command_stdout(
434
+ "git", "-C", str(candidate), "remote", "get-url", "origin"
435
+ )
436
+ slug = _repo_slug_from_remote(remote) if remote else None
437
+ if slug:
438
+ return slug
439
+ return None
440
+
441
+
442
+ def _session_cwd(path: Path) -> Path | None:
443
+ """Working directory recorded by the first session event that has one."""
444
+ session = path.expanduser()
445
+ if not session.is_file():
446
+ return None
447
+ try:
448
+ with session.open(encoding="utf-8", errors="replace") as stream:
449
+ for line_number, line in enumerate(stream):
450
+ if line_number >= _SESSION_CWD_SCAN_LINES:
451
+ break
452
+ body = line.strip()
453
+ if not body:
454
+ continue
455
+ try:
456
+ event = json.loads(body)
457
+ except json.JSONDecodeError:
458
+ continue
459
+ if not isinstance(event, dict):
460
+ continue
461
+ cwd = event.get("cwd")
462
+ if isinstance(cwd, str) and cwd:
463
+ return Path(cwd)
464
+ payload = event.get("payload")
465
+ if (
466
+ event.get("type") == "session_meta"
467
+ and isinstance(payload, dict)
468
+ and isinstance(payload.get("cwd"), str)
469
+ and payload["cwd"]
470
+ ):
471
+ return Path(payload["cwd"])
472
+ except OSError:
473
+ return None
474
+ return None
475
+
476
+
477
+ def _repo_slug_from_remote(remote: str) -> str | None:
478
+ """Normalize an https/ssh git remote URL to ``owner/name``.
479
+
480
+ Only URL-shaped remotes qualify; a filesystem-path remote returns
481
+ ``None`` so local paths never enter the uploaded source id.
482
+ """
483
+ value = remote.strip()
484
+ if "://" in value:
485
+ _, _, rest = value.partition("://")
486
+ _, _, repo_path = rest.partition("/")
487
+ elif ":" in value and "@" in value.partition(":")[0]:
488
+ repo_path = value.partition(":")[2]
489
+ else:
490
+ return None
491
+ repo_path = repo_path.strip("/").removesuffix(".git")
492
+ segments = [segment for segment in repo_path.split("/") if segment]
493
+ if len(segments) < 2:
494
+ return None
495
+ slug = f"{segments[-2]}/{segments[-1]}"
496
+ try:
497
+ validate_source_id(f"repo/{slug}")
498
+ except ValueError:
499
+ return None
500
+ return slug
501
+
502
+
384
503
  def _git_config(key: str) -> str | None:
385
504
  return _command_stdout("git", "config", "--get", key)
386
505
 
@@ -517,7 +636,9 @@ def _print_dry_run(staged: StagedCapture) -> None:
517
636
 
518
637
 
519
638
  def _print_contributor_prompt() -> None:
520
- # One physical line so people can copy it. Rich wrapping would break that.
639
+ # Plain print: Rich wrapping would break the unbroken URL line and make
640
+ # the block awkward to copy.
641
+ print(CONTRIBUTOR_PROMPT_FRAMING)
521
642
  print(CONTRIBUTOR_PROMPT)
522
643
 
523
644
 
@@ -563,7 +684,7 @@ def _run_npx_skill_install() -> None:
563
684
  check=False,
564
685
  )
565
686
  if completed.returncode != 0:
566
- print_error("npx skills add failed; the copy-paste line below still works.")
687
+ print_error("npx skills add failed; the copy-paste prompt below still works.")
567
688
 
568
689
 
569
690
  def _print_session_hits() -> None:
@@ -715,17 +715,45 @@ def test_skip_update_check_env_var_never_fetches(
715
715
 
716
716
 
717
717
  def test_setup_prompt_prints_the_copy_paste_line() -> None:
718
- """The human path is one line to paste into an agent."""
719
- from benchflow.cli.traj import CONTRIBUTOR_PROMPT, SKILL_RAW_URL
718
+ """The human path is one prompt block to send to an agent.
719
+
720
+ Guards the version step and hand-off framing added in PR #1017
721
+ (follow-up to PRs #1013 and #1014): the prompt tells the agent to
722
+ upgrade BenchFlow before reading the skill, the upgrade command appears
723
+ before the skill URL, and the URL sits on one unbroken physical line.
724
+ README.md renders the prompt as a blockquote (a fenced code block would
725
+ not soft-wrap on GitHub), so each unwrapped prompt line is asserted to be
726
+ present in the README instead of the whole string verbatim.
727
+ """
728
+ from benchflow.cli.traj import (
729
+ CONTRIBUTOR_PROMPT,
730
+ CONTRIBUTOR_PROMPT_FRAMING,
731
+ SKILL_RAW_URL,
732
+ UPGRADE_COMMAND,
733
+ )
720
734
 
721
735
  result = runner.invoke(app, ["traj", "setup", "--prompt"])
722
736
  readme = Path(__file__).resolve().parents[1] / "README.md"
737
+ readme_text = readme.read_text(encoding="utf-8")
723
738
 
724
739
  assert result.exit_code == 0, result.output
725
- assert CONTRIBUTOR_PROMPT in click.unstyle(result.output)
740
+ output = click.unstyle(result.output)
741
+ assert CONTRIBUTOR_PROMPT_FRAMING in output
742
+ assert CONTRIBUTOR_PROMPT in output
726
743
  assert SKILL_RAW_URL in result.output
727
744
  assert "bench traj upload" not in result.output
728
- assert CONTRIBUTOR_PROMPT in readme.read_text(encoding="utf-8")
745
+
746
+ prompt_lines = [line for line in CONTRIBUTOR_PROMPT.splitlines() if line]
747
+ assert len(prompt_lines) == 3
748
+ for line in prompt_lines:
749
+ assert line in readme_text
750
+ assert "send them to your coding agent" in readme_text
751
+
752
+ assert UPGRADE_COMMAND in CONTRIBUTOR_PROMPT
753
+ assert CONTRIBUTOR_PROMPT.index(UPGRADE_COMMAND) < CONTRIBUTOR_PROMPT.index(
754
+ SKILL_RAW_URL
755
+ )
756
+ assert any(SKILL_RAW_URL in line for line in prompt_lines)
729
757
 
730
758
 
731
759
  def test_setup_yes_installs_the_skill(
@@ -740,7 +768,9 @@ def test_setup_yes_installs_the_skill(
740
768
  assert skill.is_file()
741
769
  text = skill.read_text(encoding="utf-8")
742
770
  assert "open the viewer" in text
743
- assert "Paste this to your agent" in click.unstyle(result.output)
771
+ # PR #1017 reframed the hand-off copy: the block is a prompt for the
772
+ # agent, not steps for the human.
773
+ assert "Send this to your coding agent" in click.unstyle(result.output)
744
774
 
745
775
 
746
776
  def test_list_recent_sessions_scans_all_projects_most_recent_first(
@@ -780,3 +810,138 @@ def test_list_recent_sessions_scans_all_projects_most_recent_first(
780
810
  assert all(hit.source == "claude" for hit in hits)
781
811
  assert "GC content" in hits[0].snippet
782
812
  assert "prize session please" in hits[1].snippet
813
+
814
+
815
+ REPO_LINE = "Repo: benchflow-ai/benchflow (use --no-repo to omit)"
816
+
817
+
818
+ def _session_with_cwd(tmp_path: Path, event: dict) -> Path:
819
+ session = tmp_path / "session.jsonl"
820
+ session.write_text(json.dumps(event) + "\n", encoding="utf-8")
821
+ return session
822
+
823
+
824
+ def _git_remote_stub(url: str | None, workdir: Path):
825
+ """A ``_command_stdout`` stub answering only the origin-remote lookup."""
826
+
827
+ def fake(*args: str) -> str | None:
828
+ if args == ("git", "-C", str(workdir), "remote", "get-url", "origin"):
829
+ return url
830
+ return None
831
+
832
+ return fake
833
+
834
+
835
+ def _capture_broker_source_id(
836
+ monkeypatch: pytest.MonkeyPatch, captured: dict[str, str]
837
+ ) -> None:
838
+ def fake_upload(staged, *, broker_url, on_file_complete, on_bytes):
839
+ captured["source_id"] = staged.manifest["source_id"]
840
+ for staged_file in staged.files:
841
+ on_file_complete(staged_file)
842
+ return SimpleNamespace(url=broker_url, uploaded=("payload",), skipped=())
843
+
844
+ monkeypatch.setattr(
845
+ "benchflow.publish.broker.upload_capture_via_broker", fake_upload
846
+ )
847
+
848
+
849
+ @pytest.mark.parametrize(
850
+ ("event_for_cwd", "remote"),
851
+ [
852
+ (
853
+ lambda cwd: {"type": "user", "cwd": cwd, "message": {"content": "hi"}},
854
+ "https://github.com/benchflow-ai/benchflow.git",
855
+ ),
856
+ (
857
+ lambda cwd: {"type": "session_meta", "payload": {"cwd": cwd}},
858
+ "git@github.com:benchflow-ai/benchflow.git",
859
+ ),
860
+ ],
861
+ ids=["claude-https", "codex-ssh"],
862
+ )
863
+ def test_upload_tags_source_id_with_the_session_repo(
864
+ tmp_path: Path, monkeypatch: pytest.MonkeyPatch, event_for_cwd, remote: str
865
+ ) -> None:
866
+ """Guards PR #1015 (repo tagging follow-up to PR #1013): by default the
867
+ upload's source id becomes ``repo/<owner>/<name>``, resolved from the
868
+ session's recorded cwd git remote, and the CLI prints the repo line."""
869
+ workdir = tmp_path / "workdir"
870
+ workdir.mkdir()
871
+ session = _session_with_cwd(tmp_path, event_for_cwd(str(workdir)))
872
+ monkeypatch.setattr(
873
+ "benchflow.cli.traj._command_stdout", _git_remote_stub(remote, workdir)
874
+ )
875
+ captured: dict[str, str] = {}
876
+ _capture_broker_source_id(monkeypatch, captured)
877
+
878
+ result = runner.invoke(app, _upload_command(session))
879
+
880
+ assert result.exit_code == 0, result.output
881
+ assert captured["source_id"] == "repo/benchflow-ai/benchflow"
882
+ assert REPO_LINE in click.unstyle(result.output)
883
+ assert str(workdir) not in captured["source_id"]
884
+
885
+
886
+ def test_no_repo_keeps_the_default_source_id(
887
+ tmp_path: Path, monkeypatch: pytest.MonkeyPatch
888
+ ) -> None:
889
+ """Guards PR #1015 (repo tagging follow-up to PR #1013): ``--no-repo``
890
+ opts out even when a repo is detectable, keeping the path-derived id."""
891
+ workdir = tmp_path / "workdir"
892
+ workdir.mkdir()
893
+ session = _session_with_cwd(
894
+ tmp_path, {"type": "user", "cwd": str(workdir), "message": {"content": "hi"}}
895
+ )
896
+ monkeypatch.setattr(
897
+ "benchflow.cli.traj._command_stdout",
898
+ _git_remote_stub("https://github.com/benchflow-ai/benchflow.git", workdir),
899
+ )
900
+ captured: dict[str, str] = {}
901
+ _capture_broker_source_id(monkeypatch, captured)
902
+
903
+ result = runner.invoke(app, _upload_command(session, "--no-repo"))
904
+
905
+ assert result.exit_code == 0, result.output
906
+ assert captured["source_id"] == "session"
907
+ assert "Repo:" not in click.unstyle(result.output)
908
+
909
+
910
+ def test_explicit_source_id_wins_over_repo_tagging(
911
+ tmp_path: Path, monkeypatch: pytest.MonkeyPatch
912
+ ) -> None:
913
+ """Guards PR #1015 (repo tagging follow-up to PR #1013): an explicit
914
+ ``--source-id`` always wins and repo detection never runs."""
915
+
916
+ def fail_detection(path: Path) -> str | None:
917
+ raise AssertionError("repo detection ran despite explicit --source-id")
918
+
919
+ monkeypatch.setattr("benchflow.cli.traj._detect_repo_slug", fail_detection)
920
+ captured: dict[str, str] = {}
921
+ _capture_broker_source_id(monkeypatch, captured)
922
+
923
+ result = runner.invoke(
924
+ app, _upload_command(_trial(tmp_path), "--source-id", "my-project/run-42")
925
+ )
926
+
927
+ assert result.exit_code == 0, result.output
928
+ assert captured["source_id"] == "my-project/run-42"
929
+ assert "Repo:" not in click.unstyle(result.output)
930
+
931
+
932
+ def test_undetectable_repo_falls_back_silently(
933
+ tmp_path: Path, monkeypatch: pytest.MonkeyPatch
934
+ ) -> None:
935
+ """Guards PR #1015 (repo tagging follow-up to PR #1013): a session with
936
+ no recorded cwd and no reachable git remote uploads with the default
937
+ source id, no repo line, and no error."""
938
+ session = _session_with_cwd(tmp_path, {"type": "message", "text": "demo"})
939
+ monkeypatch.setattr("benchflow.cli.traj._command_stdout", lambda *_args: None)
940
+ captured: dict[str, str] = {}
941
+ _capture_broker_source_id(monkeypatch, captured)
942
+
943
+ result = runner.invoke(app, _upload_command(session))
944
+
945
+ assert result.exit_code == 0, result.output
946
+ assert captured["source_id"] == "session"
947
+ assert "Repo:" not in click.unstyle(result.output)