benchflow 0.7.8.dev2321__tar.gz → 0.7.8.dev2329__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.8.dev2321 → benchflow-0.7.8.dev2329}/PKG-INFO +1 -1
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/pyproject.toml +1 -1
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/acp/session.py +26 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/_capture.py +15 -10
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/assets/boot.js +1 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/assets/detail.js +78 -4
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/assets/template.html +14 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/assets/theme.css +30 -0
- benchflow-0.7.8.dev2329/src/benchflow/trajectories/viewer/assets/theme.js +103 -0
- benchflow-0.7.8.dev2329/src/benchflow/trajectories/viewer/assets/vendor/LICENSE.highlight.js +29 -0
- benchflow-0.7.8.dev2329/src/benchflow/trajectories/viewer/assets/vendor/highlight.min.js +1213 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/assets/viewer.css +22 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/models.py +48 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/payload.py +127 -1
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/render.py +10 -1
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/sources.py +9 -0
- benchflow-0.7.8.dev2329/tests/test_tool_call_raw_io.py +175 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/test_viewer_acp_renderer.py +5 -1
- benchflow-0.7.8.dev2329/tests/trajectories/test_viewer_rubric.py +227 -0
- benchflow-0.7.8.dev2329/tests/trajectories/test_viewer_theme.py +59 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/.gitignore +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/CHANGELOG.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/LICENSE +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/README.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_dotenv.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_paths.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_run.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_types.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/benchmark_repos.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/build_context_stage.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/config_override.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/content_address.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/dataset_registry.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/env_registry.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/evaluation_results.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/hf_datasets.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/json_safe.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/learner_memory.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/live_activity.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/result_metadata.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/reward_events.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/scoring.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/source_provenance.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/task_authoring/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/task_authoring/_evidence_paths.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/task_authoring/acceptance_evidence.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/task_authoring/scaffolding.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/task_authoring/structural_checks.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/text.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/_utils/yaml_loader.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/acp/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/acp/client.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/acp/container_transport.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/acp/runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/acp/selection.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/acp/timeout_cleanup.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/acp/transport.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/acp/types.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/acp/watchdog.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/_toolathlon.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/_toolathlon_container.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/_toolathlon_fake_mail.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/_toolathlon_poste_users.tsv +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/_toolathlon_services.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/harbor.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/inbound.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/inspect_ai.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/ors.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/resources/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/resources/mcp_atlas_bridge.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/resources/mcp_atlas_judge.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/adapters/source.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agent_router.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agent_router_guide.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agent_router_parity.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agent_router_scaffold.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/codex_config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/credentials.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/deepagents_acp_shim.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/env.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/errors.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/harvey_lab_acp_shim.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/install.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/manifest.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/openclaw_acp_shim.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/pi_acp_launcher.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/protocol.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/providers.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/registry.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/agents/remote_manifests.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/branch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/_failure_evidence.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/_hosted_env.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/_live_progress.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/_options.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/_shared.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/_traj_tui.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/_traj_upload_ui.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/adopt.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/agent.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/continue_cmd.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/environment.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/eval_artifacts.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/eval_lift.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/hub.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/main.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/monitor.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/review.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/sandbox.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/skills.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/tasks.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/trace_import.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/train.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/cli/traj.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/continue_run/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/continue_run/batch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/continue_run/orchestrator.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/continue_run/replay_proxy.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/continue_run/run_folder.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/continue_run/sandbox_proxy.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/contracts/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/contracts/planes.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/contracts/user.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/demo_task/environment/Dockerfile +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/demo_task/instruction.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/demo_task/task.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/demo_task/task.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/demo_task/tests/test.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/diagnostics.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/environment/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/environment/_registry/env0@outage.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/environment/_registry/env0@prod.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/environment/manifest.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/environment/manifest_env.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/environment/protocol.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/environment/readiness.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/eval_artifacts.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/eval_lift.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/eval_plan.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/eval_sharding.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/eval_worker.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/evaluation.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/experimental/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/experimental/mcp/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/experimental/mcp/hooks.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/experimental/mcp/reviewer_server.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/hosted_env.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/hub/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/hub/harbor_registry.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/integrations/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/integrations/trl/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/integrations/trl/spec.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/learner_skills.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/learner_store.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/loop_strategies.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/loop_sweep.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/metrics.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/models.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/monitor.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/providers/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/providers/litellm_bedrock_patch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/providers/litellm_bedrock_preflight.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/providers/litellm_config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/providers/litellm_gemini_passthrough_patch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/providers/litellm_logging.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/providers/litellm_runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/providers/runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/publish/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/publish/_progress.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/publish/azure_blob.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/publish/broker.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/publish/huggingface.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/publish/redact.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/publish/traj_capture.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/publish/traj_report.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/py.typed +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/review/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/review/config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/review/default-rubric.json +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/review/prompts.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/review/runner.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/review/scoring.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/review/wrapper.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/README.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/builtins.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/events.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/file_readers.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/llm.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/memory_scorer.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/node.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/protocol.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/rubric.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/rubric_config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rewards/validation.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout/_config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout/_deadline.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout/_results.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout/_setup.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout/_skills.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout/_usage.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout/_user_loop.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout/session_factory_runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout/task_runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout_branch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/rollout_planes.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/_base.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/_cache_reclaim.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/_compose.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/_compose_files/docker-compose-base.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/_compose_files/docker-compose-build.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/_compose_files/docker-compose-net-admin.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/_compose_files/docker-compose-no-network.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/_compose_files/docker-compose-prebuilt.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/_egress_denylist_proxy.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/_sdk_ops.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/agentcore.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/agentcore_builder.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/agentcore_image.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/agentcore_provisioning.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/agentcore_reaper.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/agentcore_sealed.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/apple_container.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/daytona.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/daytona_dind.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/daytona_pty.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/daytona_reaper.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/daytona_strategies.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/docker.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/egress_denylist.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/lockdown.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/metadata.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/modal_impl.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/process/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/process/_base.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/process/agentcore.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/process/apple.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/process/daytona.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/process/docker.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/protocol.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/providers.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/services.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/setup.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/snapshot.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sandbox/user.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/scenes.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/sdk.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/self_gen.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/skill_eval/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/skill_eval/_core.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/skill_eval/gepa_export.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/skill_eval/schema.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/skill_policy.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/skills.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/_document_evidence.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/_document_normalize.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/_document_parse.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/_document_profiles.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/acceptance_live.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/acceptance_live_model.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/acceptance_live_report.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/acceptance_live_validation.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/discovery.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/document.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/env.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/export.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/imports.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/output_format.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/package.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/paths.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/prompts.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/runtime_capabilities.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/runtime_view.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/task.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/verifier.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/verifier_core.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/verifier_document.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/verifier_errors.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/verifier_judge_inputs.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/verifier_ors_episode.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/verifier_reward_kit.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/verifier_scan.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/task/verifier_script_strategy.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/templates/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/templates/judge.py.tmpl +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/templates/test.sh.tmpl +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/traces/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/traces/huggingface.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/traces/local.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/traces/models.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/traces/parsers.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/traces/task_gen.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/training/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/training/backends/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/training/backends/prime_rl.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/training/run_manifest.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/_export_common.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/_llm_capture.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/call_purpose.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/export.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/export_adp.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/export_atif.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/export_prime_sft.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/export_trl_sft.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/metrics.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/results.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/sessions.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/tree.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/trl_sft_tokenization.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/types.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/__main__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/assets/catalog.js +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/assets/fonts/OFL-google-sans-code.txt +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/assets/fonts/google-sans-code-400-latin.woff2 +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/assets/fonts/google-sans-code-600-latin.woff2 +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/assets/viewer.js +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/catalog.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/legacy.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/trajectories/viewer/server.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/src/benchflow/usage_tracking.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/acceptance_live_harness.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/agents/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/agents/test_codex_config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/agents/test_manifest_dirscan.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/agents/test_manifest_loader.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/agents/test_manifest_parity.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/agents/test_manifest_wiring.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/agents/test_namespace_shorthand.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/agents/test_plugin_entry_points.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/agents/test_protocol.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/agents/test_remote_manifest_autoload.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/README.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/acp_smoke/environment/Dockerfile +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/acp_smoke/environment/docker-compose.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/acp_smoke/environment/skills/conformance-writer/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/acp_smoke/instruction.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/acp_smoke/solution/solve.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/acp_smoke/task.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/acp_smoke/task.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/acp_smoke/tests/test.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/conformance-results.json +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/proof_multi_agent.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/proof_snapshot.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/run_conformance.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conformance/self_gen_smoke_skills/skill-creator/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/conftest.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/continue_run/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/continue_run/_helpers.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/continue_run/test_batch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/continue_run/test_orchestrator.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/continue_run/test_replay_proxy.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/continue_run/test_run_folder.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/environment/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/environment/test_chibench_manifest.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/environment/test_clawsbench_manifest.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/environment/test_manifest.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/environment/test_manifest_env.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/environment/test_protocol.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/environment/test_readiness.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/hello-world-task/environment/Dockerfile +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/hello-world-task/instruction.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/hello-world-task/solution/solve.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/hello-world-task/task.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/hello-world-task/task.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/hello-world-task/tests/test.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/test_claude.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/test_codex.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/test_codex_custom_provider.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/test_gemini.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/test_openclaw.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/traces/minimal-claude.jsonl +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/examples/traces/minimal-opentraces.jsonl +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/digest/README.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/digest/alpha-task/environment/Dockerfile +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/digest/alpha-task/instruction.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/digest/alpha-task/task.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/digest/alpha-task/tests/test.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/digest/beta-task/data/empty.bin +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/digest/beta-task/data/unicode.txt +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/digest/beta-task/instruction.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/digest/beta-task/task.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/digest/not-a-task/notes.txt +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/mock_acp_agent.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/mock_acp_agent_interleaved.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/mock_acp_agent_multi_turn.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/mock_openai_responses_server.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/Dockerfile +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/data/michigan_stations.txt +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/flood-detection/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/nws-flood-thresholds/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/flood-risk-analysis/environment/skills/usgs-data-download/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/flood-risk-analysis/instruction.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/flood-risk-analysis/solution/solve.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/flood-risk-analysis/task.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/flood-risk-analysis/tests/test_outputs.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/Dockerfile +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/climate.csv +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/hydrology.csv +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/land_cover.csv +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/data/water_temperature.csv +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/contribution-analysis/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/meteorology-driver-classification/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/pca-decomposition/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/environment/skills/trend-analysis/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/instruction.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/solution/solve.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/task.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/lake-warming-attribution/tests/test_outputs.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/manifest.json +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/Dockerfile +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/r2r_simulator.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/finite-horizon-lqr/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/integral-action-design/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/mpc-horizon-tuning/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/skills/state-space-linearization/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/environment/system_config.json +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/instruction.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/solution/solve.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/task.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/r2r-mpc-control/tests/test_outputs.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/Dockerfile +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/generate_training_pcaps.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/local.rules +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/pcap-triage-tshark/scripts/summarize_http_requests.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-offline-evejson/scripts/run_suricata_offline.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/skills/suricata-rules-basics/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/environment/suricata.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/instruction.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/solution/solve.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/task.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/suricata-custom-exfil/tests/test_outputs.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/Dockerfile +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syz-extract-constants/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzkaller-build-loop/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/environment/skills/syzlang-ioctl-basics/SKILL.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/instruction.md +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/solution/solve.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/task.toml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/fixtures/skillsbench_slice/syzkaller-ppdev-syzlang/tests/test_outputs.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/_consistency.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/agent_judge.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/check_adapter_evidence.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/check_hosted_env_evidence.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/check_results.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/check_skillsbench_harbor_parity.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/check_trace_to_task_evidence.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/configs/claude-agent-acp.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/configs/codex-acp.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/configs/gemini.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/configs/harvey-lab-harness.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/configs/mimo.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/configs/openclaw.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/configs/opencode.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/configs/openhands.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/configs/pi-acp.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/deepagents_harness.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/rubric_checks.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/run.sh +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/run_suite.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/scenarios.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/integration/suites/release.yaml +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_acceptance_evidence.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_acceptance_live.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_acceptance_live_execution.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_acp.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_acp_capability_advertising.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_acp_mcp_servers.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_acp_model_config_dispatch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_acp_pinned_protocol_guard.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_acp_setup_failure_propagation.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_acp_timeout_evidence.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_adapter_scripts.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_adapters.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agent_cli.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agent_env_resolution.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agent_gemini_defaults.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agent_idle_timeout_cli.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agent_model_decouple.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agent_registry.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agent_router.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agent_router_cli_e2e.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agent_router_scaffold.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agent_setup.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agent_spec.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agentcore_builder.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agentcore_parallel.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agentcore_reaper.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agentcore_sandbox.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_agentcore_transport.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_api_error_capture.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_apple_container_sandbox.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_bare_model_provider.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_base_install_imports.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_bedrock_thinking.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_benchflow_experiment_review_validator.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_benchmark_repos_resolve_repo_path.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_branch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_build_context_stage.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_build_review_pack.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_capture_trajectory.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_check_skillsbench_harbor_parity.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_clawsbench_slice.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_cli_adopt_aliases.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_cli_arg_validation.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_cli_daytona.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_cli_docs_drift.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_cli_edge_case_hardening.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_cli_hub_env.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_cli_live_progress.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_cli_misc.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_codex_review.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_codex_self_write_auth.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_config_override.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_config_redaction.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_connect_as_env.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_console_error_truncation.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_console_progress.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_continuallearningbench_adapter.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_dataset_registry.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_daytona_command_polling.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_daytona_dind_compose_up.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_daytona_download.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_daytona_litellm_runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_daytona_poll_deadline.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_daytona_reap.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_deepagents_agent.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_diagnostics.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_docker_prune_scoping.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_docker_uploads.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_docs_examples.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_egress_denylist.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_egress_denylist_integration.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_egress_model_gateway.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_eng50_capabilities.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_env_registry.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_env_setup.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_environment_manifest_controls.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_eval_artifact_cli.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_eval_filters_applied.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_eval_lift.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_eval_sharding.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_eval_single_task_summary.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_eval_source_provenance.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_eval_worker_retry.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_eval_zero_task_guard.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_evaluation_environment_manifest.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_exclude_tasks.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_filter_credentialed_cells.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_harvey_lab_shim.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_hilbench_adapter.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_hosted_env.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_hosted_env_rollout_contract.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_hosted_search_policy.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_hub_harbor_registry.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_inbound_adapter_manifest.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_inbound_adapters.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_integration_agent_judge.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_integration_check_results.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_integration_consistency.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_integration_matrix.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_integration_provider_selection.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_integration_run_suite.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_integration_suite.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_internet_policy.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_job.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_job_sequential_shared.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_job_sequential_shared_resume.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_judge_robustness.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_judge_symlink_ingestion.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_learner_skills.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_learner_skills_traversal.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_learner_store.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_learner_store_persistence.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_litellm_config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_litellm_gemini_passthrough_patch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_litellm_hardening.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_litellm_logging.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_litellm_model_via_env_generic.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_litellm_reasoning_passthrough.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_litellm_runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_litellm_smoke.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_live_llm_trajectory.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_llm_judge.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_llm_judge_event_tags.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_llm_judge_verifier.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_loop_strategies.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_loop_summary.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_loop_sweep.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_memory_scorer.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_metrics.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_mle_bench_adapter.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_mock_openai_responses_server.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_monitor_scaffold.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_native_acp_usage.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_network_denylist_config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_no_cross_provider_fallback.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_notification_order_real.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_opencode_family_proxy_tracking.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_oracle.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_oracle_chokepoint.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_paths_safe.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_paths_symlink_helpers.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_pi_acp_launcher.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_pi_acp_proxy_routing.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_process.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_project_skills_layout.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_provider_auth_detection.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_providers.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_publish_azure_blob.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_publish_huggingface.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_reexport.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_registry_invariants.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_release_hardening_r5.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_release_version.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_release_workflow_wiring.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_resolve_env_helpers.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_review_boundaries.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_review_rubric.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_review_runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_reward_lenient.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_reward_node.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_reward_range.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_reward_unified_contract.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rewards.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rewards_jsonl.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_architecture.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_branch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_config_path_coercion.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_environment.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_hard_deadline.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_import_no_side_effects.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_on_ask_user_wiring.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_planes_contract.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_probe_sandbox_health.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_session_factory_dispatch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_setup_commands.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rollout_upload.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rubric_checks.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_rubric_config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_runtime_capabilities.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_runtime_config_wired.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_runtime_live_sandbox.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_exec_secret_handling.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_hardening.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_isolation_copy_traversal.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_live_process.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_multi_service.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_prebuilt_validation.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_protocol.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_provider_registry_drift.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_setup.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_snapshot_contract.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_upload_symlink.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sandbox_verifier_workspace.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_scene.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_scene_outbox_trial.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_scene_parallel_group.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_scene_result_aggregation.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_scoring.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sdk_internals.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sdk_lockdown.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sdk_run_alias.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_sealed_channel_container.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_self_gen_cli.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_self_gen_export_error_channel.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_self_gen_export_failures.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_self_gen_orchestration.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_session_factory_runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_session_request_permission_dispatch.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_skill_eval.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_skill_eval_dryrun.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_skill_eval_integration.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_skill_eval_sweep.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_skill_eval_traversal.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_skill_invocation_artifacts.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_skill_policy.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_skills.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_skills_dir_agent_home_link.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_skillsbench_conversion_conformance.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_skillsbench_harbor_run_suite.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_smoke.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_smoke_wiring.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_source_adapters.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_subscription_auth.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_task_check_eval_consistency.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_task_config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_task_digest.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_task_document.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_task_download.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_task_export.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_task_output_format.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_task_package.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_task_runtime_primitive.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_tasks.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_token_usage_normalization.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_trace_import_cli.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_trace_task_gen_traversal.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_trace_to_task_evidence.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_traces_huggingface.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_traces_parsers.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_traces_task_gen.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_train_cli.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_train_mode_artifact_emission.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_train_trl_cli.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_traj_report.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_traj_staging_phases.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_traj_tui.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_traj_upload_cli.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_traj_upload_skill.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_traj_workspace.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_trajectory_integration.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_trajectory_streaming.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_trajectory_upload_layout.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_trajectory_upload_service.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_trial_agent_timeout_verify.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_trial_install_agent_timeout.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_trial_litellm_runtime.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_trl_integration.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_usage_litellm.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_usage_required.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_usage_tracking.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_user.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_v06_guard_ports.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_verifier_document.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_verifier_multi_container.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_verifier_output.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_verifier_output_freshness.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_verifier_strategies.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_verifier_wedge_retry.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_verify.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_viewer_confirm.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_workflow_action_pinning.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/test_yaml_config.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/__init__.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/test_export.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/test_export_adp.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/test_export_atif.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/test_export_common.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/test_export_nan_handling.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/test_export_prime_sft.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/test_redaction.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/test_step_granularity.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/test_tree.py +0 -0
- {benchflow-0.7.8.dev2321 → benchflow-0.7.8.dev2329}/tests/trajectories/test_viewer_browser.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: benchflow
|
|
3
|
-
Version: 0.7.8.
|
|
3
|
+
Version: 0.7.8.dev2329
|
|
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
|
|
@@ -162,6 +162,10 @@ class ToolCallRecord:
|
|
|
162
162
|
self.kind = kind
|
|
163
163
|
self.status = ToolCallStatus.PENDING
|
|
164
164
|
self.content: list[dict] = []
|
|
165
|
+
# ACP ``rawInput`` / ``rawOutput``: the agent's own view of the call.
|
|
166
|
+
# codex-acp puts the command and its output here and nowhere else.
|
|
167
|
+
self.raw_input: object | None = None
|
|
168
|
+
self.raw_output: object | None = None
|
|
165
169
|
self.started_at = datetime.now()
|
|
166
170
|
self.finished_at: datetime | None = None
|
|
167
171
|
|
|
@@ -178,6 +182,13 @@ class ToolCallRecord:
|
|
|
178
182
|
):
|
|
179
183
|
self.finished_at = datetime.now()
|
|
180
184
|
|
|
185
|
+
def absorb_raw_io(self, update: dict) -> None:
|
|
186
|
+
"""Keep the latest ``rawInput`` / ``rawOutput`` an update carries."""
|
|
187
|
+
if update.get("rawInput") is not None:
|
|
188
|
+
self.raw_input = update["rawInput"]
|
|
189
|
+
if update.get("rawOutput") is not None:
|
|
190
|
+
self.raw_output = update["rawOutput"]
|
|
191
|
+
|
|
181
192
|
|
|
182
193
|
class ACPSession:
|
|
183
194
|
"""Tracks mutable state for one ACP session.
|
|
@@ -417,6 +428,20 @@ class ACPSession:
|
|
|
417
428
|
update.get("kind", "other"), update.get("title", "")
|
|
418
429
|
),
|
|
419
430
|
)
|
|
431
|
+
# The opening notification may already carry content (codex-acp
|
|
432
|
+
# sends file-change diffs this way) and raw I/O.
|
|
433
|
+
initial_content = update.get("content")
|
|
434
|
+
if isinstance(initial_content, list) and initial_content:
|
|
435
|
+
record.content.extend(initial_content)
|
|
436
|
+
record.absorb_raw_io(update)
|
|
437
|
+
# An opening call may already be terminal (codex-acp file edits
|
|
438
|
+
# arrive completed with no later update); honor its status so it
|
|
439
|
+
# never lingers in pending_tool_call_ids().
|
|
440
|
+
if update.get("status") is not None:
|
|
441
|
+
try:
|
|
442
|
+
record.update_status(ToolCallStatus(update["status"]))
|
|
443
|
+
except ValueError:
|
|
444
|
+
logger.warning(f"Unknown tool call status: {update.get('status')}")
|
|
420
445
|
self._record_tool_call(record)
|
|
421
446
|
|
|
422
447
|
elif update_type == "tool_call_update":
|
|
@@ -440,6 +465,7 @@ class ACPSession:
|
|
|
440
465
|
status = ToolCallStatus.IN_PROGRESS
|
|
441
466
|
content = update.get("content")
|
|
442
467
|
record.update_status(status, content)
|
|
468
|
+
record.absorb_raw_io(update)
|
|
443
469
|
if status in (ToolCallStatus.PENDING, ToolCallStatus.IN_PROGRESS):
|
|
444
470
|
self._pending_tool_call_update_counts[tc_id] = (
|
|
445
471
|
self._pending_tool_call_update_counts.get(tc_id, 0) + 1
|
|
@@ -70,16 +70,21 @@ def _events_to_trajectory(events: list[dict]) -> list[dict]:
|
|
|
70
70
|
for event in events:
|
|
71
71
|
if event["type"] == "tool_call":
|
|
72
72
|
tc = event["record"]
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
73
|
+
record = {
|
|
74
|
+
"type": "tool_call",
|
|
75
|
+
"tool_call_id": tc.tool_call_id,
|
|
76
|
+
"kind": tc.kind,
|
|
77
|
+
"title": tc.title,
|
|
78
|
+
"status": tc.status.value,
|
|
79
|
+
"content": tc.content,
|
|
80
|
+
}
|
|
81
|
+
# Only present when the agent sent them, so trajectories of agents
|
|
82
|
+
# without raw I/O keep their exact shape.
|
|
83
|
+
if getattr(tc, "raw_input", None) is not None:
|
|
84
|
+
record["raw_input"] = tc.raw_input
|
|
85
|
+
if getattr(tc, "raw_output", None) is not None:
|
|
86
|
+
record["raw_output"] = tc.raw_output
|
|
87
|
+
out.append(record)
|
|
83
88
|
elif event["type"] in ("user_message", "agent_message", "agent_thought"):
|
|
84
89
|
out.append({"type": event["type"], "text": event["text"]})
|
|
85
90
|
elif event["type"] == "agent_timeout":
|
|
@@ -14,6 +14,7 @@ BF.detail = (() => {
|
|
|
14
14
|
["trace", "view-trace"],
|
|
15
15
|
["verifier", "view-verifier"],
|
|
16
16
|
["metrics", "view-metrics"],
|
|
17
|
+
["rubric", "view-rubric"],
|
|
17
18
|
]);
|
|
18
19
|
const STEP_KINDS = new Set(["prompt", "message", "thought", "tool", "timeout", "unknown"]);
|
|
19
20
|
const TOOL_HUES = new Set(["read", "edit", "execute", "fetch", "search", "think", "skill", "other"]);
|
|
@@ -178,6 +179,9 @@ BF.detail = (() => {
|
|
|
178
179
|
) {
|
|
179
180
|
available.push(["metrics", "Metrics"]);
|
|
180
181
|
}
|
|
182
|
+
if (payload.rubric && typeof payload.rubric === "object") {
|
|
183
|
+
available.push(["rubric", "Rubric"]);
|
|
184
|
+
}
|
|
181
185
|
|
|
182
186
|
const tabs = document.getElementById("tabs");
|
|
183
187
|
tabs.textContent = "";
|
|
@@ -331,12 +335,13 @@ BF.detail = (() => {
|
|
|
331
335
|
});
|
|
332
336
|
}
|
|
333
337
|
|
|
334
|
-
function collapsibleText(container, text, className) {
|
|
338
|
+
function collapsibleText(container, text, className, language = null) {
|
|
335
339
|
const value = String(text);
|
|
336
340
|
const lines = value.split("\n");
|
|
337
341
|
const body = el("div", className);
|
|
338
342
|
if (value.length <= COLLAPSE_CHARS && lines.length <= COLLAPSE_LINES) {
|
|
339
343
|
textWithRedaction(body, value);
|
|
344
|
+
BF.highlight.paint(body, value, language);
|
|
340
345
|
container.appendChild(body);
|
|
341
346
|
return;
|
|
342
347
|
}
|
|
@@ -354,6 +359,7 @@ BF.detail = (() => {
|
|
|
354
359
|
const open = button.getAttribute("aria-expanded") === "true";
|
|
355
360
|
body.textContent = "";
|
|
356
361
|
textWithRedaction(body, open ? preview + " ..." : value);
|
|
362
|
+
if (!open) BF.highlight.paint(body, value, language);
|
|
357
363
|
button.setAttribute("aria-expanded", open ? "false" : "true");
|
|
358
364
|
button.textContent = open
|
|
359
365
|
? "\u25b8 expand (" + value.length.toLocaleString() + " chars)"
|
|
@@ -413,9 +419,10 @@ BF.detail = (() => {
|
|
|
413
419
|
const tool = record.tool && typeof record.tool === "object" ? record.tool : {};
|
|
414
420
|
const outputClass = "tout" + (toolHue === "execute" ? " term" : "");
|
|
415
421
|
const content = Array.isArray(tool.content) ? tool.content : [];
|
|
416
|
-
content.forEach((item) => {
|
|
422
|
+
content.forEach((item, position) => {
|
|
417
423
|
const wrapper = el("div");
|
|
418
|
-
|
|
424
|
+
const language = BF.highlight.languageFor(String(item), toolHue, tool.title, position);
|
|
425
|
+
collapsibleText(wrapper, item, outputClass, language);
|
|
419
426
|
card.appendChild(wrapper);
|
|
420
427
|
});
|
|
421
428
|
} else if (kind === "timeout") {
|
|
@@ -581,6 +588,72 @@ BF.detail = (() => {
|
|
|
581
588
|
if (!main.children.length) main.appendChild(el("div", "panelblock", "No verifier artifacts in this rollout."));
|
|
582
589
|
}
|
|
583
590
|
|
|
591
|
+
function renderRubric(payload) {
|
|
592
|
+
const rubric = payload.rubric && typeof payload.rubric === "object" ? payload.rubric : null;
|
|
593
|
+
const main = document.getElementById("view-rubric");
|
|
594
|
+
main.textContent = "";
|
|
595
|
+
if (!rubric) {
|
|
596
|
+
main.appendChild(el("div", "panelblock", "No review report found for this rollout."));
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
599
|
+
const scoring = rubric.scoring && typeof rubric.scoring === "object" ? rubric.scoring : {};
|
|
600
|
+
const head = el("div", "panelblock");
|
|
601
|
+
head.appendChild(el("h2", null, "Review"));
|
|
602
|
+
const facts = el("table", "plain");
|
|
603
|
+
const rows = [
|
|
604
|
+
["Reviewer", rubric.reviewer_model || ""],
|
|
605
|
+
["Valid", rubric.review_valid ? "yes" : "no"],
|
|
606
|
+
["Verifier pass", scoring.deterministic_pass === undefined ? "" : (scoring.deterministic_pass ? "yes" : "no")],
|
|
607
|
+
["Blockers", scoring.all_blockers_pass === undefined ? ""
|
|
608
|
+
: (scoring.all_blockers_pass ? "all pass" : "failed: " + (scoring.failed_blockers || []).join(", "))],
|
|
609
|
+
["Raw quality", scoring.raw_quality === undefined ? "" : String(scoring.raw_quality)],
|
|
610
|
+
["Gated quality", scoring.gated_quality === undefined ? "" : String(scoring.gated_quality)],
|
|
611
|
+
["Decision", scoring.decision || ""],
|
|
612
|
+
];
|
|
613
|
+
rows.forEach(([label, value]) => {
|
|
614
|
+
const row = el("tr");
|
|
615
|
+
row.appendChild(el("th", null, label));
|
|
616
|
+
const cell = el("td", null, value);
|
|
617
|
+
if (label === "Blockers" || label === "Verifier pass") {
|
|
618
|
+
cell.style.color = /fail|^no$/.test(value) ? "var(--bad-ink)" : (value ? "var(--ok-ink)" : "");
|
|
619
|
+
}
|
|
620
|
+
row.appendChild(cell);
|
|
621
|
+
facts.appendChild(row);
|
|
622
|
+
});
|
|
623
|
+
head.appendChild(facts);
|
|
624
|
+
if (rubric.summary) collapsibleText(head, rubric.summary, "body");
|
|
625
|
+
main.appendChild(head);
|
|
626
|
+
|
|
627
|
+
const criteria = Array.isArray(rubric.criteria) ? rubric.criteria : [];
|
|
628
|
+
if (criteria.length) {
|
|
629
|
+
const block = el("div", "panelblock");
|
|
630
|
+
block.appendChild(el("h2", null, "Criteria"));
|
|
631
|
+
const table = el("table", "plain");
|
|
632
|
+
const heading = el("tr");
|
|
633
|
+
["Criterion", "Kind", "Verdict", "Reviewer note"].forEach((label) => heading.appendChild(el("th", null, label)));
|
|
634
|
+
table.appendChild(heading);
|
|
635
|
+
criteria.forEach((criterion) => {
|
|
636
|
+
const record = criterion && typeof criterion === "object" ? criterion : {};
|
|
637
|
+
const row = el("tr");
|
|
638
|
+
row.appendChild(el("td", null, record.name));
|
|
639
|
+
// blocker true: v0.2 blocker; false: v0.2 scored; null: legacy v0.1 (outcome only)
|
|
640
|
+
const scored = record.blocker === false;
|
|
641
|
+
const kind = record.blocker === true ? "blocker" : (scored ? "weight " + (record.weight ?? "?") : "criterion");
|
|
642
|
+
row.appendChild(el("td", null, kind));
|
|
643
|
+
const verdict = el("td", null, scored ? ((record.score ?? "?") + " / 2") : (record.outcome || ""));
|
|
644
|
+
if (!scored && record.outcome) {
|
|
645
|
+
verdict.style.color = record.outcome === "pass" ? "var(--ok-ink)"
|
|
646
|
+
: (record.outcome === "fail" ? "var(--bad-ink)" : "var(--muted-foreground)");
|
|
647
|
+
}
|
|
648
|
+
row.appendChild(verdict);
|
|
649
|
+
row.appendChild(el("td", null, record.explanation || ""));
|
|
650
|
+
table.appendChild(row);
|
|
651
|
+
});
|
|
652
|
+
block.appendChild(table);
|
|
653
|
+
main.appendChild(block);
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
|
|
584
657
|
function renderMetrics(payload) {
|
|
585
658
|
const meta = payload.meta || {};
|
|
586
659
|
const main = document.getElementById("view-metrics");
|
|
@@ -662,7 +735,7 @@ BF.detail = (() => {
|
|
|
662
735
|
}
|
|
663
736
|
|
|
664
737
|
function clearDetail() {
|
|
665
|
-
["hdr", "tabs", "view-trace", "view-verifier", "view-metrics"].forEach((id) => {
|
|
738
|
+
["hdr", "tabs", "view-trace", "view-verifier", "view-metrics", "view-rubric"].forEach((id) => {
|
|
666
739
|
document.getElementById(id).textContent = "";
|
|
667
740
|
});
|
|
668
741
|
document.getElementById("toolbar").textContent = "";
|
|
@@ -702,6 +775,7 @@ BF.detail = (() => {
|
|
|
702
775
|
renderTrace(payload);
|
|
703
776
|
renderVerifier(payload);
|
|
704
777
|
renderMetrics(payload);
|
|
778
|
+
renderRubric(payload);
|
|
705
779
|
document.title = (payload.meta && payload.meta.task_name) || payload.rollout_name || "benchflow trajectory";
|
|
706
780
|
if (options.focusHeading) requestAnimationFrame(() => heading.focus());
|
|
707
781
|
}
|
|
@@ -5,6 +5,15 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
6
|
<title>__BENCHFLOW_TITLE__</title>
|
|
7
7
|
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6' fill='%230a0a0a'/%3E%3C/svg%3E">
|
|
8
|
+
<script>
|
|
9
|
+
(function () {
|
|
10
|
+
var stored = null;
|
|
11
|
+
try { stored = localStorage.getItem("bf-theme"); } catch (e) {}
|
|
12
|
+
var dark = stored ? stored === "dark"
|
|
13
|
+
: window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
14
|
+
if (dark) document.documentElement.dataset.theme = "dark";
|
|
15
|
+
})();
|
|
16
|
+
</script>
|
|
8
17
|
<style>
|
|
9
18
|
/*__BENCHFLOW_THEME_CSS__*/
|
|
10
19
|
/*__BENCHFLOW_VIEWER_CSS__*/
|
|
@@ -16,6 +25,7 @@
|
|
|
16
25
|
<svg viewBox="0 0 514 512" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M445.422 66.4597L511.882 0L389.022 293.965L295.129 387.859L0 511.882L69.3042 442.577L81.0101 454.283L89.0554 446.238L77.3493 434.532L130.65 381.232L162.469 413.051L170.514 405.006L138.695 373.187L191.995 319.887L203.701 331.593L211.746 323.547L200.04 311.841L253.34 258.541L285.16 290.36L293.205 282.315L261.386 250.496L314.686 197.196L326.392 208.902L334.437 200.856L322.731 189.15L376.031 135.85L407.851 167.669L415.896 159.624L384.077 127.805L437.377 74.5049L449.083 86.2108L457.128 78.1656L445.422 66.4597ZM399.127 389.865V299.369L513.197 26.4333V503.935L399.127 389.865ZM391.061 397.931L505.132 512.001H29.1594L300.605 397.931H391.061Z"/></svg>
|
|
17
26
|
<span class="brand">BenchFlow</span>
|
|
18
27
|
<span class="app">trajectory viewer</span>
|
|
28
|
+
<button id="theme-toggle" type="button" aria-label="toggle color theme">theme</button>
|
|
19
29
|
</div>
|
|
20
30
|
<main id="view-index" class="hidden" aria-label="run catalog"></main>
|
|
21
31
|
<div id="content">
|
|
@@ -26,10 +36,14 @@
|
|
|
26
36
|
<main id="view-trace" role="tabpanel"></main>
|
|
27
37
|
<main id="view-verifier" role="tabpanel" class="hidden"></main>
|
|
28
38
|
<main id="view-metrics" role="tabpanel" class="hidden"></main>
|
|
39
|
+
<main id="view-rubric" role="tabpanel" class="hidden"></main>
|
|
29
40
|
</div>
|
|
30
41
|
</div>
|
|
31
42
|
<script id="bf-payload" type="application/json">__BENCHFLOW_PAYLOAD__</script>
|
|
32
43
|
<script>
|
|
44
|
+
//__BENCHFLOW_VENDOR_JS__
|
|
45
|
+
</script>
|
|
46
|
+
<script>
|
|
33
47
|
//__BENCHFLOW_VIEWER_JS__
|
|
34
48
|
</script>
|
|
35
49
|
</body>
|
|
@@ -126,4 +126,34 @@
|
|
|
126
126
|
--warn-bg: color-mix(in srgb, var(--warning) 12%, var(--card));
|
|
127
127
|
--warn-line: color-mix(in srgb, var(--warning) 28%, var(--card));
|
|
128
128
|
--warn-strip: color-mix(in srgb, var(--warning) 60%, var(--card));
|
|
129
|
+
|
|
130
|
+
/* syntax highlighting palette (GitHub light); terminal blocks and the dark
|
|
131
|
+
theme swap in the dark palette below */
|
|
132
|
+
--hl-fg: #24292e; --hl-kw: #d73a49; --hl-str: #032f62; --hl-num: #005cc5; --hl-cmt: #6a737d;
|
|
133
|
+
--hl-fn: #6f42c1; --hl-var: #e36209; --hl-add: #22863a; --hl-add-bg: #e6ffed;
|
|
134
|
+
--hl-del: #b31d28; --hl-del-bg: #ffeef0;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* dark theme: an override of the same tokens, applied by data-theme="dark" on
|
|
138
|
+
<html> (chosen from prefers-color-scheme by default, toggled from the
|
|
139
|
+
wordmark). Pages without the attribute render exactly as before. */
|
|
140
|
+
html[data-theme="dark"] {
|
|
141
|
+
color-scheme: dark;
|
|
142
|
+
--background: #0f1216; --foreground: #e6e6e6;
|
|
143
|
+
--card: #171b21; --card-foreground: #e6e6e6;
|
|
144
|
+
--primary: #e6e6e6; --primary-foreground: #111111;
|
|
145
|
+
--secondary: #222831; --secondary-foreground: #e6e6e6;
|
|
146
|
+
--muted: #222831; --muted-foreground: #9aa4b2;
|
|
147
|
+
--accent: #222831; --accent-foreground: #e6e6e6;
|
|
148
|
+
--border: #2b323c;
|
|
149
|
+
--ink-secondary: #c3c9d1; --faint: #6b7480; --rule-strong: #3a424d;
|
|
150
|
+
--code-bg: #0b0e12; --code-ink: #e6e6e6;
|
|
151
|
+
--kind-execute-bg: #2a2410; --kind-execute-line: #4a3c14; --kind-execute-ink: #e2b84f; --kind-execute-strip: #b58a2c;
|
|
152
|
+
--kind-edit-bg: #14213a; --kind-edit-line: #1f3a63; --kind-edit-ink: #8fbcf0; --kind-edit-strip: #4f83c4;
|
|
153
|
+
--kind-read-bg: #10281f; --kind-read-line: #1c4a37; --kind-read-ink: #7ed3ae; --kind-read-strip: #3e9c74;
|
|
154
|
+
--kind-agent-bg: #241c3a; --kind-agent-line: #3b2d61; --kind-agent-ink: #c6b0ee; --kind-agent-strip: #8a6bd0;
|
|
155
|
+
--kind-web-bg: #0f2a33; --kind-web-line: #1c4a58; --kind-web-ink: #7ecbe0; --kind-web-strip: #3f9fb8;
|
|
156
|
+
--hl-fg: #e6edf3; --hl-kw: #ff7b72; --hl-str: #a5d6ff; --hl-num: #79c0ff; --hl-cmt: #8b949e;
|
|
157
|
+
--hl-fn: #d2a8ff; --hl-var: #ffa657; --hl-add: #7ee787; --hl-add-bg: #12261e;
|
|
158
|
+
--hl-del: #ffa198; --hl-del-bg: #3a1618;
|
|
129
159
|
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// Color theme (light/dark) and syntax highlighting of tool content.
|
|
2
|
+
//
|
|
3
|
+
// The theme is a data attribute on <html>; template.html applies the stored
|
|
4
|
+
// or system preference before first paint, this module owns the toggle.
|
|
5
|
+
// Highlighting is deliberately conservative: a block is colored only when its
|
|
6
|
+
// language is known from a markdown fence, a diff signature, or the tool kind,
|
|
7
|
+
// never from auto-detection, so plain logs stay plain.
|
|
8
|
+
// Extends the BF namespace declared in viewer.js, like detail.js and catalog.js.
|
|
9
|
+
|
|
10
|
+
BF.theme = (() => {
|
|
11
|
+
const KEY = "bf-theme";
|
|
12
|
+
|
|
13
|
+
function current() {
|
|
14
|
+
return document.documentElement.dataset.theme === "dark" ? "dark" : "light";
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function apply(theme) {
|
|
18
|
+
if (theme === "dark") document.documentElement.dataset.theme = "dark";
|
|
19
|
+
else delete document.documentElement.dataset.theme;
|
|
20
|
+
const button = document.getElementById("theme-toggle");
|
|
21
|
+
if (button) button.textContent = theme === "dark" ? "light" : "dark";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function toggle() {
|
|
25
|
+
const next = current() === "dark" ? "light" : "dark";
|
|
26
|
+
try { localStorage.setItem(KEY, next); } catch (e) { /* storage may be disabled */ }
|
|
27
|
+
apply(next);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function init() {
|
|
31
|
+
apply(current());
|
|
32
|
+
const button = document.getElementById("theme-toggle");
|
|
33
|
+
if (button) button.addEventListener("click", toggle);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return { init, toggle, current };
|
|
37
|
+
})();
|
|
38
|
+
|
|
39
|
+
BF.highlight = (() => {
|
|
40
|
+
const FENCE = /^```([A-Za-z0-9_+-]*)\s*\n/;
|
|
41
|
+
const HEREDOC = /^(.*?\b(?:python3?|python -)\b[^\n]*<<-?\s*['"]?(\w+)['"]?\s*\n)([\s\S]*?)(\n\2\b[\s\S]*)$/;
|
|
42
|
+
const EXTENSIONS = {
|
|
43
|
+
py: "python", sh: "bash", bash: "bash", json: "json", yaml: "yaml", yml: "yaml",
|
|
44
|
+
toml: "ini", ini: "ini", md: "markdown", c: "c", h: "c", cpp: "cpp", hpp: "cpp",
|
|
45
|
+
cc: "cpp", js: "javascript", mjs: "javascript", ts: "typescript", rs: "rust",
|
|
46
|
+
diff: "diff", patch: "diff",
|
|
47
|
+
};
|
|
48
|
+
const FENCE_ALIASES = { console: "shell", sh: "bash", shell: "shell", text: null, "": null };
|
|
49
|
+
|
|
50
|
+
function known(language) {
|
|
51
|
+
return language && window.hljs && hljs.getLanguage(language) ? language : null;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function fromFence(text) {
|
|
55
|
+
const match = text.match(FENCE);
|
|
56
|
+
if (!match) return null;
|
|
57
|
+
const name = match[1].toLowerCase();
|
|
58
|
+
return known(name in FENCE_ALIASES ? FENCE_ALIASES[name] : name);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function isDiff(text) {
|
|
62
|
+
const head = text.slice(0, 400);
|
|
63
|
+
return /^\*\*\* Begin Patch|^diff |^--- [^\n]*\n\+\+\+ |^@@ /m.test(head);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Language for one content block of a tool card, or null to leave it plain.
|
|
67
|
+
function languageFor(text, hue, title, position) {
|
|
68
|
+
if (!window.hljs) return null;
|
|
69
|
+
const fenced = fromFence(text);
|
|
70
|
+
if (fenced) return fenced;
|
|
71
|
+
if (isDiff(text)) return "diff";
|
|
72
|
+
if (text.startsWith("```")) return null;
|
|
73
|
+
if (hue === "execute" && position === 0) return "bash";
|
|
74
|
+
if ((hue === "read" || hue === "edit") && typeof title === "string") {
|
|
75
|
+
const match = title.match(/\.([A-Za-z0-9]+)\s*$/);
|
|
76
|
+
if (match) return known(EXTENSIONS[match[1].toLowerCase()]);
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function render(text, language) {
|
|
82
|
+
const options = { language, ignoreIllegals: true };
|
|
83
|
+
const heredoc = language === "bash" ? text.match(HEREDOC) : null;
|
|
84
|
+
if (heredoc && hljs.getLanguage("python")) {
|
|
85
|
+
return hljs.highlight(heredoc[1], options).value
|
|
86
|
+
+ hljs.highlight(heredoc[3], { language: "python", ignoreIllegals: true }).value
|
|
87
|
+
+ hljs.highlight(heredoc[4], options).value;
|
|
88
|
+
}
|
|
89
|
+
return hljs.highlight(text, options).value;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Replace the block's text nodes with highlighted markup. Blocks that carry
|
|
93
|
+
// redaction markers keep their spans and are left uncolored.
|
|
94
|
+
function paint(block, text, language) {
|
|
95
|
+
if (!language || !window.hljs || block.querySelector(".redacted")) return;
|
|
96
|
+
if (block.textContent !== text) return;
|
|
97
|
+
block.innerHTML = render(text, language);
|
|
98
|
+
block.classList.add("hljs");
|
|
99
|
+
block.dataset.language = language;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return { languageFor, paint };
|
|
103
|
+
})();
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2006, Ivan Sagalaev.
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
|
8
|
+
|
|
9
|
+
* Redistributions of source code must retain the above copyright notice, this
|
|
10
|
+
list of conditions and the following disclaimer.
|
|
11
|
+
|
|
12
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
and/or other materials provided with the distribution.
|
|
15
|
+
|
|
16
|
+
* Neither the name of the copyright holder nor the names of its
|
|
17
|
+
contributors may be used to endorse or promote products derived from
|
|
18
|
+
this software without specific prior written permission.
|
|
19
|
+
|
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
21
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
22
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
24
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
25
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
26
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
27
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
28
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
29
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|