benchflow 0.6.7.dev1823__tar.gz → 0.6.7.dev1827__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/CHANGELOG.md +38 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/PKG-INFO +1 -1
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/pyproject.toml +1 -1
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/benchmark_repos.py +16 -3
- benchflow-0.6.7.dev1827/src/benchflow/_utils/live_activity.py +53 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/session.py +18 -6
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/_live_progress.py +31 -3
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/evaluation.py +14 -5
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/__init__.py +22 -1
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_live_progress.py +79 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_console_progress.py +22 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_download.py +16 -4
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/.gitignore +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/LICENSE +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/README.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_dotenv.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_paths.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_run.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_types.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/build_context_stage.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/config.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/config_override.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/content_address.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/dataset_registry.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/env_registry.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/evaluation_results.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/hf_datasets.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/json_safe.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/learner_memory.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/result_metadata.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/reward_events.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/scoring.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/source_provenance.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/task_authoring/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/task_authoring/_evidence_paths.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/task_authoring/acceptance_evidence.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/task_authoring/scaffolding.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/task_authoring/structural_checks.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/text.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/yaml_loader.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/client.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/container_transport.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/selection.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/transport.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/types.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon_container.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon_fake_mail.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon_poste_users.tsv +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon_services.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/harbor.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/inbound.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/inspect_ai.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/ors.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/resources/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/resources/mcp_atlas_bridge.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/resources/mcp_atlas_judge.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/source.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agent_router.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agent_router_guide.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agent_router_parity.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agent_router_scaffold.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/codex_config.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/credentials.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/deepagents_acp_shim.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/env.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/errors.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/harvey_lab_acp_shim.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/install.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/manifest.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/openclaw_acp_shim.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/pi_acp_launcher.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/protocol.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/providers.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/registry.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/remote_manifests.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/branch.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/_hosted_env.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/_options.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/_shared.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/adopt.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/agent.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/continue_cmd.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/environment.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/eval_artifacts.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/eval_lift.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/hub.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/main.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/monitor.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/review.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/sandbox.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/skills.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/tasks.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/trace_import.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/cli/train.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/batch.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/orchestrator.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/replay_proxy.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/run_folder.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/continue_run/sandbox_proxy.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/contracts/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/contracts/planes.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/contracts/user.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/demo_task/environment/Dockerfile +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/demo_task/instruction.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/demo_task/task.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/demo_task/task.toml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/demo_task/tests/test.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/diagnostics.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/environment/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/environment/manifest.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/environment/manifest_env.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/environment/protocol.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/environment/readiness.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/eval_artifacts.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/eval_lift.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/eval_plan.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/eval_sharding.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/eval_worker.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/experimental/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/experimental/mcp/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/experimental/mcp/hooks.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/experimental/mcp/reviewer_server.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/hosted_env.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/hub/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/hub/harbor_registry.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/integrations/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/integrations/trl/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/integrations/trl/spec.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/learner_skills.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/learner_store.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/loop_strategies.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/loop_sweep.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/metrics.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/models.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/monitor.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/litellm_bedrock_patch.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/litellm_bedrock_preflight.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/litellm_config.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/litellm_logging.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/litellm_runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/providers/runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/publish/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/publish/huggingface.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/py.typed +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/config.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/default-rubric.json +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/prompts.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/runner.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/review/wrapper.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/README.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/builtins.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/events.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/file_readers.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/llm.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/memory_scorer.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/node.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/protocol.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/rubric.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/rubric_config.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rewards/validation.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_config.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_deadline.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_results.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_setup.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_skills.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_usage.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/_user_loop.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/session_factory_runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout/task_runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout_branch.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/rollout_planes.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_base.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_cache_reclaim.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_compose.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_compose_files/docker-compose-base.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_compose_files/docker-compose-build.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_compose_files/docker-compose-no-network.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_compose_files/docker-compose-prebuilt.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/_sdk_ops.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore_builder.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore_image.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore_provisioning.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore_reaper.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/agentcore_sealed.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/apple_container.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/daytona.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/daytona_dind.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/daytona_pty.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/daytona_reaper.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/daytona_strategies.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/docker.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/lockdown.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/metadata.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/modal_impl.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/_base.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/agentcore.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/apple.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/daytona.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/process/docker.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/protocol.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/providers.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/services.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/setup.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/snapshot.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sandbox/user.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/scenes.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/sdk.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/self_gen.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skill_eval/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skill_eval/_core.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skill_eval/gepa_export.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skill_eval/schema.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skill_policy.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/skills.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/_document_evidence.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/_document_normalize.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/_document_parse.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/_document_profiles.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/acceptance_live.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/acceptance_live_model.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/acceptance_live_report.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/acceptance_live_validation.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/config.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/discovery.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/document.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/env.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/export.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/imports.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/output_format.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/package.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/paths.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/prompts.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/runtime_capabilities.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/runtime_view.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/task.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_core.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_document.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_errors.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_judge_inputs.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_ors_episode.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_reward_kit.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_scan.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/task/verifier_script_strategy.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/templates/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/templates/judge.py.tmpl +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/templates/test.sh.tmpl +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/huggingface.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/local.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/models.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/parsers.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/traces/task_gen.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/training/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/training/backends/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/training/backends/prime_rl.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/training/run_manifest.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/_capture.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/_export_common.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/_llm_capture.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/call_purpose.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/export.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/export_adp.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/export_atif.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/export_prime_sft.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/export_trl_sft.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/metrics.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/results.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/tree.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/trl_sft_tokenization.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/types.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/trajectories/viewer.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/usage_tracking.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/acceptance_live_harness.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_manifest_dirscan.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_manifest_loader.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_manifest_parity.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_manifest_wiring.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_namespace_shorthand.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_plugin_entry_points.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_protocol.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/agents/test_remote_manifest_autoload.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/README.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/environment/Dockerfile +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/environment/docker-compose.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/environment/skills/conformance-writer/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/instruction.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/solution/solve.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/task.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/task.toml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/acp_smoke/tests/test.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/conformance-results.json +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/proof_multi_agent.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/proof_snapshot.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/run_conformance.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conformance/self_gen_smoke_skills/skill-creator/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/conftest.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/_helpers.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/test_batch.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/test_orchestrator.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/test_replay_proxy.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/continue_run/test_run_folder.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_chibench_manifest.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_clawsbench_manifest.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_manifest.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_manifest_env.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_protocol.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/environment/test_readiness.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/environment/Dockerfile +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/instruction.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/solution/solve.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/task.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/task.toml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/hello-world-task/tests/test.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/test_claude.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/test_codex.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/test_codex_custom_provider.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/test_gemini.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/test_openclaw.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/traces/minimal-claude.jsonl +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/examples/traces/minimal-opentraces.jsonl +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/README.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/alpha-task/environment/Dockerfile +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/alpha-task/instruction.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/alpha-task/task.toml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/alpha-task/tests/test.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/beta-task/data/empty.bin +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/beta-task/data/unicode.txt +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/beta-task/instruction.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/beta-task/task.toml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/digest/not-a-task/notes.txt +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/mock_acp_agent.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/mock_acp_agent_interleaved.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/mock_acp_agent_multi_turn.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/mock_openai_responses_server.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/Dockerfile +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/data/michigan_stations.txt +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/flood-detection/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/nws-flood-thresholds/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/usgs-data-download/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/instruction.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/solution/solve.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/task.toml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test_outputs.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/Dockerfile +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/climate.csv +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/hydrology.csv +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/land_cover.csv +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/water_temperature.csv +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/contribution-analysis/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/meteorology-driver-classification/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/pca-decomposition/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/trend-analysis/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/instruction.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/solution/solve.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/task.toml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test_outputs.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/manifest.json +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/Dockerfile +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/r2r_simulator.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/finite-horizon-lqr/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/integral-action-design/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/mpc-horizon-tuning/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/state-space-linearization/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/system_config.json +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/instruction.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/solution/solve.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/task.toml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test_outputs.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/Dockerfile +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/generate_training_pcaps.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/local.rules +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/scripts/summarize_http_requests.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/scripts/run_suricata_offline.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-rules-basics/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/suricata.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/instruction.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/solution/solve.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/task.toml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test_outputs.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/Dockerfile +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syz-extract-constants/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzkaller-build-loop/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzlang-ioctl-basics/SKILL.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/instruction.md +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/solution/solve.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/task.toml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test_outputs.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/_consistency.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/agent_judge.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/check_adapter_evidence.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/check_hosted_env_evidence.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/check_results.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/check_skillsbench_harbor_parity.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/check_trace_to_task_evidence.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/claude-agent-acp.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/codex-acp.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/gemini.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/harvey-lab-harness.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/mimo.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/openclaw.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/opencode.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/openhands.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/configs/pi-acp.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/deepagents_harness.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/rubric_checks.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/run.sh +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/run_suite.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/scenarios.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/integration/suites/release.yaml +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acceptance_evidence.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acceptance_live.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acceptance_live_execution.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp_capability_advertising.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp_mcp_servers.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp_model_config_dispatch.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp_pinned_protocol_guard.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_acp_setup_failure_propagation.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_adapter_scripts.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_adapters.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_cli.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_env_resolution.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_gemini_defaults.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_idle_timeout_cli.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_model_decouple.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_registry.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_router.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_router_cli_e2e.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_router_scaffold.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_setup.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agent_spec.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agentcore_builder.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agentcore_parallel.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agentcore_reaper.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agentcore_sandbox.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_agentcore_transport.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_api_error_capture.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_apple_container_sandbox.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_bare_model_provider.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_base_install_imports.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_bedrock_thinking.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_benchflow_experiment_review_validator.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_benchmark_repos_resolve_repo_path.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_branch.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_build_context_stage.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_build_review_pack.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_capture_trajectory.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_check_skillsbench_harbor_parity.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_clawsbench_slice.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_adopt_aliases.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_arg_validation.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_daytona.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_docs_drift.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_edge_case_hardening.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_hub_env.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_cli_misc.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_codex_review.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_codex_self_write_auth.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_config_override.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_config_redaction.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_connect_as_env.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_console_error_truncation.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_continuallearningbench_adapter.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_dataset_registry.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_command_polling.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_dind_compose_up.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_download.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_litellm_runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_poll_deadline.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_daytona_reap.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_deepagents_agent.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_docker_prune_scoping.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_docker_uploads.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_docs_examples.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eng50_capabilities.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_env_registry.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_env_setup.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_environment_manifest_controls.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_artifact_cli.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_filters_applied.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_lift.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_sharding.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_single_task_summary.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_source_provenance.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_worker_retry.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_eval_zero_task_guard.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_evaluation_environment_manifest.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_exclude_tasks.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_filter_credentialed_cells.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_harvey_lab_shim.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_hilbench_adapter.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_hosted_env.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_hosted_env_rollout_contract.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_hub_harbor_registry.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_inbound_adapter_manifest.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_inbound_adapters.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_agent_judge.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_check_results.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_consistency.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_matrix.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_provider_selection.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_run_suite.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_integration_suite.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_internet_policy.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_job.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_job_sequential_shared.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_job_sequential_shared_resume.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_judge_robustness.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_judge_symlink_ingestion.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_learner_skills.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_learner_skills_traversal.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_learner_store.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_learner_store_persistence.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_config.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_hardening.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_logging.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_model_via_env_generic.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_reasoning_passthrough.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_litellm_smoke.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_live_llm_trajectory.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_llm_judge.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_llm_judge_event_tags.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_llm_judge_verifier.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_loop_strategies.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_loop_summary.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_loop_sweep.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_memory_scorer.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_metrics.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_mle_bench_adapter.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_mock_openai_responses_server.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_monitor_scaffold.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_native_acp_usage.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_no_cross_provider_fallback.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_notification_order_real.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_opencode_family_proxy_tracking.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_oracle.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_oracle_chokepoint.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_paths_safe.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_paths_symlink_helpers.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_pi_acp_launcher.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_pi_acp_proxy_routing.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_process.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_project_skills_layout.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_provider_auth_detection.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_providers.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_reexport.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_registry_invariants.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_release_hardening_r5.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_release_version.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_release_workflow_wiring.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_resolve_env_helpers.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_review_boundaries.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_review_rubric.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_review_runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_reward_lenient.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_reward_node.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_reward_range.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_reward_unified_contract.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rewards.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rewards_jsonl.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_architecture.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_branch.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_config_path_coercion.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_environment.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_hard_deadline.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_import_no_side_effects.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_on_ask_user_wiring.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_planes_contract.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_probe_sandbox_health.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_session_factory_dispatch.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_setup_commands.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rollout_upload.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rubric_checks.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_rubric_config.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_runtime_capabilities.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_runtime_config_wired.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_runtime_live_sandbox.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_exec_secret_handling.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_hardening.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_isolation_copy_traversal.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_live_process.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_multi_service.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_prebuilt_validation.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_protocol.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_provider_registry_drift.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_setup.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_snapshot_contract.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_upload_symlink.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sandbox_verifier_workspace.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_scene.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_scene_outbox_trial.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_scene_parallel_group.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_scene_result_aggregation.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_scoring.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sdk_internals.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sdk_lockdown.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sdk_run_alias.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_sealed_channel_container.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_self_gen_cli.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_self_gen_export_error_channel.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_self_gen_export_failures.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_self_gen_orchestration.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_session_factory_runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_session_request_permission_dispatch.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_eval.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_eval_dryrun.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_eval_integration.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_eval_sweep.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_eval_traversal.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_invocation_artifacts.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skill_policy.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skills.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skills_dir_agent_home_link.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skillsbench_conversion_conformance.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_skillsbench_harbor_run_suite.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_smoke.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_smoke_wiring.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_source_adapters.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_subscription_auth.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_check_eval_consistency.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_config.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_digest.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_document.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_export.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_output_format.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_package.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_task_runtime_primitive.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_tasks.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_token_usage_normalization.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trace_import_cli.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trace_task_gen_traversal.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trace_to_task_evidence.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_traces_huggingface.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_traces_parsers.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_traces_task_gen.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_train_cli.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_train_mode_artifact_emission.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_train_trl_cli.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trajectory_integration.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trajectory_streaming.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trial_agent_timeout_verify.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trial_install_agent_timeout.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trial_litellm_runtime.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_trl_integration.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_usage_litellm.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_usage_required.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_usage_tracking.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_user.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_v06_guard_ports.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_document.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_multi_container.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_output.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_output_freshness.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_strategies.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verifier_wedge_retry.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_verify.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_workflow_action_pinning.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/test_yaml_config.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/__init__.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export_adp.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export_atif.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export_common.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export_nan_handling.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_export_prime_sft.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_redaction.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_step_granularity.py +0 -0
- {benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/tests/trajectories/test_tree.py +0 -0
|
@@ -2,9 +2,47 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
### Added
|
|
6
|
+
- **Console progress heartbeat.** Single-concurrency eval runs print a
|
|
7
|
+
throttled progress line (`… 6.2min, 12 tool calls (last: …)`) about every
|
|
8
|
+
45 seconds while the agent works, so a long prompt is distinguishable from
|
|
9
|
+
a hang. The heartbeat is auto-gated off for multi-concurrency jobs;
|
|
10
|
+
`bench eval run --quiet` suppresses it, and `BENCHFLOW_PROGRESS=on`/`off`
|
|
11
|
+
overrides the auto-gate. (#951)
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
- Migrated the clawsbench `archive-amazon-shipping` task to the native
|
|
15
|
+
`task.md` package layout (`bench tasks migrate --remove-legacy`), and a
|
|
16
|
+
clawsbench run launched without `--environment-manifest` now fails with an
|
|
17
|
+
actionable verifier message naming the exact flag to pass instead of an
|
|
18
|
+
opaque connection error. (#952)
|
|
19
|
+
|
|
5
20
|
### Fixed
|
|
6
21
|
- Isolated pull-request and post-test integration concurrency groups so a
|
|
7
22
|
credential-free workflow completion cannot cancel an active PR rollout.
|
|
23
|
+
- **Host-side hard rollout deadline.** An await wedged below the phase-level
|
|
24
|
+
watchdogs (e.g. a Daytona PTY teardown on a dead websocket) could freeze an
|
|
25
|
+
entire eval job. Every rollout attempt now runs under a host-side hard
|
|
26
|
+
deadline derived from the task's own phase budgets plus a fixed margin; a
|
|
27
|
+
trip returns a retryable infra-error result and abandons the sandbox after
|
|
28
|
+
a bounded cleanup grace. Override with `BENCHFLOW_ROLLOUT_HARD_DEADLINE`
|
|
29
|
+
(seconds; `off`/`none`/`0` disables). Verifier timeouts that produced zero
|
|
30
|
+
output are retried once — that signature is an exec-layer wedge, not a slow
|
|
31
|
+
verifier. Agent-sent reasoning parameters are also forwarded through the
|
|
32
|
+
LLM gateway, and DeepSeek routes natively with `reasoning_effort` passed
|
|
33
|
+
verbatim. (#949)
|
|
34
|
+
- Quieter Daytona teardown: successful runs end at the score line — the
|
|
35
|
+
atexit client cleanup no longer prints a cancelled-reader traceback after
|
|
36
|
+
`✓ Score`, and benign engineio PTY-disconnect errors are silenced. (#951)
|
|
37
|
+
- Accept the Harbor 1.3 `[task] version` field in task configs. It is
|
|
38
|
+
informational and stored verbatim; the strict schema previously rejected
|
|
39
|
+
it, which made every Harbor-1.3 curated task unloadable. (#953)
|
|
40
|
+
- Synced the committed `env0@prod` / `env0@outage` environment pins with the
|
|
41
|
+
upstream `benchflow-ai/env0` manifest (the pins had drifted to stale
|
|
42
|
+
service CLI names, a phantom service, and shifted ports), and a manifest
|
|
43
|
+
environment now fails loud when it declares services but none are startable
|
|
44
|
+
in the image, instead of passing a vacuous readiness gate and dying at the
|
|
45
|
+
verifier. (#954)
|
|
8
46
|
|
|
9
47
|
## 0.6.6 — 2026-08-04
|
|
10
48
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: benchflow
|
|
3
|
-
Version: 0.6.7.
|
|
3
|
+
Version: 0.6.7.dev1827
|
|
4
4
|
Summary: Multi-turn agent benchmarking with ACP — run any agent, any model, any provider.
|
|
5
5
|
Project-URL: Homepage, https://github.com/benchflow-ai/benchflow
|
|
6
6
|
Project-URL: Repository, https://github.com/benchflow-ai/benchflow
|
|
@@ -95,11 +95,21 @@ def _looks_like_commit_sha(ref: str) -> bool:
|
|
|
95
95
|
|
|
96
96
|
def _checkout_fetched_ref(repo_root: Path, ref: str) -> None:
|
|
97
97
|
subprocess.run(
|
|
98
|
-
[
|
|
98
|
+
[
|
|
99
|
+
"git",
|
|
100
|
+
"-C",
|
|
101
|
+
str(repo_root),
|
|
102
|
+
"fetch",
|
|
103
|
+
"--quiet",
|
|
104
|
+
"--depth",
|
|
105
|
+
"1",
|
|
106
|
+
"origin",
|
|
107
|
+
ref,
|
|
108
|
+
],
|
|
99
109
|
check=True,
|
|
100
110
|
)
|
|
101
111
|
subprocess.run(
|
|
102
|
-
["git", "-C", str(repo_root), "checkout", "--detach", "FETCH_HEAD"],
|
|
112
|
+
["git", "-C", str(repo_root), "checkout", "--quiet", "--detach", "FETCH_HEAD"],
|
|
103
113
|
check=True,
|
|
104
114
|
)
|
|
105
115
|
|
|
@@ -155,7 +165,10 @@ def _clone_repo_unlocked(org: str, repo: str, ref: str | None = None) -> Path:
|
|
|
155
165
|
try:
|
|
156
166
|
if clone_tmp.exists():
|
|
157
167
|
shutil.rmtree(clone_tmp)
|
|
158
|
-
|
|
168
|
+
# --quiet: raw clone progress ("remote: Counting objects: …") on the
|
|
169
|
+
# console pre-dashboard is noise; the "Cloning …" log line above is
|
|
170
|
+
# the one-line summary. Errors still print (git keeps stderr on fail).
|
|
171
|
+
cmd = ["git", "clone", "--quiet", "--depth", "1"]
|
|
159
172
|
if ref and not _looks_like_commit_sha(ref):
|
|
160
173
|
cmd.extend(["--branch", ref])
|
|
161
174
|
cmd.extend([url, str(clone_tmp)])
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""Process-global registry of live rollouts for the eval dashboard.
|
|
2
|
+
|
|
3
|
+
The Rich dashboard (``cli/_live_progress.py``) renders in the same process as
|
|
4
|
+
the engine's rollouts, so surfacing per-task activity needs no new event
|
|
5
|
+
plumbing: the engine registers each live Rollout under its task name and the
|
|
6
|
+
dashboard polls the rollout's ACP session counters — the exact ones the
|
|
7
|
+
console heartbeat (``ACPSession._maybe_log_progress``) logs — at render time.
|
|
8
|
+
Best-effort by contract: every reader failure degrades to "no activity",
|
|
9
|
+
never to a render error.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
import threading
|
|
15
|
+
from typing import Any
|
|
16
|
+
|
|
17
|
+
_lock = threading.Lock()
|
|
18
|
+
# Task name -> live Rollout. Task basenames are unique keys by engine-wide
|
|
19
|
+
# invariant: the whole run pipeline (resume filtering, result keying — see
|
|
20
|
+
# Evaluation's `d.name not in completed` plan filter) is keyed by basename,
|
|
21
|
+
# so each name is scheduled at most once at a time.
|
|
22
|
+
_live: dict[str, Any] = {}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def register(task_name: str, rollout: Any) -> None:
|
|
26
|
+
"""Expose a live rollout to the dashboard under its task name."""
|
|
27
|
+
with _lock:
|
|
28
|
+
_live[task_name] = rollout
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def unregister(task_name: str) -> None:
|
|
32
|
+
with _lock:
|
|
33
|
+
_live.pop(task_name, None)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def activity(task_name: str) -> tuple[int, str, int | None] | None:
|
|
37
|
+
"""(tool calls, last tool title, total tokens) for a running task.
|
|
38
|
+
|
|
39
|
+
None until the task's agent session exists — including non-ACP
|
|
40
|
+
(session-factory) agents, which never grow an ACP client. The dig into
|
|
41
|
+
client/session state lives on ``Rollout.activity_snapshot()`` (typed,
|
|
42
|
+
owner-side); the except here only guards renders racing rollout teardown.
|
|
43
|
+
"""
|
|
44
|
+
with _lock:
|
|
45
|
+
rollout = _live.get(task_name)
|
|
46
|
+
if rollout is None:
|
|
47
|
+
return None
|
|
48
|
+
try:
|
|
49
|
+
return rollout.activity_snapshot()
|
|
50
|
+
except Exception:
|
|
51
|
+
# Dashboard reads race a live rollout; degrading to "no activity" is
|
|
52
|
+
# always preferable to perturbing the render.
|
|
53
|
+
return None
|
|
@@ -221,6 +221,20 @@ class ACPSession:
|
|
|
221
221
|
# which is otherwise easy to miss in a 64-concurrency log.
|
|
222
222
|
logger.error(f"ACPSession on_change callback failed: {e}")
|
|
223
223
|
|
|
224
|
+
def progress_snapshot(self) -> tuple[int, str]:
|
|
225
|
+
"""(tool-call count, last tool title) — the console heartbeat's
|
|
226
|
+
counters, also polled by the live eval dashboard's activity cell.
|
|
227
|
+
|
|
228
|
+
The title is the raw first line (untruncated — display width belongs
|
|
229
|
+
to each render site); ``split`` not ``splitlines`` so a whitespace-only
|
|
230
|
+
title strips to ``""`` instead of raising on an empty line list.
|
|
231
|
+
"""
|
|
232
|
+
title = ""
|
|
233
|
+
if self.tool_calls:
|
|
234
|
+
last = self.tool_calls[-1]
|
|
235
|
+
title = (last.title or last.kind or "").strip().split("\n", 1)[0]
|
|
236
|
+
return len(self.tool_calls), title
|
|
237
|
+
|
|
224
238
|
def _maybe_log_progress(self) -> None:
|
|
225
239
|
if not self._progress_enabled or self._prompt_started_at is None:
|
|
226
240
|
return
|
|
@@ -229,12 +243,10 @@ class ACPSession:
|
|
|
229
243
|
return
|
|
230
244
|
self._last_progress_at = now
|
|
231
245
|
elapsed_min = (now - self._prompt_started_at) / 60.0
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
if title:
|
|
237
|
-
line += f" (last: {title})"
|
|
246
|
+
calls, title = self.progress_snapshot()
|
|
247
|
+
line = f" … {elapsed_min:.1f}min, {calls} tool calls"
|
|
248
|
+
if title:
|
|
249
|
+
line += f" (last: {title[:60]})"
|
|
238
250
|
logger.info(line)
|
|
239
251
|
|
|
240
252
|
def record_user_prompt(self, text: str) -> None:
|
|
@@ -27,6 +27,7 @@ from rich.markup import escape
|
|
|
27
27
|
from rich.table import Table
|
|
28
28
|
from rich.text import Text
|
|
29
29
|
|
|
30
|
+
from benchflow._utils import live_activity
|
|
30
31
|
from benchflow.cli._shared import console
|
|
31
32
|
from benchflow.usage_tracking import is_trusted_usage_source
|
|
32
33
|
|
|
@@ -127,6 +128,27 @@ def _fmt_tokens(n: int) -> str:
|
|
|
127
128
|
return str(n)
|
|
128
129
|
|
|
129
130
|
|
|
131
|
+
def _activity_cell(name: str) -> str:
|
|
132
|
+
"""Per-task activity for the "running now" table, e.g.
|
|
133
|
+
``38 calls · last: file_editor``.
|
|
134
|
+
|
|
135
|
+
Polls the live rollout's ACP session counters — the same ones the console
|
|
136
|
+
heartbeat logs, which the Live display otherwise mutes — via the
|
|
137
|
+
live-activity registry. Empty until the agent session exists. Tokens appear
|
|
138
|
+
only once the session has a usage snapshot (i.e. after a completed prompt).
|
|
139
|
+
"""
|
|
140
|
+
snap = live_activity.activity(name)
|
|
141
|
+
if snap is None:
|
|
142
|
+
return ""
|
|
143
|
+
calls, last_title, tokens = snap
|
|
144
|
+
cell = f"{calls} calls"
|
|
145
|
+
if tokens:
|
|
146
|
+
cell += f" · {_fmt_tokens(tokens)} tok"
|
|
147
|
+
if last_title:
|
|
148
|
+
cell += f" · last: {last_title[:30]}"
|
|
149
|
+
return cell
|
|
150
|
+
|
|
151
|
+
|
|
130
152
|
class LiveEvalProgress:
|
|
131
153
|
"""A live ``Live``-rendered dashboard, driven by the engine's progress hooks.
|
|
132
154
|
|
|
@@ -295,17 +317,23 @@ class LiveEvalProgress:
|
|
|
295
317
|
)
|
|
296
318
|
tbl.add_column("running now", no_wrap=True)
|
|
297
319
|
tbl.add_column("elapsed", justify="right")
|
|
320
|
+
tbl.add_column("activity", no_wrap=True)
|
|
298
321
|
now = time.monotonic()
|
|
299
322
|
for name in sorted(running, key=lambda n: running[n])[:_MAX_RUNNING_ROWS]:
|
|
300
323
|
# Text() so a task name containing Rich markup (`[` is legal in
|
|
301
324
|
# SkillsBench dir names) is rendered literally, not parsed as
|
|
302
325
|
# markup — a MarkupError here escapes __rich__ and aborts the
|
|
303
326
|
# CLI on live-context exit, violating this module's "a render
|
|
304
|
-
# bug can never perturb a run" contract.
|
|
305
|
-
|
|
327
|
+
# bug can never perturb a run" contract. Same for the activity
|
|
328
|
+
# cell, which carries agent-authored tool titles.
|
|
329
|
+
tbl.add_row(
|
|
330
|
+
Text(name),
|
|
331
|
+
_fmt_dur(now - running[name]),
|
|
332
|
+
Text(_activity_cell(name), style="dim"),
|
|
333
|
+
)
|
|
306
334
|
extra = len(running) - _MAX_RUNNING_ROWS
|
|
307
335
|
if extra > 0:
|
|
308
|
-
tbl.add_row(f"… {extra} more", "")
|
|
336
|
+
tbl.add_row(f"… {extra} more", "", "")
|
|
309
337
|
parts.append(tbl)
|
|
310
338
|
|
|
311
339
|
# Footer: pass-rate (excl errors) + token/cost economics. Show "—" (not
|
|
@@ -1250,11 +1250,20 @@ class Evaluation:
|
|
|
1250
1250
|
|
|
1251
1251
|
return await run_self_gen(rollout_config)
|
|
1252
1252
|
rollout = await Rollout.create(rollout_config)
|
|
1253
|
-
#
|
|
1254
|
-
#
|
|
1255
|
-
# benchflow.
|
|
1256
|
-
|
|
1257
|
-
|
|
1253
|
+
# Expose the live rollout to the eval dashboard's activity cell —
|
|
1254
|
+
# a same-process poll of the session's heartbeat counters, see
|
|
1255
|
+
# benchflow._utils.live_activity.
|
|
1256
|
+
from benchflow._utils import live_activity
|
|
1257
|
+
|
|
1258
|
+
live_activity.register(task_dir.name, rollout)
|
|
1259
|
+
try:
|
|
1260
|
+
# Rollout.run() enforces its own host-side hard deadline against
|
|
1261
|
+
# awaits wedged below the phase-level timeouts — see
|
|
1262
|
+
# benchflow.rollout._deadline. A trip surfaces here as a normal
|
|
1263
|
+
# infra-retryable error result.
|
|
1264
|
+
return await rollout.run()
|
|
1265
|
+
finally:
|
|
1266
|
+
live_activity.unregister(task_dir.name)
|
|
1258
1267
|
|
|
1259
1268
|
async def _run_single_task_legacy(
|
|
1260
1269
|
self, task_dir: Path, cfg: EvaluationConfig
|
|
@@ -755,6 +755,23 @@ class Rollout:
|
|
|
755
755
|
def acp_client(self) -> Any:
|
|
756
756
|
return self._acp_client
|
|
757
757
|
|
|
758
|
+
def activity_snapshot(self) -> tuple[int, str, int | None] | None:
|
|
759
|
+
"""(tool calls, last tool title, total tokens) for the eval
|
|
760
|
+
dashboard's activity cell, or None before the agent session exists.
|
|
761
|
+
|
|
762
|
+
Rollout owns the client/session dig so a rename breaks here — in
|
|
763
|
+
typed, tested code — instead of silently blanking the dashboard cell
|
|
764
|
+
(see benchflow._utils.live_activity). Session-factory agents have no
|
|
765
|
+
ACP client and always return None.
|
|
766
|
+
"""
|
|
767
|
+
session = self._acp_client.session if self._acp_client else None
|
|
768
|
+
if session is None:
|
|
769
|
+
return None
|
|
770
|
+
calls, last_title = session.progress_snapshot()
|
|
771
|
+
usage = session.latest_usage_totals()
|
|
772
|
+
tokens = usage.get("total_tokens") if usage else None
|
|
773
|
+
return calls, last_title, tokens
|
|
774
|
+
|
|
758
775
|
@property
|
|
759
776
|
def trajectory(self) -> list[dict]:
|
|
760
777
|
return self._trajectory
|
|
@@ -2401,7 +2418,11 @@ class Rollout:
|
|
|
2401
2418
|
TrajectoryWriter(
|
|
2402
2419
|
self._rollout_dir / "trajectory" / "acp_trajectory.jsonl"
|
|
2403
2420
|
).write_final(self._trajectory)
|
|
2404
|
-
|
|
2421
|
+
# info, not warning: trajectory repair is evidence-mutation an auditor
|
|
2422
|
+
# should find at default (non-TTY/CI) verbosity, but as a warning it
|
|
2423
|
+
# survived the live dashboard's WARNING+ replay and printed between
|
|
2424
|
+
# teardown and the score line (dogfood 2026-08-09).
|
|
2425
|
+
logger.info(
|
|
2405
2426
|
"Repaired %d lossy ACP tool event(s) from trusted provider capture",
|
|
2406
2427
|
repaired,
|
|
2407
2428
|
)
|
|
@@ -92,6 +92,85 @@ def test_trusted_telemetry_accumulates():
|
|
|
92
92
|
assert d._covered == 2
|
|
93
93
|
|
|
94
94
|
|
|
95
|
+
class _FakeSession:
|
|
96
|
+
def progress_snapshot(self):
|
|
97
|
+
return 38, "file_editor"
|
|
98
|
+
|
|
99
|
+
def latest_usage_totals(self):
|
|
100
|
+
return {"total_tokens": 1500}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def test_activity_cell_polls_live_session_counters():
|
|
104
|
+
# Per-task activity in the running-now table (fresh-user dogfood
|
|
105
|
+
# 2026-08-09): the heartbeat's counters must reach the dashboard, since
|
|
106
|
+
# the Live mutes the logged heartbeat line itself.
|
|
107
|
+
from benchflow._utils import live_activity
|
|
108
|
+
from benchflow.cli._live_progress import _activity_cell
|
|
109
|
+
|
|
110
|
+
live_activity.register(
|
|
111
|
+
"edit-pdf", SimpleNamespace(activity_snapshot=lambda: (38, "file_editor", 1500))
|
|
112
|
+
)
|
|
113
|
+
try:
|
|
114
|
+
assert _activity_cell("edit-pdf") == "38 calls · 1.5k tok · last: file_editor"
|
|
115
|
+
finally:
|
|
116
|
+
live_activity.unregister("edit-pdf")
|
|
117
|
+
# Unregistered tasks (and pre-session rollouts) degrade to empty, not raise.
|
|
118
|
+
assert _activity_cell("edit-pdf") == ""
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def test_rollout_activity_snapshot_reads_acp_session():
|
|
122
|
+
# The client/session dig lives on Rollout (typed, owner-side) so a rename
|
|
123
|
+
# of session counters breaks HERE instead of silently blanking the cell.
|
|
124
|
+
from benchflow.rollout import Rollout
|
|
125
|
+
|
|
126
|
+
connected = SimpleNamespace(_acp_client=SimpleNamespace(session=_FakeSession()))
|
|
127
|
+
assert Rollout.activity_snapshot(connected) == (38, "file_editor", 1500)
|
|
128
|
+
# Pre-connect (and session-factory) rollouts have no client -> None.
|
|
129
|
+
assert Rollout.activity_snapshot(SimpleNamespace(_acp_client=None)) is None
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def test_dashboard_renders_activity_for_registered_running_task():
|
|
133
|
+
# End-to-end through __rich__: a registered running task's activity must
|
|
134
|
+
# appear in the rendered panel — reverting the table wiring fails this.
|
|
135
|
+
import io
|
|
136
|
+
|
|
137
|
+
from benchflow._utils import live_activity
|
|
138
|
+
|
|
139
|
+
live_activity.register(
|
|
140
|
+
"edit-pdf", SimpleNamespace(activity_snapshot=lambda: (38, "file_editor", None))
|
|
141
|
+
)
|
|
142
|
+
try:
|
|
143
|
+
d = _dash()
|
|
144
|
+
d.on_plan(total=1, done=0, remaining=1)
|
|
145
|
+
d.on_task_start("edit-pdf")
|
|
146
|
+
out = Console(file=io.StringIO(), width=120)
|
|
147
|
+
out.print(d.__rich__())
|
|
148
|
+
text = out.file.getvalue()
|
|
149
|
+
assert "38 calls" in text
|
|
150
|
+
assert "file_editor" in text
|
|
151
|
+
finally:
|
|
152
|
+
live_activity.unregister("edit-pdf")
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def test_activity_cell_empty_before_session_exists():
|
|
156
|
+
from benchflow._utils import live_activity
|
|
157
|
+
from benchflow.cli._live_progress import _activity_cell
|
|
158
|
+
|
|
159
|
+
# Rollout registered but not yet connected (no ACP client / session):
|
|
160
|
+
# the cell stays empty and the render is unperturbed.
|
|
161
|
+
live_activity.register(
|
|
162
|
+
"warming-up", SimpleNamespace(activity_snapshot=lambda: None)
|
|
163
|
+
)
|
|
164
|
+
try:
|
|
165
|
+
assert _activity_cell("warming-up") == ""
|
|
166
|
+
d = _dash()
|
|
167
|
+
d.on_plan(total=1, done=0, remaining=1)
|
|
168
|
+
d.on_task_start("warming-up")
|
|
169
|
+
d.__rich__() # builds the running-now table row; must not raise
|
|
170
|
+
finally:
|
|
171
|
+
live_activity.unregister("warming-up")
|
|
172
|
+
|
|
173
|
+
|
|
95
174
|
def test_progress_enabled_respects_tty_and_optout(monkeypatch):
|
|
96
175
|
tty = SimpleNamespace(is_terminal=True)
|
|
97
176
|
notty = SimpleNamespace(is_terminal=False)
|
|
@@ -75,6 +75,28 @@ def test_heartbeat_silent_when_disabled(monkeypatch, caplog):
|
|
|
75
75
|
assert not [r for r in caplog.records if "tool calls" in r.message]
|
|
76
76
|
|
|
77
77
|
|
|
78
|
+
def test_progress_snapshot_exposes_heartbeat_counters(monkeypatch):
|
|
79
|
+
"""The dashboard's activity cell polls the same counters the line logs."""
|
|
80
|
+
monkeypatch.setenv("BENCHFLOW_PROGRESS", "off")
|
|
81
|
+
s = ACPSession("sid")
|
|
82
|
+
assert s.progress_snapshot() == (0, "")
|
|
83
|
+
_drive_tool_call(s, "tc1")
|
|
84
|
+
assert s.progress_snapshot() == (1, "IPython cell")
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def test_progress_snapshot_whitespace_only_title(monkeypatch):
|
|
88
|
+
"""A whitespace-only title strips to "" instead of raising IndexError
|
|
89
|
+
|
|
90
|
+
(truthy title -> strip() -> "" -> splitlines() == [] under the old code).
|
|
91
|
+
"""
|
|
92
|
+
monkeypatch.setenv("BENCHFLOW_PROGRESS", "off")
|
|
93
|
+
s = ACPSession("sid")
|
|
94
|
+
s.handle_update(
|
|
95
|
+
{"sessionUpdate": "tool_call", "toolCallId": "tc1", "title": " ", "kind": ""}
|
|
96
|
+
)
|
|
97
|
+
assert s.progress_snapshot() == (1, "")
|
|
98
|
+
|
|
99
|
+
|
|
78
100
|
def test_heartbeat_silent_outside_prompt(monkeypatch, caplog):
|
|
79
101
|
"""No heartbeat before the first prompt or after mark_prompt_end."""
|
|
80
102
|
monkeypatch.setenv("BENCHFLOW_PROGRESS", "on")
|
|
@@ -51,6 +51,7 @@ def test_skillsbench_alias_clones_main_branch(tmp_path, monkeypatch):
|
|
|
51
51
|
[
|
|
52
52
|
"git",
|
|
53
53
|
"clone",
|
|
54
|
+
"--quiet",
|
|
54
55
|
"--depth",
|
|
55
56
|
"1",
|
|
56
57
|
"--branch",
|
|
@@ -733,13 +734,24 @@ def test_resolve_source_with_sha_ref_fetches_after_clone(tmp_path, monkeypatch):
|
|
|
733
734
|
[
|
|
734
735
|
"git",
|
|
735
736
|
"clone",
|
|
737
|
+
"--quiet",
|
|
736
738
|
"--depth",
|
|
737
739
|
"1",
|
|
738
740
|
"https://github.com/org/repo.git",
|
|
739
741
|
str(clone_tmp),
|
|
740
742
|
],
|
|
741
|
-
[
|
|
742
|
-
|
|
743
|
+
[
|
|
744
|
+
"git",
|
|
745
|
+
"-C",
|
|
746
|
+
str(clone_tmp),
|
|
747
|
+
"fetch",
|
|
748
|
+
"--quiet",
|
|
749
|
+
"--depth",
|
|
750
|
+
"1",
|
|
751
|
+
"origin",
|
|
752
|
+
sha_ref,
|
|
753
|
+
],
|
|
754
|
+
["git", "-C", str(clone_tmp), "checkout", "--quiet", "--detach", "FETCH_HEAD"],
|
|
743
755
|
]
|
|
744
756
|
|
|
745
757
|
|
|
@@ -760,8 +772,8 @@ def test_resolve_source_with_ref_refreshes_cached_checkout(tmp_path, monkeypatch
|
|
|
760
772
|
resolve_source("org/repo", path="tasks", ref="main")
|
|
761
773
|
|
|
762
774
|
assert calls == [
|
|
763
|
-
["git", "-C", str(cache), "fetch", "--depth", "1", "origin", "main"],
|
|
764
|
-
["git", "-C", str(cache), "checkout", "--detach", "FETCH_HEAD"],
|
|
775
|
+
["git", "-C", str(cache), "fetch", "--quiet", "--depth", "1", "origin", "main"],
|
|
776
|
+
["git", "-C", str(cache), "checkout", "--quiet", "--detach", "FETCH_HEAD"],
|
|
765
777
|
]
|
|
766
778
|
|
|
767
779
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/build_context_stage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/dataset_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
{benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/evaluation_results.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/source_provenance.py
RENAMED
|
File without changes
|
{benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/_utils/task_authoring/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/acp/container_transport.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon_container.py
RENAMED
|
File without changes
|
{benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon_fake_mail.py
RENAMED
|
File without changes
|
|
File without changes
|
{benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/_toolathlon_services.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/adapters/resources/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchflow-0.6.7.dev1823 → benchflow-0.6.7.dev1827}/src/benchflow/agents/deepagents_acp_shim.py
RENAMED
|
File without changes
|
|
File without changes
|