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