inspect-ai 0.3.52__tar.gz → 0.3.53__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.
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/CHANGELOG.md +21 -0
- {inspect_ai-0.3.52/src/inspect_ai.egg-info → inspect_ai-0.3.53}/PKG-INFO +1 -3
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_quarto.yml +0 -3
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_sandboxenv-interface.md +1 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/extensions.qmd +5 -0
- inspect_ai-0.3.53/docs/images/task-max-sandboxes.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/parallelism.qmd +6 -4
- inspect_ai-0.3.53/docs/scripts/post-render.sh +23 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/tools.qmd +1 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/pyproject.toml +0 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/requirements.txt +0 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/eval.py +29 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/progress.py +9 -3
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/results.py +8 -4
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/task_detail.py +3 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/tasks.py +86 -5
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/eval.py +16 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/evalset.py +4 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/registry.py +2 -2
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/results.py +22 -4
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/run.py +14 -10
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/sandbox.py +72 -43
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/task.py +4 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/util.py +2 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/App.css +13 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/assets/index.css +13 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/assets/index.js +80 -43
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/App.mjs +31 -6
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/Types.mjs +6 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/JsonPanel.mjs +11 -17
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MessageContent.mjs +9 -2
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Tools.mjs +46 -18
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/navbar/Navbar.mjs +12 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleList.mjs +2 -2
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ToolEventView.mjs +2 -2
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_log.py +3 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/eval.py +8 -7
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_generate_config.py +6 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/azureai.py +1 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/bedrock.py +17 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/hf.py +1 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/openai.py +32 -8
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/providers.py +1 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/vllm.py +1 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/context.py +1 -2
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/config.py +8 -10
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/docker.py +9 -5
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/util.py +3 -3
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/environment.py +7 -2
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/limits.py +1 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/local.py +8 -9
- {inspect_ai-0.3.52 → inspect_ai-0.3.53/src/inspect_ai.egg-info}/PKG-INFO +1 -3
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/SOURCES.txt +2 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/requires.txt +0 -2
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_metric.py +80 -0
- inspect_ai-0.3.53/tests/solver/test_setup.py +21 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/CHANGELOG.md +9 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/package.json +1 -1
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/extension.ts +1 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-panel.ts +1 -1
- inspect_ai-0.3.52/docs/scripts/post-render.sh +0 -13
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/dependabot.yml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/pull_request_template.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/workflows/build.yml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/workflows/docs.yml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/workflows/log_viewer.yml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/workflows/pypi.yml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/workflows/vscode.yml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.gitignore +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.pre-commit-config.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.vscode/extensions.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.vscode/settings.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/CITATION.cff +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/LICENSE +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/Makefile +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/README.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/.gitignore +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/CNAME +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_errors_and_retries.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_sample-preservation.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_tools-annotations-required.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_tools-scaffold.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_trace.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_variables.yml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/agents-api.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/agents.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/approval.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/caching.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/datasets.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/errors-and-limits.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/eval-logs.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/eval-sets.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/examples/examples.bib +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/examples/examples.css +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/examples/examples.ejs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/examples/examples.yml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/examples/index.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/aisi-logo.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/eval-log.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-activity-bar.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-multiple-models.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-answers.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-filter.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-history.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-home.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-info.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-logging-console.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-logging.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-main.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-messages.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-metadata.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-scoring.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-sort.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-splash.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-vscode-config.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-vscode-install.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-vscode-logview.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-vscode-output-channel.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-vscode-run-task.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/logs-drop-down.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/logs-open-button.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/logs.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/popularity.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/python-tool-view.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/rate-limit.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/running-theory.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/toolenv-no-cleanup.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/web-browser-tool-view.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/index.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/interactivity.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/llms.txt +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/log-viewer.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/models.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/scorers.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/solvers.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/theme.scss +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/tutorial.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/vscode.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/workflow.qmd +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/approval/README.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/approval/approval.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/approval/approval.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/biology_qa.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/browser/browser.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/browser/compose.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/cache.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/evalset.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/hello_world.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/images/ballons.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/images/bike.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/images/images.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/images/images.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/intervention/Dockerfile +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/intervention/README.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/intervention/compose.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/intervention/intervention.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/.env.example +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/.gitignore +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/README.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/inspect_langchain.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/requirements.txt +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/wikipedia.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/wikipedia.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/popularity.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/security_guide.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/theory_of_mind.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/tool_use.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/setup.cfg +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/__main__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/cache.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/common.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/info.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/list.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/log.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/main.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/sandbox.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/score.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/util.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/view.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/active.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/config.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/display.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/footer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/group.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/panel.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/rich.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/textual.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/rich/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/rich/display.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/app.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/app.tcss +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/display.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/theme.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/clock.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/console.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/footer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/samples.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/titlebar.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/toggle.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/transcript.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/context.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/list.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/loader.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/run.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/score.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/constants.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/epochs.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/error.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/generate.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/images.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/log.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/rundir.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/_async.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/appdirs.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/config.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/constants.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/content.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/datetime.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/decorator.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/deprecation.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/dev.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/dict.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/display.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/dotenv.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/entrypoints.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/environ.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/error.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/file.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/format.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/git.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/hash.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/hooks.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/html.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/http.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/images.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/json.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/list.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/logger.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/notebook.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/package.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/path.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/pattern.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/platform.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/registry.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/retry.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/rich.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/samples.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/terminal.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/text.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/throttle.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/timeouts.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/transcript.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/url.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/version.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/notify.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/schema.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/server.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/view.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/.gitignore +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/.prettierignore +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/.tool-versions +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/README.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/assets/favicon.svg +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/index.html +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/eslint.config.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/favicon.svg +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/index.html +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/jsconfig.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/log-schema.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/package.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/postcss.config.cjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/Register.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/Types.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-browser.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-http.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-shared.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-vscode.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/client-api.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/index.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/jsonrpc.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Colors.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Fonts.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Icons.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Styles.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/AnsiDisplay.css +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/AnsiDisplay.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/AppErrorBoundary.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Browser.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Card.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ChatView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/CopyButton.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Dialog.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/DownloadButton.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/DownloadPanel.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/EmptyPanel.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ErrorPanel.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ExpandablePanel.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/FindBand.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/LabeledValue.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/LargeModal.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MarkdownDiv.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MessageBand.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MetaDataGrid.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MetaDataView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MorePopOver.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/NavPills.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ProgressBar.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/RenderedContent/ChatMessageRenderer.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/RenderedContent/RenderedContent.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/RenderedContent/Types.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/TabSet.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ToolButton.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/VirtualList.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ansi-output.js +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/constants.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/index.js +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/json/JsonTab.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log/remoteLogFile.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log-reader/Log-Reader.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log-reader/Native-Log-Reader.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log-reader/Open-AI-Log-Reader.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/navbar/SecondaryBar.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/plan/PlanCard.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleDialog.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleDisplay.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleError.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleLimit.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleScoreView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleScores.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleTranscript.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SamplesDescriptor.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SamplesTab.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SamplesTools.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/EpochFilter.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/SampleFilter.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/SelectScorer.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/SortFilter.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/filters.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ApprovalEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ErrorEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/EventPanel.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/EventRow.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/EventSection.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/InfoEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/InputEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/LoggerEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ModelEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/SampleInitEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/SampleLimitEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ScoreEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/StepEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptState.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/Types.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/state/StateDiffView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventRenderers.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventView.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/sidebar/Sidebar.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/types/jsondiffpatch.d.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/types/log.d.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/types/prism.d.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/usage/ModelTokenTable.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/usage/UsageCard.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Base64.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Format.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Git.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Html.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Json.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Path.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Print.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Type.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/attachments.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/debugging.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/http.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/queue.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/remoteZipFile.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/sync.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/vscode.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/workspace/TaskErrorPanel.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/workspace/WorkSpace.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/tsconfig.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/vite.config.js +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/yarn.lock +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_apply.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_approval.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_approver.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_auto.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_call.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/approver.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/console.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/manager.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/panel.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/util.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_policy.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_registry.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_dataset.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/bias_detection.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/biology_qa.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/popularity.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/security_guide.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/theory_of_mind.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/csv.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/example.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/file.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/hf.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/json.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/util.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_util.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_bundle.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_condense.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_convert.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_file.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_message.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/create.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/file.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/json.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/recorder.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_retry.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_samples.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_transcript.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_cache.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_call_tools.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_chat_message.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_image.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_model.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_model_call.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_model_output.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/anthropic.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/cloudflare.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/google.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/grok.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/groq.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/llama_cpp_python.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/mistral.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/mockllm.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/ollama.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/openai_o1.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/together.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/chatapi.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/hf_handler.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/llama31.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/util.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/vertex.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_registry.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_render.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_trace.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/py.typed +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_answer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_choice.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_classification.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_common.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_match.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metric.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/accuracy.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/mean.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/std.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_model.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_multi.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_pattern.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/reducer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/registry.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/types.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_score.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_scorer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_target.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_basic_agent.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_chain.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_critique.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_fork.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_multiple_choice.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_plan.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_prompt.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_solver.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_task_state.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_transcript.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_use_tools.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_util.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_call.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_choice.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_def.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_description.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_info.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_params.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_transcript.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_with.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_execute.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/Dockerfile +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/README.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/accessibility_node.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/dm_env_servicer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/images/usage_diagram.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/mock_environment.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/playwright_crawler.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_accessibility_node.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_dm_env_servicer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_playwright_crawler.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_web_environment.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client_new_session.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_environment.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_server.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_web_browser.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_search.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_concurrency.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_console.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_panel.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_resource.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/cleanup.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/compose.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/internal.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/prereqs.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/registry.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/self_check.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/service.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_store.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_subprocess.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_subtask.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_trace.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/dependency_links.txt +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/entry_points.txt +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/top_level.txt +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/approve.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/escalate.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/modify.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/reject.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/terminate.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/test_approval.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/conftest.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/dataset.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/images/ballons.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/images.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples-md.csv +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples-md.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples-md.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples.csv +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_formats.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_images.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_images_tc.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_invalid.txt +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_length_stop_reason.txt +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_streaming.eval +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_valid.txt +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_version_3.txt +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_with_nan.txt +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_list_logs/2024-11-05T13-31-45-05-00_input-task_8zXjbRzCWrL9GXiXo2vus9.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_list_logs/2024-11-05T13-32-37-05-00_input-task_hxs4q9azL3ySGkjJirypKZ.eval +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_list_logs/custom.eval +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_list_logs/ignore.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_list_logs.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_log_attachments.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_log_formats.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_log_level.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_log_streaming.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_log_tags.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_anthropic.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_azureai.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_cloudflare.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_google.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_grok.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_groq.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_hf.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_llama_cpp_python.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_openai.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_openai_o1.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_vertex.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_vllm.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_api_key.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_collapse_assistant_message.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_collapse_user_message.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_disable.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_logprobs.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_mock_model_llm.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_num_choices.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_parse_tool_call.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_stop_reason.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_answer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_choice.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_classification.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_match.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_model_graded.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_multiscorer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_pattern.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_reducers.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_scorer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_value_to_float.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_basic_agent.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_chain.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_fork.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_multiple_choice.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_prompt.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_solver.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_solver_decorator.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_solver_spec.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_store.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_subtask.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_transcript.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_config/model.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_config/solver.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_config/task.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_config.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_set/2024-08-29T15-11-17+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_set/2024-08-29T15-11-18+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_set.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_examples.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_extensions.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_fail_on_error.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_helpers/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_helpers/tasks.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_helpers/tool_call_utils.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_helpers/tools.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_helpers/utils.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_list_task.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_log_dir/example_task/example_task.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_log_dir/test_log_dir.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/.gitignore +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/_registry.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/approvers/renamer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/modelapi/custom.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/py.typed +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/sandboxenv/podman.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/score/scorer.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/solvers/cot.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/pyproject.toml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_retry.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_run_dir/task1/task1.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_run_dir/task2/task2.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_run_dir.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_sample_id.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_sample_limits.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_attr.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/__init__.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/attribs.ipynb +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/multiple.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/_decoy/testit.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/_decoy2.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/bar.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/foo.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/.folder3/epsilon.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder1/_decoy.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder1/theta.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder2/.folder3/epsilon.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder2/another.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder2/first.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/docker-compose-context/Dockerfile +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/docker-compose-context-alpine/Dockerfile +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_bash_tool.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_max_exec_output.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_max_tool_output.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_python_tool.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_sandbox_compose.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_sandbox_compose_alpine.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_sandbox_docker_and_local.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_sandbox_dockerfile.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_sandbox_tool_eval.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tool_def.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tool_parse.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tool_types.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tool_view.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tool_with.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tools.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_use_tools.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_web_browser.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_web_browser_compose.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/sandbox/docker_compose_multiple_services/docker-compose.yaml +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/sandbox/sandbox_setup.sh +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/sandbox/test_docker_compose_multiple_services.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/sandbox/test_sandbox_service.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/sandbox/test_sandbox_setup.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_file.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_images/images.jsonl +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_images.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_package.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_registry.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_str_to_float.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_subprocess.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/view/test_bundle.py +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.eslintrc.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.gitignore +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscode/extensions.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscode/launch.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscode/settings.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscode/tasks.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscode-test.mjs +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscodeignore +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.yarnrc +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/LICENSE +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/README.md +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/icon/eval-treeview.svg +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/icon/eval.svg +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/logo/inspect.png +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/logo/inspect.svg +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/templates/task.py.template +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/www/codicon/codicon.css +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/www/codicon/codicon.ttf +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/www/view/view-overrides.css +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/@types/hooks.d.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/@types/log.d.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/document.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/error.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/focus.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/notebook.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/symbol.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/task.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/templates.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/webview.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/appdirs.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/command.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/dispose.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/env.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/file.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/git.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/jsonrpc.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/log.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/nonce.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/path.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/port.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/process.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/python/code.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/python/env.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/python/exec.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/python/index.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/python/interpreter.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/random.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/string.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/text.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/uri.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/vscode/association.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/wait.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/workspace.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/hooks/hooks.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/hooks/index.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/hooks/preview.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/inspect/index.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/inspect/logs.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/inspect/props.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/inspect/version.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/active-task/active-task-command.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/active-task/active-task-provider.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/activity-bar-provider.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/env-config-provider.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-directory-selector.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-data.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-mru.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-provider.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-config-commands.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-config-provider.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-outline-commands.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-outline-provider.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.css +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.css +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/vscode-controls.css +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/webview-utils.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/codelens/codelens-provider.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-commands.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-constants.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-eval-commands.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-eval.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-logs-watcher.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-manager.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-view-server.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/lognotify.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/commands.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-editor.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-link-provider.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-state.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-view.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/openlog.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/protocol-handler.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/settings/inspect-settings.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/settings/user-settings.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/statusbar.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-env-commands.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-env-provider.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-init.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-state-provider.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-task-provider.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/test/extension.test.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/.gitignore +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/package.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/rollup.config.js +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/src/index.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/src/jsonrpc.ts +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/yarn.lock +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tsconfig.json +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/webpack.config.js +0 -0
- {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/yarn.lock +0 -0
@@ -1,5 +1,26 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v0.3.53 (20 December 2024)
|
4
|
+
|
5
|
+
- OpenAI: Support for o1 including native tool calling and `reasoning_effort` generation option.
|
6
|
+
- Task API: Introduce `setup` step that always runs even if `solver` is replaced.
|
7
|
+
- Bedrock: Support for tool calling on Nova models.
|
8
|
+
- Bedrock: Support for custom `model_args` passed through to `session.Client`.
|
9
|
+
- Bedrock: Support for `jpeg` images.
|
10
|
+
- Bedrock: Correct max_tokens for llama3-8b, llama3-70b models on Bedrock.
|
11
|
+
- Inspect View: Various improvements to appearance of tool calls in transcript.
|
12
|
+
- Task display: Ensure that widths of progress elements are kept consistant across tasks.
|
13
|
+
- Sandboxes: New `max_sandboxes` option for (per-provider) maximum number of running sandboxes.
|
14
|
+
- Sandboxes: Remove use of aiofiles to mitigate potential for threading deadlocks.
|
15
|
+
- Concurrency: Do not use `max_tasks` as a lower bound for `max_samples`.
|
16
|
+
- Log recorder: Always re-open log buffer for `eval` format logs.
|
17
|
+
- Bugfix: Proper handling of text find for eval raw JSON display
|
18
|
+
- Bugfix: Correct handling for `--sample-id` integer comparisons.
|
19
|
+
- Bugfix: Proper removal of model_args with falsey values (explicit check for `None`)
|
20
|
+
- Bugfix: Properly handle custom metrics that return dictionaries or lists
|
21
|
+
- Bugfix: Proper sample count display when retrying an evaluation
|
22
|
+
- Bugfix: Fix inability to define and run tasks in a notebook.
|
23
|
+
|
3
24
|
## v0.3.52 (13 December 2024)
|
4
25
|
|
5
26
|
- Eval: `--sample-id` option for evaluating specific sample id(s).
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: inspect_ai
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.53
|
4
4
|
Summary: Framework for large language model evaluations
|
5
5
|
Author: UK AI Safety Institute
|
6
6
|
License: MIT License
|
@@ -20,7 +20,6 @@ Classifier: Operating System :: OS Independent
|
|
20
20
|
Requires-Python: >=3.10
|
21
21
|
Description-Content-Type: text/markdown
|
22
22
|
License-File: LICENSE
|
23
|
-
Requires-Dist: aiofiles
|
24
23
|
Requires-Dist: aiohttp>=3.9.0
|
25
24
|
Requires-Dist: anyio>=4.4.0
|
26
25
|
Requires-Dist: beautifulsoup4
|
@@ -71,7 +70,6 @@ Requires-Dist: pytest-xdist; extra == "dev"
|
|
71
70
|
Requires-Dist: ruff==0.8.3; extra == "dev"
|
72
71
|
Requires-Dist: textual-dev>=0.86.2; extra == "dev"
|
73
72
|
Requires-Dist: types-PyYAML; extra == "dev"
|
74
|
-
Requires-Dist: types-aiofiles; extra == "dev"
|
75
73
|
Requires-Dist: types-beautifulsoup4; extra == "dev"
|
76
74
|
Requires-Dist: types-aioboto3; extra == "dev"
|
77
75
|
Requires-Dist: types-boto3; extra == "dev"
|
@@ -125,6 +125,10 @@ class PodmanSandboxEnvironment(SandboxEnvironment):
|
|
125
125
|
def config_files(cls) -> list[str]:
|
126
126
|
...
|
127
127
|
|
128
|
+
@classmethod
|
129
|
+
def default_concurrency(cls) -> int | None:
|
130
|
+
...
|
131
|
+
|
128
132
|
@classmethod
|
129
133
|
async def task_init(
|
130
134
|
cls, task_name: str, config: SandboxEnvironmentConfigType | None
|
@@ -180,6 +184,7 @@ The class methods take care of various stages of initialisation, setup, and tear
|
|
180
184
|
| Method | Lifecycle | Purpose |
|
181
185
|
|-------------------|-------------------|----------------------------------|
|
182
186
|
| `config_files()` | Called once to determine the names of 'default' config files for this provider (e.g. 'compose.yaml'). | |
|
187
|
+
| `default_concurrency()` | Called once to determine the default maximum number of sandboxes to run in parallel. Return `None` for no limit (the default behavior). | |
|
183
188
|
| `task_init()` | Called once for each unique sandbox environment config before executing the tasks in an `eval()` run. | Expensive initialisation operations (e.g. pulling or building images) |
|
184
189
|
| `sample_init()` | Called at the beginning of each `Sample`. | Create `SandboxEnvironment` instances for the sample. |
|
185
190
|
| `sample_cleanup()` | Called at the end of each `Sample` | Cleanup `SandboxEnvironment` instances for the sample. |
|
Binary file
|
@@ -122,13 +122,15 @@ This code will evaluate a total of 12 tasks (6 temperature variations against 2
|
|
122
122
|
|
123
123
|
[Sandbox Environments](agents.qmd#sec-sandbox-environments) (e.g. Docker containers) often allocate resources on a per-sample basis, and also make use of the Inspect `subprocess()` function for executing commands within the environment.
|
124
124
|
|
125
|
-
### Max
|
125
|
+
### Max Sandboxes
|
126
126
|
|
127
|
-
The `
|
127
|
+
The `max_sandboxes` option determines how many sandboxes can be executed in parallel. Individual sandbox providers can establish their own default limits (for example, the Docker provider has a default of `2 * os.cpu_count()`). You can modify this option as required, but be aware that container runtimes have resource limits, and pushing up against and beyond them can lead to instability and failed evaluations.
|
128
128
|
|
129
|
-
|
129
|
+
When a `max_sandboxes` is applied, an indicator at the bottom of the task status screen will be shown:
|
130
130
|
|
131
|
-
|
131
|
+

|
132
|
+
|
133
|
+
Note that when `max_sandboxes` is applied this effectively creates a global `max_samples` limit that is equal to the `max_sandboxes`.
|
132
134
|
|
133
135
|
### Max Subprocesses
|
134
136
|
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
files=("index" "tutorial" "workflow" "log-viewer" "vscode" "solvers" "tools" "agents" "agents-api" "scorers" "datasets" "models" "eval-sets" "errors-and-limits" "caching" "parallelism" "interactivity" "approval" "eval-logs" "extensions")
|
4
|
+
|
5
|
+
|
6
|
+
if [ "$QUARTO_PROJECT_RENDER_ALL" = "1" ]; then
|
7
|
+
llms_full="_site/llms-full.txt"
|
8
|
+
rm -f "${llms_full}"
|
9
|
+
mv _quarto.yml _quarto.yml.bak
|
10
|
+
for file in "${files[@]}"; do
|
11
|
+
echo "llms: ${file}.qmd"
|
12
|
+
quarto render "${file}.qmd" --to gfm --quiet --no-execute
|
13
|
+
output_file="${file}.md"
|
14
|
+
cat "${output_file}" >> "${llms_full}"
|
15
|
+
echo "" >> "${llms_full}"
|
16
|
+
mv $output_file "_site/${file}.html.md"
|
17
|
+
done
|
18
|
+
mv _quarto.yml.bak _quarto.yml
|
19
|
+
fi
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
@@ -100,7 +100,7 @@ If you do not explicitly handle errors, then Inspect provides some default error
|
|
100
100
|
|
101
101
|
- `UnicodeDecodeError` — Occurs when the output from executing a process or reading a file is binary rather than text.
|
102
102
|
|
103
|
-
- `OutputLimitExceededError` - Occurs when one or both of the output streams from `sandbox().exec()` exceed
|
103
|
+
- `OutputLimitExceededError` - Occurs when one or both of the output streams from `sandbox().exec()` exceed 10 MiB or when attempting to read a file over 100 MiB in size.
|
104
104
|
|
105
105
|
- `ToolError` — Special error thrown by tools to indicate they'd like to report an error to the model.
|
106
106
|
|
@@ -30,6 +30,7 @@ MAX_TASKS_HELP = "Maximum number of tasks to run in parallel (default is 1)"
|
|
30
30
|
MAX_SUBPROCESSES_HELP = (
|
31
31
|
"Maximum number of subprocesses to run in parallel (default is os.cpu_count())"
|
32
32
|
)
|
33
|
+
MAX_SANDBOXES_HELP = "Maximum number of sandboxes (per-provider) to run in parallel."
|
33
34
|
NO_SANDBOX_CLEANUP_HELP = "Do not cleanup sandbox environments after task completes"
|
34
35
|
FAIL_ON_ERROR_HELP = "Threshold of sample errors to tolerage (by default, evals fail when any error occurs). Value between 0 to 1 to set a proportion; value greater than 1 to set a count."
|
35
36
|
NO_LOG_SAMPLES_HELP = "Do not include samples in the log file."
|
@@ -192,6 +193,12 @@ def eval_options(func: Callable[..., Any]) -> Callable[..., click.Context]:
|
|
192
193
|
help=MAX_SUBPROCESSES_HELP,
|
193
194
|
envvar="INSPECT_EVAL_MAX_SUBPROCESSES",
|
194
195
|
)
|
196
|
+
@click.option(
|
197
|
+
"--max-sandboxes",
|
198
|
+
type=int,
|
199
|
+
help=MAX_SANDBOXES_HELP,
|
200
|
+
envvar="INSPECT_EVAL_MAX_SANDBOXES",
|
201
|
+
)
|
195
202
|
@click.option(
|
196
203
|
"--message-limit",
|
197
204
|
type=int,
|
@@ -361,6 +368,12 @@ def eval_options(func: Callable[..., Any]) -> Callable[..., click.Context]:
|
|
361
368
|
help='Cache prompt prefix (Anthropic only). Defaults to "auto", which will enable caching for requests with tools.',
|
362
369
|
envvar="INSPECT_EVAL_CACHE_PROMPT",
|
363
370
|
)
|
371
|
+
@click.option(
|
372
|
+
"--reasoning-effort",
|
373
|
+
type=click.Choice(["low", "medium", "high"]),
|
374
|
+
help="Constrains effort on reasoning for reasoning models. Open AI o1 models only.",
|
375
|
+
envvar="INSPECT_EVAL_REASONING_EFFORT",
|
376
|
+
)
|
364
377
|
@click.option(
|
365
378
|
"--log-format",
|
366
379
|
type=click.Choice(["eval", "json"], case_sensitive=False),
|
@@ -419,12 +432,14 @@ def eval_command(
|
|
419
432
|
parallel_tool_calls: bool | None,
|
420
433
|
max_tool_output: int | None,
|
421
434
|
cache_prompt: str | None,
|
435
|
+
reasoning_effort: str | None,
|
422
436
|
message_limit: int | None,
|
423
437
|
token_limit: int | None,
|
424
438
|
time_limit: int | None,
|
425
439
|
max_samples: int | None,
|
426
440
|
max_tasks: int | None,
|
427
441
|
max_subprocesses: int | None,
|
442
|
+
max_sandboxes: int | None,
|
428
443
|
fail_on_error: bool | float | None,
|
429
444
|
no_fail_on_error: bool | None,
|
430
445
|
no_log_samples: bool | None,
|
@@ -472,6 +487,7 @@ def eval_command(
|
|
472
487
|
max_samples=max_samples,
|
473
488
|
max_tasks=max_tasks,
|
474
489
|
max_subprocesses=max_subprocesses,
|
490
|
+
max_sandboxes=max_sandboxes,
|
475
491
|
fail_on_error=fail_on_error,
|
476
492
|
no_fail_on_error=no_fail_on_error,
|
477
493
|
debug_errors=common["debug_errors"],
|
@@ -573,12 +589,14 @@ def eval_set_command(
|
|
573
589
|
parallel_tool_calls: bool | None,
|
574
590
|
max_tool_output: int | None,
|
575
591
|
cache_prompt: str | None,
|
592
|
+
reasoning_effort: str | None,
|
576
593
|
message_limit: int | None,
|
577
594
|
token_limit: int | None,
|
578
595
|
time_limit: int | None,
|
579
596
|
max_samples: int | None,
|
580
597
|
max_tasks: int | None,
|
581
598
|
max_subprocesses: int | None,
|
599
|
+
max_sandboxes: int | None,
|
582
600
|
fail_on_error: bool | float | None,
|
583
601
|
no_fail_on_error: bool | None,
|
584
602
|
no_log_samples: bool | None,
|
@@ -628,6 +646,7 @@ def eval_set_command(
|
|
628
646
|
max_samples=max_samples,
|
629
647
|
max_tasks=max_tasks,
|
630
648
|
max_subprocesses=max_subprocesses,
|
649
|
+
max_sandboxes=max_sandboxes,
|
631
650
|
fail_on_error=fail_on_error,
|
632
651
|
no_fail_on_error=no_fail_on_error,
|
633
652
|
debug_errors=common["debug_errors"],
|
@@ -679,6 +698,7 @@ def eval_exec(
|
|
679
698
|
max_samples: int | None,
|
680
699
|
max_tasks: int | None,
|
681
700
|
max_subprocesses: int | None,
|
701
|
+
max_sandboxes: int | None,
|
682
702
|
fail_on_error: bool | float | None,
|
683
703
|
no_fail_on_error: bool | None,
|
684
704
|
debug_errors: bool | None,
|
@@ -756,6 +776,7 @@ def eval_exec(
|
|
756
776
|
max_samples=max_samples,
|
757
777
|
max_tasks=max_tasks,
|
758
778
|
max_subprocesses=max_subprocesses,
|
779
|
+
max_sandboxes=max_sandboxes,
|
759
780
|
log_samples=log_samples,
|
760
781
|
log_images=log_images,
|
761
782
|
log_buffer=log_buffer,
|
@@ -834,6 +855,12 @@ def parse_comma_separated(value: str | None) -> list[str] | None:
|
|
834
855
|
help=MAX_SUBPROCESSES_HELP,
|
835
856
|
envvar="INSPECT_EVAL_MAX_SUBPROCESSES",
|
836
857
|
)
|
858
|
+
@click.option(
|
859
|
+
"--max-sandboxes",
|
860
|
+
type=int,
|
861
|
+
help=MAX_SANDBOXES_HELP,
|
862
|
+
envvar="INSPECT_EVAL_MAX_SANDBOXES",
|
863
|
+
)
|
837
864
|
@click.option(
|
838
865
|
"--no-sandbox-cleanup",
|
839
866
|
type=bool,
|
@@ -904,6 +931,7 @@ def eval_retry_command(
|
|
904
931
|
max_samples: int | None,
|
905
932
|
max_tasks: int | None,
|
906
933
|
max_subprocesses: int | None,
|
934
|
+
max_sandboxes: int | None,
|
907
935
|
no_sandbox_cleanup: bool | None,
|
908
936
|
trace: bool | None,
|
909
937
|
fail_on_error: bool | float | None,
|
@@ -947,6 +975,7 @@ def eval_retry_command(
|
|
947
975
|
max_samples=max_samples,
|
948
976
|
max_tasks=max_tasks,
|
949
977
|
max_subprocesses=max_subprocesses,
|
978
|
+
max_sandboxes=max_sandboxes,
|
950
979
|
sandbox_cleanup=sandbox_cleanup,
|
951
980
|
trace=trace,
|
952
981
|
fail_on_error=fail_on_error,
|
@@ -130,9 +130,15 @@ def progress_time(time: float) -> str:
|
|
130
130
|
return f"{hours:2.0f}:{minutes:02.0f}:{seconds:02.0f}"
|
131
131
|
|
132
132
|
|
133
|
-
def progress_count(complete: int, total: int) -> str:
|
134
|
-
# Pad the display to keep it stable
|
133
|
+
def progress_count(complete: int, total: int, width: int | None = None) -> str:
|
134
|
+
# Pad the display to keep it stable as the
|
135
|
+
# complete metrics
|
135
136
|
total_str = f"{total:,}"
|
136
137
|
complete_str = f"{complete:,}"
|
137
138
|
padding = max(0, len(total_str) - len(complete_str))
|
138
|
-
|
139
|
+
padded = " " * padding + f"[{complete_str}/{total_str}]"
|
140
|
+
|
141
|
+
# If a width has ben specified, pad up to this width as well
|
142
|
+
if width is not None:
|
143
|
+
padded = padded.rjust(width)
|
144
|
+
return padded
|
@@ -166,7 +166,7 @@ def task_interrupted(profile: TaskProfile, samples_completed: int) -> Renderable
|
|
166
166
|
return message
|
167
167
|
|
168
168
|
|
169
|
-
def task_metric(metrics: list[TaskDisplayMetric]) -> str:
|
169
|
+
def task_metric(metrics: list[TaskDisplayMetric], width: int | None = None) -> str:
|
170
170
|
reducer_names: Set[str] = {
|
171
171
|
metric.reducer for metric in metrics if metric.reducer is not None
|
172
172
|
}
|
@@ -180,10 +180,14 @@ def task_metric(metrics: list[TaskDisplayMetric]) -> str:
|
|
180
180
|
else:
|
181
181
|
value = f"{metric.value:.2f}"
|
182
182
|
|
183
|
-
if show_reducer:
|
184
|
-
|
183
|
+
if show_reducer and metric.reducer is not None:
|
184
|
+
metric_str = f"{metric.name}/{metric.reducer}: {value}"
|
185
185
|
else:
|
186
|
-
|
186
|
+
metric_str = f"{metric.name}: {value}"
|
187
|
+
|
188
|
+
if width is not None:
|
189
|
+
metric_str = metric_str.rjust(width)
|
190
|
+
return metric_str
|
187
191
|
|
188
192
|
|
189
193
|
def task_metrics(scores: list[EvalScore]) -> str:
|
@@ -36,6 +36,9 @@ from ...core.progress import (
|
|
36
36
|
progress_model_name,
|
37
37
|
)
|
38
38
|
|
39
|
+
MAX_METRIC_WIDTH = 25
|
40
|
+
MAX_COUNT_WIDTH = 15
|
41
|
+
|
39
42
|
|
40
43
|
class TasksView(Container):
|
41
44
|
DEFAULT_CSS = """
|
@@ -68,6 +71,7 @@ class TasksView(Container):
|
|
68
71
|
super().__init__()
|
69
72
|
self.description_width = MAX_DESCRIPTION_WIDTH
|
70
73
|
self.model_name_width = MAX_MODEL_NAME_WIDTH
|
74
|
+
self.sample_count_width = 0
|
71
75
|
|
72
76
|
def init_tasks(self, tasks: list[TaskSpec]) -> None:
|
73
77
|
# clear existing tasks
|
@@ -80,15 +84,41 @@ class TasksView(Container):
|
|
80
84
|
self.model_name_width = min(
|
81
85
|
max([len(str(task.model)) for task in tasks]), MAX_MODEL_NAME_WIDTH
|
82
86
|
)
|
87
|
+
self.update_progress_widths()
|
83
88
|
|
84
89
|
def add_task(self, task: TaskWithResult) -> TaskDisplay:
|
90
|
+
self.update_count_width(task.profile.samples)
|
85
91
|
task_display = TaskProgressView(
|
86
|
-
task, self.description_width, self.model_name_width
|
92
|
+
task, self.description_width, self.model_name_width, self.sample_count_width
|
87
93
|
)
|
88
94
|
self.tasks.mount(task_display)
|
89
95
|
self.tasks.scroll_to_widget(task_display)
|
96
|
+
self.update_progress_widths()
|
97
|
+
|
90
98
|
return task_display
|
91
99
|
|
100
|
+
def update_count_width(self, samples: int) -> None:
|
101
|
+
sample_count_str = progress_count(samples, samples, self.sample_count_width)
|
102
|
+
self.sample_count_width = min(
|
103
|
+
max(self.sample_count_width, len(sample_count_str)), MAX_COUNT_WIDTH
|
104
|
+
)
|
105
|
+
|
106
|
+
def update_progress_widths(self) -> None:
|
107
|
+
progress_views = self.tasks.query_children(TaskProgressView)
|
108
|
+
metrics_size = 0
|
109
|
+
for progress_view in progress_views:
|
110
|
+
metrics_size = max(
|
111
|
+
metrics_size,
|
112
|
+
progress_view.metrics_width
|
113
|
+
if progress_view.metrics_width is not None
|
114
|
+
else 0,
|
115
|
+
)
|
116
|
+
metrics_size = min(metrics_size, MAX_METRIC_WIDTH)
|
117
|
+
|
118
|
+
for progress_view in progress_views:
|
119
|
+
progress_view.update_metrics_width(metrics_size)
|
120
|
+
progress_view.update_count_width(self.sample_count_width)
|
121
|
+
|
92
122
|
def compose(self) -> ComposeResult:
|
93
123
|
yield Static(id="tasks-config")
|
94
124
|
yield Static(id="tasks-targets")
|
@@ -139,13 +169,18 @@ class TaskProgressView(Widget):
|
|
139
169
|
"""
|
140
170
|
|
141
171
|
def __init__(
|
142
|
-
self,
|
172
|
+
self,
|
173
|
+
task: TaskWithResult,
|
174
|
+
description_width: int,
|
175
|
+
model_name_width: int,
|
176
|
+
sample_count_width: int,
|
143
177
|
) -> None:
|
144
178
|
super().__init__()
|
145
179
|
self.t = task
|
146
180
|
|
147
181
|
self.description_width = description_width
|
148
182
|
self.model_name_width = model_name_width
|
183
|
+
|
149
184
|
self.progress_bar = ProgressBar(total=task.profile.steps, show_eta=False)
|
150
185
|
self.count_display = Static()
|
151
186
|
self.metrics_display = Static(id="task-metrics")
|
@@ -154,6 +189,14 @@ class TaskProgressView(Widget):
|
|
154
189
|
self.toggle = Toggle()
|
155
190
|
self.task_detail = TaskDetail(id="task-detail", classes="hidden")
|
156
191
|
|
192
|
+
self.sample_count_width: int = sample_count_width
|
193
|
+
|
194
|
+
metrics: reactive[list[TaskDisplayMetric] | None] = reactive(None)
|
195
|
+
metrics_width: reactive[int | None] = reactive(None)
|
196
|
+
sample_count_width: reactive[int] = reactive(0)
|
197
|
+
samples_complete: reactive[int] = reactive(0)
|
198
|
+
samples_total: reactive[int] = reactive(0)
|
199
|
+
|
157
200
|
def compose(self) -> ComposeResult:
|
158
201
|
yield self.toggle
|
159
202
|
yield TaskStatusIcon()
|
@@ -191,13 +234,51 @@ class TaskProgressView(Widget):
|
|
191
234
|
self.task_progress.complete()
|
192
235
|
|
193
236
|
def sample_complete(self, complete: int, total: int) -> None:
|
194
|
-
self.
|
237
|
+
self.samples_complete = complete
|
238
|
+
self.samples_total = total
|
195
239
|
|
196
240
|
def update_metrics(self, metrics: list[TaskDisplayMetric]) -> None:
|
197
|
-
|
198
|
-
|
241
|
+
self.metrics = metrics
|
242
|
+
|
243
|
+
def update_metrics_width(self, width: int) -> None:
|
244
|
+
self.metrics_width = width
|
245
|
+
|
246
|
+
def update_count_width(self, width: int) -> None:
|
247
|
+
self.sample_count_width = width
|
248
|
+
|
249
|
+
def _watch_sample_count_width(self, width: int) -> None:
|
250
|
+
self.refresh_count()
|
251
|
+
|
252
|
+
def _watch_samples_complete(self, complete: int) -> None:
|
253
|
+
self.refresh_count()
|
254
|
+
|
255
|
+
def _watch_samples_total(self, total: int) -> None:
|
256
|
+
self.refresh_count()
|
257
|
+
|
258
|
+
def _watch_metrics_width(self, width: int) -> None:
|
259
|
+
self.update_metrics_label()
|
260
|
+
|
261
|
+
def _watch_metrics(self, metrics: list[TaskDisplayMetric] | None) -> None:
|
262
|
+
if metrics is not None and len(metrics) > 0:
|
263
|
+
# update label
|
264
|
+
self.update_metrics_label()
|
265
|
+
|
266
|
+
# update details
|
199
267
|
self.task_detail.update_metrics(metrics)
|
200
268
|
|
269
|
+
def refresh_count(self) -> None:
|
270
|
+
progress_label = progress_count(
|
271
|
+
self.samples_complete, self.samples_total, self.sample_count_width
|
272
|
+
)
|
273
|
+
self.count_display.update(progress_label)
|
274
|
+
|
275
|
+
def update_metrics_label(self) -> None:
|
276
|
+
# compute the label (with a min size)
|
277
|
+
if self.metrics is not None:
|
278
|
+
metric_label = task_metric(self.metrics, self.metrics_width)
|
279
|
+
self.metrics_width = len(metric_label)
|
280
|
+
self.metrics_display.update(metric_label)
|
281
|
+
|
201
282
|
|
202
283
|
class TaskStatusIcon(Static):
|
203
284
|
result: reactive[TaskResult | None] = reactive(None)
|
@@ -71,6 +71,7 @@ def eval(
|
|
71
71
|
max_samples: int | None = None,
|
72
72
|
max_tasks: int | None = None,
|
73
73
|
max_subprocesses: int | None = None,
|
74
|
+
max_sandboxes: int | None = None,
|
74
75
|
log_samples: bool | None = None,
|
75
76
|
log_images: bool | None = None,
|
76
77
|
log_buffer: int | None = None,
|
@@ -129,6 +130,8 @@ def eval(
|
|
129
130
|
(default is 1)
|
130
131
|
max_subprocesses (int | None): Maximum number of subprocesses to
|
131
132
|
run in parallel (default is os.cpu_count())
|
133
|
+
max_sandboxes (int | None): Maximum number of sandboxes (per-provider)
|
134
|
+
to run in parallel.
|
132
135
|
log_samples: (bool | None): Log detailed samples and scores (defaults to True)
|
133
136
|
log_images: (bool | None): Log base64 encoded version of images,
|
134
137
|
even if specified as a filename or URL (defaults to False)
|
@@ -175,6 +178,7 @@ def eval(
|
|
175
178
|
max_samples=max_samples,
|
176
179
|
max_tasks=max_tasks,
|
177
180
|
max_subprocesses=max_subprocesses,
|
181
|
+
max_sandboxes=max_sandboxes,
|
178
182
|
log_samples=log_samples,
|
179
183
|
log_images=log_images,
|
180
184
|
log_buffer=log_buffer,
|
@@ -211,6 +215,7 @@ async def eval_async(
|
|
211
215
|
max_samples: int | None = None,
|
212
216
|
max_tasks: int | None = None,
|
213
217
|
max_subprocesses: int | None = None,
|
218
|
+
max_sandboxes: int | None = None,
|
214
219
|
log_samples: bool | None = None,
|
215
220
|
log_images: bool | None = None,
|
216
221
|
log_buffer: int | None = None,
|
@@ -268,6 +273,8 @@ async def eval_async(
|
|
268
273
|
(default is 1)
|
269
274
|
max_subprocesses (int | None): Maximum number of subprocesses to
|
270
275
|
run in parallel (default is os.cpu_count())
|
276
|
+
max_sandboxes (int | None): Maximum number of sandboxes (per-provider)
|
277
|
+
to run in parallel.
|
271
278
|
log_samples: (bool | None): Log detailed samples and scores (defaults to True)
|
272
279
|
log_images: (bool | None): Log base64 encoded version of images,
|
273
280
|
even if specified as a filename or URL (defaults to False)
|
@@ -368,6 +375,7 @@ async def eval_async(
|
|
368
375
|
max_samples=max_samples,
|
369
376
|
max_tasks=max_tasks,
|
370
377
|
max_subprocesses=max_subprocesses,
|
378
|
+
max_sandboxes=max_sandboxes,
|
371
379
|
sandbox_cleanup=sandbox_cleanup,
|
372
380
|
log_samples=log_samples,
|
373
381
|
log_images=log_images,
|
@@ -450,6 +458,7 @@ def eval_retry(
|
|
450
458
|
max_samples: int | None = None,
|
451
459
|
max_tasks: int | None = None,
|
452
460
|
max_subprocesses: int | None = None,
|
461
|
+
max_sandboxes: int | None = None,
|
453
462
|
sandbox_cleanup: bool | None = None,
|
454
463
|
trace: bool | None = None,
|
455
464
|
fail_on_error: bool | float | None = None,
|
@@ -480,6 +489,8 @@ def eval_retry(
|
|
480
489
|
(default is 1)
|
481
490
|
max_subprocesses (int | None): Maximum number of subprocesses to
|
482
491
|
run in parallel (default is os.cpu_count())
|
492
|
+
max_sandboxes (int | None): Maximum number of sandboxes (per-provider)
|
493
|
+
to run in parallel.
|
483
494
|
sandbox_cleanup (bool | None): Cleanup sandbox environments after task completes
|
484
495
|
(defaults to True)
|
485
496
|
trace (bool | None): Trace message interactions with evaluated model to terminal.
|
@@ -522,6 +533,7 @@ def eval_retry(
|
|
522
533
|
max_samples=max_samples,
|
523
534
|
max_tasks=max_tasks,
|
524
535
|
max_subprocesses=max_subprocesses,
|
536
|
+
max_sandboxes=max_sandboxes,
|
525
537
|
sandbox_cleanup=sandbox_cleanup,
|
526
538
|
fail_on_error=fail_on_error,
|
527
539
|
debug_errors=debug_errors,
|
@@ -545,6 +557,7 @@ async def eval_retry_async(
|
|
545
557
|
max_samples: int | None = None,
|
546
558
|
max_tasks: int | None = None,
|
547
559
|
max_subprocesses: int | None = None,
|
560
|
+
max_sandboxes: int | None = None,
|
548
561
|
sandbox_cleanup: bool | None = None,
|
549
562
|
fail_on_error: bool | float | None = None,
|
550
563
|
debug_errors: bool | None = None,
|
@@ -574,6 +587,7 @@ async def eval_retry_async(
|
|
574
587
|
(default is 1)
|
575
588
|
max_subprocesses (int): Maximum number of subprocesses to
|
576
589
|
run in parallel (default is os.cpu_count())
|
590
|
+
max_sandboxes (int): Maximum number of sandboxes (per-provider) to run in parallel.
|
577
591
|
sandbox_cleanup (bool | None): Cleanup sandbox environments after task completes
|
578
592
|
(defaults to True)
|
579
593
|
fail_on_error (bool | float | None): `True` to fail on first sample error
|
@@ -665,6 +679,7 @@ async def eval_retry_async(
|
|
665
679
|
max_samples = max_samples or eval_log.eval.config.max_samples
|
666
680
|
max_tasks = max_tasks or eval_log.eval.config.max_tasks
|
667
681
|
max_subprocesses = max_subprocesses or eval_log.eval.config.max_subprocesses
|
682
|
+
max_sandboxes = max_sandboxes or eval_log.eval.config.max_sandboxes
|
668
683
|
sandbox_cleanup = (
|
669
684
|
sandbox_cleanup
|
670
685
|
if sandbox_cleanup is not None
|
@@ -720,6 +735,7 @@ async def eval_retry_async(
|
|
720
735
|
max_samples=max_samples,
|
721
736
|
max_tasks=max_tasks,
|
722
737
|
max_subprocesses=max_subprocesses,
|
738
|
+
max_sandboxes=max_sandboxes,
|
723
739
|
log_samples=log_samples,
|
724
740
|
log_images=log_images,
|
725
741
|
log_buffer=log_buffer,
|
@@ -75,6 +75,7 @@ def eval_set(
|
|
75
75
|
max_samples: int | None = None,
|
76
76
|
max_tasks: int | None = None,
|
77
77
|
max_subprocesses: int | None = None,
|
78
|
+
max_sandboxes: int | None = None,
|
78
79
|
log_samples: bool | None = None,
|
79
80
|
log_images: bool | None = None,
|
80
81
|
log_buffer: int | None = None,
|
@@ -144,6 +145,8 @@ def eval_set(
|
|
144
145
|
(default is 1)
|
145
146
|
max_subprocesses (int | None): Maximum number of subprocesses to
|
146
147
|
run in parallel (default is os.cpu_count())
|
148
|
+
max_sandboxes (int | None): Maximum number of sandboxes (per-provider)
|
149
|
+
to run in parallel.
|
147
150
|
log_samples: (bool | None): Log detailed samples and scores (defaults to True)
|
148
151
|
log_images: (bool | None): Log base64 encoded version of images,
|
149
152
|
even if specified as a filename or URL (defaults to False)
|
@@ -193,6 +196,7 @@ def eval_set(
|
|
193
196
|
max_samples=max_samples,
|
194
197
|
max_tasks=max_tasks,
|
195
198
|
max_subprocesses=max_subprocesses,
|
199
|
+
max_sandboxes=max_sandboxes,
|
196
200
|
log_samples=log_samples,
|
197
201
|
log_images=log_images,
|
198
202
|
log_buffer=log_buffer,
|
@@ -146,8 +146,8 @@ def task(*args: Any, name: str | None = None, **attribs: Any) -> Any:
|
|
146
146
|
# module import, so set its task file and run dir
|
147
147
|
if get_installed_package_name(task_type) is None:
|
148
148
|
module = inspect.getmodule(task_type)
|
149
|
-
if module and module
|
150
|
-
file = Path(module
|
149
|
+
if module and hasattr(module, "__file__"):
|
150
|
+
file = Path(getattr(module, "__file__"))
|
151
151
|
setattr(task_instance, TASK_FILE_ATTR, file.as_posix())
|
152
152
|
setattr(task_instance, TASK_RUN_DIR_ATTR, file.parent.as_posix())
|
153
153
|
|