benchflow 0.7.2.dev1980__tar.gz → 0.7.2.dev1986__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.dev1980 → benchflow-0.7.2.dev1986}/CHANGELOG.md +22 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/PKG-INFO +1 -1
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/pyproject.toml +1 -1
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/traj.py +109 -1
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/viewer.py +78 -67
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_traj_upload_cli.py +135 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/.gitignore +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/LICENSE +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/README.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_dotenv.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_paths.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_run.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_types.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/benchmark_repos.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/build_context_stage.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/config.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/config_override.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/content_address.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/dataset_registry.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/env_registry.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/evaluation_results.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/hf_datasets.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/json_safe.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/learner_memory.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/live_activity.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/result_metadata.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/reward_events.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/scoring.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/source_provenance.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/task_authoring/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/task_authoring/_evidence_paths.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/task_authoring/acceptance_evidence.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/task_authoring/scaffolding.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/task_authoring/structural_checks.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/text.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/yaml_loader.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/acp/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/acp/client.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/acp/container_transport.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/acp/runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/acp/selection.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/acp/session.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/acp/transport.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/acp/types.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/_toolathlon.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/_toolathlon_container.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/_toolathlon_fake_mail.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/_toolathlon_poste_users.tsv +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/_toolathlon_services.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/harbor.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/inbound.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/inspect_ai.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/ors.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/resources/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/resources/mcp_atlas_bridge.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/resources/mcp_atlas_judge.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/source.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agent_router.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agent_router_guide.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agent_router_parity.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agent_router_scaffold.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/codex_config.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/credentials.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/deepagents_acp_shim.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/env.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/errors.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/harvey_lab_acp_shim.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/install.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/manifest.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/openclaw_acp_shim.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/pi_acp_launcher.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/protocol.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/providers.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/registry.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/agents/remote_manifests.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/branch.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/_failure_evidence.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/_hosted_env.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/_live_progress.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/_options.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/_shared.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/_traj_upload_ui.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/adopt.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/agent.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/continue_cmd.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/environment.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/eval_artifacts.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/eval_lift.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/hub.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/main.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/monitor.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/review.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/sandbox.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/skills.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/tasks.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/trace_import.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/cli/train.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/continue_run/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/continue_run/batch.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/continue_run/orchestrator.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/continue_run/replay_proxy.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/continue_run/run_folder.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/continue_run/sandbox_proxy.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/contracts/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/contracts/planes.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/contracts/user.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/demo_task/environment/Dockerfile +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/demo_task/instruction.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/demo_task/task.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/demo_task/task.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/demo_task/tests/test.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/diagnostics.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/environment/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/environment/_registry/env0@outage.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/environment/_registry/env0@prod.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/environment/manifest.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/environment/manifest_env.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/environment/protocol.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/environment/readiness.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/eval_artifacts.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/eval_lift.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/eval_plan.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/eval_sharding.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/eval_worker.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/evaluation.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/experimental/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/experimental/mcp/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/experimental/mcp/hooks.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/experimental/mcp/reviewer_server.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/hosted_env.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/hub/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/hub/harbor_registry.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/integrations/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/integrations/trl/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/integrations/trl/spec.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/learner_skills.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/learner_store.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/loop_strategies.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/loop_sweep.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/metrics.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/models.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/monitor.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/providers/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/providers/litellm_bedrock_patch.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/providers/litellm_bedrock_preflight.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/providers/litellm_config.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/providers/litellm_logging.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/providers/litellm_runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/providers/runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/publish/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/publish/_progress.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/publish/azure_blob.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/publish/broker.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/publish/huggingface.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/publish/redact.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/publish/traj_capture.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/publish/traj_report.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/py.typed +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/review/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/review/config.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/review/default-rubric.json +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/review/prompts.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/review/runner.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/review/wrapper.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/README.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/builtins.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/events.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/file_readers.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/llm.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/memory_scorer.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/node.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/protocol.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/rubric.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/rubric_config.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rewards/validation.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout/_config.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout/_deadline.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout/_results.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout/_setup.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout/_skills.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout/_usage.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout/_user_loop.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout/session_factory_runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout/task_runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout_branch.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/rollout_planes.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/_base.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/_cache_reclaim.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/_compose.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/_compose_files/docker-compose-base.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/_compose_files/docker-compose-build.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/_compose_files/docker-compose-no-network.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/_compose_files/docker-compose-prebuilt.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/_sdk_ops.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/agentcore.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/agentcore_builder.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/agentcore_image.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/agentcore_provisioning.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/agentcore_reaper.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/agentcore_sealed.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/apple_container.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/daytona.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/daytona_dind.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/daytona_pty.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/daytona_reaper.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/daytona_strategies.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/docker.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/lockdown.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/metadata.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/modal_impl.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/process/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/process/_base.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/process/agentcore.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/process/apple.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/process/daytona.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/process/docker.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/protocol.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/providers.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/services.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/setup.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/snapshot.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sandbox/user.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/scenes.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/sdk.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/self_gen.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/skill_eval/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/skill_eval/_core.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/skill_eval/gepa_export.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/skill_eval/schema.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/skill_policy.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/skills.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/_document_evidence.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/_document_normalize.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/_document_parse.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/_document_profiles.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/acceptance_live.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/acceptance_live_model.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/acceptance_live_report.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/acceptance_live_validation.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/config.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/discovery.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/document.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/env.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/export.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/imports.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/output_format.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/package.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/paths.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/prompts.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/runtime_capabilities.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/runtime_view.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/task.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/verifier.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/verifier_core.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/verifier_document.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/verifier_errors.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/verifier_judge_inputs.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/verifier_ors_episode.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/verifier_reward_kit.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/verifier_scan.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/task/verifier_script_strategy.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/templates/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/templates/judge.py.tmpl +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/templates/test.sh.tmpl +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/traces/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/traces/huggingface.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/traces/local.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/traces/models.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/traces/parsers.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/traces/task_gen.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/training/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/training/backends/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/training/backends/prime_rl.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/training/run_manifest.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/_capture.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/_export_common.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/_llm_capture.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/call_purpose.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/export.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/export_adp.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/export_atif.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/export_prime_sft.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/export_trl_sft.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/metrics.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/results.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/sessions.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/tree.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/trl_sft_tokenization.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/trajectories/types.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/usage_tracking.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/acceptance_live_harness.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/agents/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/agents/test_manifest_dirscan.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/agents/test_manifest_loader.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/agents/test_manifest_parity.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/agents/test_manifest_wiring.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/agents/test_namespace_shorthand.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/agents/test_plugin_entry_points.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/agents/test_protocol.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/agents/test_remote_manifest_autoload.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/README.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/acp_smoke/environment/Dockerfile +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/acp_smoke/environment/docker-compose.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/acp_smoke/environment/skills/conformance-writer/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/acp_smoke/instruction.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/acp_smoke/solution/solve.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/acp_smoke/task.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/acp_smoke/task.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/acp_smoke/tests/test.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/conformance-results.json +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/proof_multi_agent.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/proof_snapshot.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/run_conformance.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conformance/self_gen_smoke_skills/skill-creator/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/conftest.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/continue_run/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/continue_run/_helpers.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/continue_run/test_batch.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/continue_run/test_orchestrator.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/continue_run/test_replay_proxy.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/continue_run/test_run_folder.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/environment/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/environment/test_chibench_manifest.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/environment/test_clawsbench_manifest.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/environment/test_manifest.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/environment/test_manifest_env.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/environment/test_protocol.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/environment/test_readiness.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/hello-world-task/environment/Dockerfile +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/hello-world-task/instruction.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/hello-world-task/solution/solve.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/hello-world-task/task.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/hello-world-task/task.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/hello-world-task/tests/test.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/test_claude.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/test_codex.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/test_codex_custom_provider.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/test_gemini.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/test_openclaw.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/traces/minimal-claude.jsonl +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/examples/traces/minimal-opentraces.jsonl +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/digest/README.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/digest/alpha-task/environment/Dockerfile +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/digest/alpha-task/instruction.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/digest/alpha-task/task.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/digest/alpha-task/tests/test.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/digest/beta-task/data/empty.bin +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/digest/beta-task/data/unicode.txt +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/digest/beta-task/instruction.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/digest/beta-task/task.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/digest/not-a-task/notes.txt +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/mock_acp_agent.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/mock_acp_agent_interleaved.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/mock_acp_agent_multi_turn.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/mock_openai_responses_server.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/Dockerfile +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/data/michigan_stations.txt +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/flood-detection/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/nws-flood-thresholds/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/usgs-data-download/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/flood-risk-analysis/instruction.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/flood-risk-analysis/solution/solve.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/flood-risk-analysis/task.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test_outputs.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/Dockerfile +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/climate.csv +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/hydrology.csv +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/land_cover.csv +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/water_temperature.csv +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/contribution-analysis/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/meteorology-driver-classification/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/pca-decomposition/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/trend-analysis/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/instruction.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/solution/solve.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/task.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test_outputs.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/manifest.json +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/Dockerfile +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/r2r_simulator.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/finite-horizon-lqr/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/integral-action-design/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/mpc-horizon-tuning/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/state-space-linearization/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/system_config.json +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/instruction.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/solution/solve.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/task.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test_outputs.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/Dockerfile +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/generate_training_pcaps.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/local.rules +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/scripts/summarize_http_requests.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/scripts/run_suricata_offline.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-rules-basics/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/suricata.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/instruction.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/solution/solve.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/task.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test_outputs.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/Dockerfile +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syz-extract-constants/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzkaller-build-loop/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzlang-ioctl-basics/SKILL.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/instruction.md +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/solution/solve.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/task.toml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test_outputs.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/_consistency.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/agent_judge.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/check_adapter_evidence.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/check_hosted_env_evidence.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/check_results.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/check_skillsbench_harbor_parity.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/check_trace_to_task_evidence.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/configs/claude-agent-acp.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/configs/codex-acp.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/configs/gemini.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/configs/harvey-lab-harness.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/configs/mimo.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/configs/openclaw.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/configs/opencode.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/configs/openhands.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/configs/pi-acp.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/deepagents_harness.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/rubric_checks.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/run.sh +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/run_suite.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/scenarios.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/integration/suites/release.yaml +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_acceptance_evidence.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_acceptance_live.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_acceptance_live_execution.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_acp.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_acp_capability_advertising.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_acp_mcp_servers.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_acp_model_config_dispatch.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_acp_pinned_protocol_guard.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_acp_setup_failure_propagation.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_adapter_scripts.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_adapters.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agent_cli.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agent_env_resolution.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agent_gemini_defaults.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agent_idle_timeout_cli.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agent_model_decouple.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agent_registry.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agent_router.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agent_router_cli_e2e.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agent_router_scaffold.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agent_setup.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agent_spec.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agentcore_builder.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agentcore_parallel.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agentcore_reaper.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agentcore_sandbox.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_agentcore_transport.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_api_error_capture.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_apple_container_sandbox.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_bare_model_provider.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_base_install_imports.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_bedrock_thinking.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_benchflow_experiment_review_validator.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_benchmark_repos_resolve_repo_path.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_branch.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_build_context_stage.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_build_review_pack.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_capture_trajectory.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_check_skillsbench_harbor_parity.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_clawsbench_slice.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_cli_adopt_aliases.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_cli_arg_validation.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_cli_daytona.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_cli_docs_drift.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_cli_edge_case_hardening.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_cli_hub_env.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_cli_live_progress.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_cli_misc.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_codex_review.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_codex_self_write_auth.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_config_override.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_config_redaction.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_connect_as_env.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_console_error_truncation.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_console_progress.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_continuallearningbench_adapter.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_dataset_registry.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_daytona_command_polling.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_daytona_dind_compose_up.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_daytona_download.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_daytona_litellm_runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_daytona_poll_deadline.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_daytona_reap.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_deepagents_agent.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_diagnostics.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_docker_prune_scoping.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_docker_uploads.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_docs_examples.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_eng50_capabilities.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_env_registry.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_env_setup.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_environment_manifest_controls.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_eval_artifact_cli.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_eval_filters_applied.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_eval_lift.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_eval_sharding.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_eval_single_task_summary.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_eval_source_provenance.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_eval_worker_retry.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_eval_zero_task_guard.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_evaluation_environment_manifest.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_exclude_tasks.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_filter_credentialed_cells.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_harvey_lab_shim.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_hilbench_adapter.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_hosted_env.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_hosted_env_rollout_contract.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_hub_harbor_registry.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_inbound_adapter_manifest.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_inbound_adapters.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_integration_agent_judge.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_integration_check_results.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_integration_consistency.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_integration_matrix.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_integration_provider_selection.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_integration_run_suite.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_integration_suite.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_internet_policy.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_job.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_job_sequential_shared.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_job_sequential_shared_resume.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_judge_robustness.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_judge_symlink_ingestion.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_learner_skills.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_learner_skills_traversal.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_learner_store.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_learner_store_persistence.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_litellm_config.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_litellm_hardening.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_litellm_logging.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_litellm_model_via_env_generic.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_litellm_reasoning_passthrough.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_litellm_runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_litellm_smoke.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_live_llm_trajectory.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_llm_judge.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_llm_judge_event_tags.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_llm_judge_verifier.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_loop_strategies.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_loop_summary.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_loop_sweep.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_memory_scorer.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_metrics.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_mle_bench_adapter.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_mock_openai_responses_server.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_monitor_scaffold.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_native_acp_usage.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_no_cross_provider_fallback.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_notification_order_real.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_opencode_family_proxy_tracking.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_oracle.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_oracle_chokepoint.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_paths_safe.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_paths_symlink_helpers.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_pi_acp_launcher.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_pi_acp_proxy_routing.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_process.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_project_skills_layout.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_provider_auth_detection.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_providers.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_publish_azure_blob.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_reexport.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_registry_invariants.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_release_hardening_r5.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_release_version.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_release_workflow_wiring.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_resolve_env_helpers.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_review_boundaries.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_review_rubric.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_review_runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_reward_lenient.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_reward_node.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_reward_range.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_reward_unified_contract.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rewards.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rewards_jsonl.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_architecture.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_branch.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_config_path_coercion.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_environment.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_hard_deadline.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_import_no_side_effects.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_on_ask_user_wiring.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_planes_contract.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_probe_sandbox_health.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_session_factory_dispatch.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_setup_commands.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rollout_upload.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rubric_checks.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_rubric_config.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_runtime_capabilities.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_runtime_config_wired.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_runtime_live_sandbox.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_exec_secret_handling.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_hardening.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_isolation_copy_traversal.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_live_process.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_multi_service.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_prebuilt_validation.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_protocol.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_provider_registry_drift.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_setup.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_snapshot_contract.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_upload_symlink.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sandbox_verifier_workspace.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_scene.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_scene_outbox_trial.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_scene_parallel_group.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_scene_result_aggregation.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_scoring.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sdk_internals.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sdk_lockdown.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sdk_run_alias.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_sealed_channel_container.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_self_gen_cli.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_self_gen_export_error_channel.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_self_gen_export_failures.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_self_gen_orchestration.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_session_factory_runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_session_request_permission_dispatch.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_skill_eval.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_skill_eval_dryrun.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_skill_eval_integration.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_skill_eval_sweep.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_skill_eval_traversal.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_skill_invocation_artifacts.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_skill_policy.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_skills.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_skills_dir_agent_home_link.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_skillsbench_conversion_conformance.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_skillsbench_harbor_run_suite.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_smoke.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_smoke_wiring.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_source_adapters.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_subscription_auth.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_task_check_eval_consistency.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_task_config.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_task_digest.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_task_document.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_task_download.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_task_export.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_task_output_format.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_task_package.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_task_runtime_primitive.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_tasks.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_token_usage_normalization.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_trace_import_cli.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_trace_task_gen_traversal.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_trace_to_task_evidence.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_traces_huggingface.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_traces_parsers.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_traces_task_gen.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_train_cli.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_train_mode_artifact_emission.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_train_trl_cli.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_traj_report.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_traj_staging_phases.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_traj_upload_skill.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_trajectory_integration.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_trajectory_streaming.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_trajectory_upload_layout.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_trajectory_upload_service.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_trial_agent_timeout_verify.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_trial_install_agent_timeout.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_trial_litellm_runtime.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_trl_integration.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_usage_litellm.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_usage_required.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_usage_tracking.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_user.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_v06_guard_ports.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_verifier_document.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_verifier_multi_container.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_verifier_output.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_verifier_output_freshness.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_verifier_strategies.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_verifier_wedge_retry.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_verify.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_workflow_action_pinning.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/test_yaml_config.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/trajectories/__init__.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/trajectories/test_export.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/trajectories/test_export_adp.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/trajectories/test_export_atif.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/trajectories/test_export_common.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/trajectories/test_export_nan_handling.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/trajectories/test_export_prime_sft.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/trajectories/test_redaction.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/trajectories/test_step_granularity.py +0 -0
- {benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/tests/trajectories/test_tree.py +0 -0
|
@@ -2,6 +2,28 @@
|
|
|
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
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- **Trajectory viewer restyled to match www.benchflow.ai.** All three
|
|
18
|
+
`bench eval view` pages (stream-json/JSONL, ACP events, multi-turn trial)
|
|
19
|
+
now share one inline stylesheet with the site's design language: light
|
|
20
|
+
monochrome palette (`#fafafa` page, white cards, `#0a0a0a` ink, dark
|
|
21
|
+
`#141414` code blocks), Satoshi/Google Sans Code font stacks with
|
|
22
|
+
system-safe fallbacks, mono pill badges, and a small BenchFlow wordmark
|
|
23
|
+
header with the inline SVG logo. Pages remain fully offline (no external
|
|
24
|
+
font or CDN requests) and content/structure semantics are unchanged;
|
|
25
|
+
follows the contributor paste-line flow from #1013.
|
|
26
|
+
|
|
5
27
|
## 0.7.1 — 2026-08-16
|
|
6
28
|
|
|
7
29
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: benchflow
|
|
3
|
-
Version: 0.7.2.
|
|
3
|
+
Version: 0.7.2.dev1986
|
|
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
|
|
@@ -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,
|
|
@@ -127,6 +129,7 @@ class _UploadOptions:
|
|
|
127
129
|
github_id: str | None
|
|
128
130
|
email: str | None
|
|
129
131
|
source_id: str | None
|
|
132
|
+
repo: bool
|
|
130
133
|
direct: bool
|
|
131
134
|
container_url: str | None
|
|
132
135
|
dry_run: bool
|
|
@@ -223,6 +226,14 @@ def register_traj(app: typer.Typer) -> None:
|
|
|
223
226
|
str | None,
|
|
224
227
|
typer.Option("--source-id", help="Stable contributor source identifier"),
|
|
225
228
|
] = None,
|
|
229
|
+
repo: Annotated[
|
|
230
|
+
bool,
|
|
231
|
+
typer.Option(
|
|
232
|
+
"--repo/--no-repo",
|
|
233
|
+
help="Tag the upload with the session's repository "
|
|
234
|
+
"(owner/name from its git remote) as the source id",
|
|
235
|
+
),
|
|
236
|
+
] = True,
|
|
226
237
|
direct: Annotated[
|
|
227
238
|
bool,
|
|
228
239
|
typer.Option("--direct", help="Upload with local Azure credentials"),
|
|
@@ -254,6 +265,7 @@ def register_traj(app: typer.Typer) -> None:
|
|
|
254
265
|
github_id=github_id,
|
|
255
266
|
email=email,
|
|
256
267
|
source_id=source_id,
|
|
268
|
+
repo=repo,
|
|
257
269
|
direct=direct,
|
|
258
270
|
container_url=container_url,
|
|
259
271
|
dry_run=dry_run,
|
|
@@ -268,7 +280,17 @@ def register_traj(app: typer.Typer) -> None:
|
|
|
268
280
|
def _run_upload(options: _UploadOptions) -> None:
|
|
269
281
|
prompted = options.path is None
|
|
270
282
|
path = options.path or _prompt_for_path()
|
|
271
|
-
|
|
283
|
+
repo_slug: str | None = None
|
|
284
|
+
if options.source_id is not None:
|
|
285
|
+
source_id = options.source_id
|
|
286
|
+
else:
|
|
287
|
+
if options.repo:
|
|
288
|
+
repo_slug = _detect_repo_slug(path)
|
|
289
|
+
source_id = f"repo/{repo_slug}" if repo_slug else default_source_id(path)
|
|
290
|
+
if repo_slug:
|
|
291
|
+
# Contributor-visible metadata: surface the tag so private-repo
|
|
292
|
+
# sessions can opt out before anything leaves the machine.
|
|
293
|
+
console.print(f"Repo: {repo_slug} (use --no-repo to omit)")
|
|
272
294
|
destination = _resolve_destination(options)
|
|
273
295
|
|
|
274
296
|
with (
|
|
@@ -381,6 +403,92 @@ def _infer_email() -> str:
|
|
|
381
403
|
return ""
|
|
382
404
|
|
|
383
405
|
|
|
406
|
+
_SESSION_CWD_SCAN_LINES = 50
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
def _detect_repo_slug(path: Path) -> str | None:
|
|
410
|
+
"""Best-effort ``owner/name`` for the repository the session was about.
|
|
411
|
+
|
|
412
|
+
Reads the working directory the session recorded (Claude events carry a
|
|
413
|
+
``cwd`` field; Codex ``session_meta`` payloads do too), asks that
|
|
414
|
+
directory's git for the ``origin`` remote, and falls back to the
|
|
415
|
+
invocation directory. Every failure is silent — repo tagging must never
|
|
416
|
+
break an upload — and local-path remotes never produce a tag, so no
|
|
417
|
+
local absolute path can leak into the manifest.
|
|
418
|
+
"""
|
|
419
|
+
for candidate in (_session_cwd(path), Path.cwd()):
|
|
420
|
+
if candidate is None or not candidate.is_dir():
|
|
421
|
+
continue
|
|
422
|
+
remote = _command_stdout(
|
|
423
|
+
"git", "-C", str(candidate), "remote", "get-url", "origin"
|
|
424
|
+
)
|
|
425
|
+
slug = _repo_slug_from_remote(remote) if remote else None
|
|
426
|
+
if slug:
|
|
427
|
+
return slug
|
|
428
|
+
return None
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
def _session_cwd(path: Path) -> Path | None:
|
|
432
|
+
"""Working directory recorded by the first session event that has one."""
|
|
433
|
+
session = path.expanduser()
|
|
434
|
+
if not session.is_file():
|
|
435
|
+
return None
|
|
436
|
+
try:
|
|
437
|
+
with session.open(encoding="utf-8", errors="replace") as stream:
|
|
438
|
+
for line_number, line in enumerate(stream):
|
|
439
|
+
if line_number >= _SESSION_CWD_SCAN_LINES:
|
|
440
|
+
break
|
|
441
|
+
body = line.strip()
|
|
442
|
+
if not body:
|
|
443
|
+
continue
|
|
444
|
+
try:
|
|
445
|
+
event = json.loads(body)
|
|
446
|
+
except json.JSONDecodeError:
|
|
447
|
+
continue
|
|
448
|
+
if not isinstance(event, dict):
|
|
449
|
+
continue
|
|
450
|
+
cwd = event.get("cwd")
|
|
451
|
+
if isinstance(cwd, str) and cwd:
|
|
452
|
+
return Path(cwd)
|
|
453
|
+
payload = event.get("payload")
|
|
454
|
+
if (
|
|
455
|
+
event.get("type") == "session_meta"
|
|
456
|
+
and isinstance(payload, dict)
|
|
457
|
+
and isinstance(payload.get("cwd"), str)
|
|
458
|
+
and payload["cwd"]
|
|
459
|
+
):
|
|
460
|
+
return Path(payload["cwd"])
|
|
461
|
+
except OSError:
|
|
462
|
+
return None
|
|
463
|
+
return None
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
def _repo_slug_from_remote(remote: str) -> str | None:
|
|
467
|
+
"""Normalize an https/ssh git remote URL to ``owner/name``.
|
|
468
|
+
|
|
469
|
+
Only URL-shaped remotes qualify; a filesystem-path remote returns
|
|
470
|
+
``None`` so local paths never enter the uploaded source id.
|
|
471
|
+
"""
|
|
472
|
+
value = remote.strip()
|
|
473
|
+
if "://" in value:
|
|
474
|
+
_, _, rest = value.partition("://")
|
|
475
|
+
_, _, repo_path = rest.partition("/")
|
|
476
|
+
elif ":" in value and "@" in value.partition(":")[0]:
|
|
477
|
+
repo_path = value.partition(":")[2]
|
|
478
|
+
else:
|
|
479
|
+
return None
|
|
480
|
+
repo_path = repo_path.strip("/").removesuffix(".git")
|
|
481
|
+
segments = [segment for segment in repo_path.split("/") if segment]
|
|
482
|
+
if len(segments) < 2:
|
|
483
|
+
return None
|
|
484
|
+
slug = f"{segments[-2]}/{segments[-1]}"
|
|
485
|
+
try:
|
|
486
|
+
validate_source_id(f"repo/{slug}")
|
|
487
|
+
except ValueError:
|
|
488
|
+
return None
|
|
489
|
+
return slug
|
|
490
|
+
|
|
491
|
+
|
|
384
492
|
def _git_config(key: str) -> str | None:
|
|
385
493
|
return _command_stdout("git", "config", "--get", key)
|
|
386
494
|
|
|
@@ -14,6 +14,78 @@ _ARGS_PREVIEW = 300 # max chars for tool args display
|
|
|
14
14
|
_CONTENT_PREVIEW = 200 # max chars for write/agent content preview
|
|
15
15
|
_RESULT_PREVIEW = 300 # max chars for result summary
|
|
16
16
|
|
|
17
|
+
# Shared stylesheet for all viewer pages, matching the www.benchflow.ai design
|
|
18
|
+
# language (light monochrome: near-white page, white cards, near-black ink,
|
|
19
|
+
# pure-black accent, Satoshi/Google Sans Code with system-safe fallbacks, dark
|
|
20
|
+
# code blocks). Kept inline so pages work fully offline with no external
|
|
21
|
+
# requests; one constant so the three templates stop drifting apart.
|
|
22
|
+
_VIEWER_CSS = """\
|
|
23
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
24
|
+
:root {
|
|
25
|
+
--background: #fafafa; --card: #ffffff;
|
|
26
|
+
--ink: #0a0a0a; --ink-secondary: #404040; --muted: #737373; --faint: #a1a1a1;
|
|
27
|
+
--border: #e5e5e5; --rule-strong: #c7c7c7; --secondary: #f5f5f5;
|
|
28
|
+
--code-bg: #141414; --code-ink: #ececec;
|
|
29
|
+
--radius: 8px;
|
|
30
|
+
--font-sans: "Satoshi", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
31
|
+
--font-mono: "Google Sans Code", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
32
|
+
}
|
|
33
|
+
body { font-family: var(--font-sans); background: var(--background); color: var(--ink); padding: 28px 20px 48px; max-width: 960px; margin: 0 auto; line-height: 1.6; -webkit-font-smoothing: antialiased; }
|
|
34
|
+
::selection { background: var(--secondary); color: var(--ink); }
|
|
35
|
+
::-webkit-scrollbar { width: 6px; height: 6px; }
|
|
36
|
+
::-webkit-scrollbar-track { background: transparent; }
|
|
37
|
+
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 9999px; }
|
|
38
|
+
::-webkit-scrollbar-thumb:hover { background: var(--muted); }
|
|
39
|
+
.wordmark { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
|
|
40
|
+
.wordmark svg { width: 18px; height: 18px; flex: none; color: var(--ink); }
|
|
41
|
+
.wordmark .brand { font-weight: 600; font-size: 15px; letter-spacing: -0.01em; color: var(--ink); }
|
|
42
|
+
.wordmark .app { font-family: var(--font-mono); font-size: 10.5px; font-weight: 500; color: var(--ink-secondary); background: var(--secondary); border: 1px solid var(--border); border-radius: 9999px; padding: 3px 10px; }
|
|
43
|
+
.header { border-bottom: 1px solid var(--border); padding-bottom: 18px; margin-bottom: 24px; }
|
|
44
|
+
.header h1 { font-size: 20px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); margin-bottom: 10px; overflow-wrap: anywhere; }
|
|
45
|
+
.meta { display: flex; gap: 8px; flex-wrap: wrap; font-size: 13px; color: var(--muted); }
|
|
46
|
+
.meta span { font-family: var(--font-mono); font-size: 11px; font-weight: 500; color: var(--ink-secondary); background: var(--secondary); padding: 3px 9px; border-radius: 4px; border: 1px solid var(--border); }
|
|
47
|
+
.step { margin-bottom: 8px; padding: 12px 16px; border-radius: var(--radius); background: var(--card); border: 1px solid var(--border); box-shadow: 0 1px 2px rgba(10, 10, 10, 0.04); }
|
|
48
|
+
.step.prompt { background: var(--secondary); border-color: var(--rule-strong); margin-bottom: 14px; }
|
|
49
|
+
.step.output { background: var(--code-bg); border-color: var(--code-bg); padding: 10px 16px; }
|
|
50
|
+
.step.output pre { color: var(--code-ink); font-family: var(--font-mono); font-size: 12px; line-height: 1.7; white-space: pre-wrap; word-break: break-word; }
|
|
51
|
+
.step.result { background: var(--ink); border-color: var(--ink); margin-top: 14px; }
|
|
52
|
+
.step.result .msg { color: var(--background); }
|
|
53
|
+
.step-header { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
|
|
54
|
+
.label { display: inline-flex; align-items: center; font-family: var(--font-mono); padding: 2px 10px; border-radius: 9999px; font-weight: 600; font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.04em; }
|
|
55
|
+
.label.prompt { background: var(--ink); color: var(--background); }
|
|
56
|
+
.label.result { background: var(--background); color: var(--ink); }
|
|
57
|
+
.meta-inline { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
|
|
58
|
+
.step.result .meta-inline { color: var(--faint); }
|
|
59
|
+
.msg { font-size: 14px; line-height: 1.65; white-space: pre-wrap; word-break: break-word; }
|
|
60
|
+
.thinking { font-size: 13px; color: var(--muted); font-style: italic; margin-bottom: 8px; padding: 8px 12px; background: var(--secondary); border-radius: 4px; border-left: 2px solid var(--rule-strong); white-space: pre-wrap; word-break: break-word; }
|
|
61
|
+
.tool { margin-bottom: 6px; }
|
|
62
|
+
.tool-name { display: inline-flex; align-items: center; font-family: var(--font-mono); font-size: 11px; font-weight: 600; color: var(--ink); background: var(--secondary); border: 1px solid var(--border); padding: 2px 9px; border-radius: 4px; }
|
|
63
|
+
.tool-args { margin-top: 6px; font-family: var(--font-mono); font-size: 12px; line-height: 1.7; color: var(--code-ink); background: var(--code-bg); padding: 10px 12px; border-radius: 6px; white-space: pre-wrap; word-break: break-word; }
|
|
64
|
+
.metrics { font-family: var(--font-mono); font-size: 11px; color: var(--faint); margin-top: 4px; }
|
|
65
|
+
.turn-divider { border-top: 1px solid var(--border); margin: 24px 0; }
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
# Small BenchFlow wordmark header (inline SVG logo from the site's icon set —
|
|
69
|
+
# no external requests) shown above the page title on every viewer page.
|
|
70
|
+
_WORDMARK_HTML = (
|
|
71
|
+
'<div class="wordmark">'
|
|
72
|
+
'<svg viewBox="0 0 514 512" fill="currentColor" aria-hidden="true">'
|
|
73
|
+
'<path fill-rule="evenodd" clip-rule="evenodd" d="M445.422 66.4597L511.882 0'
|
|
74
|
+
"L389.022 293.965L295.129 387.859L0 511.882L69.3042 442.577L81.0101 454.283"
|
|
75
|
+
"L89.0554 446.238L77.3493 434.532L130.65 381.232L162.469 413.051L170.514 40"
|
|
76
|
+
"5.006L138.695 373.187L191.995 319.887L203.701 331.593L211.746 323.547L200."
|
|
77
|
+
"04 311.841L253.34 258.541L285.16 290.36L293.205 282.315L261.386 250.496L31"
|
|
78
|
+
"4.686 197.196L326.392 208.902L334.437 200.856L322.731 189.15L376.031 135.8"
|
|
79
|
+
"5L407.851 167.669L415.896 159.624L384.077 127.805L437.377 74.5049L449.083 "
|
|
80
|
+
"86.2108L457.128 78.1656L445.422 66.4597ZM399.127 389.865V299.369L513.197 2"
|
|
81
|
+
"6.4333V503.935L399.127 389.865ZM391.061 397.931L505.132 512.001H29.1594L30"
|
|
82
|
+
'0.605 397.931H391.061Z"/>'
|
|
83
|
+
"</svg>"
|
|
84
|
+
'<span class="brand">BenchFlow</span>'
|
|
85
|
+
'<span class="app">trajectory viewer</span>'
|
|
86
|
+
"</div>"
|
|
87
|
+
)
|
|
88
|
+
|
|
17
89
|
|
|
18
90
|
def render_turn(events: list[dict], turn_number: int, prompt: str = "") -> str:
|
|
19
91
|
"""Render one turn's events as HTML blocks."""
|
|
@@ -260,33 +332,11 @@ def render_rollout(rollout_dir: Path, prompts: list[str] | None = None) -> str:
|
|
|
260
332
|
<meta charset="utf-8">
|
|
261
333
|
<title>benchflow — {rollout_dir.name}</title>
|
|
262
334
|
<style>
|
|
263
|
-
|
|
264
|
-
body {{ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: #0d1117; color: #c9d1d9; padding: 20px; max-width: 960px; margin: 0 auto; }}
|
|
265
|
-
.header {{ border-bottom: 1px solid #30363d; padding-bottom: 16px; margin-bottom: 24px; }}
|
|
266
|
-
.header h1 {{ font-size: 20px; color: #f0f6fc; margin-bottom: 8px; }}
|
|
267
|
-
.meta {{ display: flex; gap: 12px; flex-wrap: wrap; font-size: 13px; color: #8b949e; }}
|
|
268
|
-
.meta span {{ background: #161b22; padding: 4px 10px; border-radius: 6px; border: 1px solid #30363d; }}
|
|
269
|
-
.step {{ margin-bottom: 4px; padding: 10px 14px; border-radius: 6px; }}
|
|
270
|
-
.step.prompt {{ background: #0d1f3c; border: 1px solid #1f3a5f; margin-bottom: 12px; }}
|
|
271
|
-
.step.agent {{ background: #161b22; border: 1px solid #30363d; }}
|
|
272
|
-
.step.output {{ background: #0d1117; border-left: 3px solid #238636; padding: 6px 14px; }}
|
|
273
|
-
.step.output pre {{ color: #7ee787; font-size: 12px; white-space: pre-wrap; word-break: break-word; }}
|
|
274
|
-
.step.result {{ background: #1a2f1a; border: 1px solid #238636; margin-top: 12px; }}
|
|
275
|
-
.step-header {{ display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }}
|
|
276
|
-
.label {{ padding: 2px 8px; border-radius: 4px; font-weight: 600; font-size: 11px; text-transform: uppercase; }}
|
|
277
|
-
.label.prompt {{ background: #1f3a5f; color: #58a6ff; }}
|
|
278
|
-
.label.result {{ background: #1a2f1a; color: #3fb950; }}
|
|
279
|
-
.meta-inline {{ font-size: 12px; color: #8b949e; }}
|
|
280
|
-
.msg {{ font-size: 14px; line-height: 1.6; white-space: pre-wrap; word-break: break-word; }}
|
|
281
|
-
.thinking {{ font-size: 13px; color: #8b949e; font-style: italic; margin-bottom: 6px; padding: 8px; background: #0d1117; border-radius: 4px; border-left: 3px solid #484f58; }}
|
|
282
|
-
.tool {{ margin-bottom: 4px; }}
|
|
283
|
-
.tool-name {{ background: #2d333b; color: #f0883e; padding: 2px 8px; border-radius: 4px; font-family: monospace; font-size: 13px; font-weight: 600; }}
|
|
284
|
-
.tool-args {{ margin-top: 4px; font-size: 12px; color: #c9d1d9; background: #0d1117; padding: 8px; border-radius: 4px; white-space: pre-wrap; word-break: break-word; }}
|
|
285
|
-
.turn-divider {{ border-top: 2px solid #30363d; margin: 20px 0; padding-top: 8px; }}
|
|
286
|
-
</style>
|
|
335
|
+
{_VIEWER_CSS}</style>
|
|
287
336
|
</head>
|
|
288
337
|
<body>
|
|
289
338
|
<div class="header">
|
|
339
|
+
{_WORDMARK_HTML}
|
|
290
340
|
<h1>{html.escape(rollout_dir.name)}</h1>
|
|
291
341
|
<div class="meta">
|
|
292
342
|
<span>model: {html.escape(model)}</span>
|
|
@@ -392,25 +442,8 @@ def _render_acp_events(
|
|
|
392
442
|
return f"""<!DOCTYPE html>
|
|
393
443
|
<html><head><meta charset="utf-8"><title>benchflow — {html.escape(title)}</title>
|
|
394
444
|
<style>
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
.header {{ border-bottom: 1px solid #30363d; padding-bottom: 16px; margin-bottom: 24px; }}
|
|
398
|
-
.header h1 {{ font-size: 20px; color: #f0f6fc; }}
|
|
399
|
-
.step {{ margin-bottom: 4px; padding: 10px 14px; border-radius: 6px; }}
|
|
400
|
-
.step.prompt {{ background: #0d1f3c; border: 1px solid #1f3a5f; margin-bottom: 12px; }}
|
|
401
|
-
.step.agent {{ background: #161b22; border: 1px solid #30363d; }}
|
|
402
|
-
.step.result {{ background: #1a2f1a; border: 1px solid #238636; margin-top: 12px; }}
|
|
403
|
-
.step-header {{ margin-bottom: 6px; }}
|
|
404
|
-
.label {{ padding: 2px 8px; border-radius: 4px; font-weight: 600; font-size: 11px; text-transform: uppercase; }}
|
|
405
|
-
.label.prompt {{ background: #1f3a5f; color: #58a6ff; }}
|
|
406
|
-
.label.result {{ background: #1a2f1a; color: #3fb950; }}
|
|
407
|
-
.msg {{ font-size: 14px; line-height: 1.6; white-space: pre-wrap; word-break: break-word; }}
|
|
408
|
-
.thinking {{ font-size: 13px; color: #8b949e; font-style: italic; padding: 8px; background: #0d1117; border-radius: 4px; border-left: 3px solid #484f58; }}
|
|
409
|
-
.tool {{ margin-bottom: 4px; }}
|
|
410
|
-
.tool-name {{ background: #2d333b; color: #f0883e; padding: 2px 8px; border-radius: 4px; font-family: monospace; font-size: 13px; font-weight: 600; }}
|
|
411
|
-
.metrics {{ font-size: 11px; color: #484f58; margin-top: 4px; }}
|
|
412
|
-
</style></head><body>
|
|
413
|
-
<div class="header"><h1>{html.escape(title)}</h1></div>
|
|
445
|
+
{_VIEWER_CSS}</style></head><body>
|
|
446
|
+
<div class="header">{_WORDMARK_HTML}<h1>{html.escape(title)}</h1></div>
|
|
414
447
|
{"".join(blocks)}
|
|
415
448
|
</body></html>"""
|
|
416
449
|
|
|
@@ -526,33 +559,11 @@ def _stream_json_page(title: str, events: list[dict], turn_blocks: list[str]) ->
|
|
|
526
559
|
<meta charset="utf-8">
|
|
527
560
|
<title>benchflow — {html.escape(title)}</title>
|
|
528
561
|
<style>
|
|
529
|
-
|
|
530
|
-
body {{ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: #0d1117; color: #c9d1d9; padding: 20px; max-width: 960px; margin: 0 auto; }}
|
|
531
|
-
.header {{ border-bottom: 1px solid #30363d; padding-bottom: 16px; margin-bottom: 24px; }}
|
|
532
|
-
.header h1 {{ font-size: 20px; color: #f0f6fc; margin-bottom: 8px; }}
|
|
533
|
-
.meta {{ display: flex; gap: 12px; flex-wrap: wrap; font-size: 13px; color: #8b949e; }}
|
|
534
|
-
.meta span {{ background: #161b22; padding: 4px 10px; border-radius: 6px; border: 1px solid #30363d; }}
|
|
535
|
-
.step {{ margin-bottom: 4px; padding: 10px 14px; border-radius: 6px; }}
|
|
536
|
-
.step.prompt {{ background: #0d1f3c; border: 1px solid #1f3a5f; margin-bottom: 12px; }}
|
|
537
|
-
.step.agent {{ background: #161b22; border: 1px solid #30363d; }}
|
|
538
|
-
.step.output {{ background: #0d1117; border-left: 3px solid #238636; padding: 6px 14px; }}
|
|
539
|
-
.step.output pre {{ color: #7ee787; font-size: 12px; white-space: pre-wrap; word-break: break-word; }}
|
|
540
|
-
.step.result {{ background: #1a2f1a; border: 1px solid #238636; margin-top: 12px; }}
|
|
541
|
-
.step-header {{ display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }}
|
|
542
|
-
.label {{ padding: 2px 8px; border-radius: 4px; font-weight: 600; font-size: 11px; text-transform: uppercase; }}
|
|
543
|
-
.label.prompt {{ background: #1f3a5f; color: #58a6ff; }}
|
|
544
|
-
.label.result {{ background: #1a2f1a; color: #3fb950; }}
|
|
545
|
-
.meta-inline {{ font-size: 12px; color: #8b949e; }}
|
|
546
|
-
.msg {{ font-size: 14px; line-height: 1.6; white-space: pre-wrap; word-break: break-word; }}
|
|
547
|
-
.thinking {{ font-size: 13px; color: #8b949e; font-style: italic; margin-bottom: 6px; padding: 8px; background: #0d1117; border-radius: 4px; border-left: 3px solid #484f58; }}
|
|
548
|
-
.tool {{ margin-bottom: 4px; }}
|
|
549
|
-
.tool-name {{ background: #2d333b; color: #f0883e; padding: 2px 8px; border-radius: 4px; font-family: monospace; font-size: 13px; font-weight: 600; }}
|
|
550
|
-
.tool-args {{ margin-top: 4px; font-size: 12px; color: #c9d1d9; background: #0d1117; padding: 8px; border-radius: 4px; white-space: pre-wrap; word-break: break-word; }}
|
|
551
|
-
.turn-divider {{ border-top: 2px solid #30363d; margin: 20px 0; padding-top: 8px; }}
|
|
552
|
-
</style>
|
|
562
|
+
{_VIEWER_CSS}</style>
|
|
553
563
|
</head>
|
|
554
564
|
<body>
|
|
555
565
|
<div class="header">
|
|
566
|
+
{_WORDMARK_HTML}
|
|
556
567
|
<h1>{html.escape(title)}</h1>
|
|
557
568
|
<div class="meta">
|
|
558
569
|
<span>model: {html.escape(model)}</span>
|
|
@@ -780,3 +780,138 @@ def test_list_recent_sessions_scans_all_projects_most_recent_first(
|
|
|
780
780
|
assert all(hit.source == "claude" for hit in hits)
|
|
781
781
|
assert "GC content" in hits[0].snippet
|
|
782
782
|
assert "prize session please" in hits[1].snippet
|
|
783
|
+
|
|
784
|
+
|
|
785
|
+
REPO_LINE = "Repo: benchflow-ai/benchflow (use --no-repo to omit)"
|
|
786
|
+
|
|
787
|
+
|
|
788
|
+
def _session_with_cwd(tmp_path: Path, event: dict) -> Path:
|
|
789
|
+
session = tmp_path / "session.jsonl"
|
|
790
|
+
session.write_text(json.dumps(event) + "\n", encoding="utf-8")
|
|
791
|
+
return session
|
|
792
|
+
|
|
793
|
+
|
|
794
|
+
def _git_remote_stub(url: str | None, workdir: Path):
|
|
795
|
+
"""A ``_command_stdout`` stub answering only the origin-remote lookup."""
|
|
796
|
+
|
|
797
|
+
def fake(*args: str) -> str | None:
|
|
798
|
+
if args == ("git", "-C", str(workdir), "remote", "get-url", "origin"):
|
|
799
|
+
return url
|
|
800
|
+
return None
|
|
801
|
+
|
|
802
|
+
return fake
|
|
803
|
+
|
|
804
|
+
|
|
805
|
+
def _capture_broker_source_id(
|
|
806
|
+
monkeypatch: pytest.MonkeyPatch, captured: dict[str, str]
|
|
807
|
+
) -> None:
|
|
808
|
+
def fake_upload(staged, *, broker_url, on_file_complete, on_bytes):
|
|
809
|
+
captured["source_id"] = staged.manifest["source_id"]
|
|
810
|
+
for staged_file in staged.files:
|
|
811
|
+
on_file_complete(staged_file)
|
|
812
|
+
return SimpleNamespace(url=broker_url, uploaded=("payload",), skipped=())
|
|
813
|
+
|
|
814
|
+
monkeypatch.setattr(
|
|
815
|
+
"benchflow.publish.broker.upload_capture_via_broker", fake_upload
|
|
816
|
+
)
|
|
817
|
+
|
|
818
|
+
|
|
819
|
+
@pytest.mark.parametrize(
|
|
820
|
+
("event_for_cwd", "remote"),
|
|
821
|
+
[
|
|
822
|
+
(
|
|
823
|
+
lambda cwd: {"type": "user", "cwd": cwd, "message": {"content": "hi"}},
|
|
824
|
+
"https://github.com/benchflow-ai/benchflow.git",
|
|
825
|
+
),
|
|
826
|
+
(
|
|
827
|
+
lambda cwd: {"type": "session_meta", "payload": {"cwd": cwd}},
|
|
828
|
+
"git@github.com:benchflow-ai/benchflow.git",
|
|
829
|
+
),
|
|
830
|
+
],
|
|
831
|
+
ids=["claude-https", "codex-ssh"],
|
|
832
|
+
)
|
|
833
|
+
def test_upload_tags_source_id_with_the_session_repo(
|
|
834
|
+
tmp_path: Path, monkeypatch: pytest.MonkeyPatch, event_for_cwd, remote: str
|
|
835
|
+
) -> None:
|
|
836
|
+
"""Guards PR #1015 (repo tagging follow-up to PR #1013): by default the
|
|
837
|
+
upload's source id becomes ``repo/<owner>/<name>``, resolved from the
|
|
838
|
+
session's recorded cwd git remote, and the CLI prints the repo line."""
|
|
839
|
+
workdir = tmp_path / "workdir"
|
|
840
|
+
workdir.mkdir()
|
|
841
|
+
session = _session_with_cwd(tmp_path, event_for_cwd(str(workdir)))
|
|
842
|
+
monkeypatch.setattr(
|
|
843
|
+
"benchflow.cli.traj._command_stdout", _git_remote_stub(remote, workdir)
|
|
844
|
+
)
|
|
845
|
+
captured: dict[str, str] = {}
|
|
846
|
+
_capture_broker_source_id(monkeypatch, captured)
|
|
847
|
+
|
|
848
|
+
result = runner.invoke(app, _upload_command(session))
|
|
849
|
+
|
|
850
|
+
assert result.exit_code == 0, result.output
|
|
851
|
+
assert captured["source_id"] == "repo/benchflow-ai/benchflow"
|
|
852
|
+
assert REPO_LINE in click.unstyle(result.output)
|
|
853
|
+
assert str(workdir) not in captured["source_id"]
|
|
854
|
+
|
|
855
|
+
|
|
856
|
+
def test_no_repo_keeps_the_default_source_id(
|
|
857
|
+
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
|
858
|
+
) -> None:
|
|
859
|
+
"""Guards PR #1015 (repo tagging follow-up to PR #1013): ``--no-repo``
|
|
860
|
+
opts out even when a repo is detectable, keeping the path-derived id."""
|
|
861
|
+
workdir = tmp_path / "workdir"
|
|
862
|
+
workdir.mkdir()
|
|
863
|
+
session = _session_with_cwd(
|
|
864
|
+
tmp_path, {"type": "user", "cwd": str(workdir), "message": {"content": "hi"}}
|
|
865
|
+
)
|
|
866
|
+
monkeypatch.setattr(
|
|
867
|
+
"benchflow.cli.traj._command_stdout",
|
|
868
|
+
_git_remote_stub("https://github.com/benchflow-ai/benchflow.git", workdir),
|
|
869
|
+
)
|
|
870
|
+
captured: dict[str, str] = {}
|
|
871
|
+
_capture_broker_source_id(monkeypatch, captured)
|
|
872
|
+
|
|
873
|
+
result = runner.invoke(app, _upload_command(session, "--no-repo"))
|
|
874
|
+
|
|
875
|
+
assert result.exit_code == 0, result.output
|
|
876
|
+
assert captured["source_id"] == "session"
|
|
877
|
+
assert "Repo:" not in click.unstyle(result.output)
|
|
878
|
+
|
|
879
|
+
|
|
880
|
+
def test_explicit_source_id_wins_over_repo_tagging(
|
|
881
|
+
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
|
882
|
+
) -> None:
|
|
883
|
+
"""Guards PR #1015 (repo tagging follow-up to PR #1013): an explicit
|
|
884
|
+
``--source-id`` always wins and repo detection never runs."""
|
|
885
|
+
|
|
886
|
+
def fail_detection(path: Path) -> str | None:
|
|
887
|
+
raise AssertionError("repo detection ran despite explicit --source-id")
|
|
888
|
+
|
|
889
|
+
monkeypatch.setattr("benchflow.cli.traj._detect_repo_slug", fail_detection)
|
|
890
|
+
captured: dict[str, str] = {}
|
|
891
|
+
_capture_broker_source_id(monkeypatch, captured)
|
|
892
|
+
|
|
893
|
+
result = runner.invoke(
|
|
894
|
+
app, _upload_command(_trial(tmp_path), "--source-id", "my-project/run-42")
|
|
895
|
+
)
|
|
896
|
+
|
|
897
|
+
assert result.exit_code == 0, result.output
|
|
898
|
+
assert captured["source_id"] == "my-project/run-42"
|
|
899
|
+
assert "Repo:" not in click.unstyle(result.output)
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
def test_undetectable_repo_falls_back_silently(
|
|
903
|
+
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
|
904
|
+
) -> None:
|
|
905
|
+
"""Guards PR #1015 (repo tagging follow-up to PR #1013): a session with
|
|
906
|
+
no recorded cwd and no reachable git remote uploads with the default
|
|
907
|
+
source id, no repo line, and no error."""
|
|
908
|
+
session = _session_with_cwd(tmp_path, {"type": "message", "text": "demo"})
|
|
909
|
+
monkeypatch.setattr("benchflow.cli.traj._command_stdout", lambda *_args: None)
|
|
910
|
+
captured: dict[str, str] = {}
|
|
911
|
+
_capture_broker_source_id(monkeypatch, captured)
|
|
912
|
+
|
|
913
|
+
result = runner.invoke(app, _upload_command(session))
|
|
914
|
+
|
|
915
|
+
assert result.exit_code == 0, result.output
|
|
916
|
+
assert captured["source_id"] == "session"
|
|
917
|
+
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
|
|
File without changes
|
{benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/build_context_stage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/dataset_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
{benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/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.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/_utils/source_provenance.py
RENAMED
|
File without changes
|
{benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/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.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/acp/container_transport.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/_toolathlon_container.py
RENAMED
|
File without changes
|
{benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/_toolathlon_fake_mail.py
RENAMED
|
File without changes
|
|
File without changes
|
{benchflow-0.7.2.dev1980 → benchflow-0.7.2.dev1986}/src/benchflow/adapters/_toolathlon_services.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|