inspect-ai 0.3.50__tar.gz → 0.3.52__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.50 → inspect_ai-0.3.52}/.pre-commit-config.yaml +1 -1
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/CHANGELOG.md +14 -0
- {inspect_ai-0.3.50/src/inspect_ai.egg-info → inspect_ai-0.3.52}/PKG-INFO +2 -2
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/models.qmd +10 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/workflow.qmd +4 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/pyproject.toml +1 -1
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_cli/eval.py +15 -2
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/core/config.py +4 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/core/panel.py +1 -1
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/widgets/task_detail.py +46 -13
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/widgets/transcript.py +4 -17
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/eval.py +13 -1
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/evalset.py +3 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/log.py +6 -1
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/run.py +4 -2
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/util.py +15 -6
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/logger.py +10 -2
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/samples.py +7 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/transcript.py +8 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/dist/assets/index.js +25 -12
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/SampleDisplay.mjs +18 -5
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_log.py +3 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_call_tools.py +2 -6
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_model.py +18 -4
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/azureai.py +22 -2
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_render.py +7 -6
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_trace.py +1 -1
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_basic_agent.py +8 -1
- inspect_ai-0.3.52/src/inspect_ai/tool/_tool_transcript.py +28 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52/src/inspect_ai.egg-info}/PKG-INFO +2 -2
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai.egg-info/SOURCES.txt +2 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai.egg-info/requires.txt +1 -1
- inspect_ai-0.3.52/tests/test_sample_id.py +28 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/.github/dependabot.yml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/.github/pull_request_template.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/.github/workflows/build.yml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/.github/workflows/docs.yml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/.github/workflows/log_viewer.yml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/.github/workflows/pypi.yml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/.github/workflows/vscode.yml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/.gitignore +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/.vscode/extensions.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/.vscode/settings.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/CITATION.cff +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/LICENSE +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/Makefile +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/README.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/.gitignore +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/CNAME +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/_errors_and_retries.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/_quarto.yml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/_sample-preservation.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/_sandboxenv-interface.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/_tools-annotations-required.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/_tools-scaffold.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/_trace.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/_variables.yml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/agents-api.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/agents.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/approval.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/caching.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/datasets.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/errors-and-limits.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/eval-logs.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/eval-sets.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/examples/examples.bib +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/examples/examples.css +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/examples/examples.ejs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/examples/examples.yml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/examples/index.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/extensions.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/aisi-logo.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/eval-log.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-activity-bar.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-multiple-models.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-answers.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-filter.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-history.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-home.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-info.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-logging-console.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-logging.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-main.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-messages.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-metadata.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-scoring.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-sort.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-view-splash.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-vscode-config.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-vscode-install.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-vscode-logview.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-vscode-output-channel.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect-vscode-run-task.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/inspect.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/logs-drop-down.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/logs-open-button.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/logs.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/popularity.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/python-tool-view.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/rate-limit.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/running-theory.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/toolenv-no-cleanup.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/images/web-browser-tool-view.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/index.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/interactivity.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/llms.txt +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/log-viewer.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/parallelism.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/scorers.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/scripts/post-render.sh +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/solvers.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/theme.scss +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/tools.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/tutorial.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/docs/vscode.qmd +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/approval/README.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/approval/approval.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/approval/approval.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/biology_qa.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/browser/browser.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/browser/compose.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/cache.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/evalset.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/hello_world.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/images/ballons.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/images/bike.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/images/images.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/images/images.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/intervention/Dockerfile +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/intervention/README.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/intervention/compose.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/intervention/intervention.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/langchain/.env.example +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/langchain/.gitignore +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/langchain/README.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/langchain/inspect_langchain.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/langchain/requirements.txt +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/langchain/wikipedia.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/langchain/wikipedia.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/popularity.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/security_guide.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/theory_of_mind.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/examples/tool_use.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/requirements.txt +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/setup.cfg +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/__main__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_cli/cache.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_cli/common.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_cli/info.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_cli/list.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_cli/log.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_cli/main.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_cli/sandbox.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_cli/score.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_cli/util.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_cli/view.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/core/active.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/core/display.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/core/footer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/core/group.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/core/progress.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/core/results.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/core/rich.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/core/textual.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/rich/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/rich/display.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/app.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/app.tcss +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/display.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/theme.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/widgets/clock.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/widgets/console.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/widgets/footer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/widgets/samples.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/widgets/tasks.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/widgets/titlebar.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/widgets/toggle.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/context.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/list.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/loader.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/registry.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/run.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/score.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/constants.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/epochs.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/error.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/generate.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/images.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/results.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/rundir.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/sandbox.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_eval/task/task.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/_async.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/appdirs.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/config.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/constants.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/content.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/datetime.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/decorator.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/deprecation.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/dev.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/dict.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/display.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/dotenv.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/entrypoints.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/environ.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/error.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/file.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/format.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/git.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/hash.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/hooks.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/html.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/http.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/images.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/json.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/list.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/notebook.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/package.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/path.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/pattern.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/platform.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/registry.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/retry.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/rich.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/terminal.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/text.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/throttle.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/timeouts.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/url.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_util/version.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/notify.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/schema.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/server.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/view.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/.gitignore +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/.prettierignore +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/.tool-versions +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/App.css +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/README.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/dist/assets/favicon.svg +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/dist/assets/index.css +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/dist/index.html +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/eslint.config.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/favicon.svg +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/index.html +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/jsconfig.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/log-schema.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/package.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/postcss.config.cjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/App.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/Register.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/Types.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/api/Types.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/api/api-browser.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/api/api-http.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/api/api-shared.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/api/api-vscode.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/api/client-api.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/api/index.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/api/jsonrpc.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/appearance/Colors.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/appearance/Fonts.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/appearance/Icons.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/appearance/Styles.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/AnsiDisplay.css +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/AnsiDisplay.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/AppErrorBoundary.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/Browser.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/Card.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/ChatView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/CopyButton.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/Dialog.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/DownloadButton.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/DownloadPanel.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/EmptyPanel.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/ErrorPanel.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/ExpandablePanel.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/FindBand.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/JsonPanel.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/LabeledValue.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/LargeModal.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/MarkdownDiv.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/MessageBand.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/MessageContent.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/MetaDataGrid.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/MetaDataView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/MorePopOver.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/NavPills.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/ProgressBar.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/RenderedContent/ChatMessageRenderer.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/RenderedContent/RenderedContent.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/RenderedContent/Types.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/TabSet.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/ToolButton.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/Tools.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/VirtualList.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/components/ansi-output.js +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/constants.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/index.js +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/json/JsonTab.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/log/remoteLogFile.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/log-reader/Log-Reader.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/log-reader/Native-Log-Reader.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/log-reader/Open-AI-Log-Reader.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/navbar/Navbar.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/navbar/SecondaryBar.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/plan/PlanCard.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/SampleDialog.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/SampleError.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/SampleLimit.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/SampleList.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/SampleScoreView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/SampleScores.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/SampleTranscript.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/SamplesDescriptor.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/SamplesTab.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/SamplesTools.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/tools/EpochFilter.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/tools/SampleFilter.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/tools/SelectScorer.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/tools/SortFilter.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/tools/filters.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/ApprovalEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/ErrorEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/EventPanel.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/EventRow.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/EventSection.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/InfoEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/InputEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/LoggerEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/ModelEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/SampleInitEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/SampleLimitEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/ScoreEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/StepEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/ToolEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptState.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/Types.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/state/StateDiffView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventRenderers.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventView.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/sidebar/Sidebar.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/types/jsondiffpatch.d.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/types/log.d.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/types/prism.d.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/usage/ModelTokenTable.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/usage/UsageCard.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/Base64.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/Format.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/Git.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/Html.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/Json.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/Path.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/Print.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/Type.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/attachments.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/debugging.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/http.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/queue.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/remoteZipFile.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/sync.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/utils/vscode.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/workspace/TaskErrorPanel.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/src/workspace/WorkSpace.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/tsconfig.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/vite.config.js +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_view/www/yarn.lock +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_apply.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_approval.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_approver.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_auto.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_call.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_human/approver.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_human/console.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_human/manager.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_human/panel.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_human/util.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_policy.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/approval/_registry.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_dataset.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_examples/bias_detection.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_examples/biology_qa.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_examples/popularity.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_examples/security_guide.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_examples/theory_of_mind.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_sources/csv.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_sources/example.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_sources/file.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_sources/hf.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_sources/json.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_sources/util.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/dataset/_util.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_bundle.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_condense.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_convert.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_file.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_message.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_recorders/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_recorders/create.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_recorders/eval.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_recorders/file.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_recorders/json.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_recorders/recorder.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_retry.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_samples.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/log/_transcript.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_cache.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_chat_message.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_generate_config.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_image.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_model_call.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_model_output.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/anthropic.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/bedrock.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/cloudflare.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/google.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/grok.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/groq.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/hf.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/llama_cpp_python.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/mistral.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/mockllm.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/ollama.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/openai.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/openai_o1.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/providers.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/together.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/util/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/util/chatapi.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/util/hf_handler.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/util/llama31.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/util/util.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/vertex.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_providers/vllm.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/model/_registry.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/py.typed +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_answer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_choice.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_classification.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_common.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_match.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_metric.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_metrics/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_metrics/accuracy.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_metrics/mean.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_metrics/std.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_model.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_multi.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_pattern.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_reducer/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_reducer/reducer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_reducer/registry.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_reducer/types.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_score.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_scorer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/scorer/_target.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_chain.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_critique.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_fork.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_multiple_choice.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_plan.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_prompt.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_solver.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_task_state.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_transcript.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_use_tools.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/solver/_util.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tool.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tool_call.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tool_choice.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tool_def.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tool_description.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tool_info.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tool_params.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tool_with.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_execute.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/Dockerfile +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/README.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/accessibility_node.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/dm_env_servicer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/images/usage_diagram.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/mock_environment.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/playwright_crawler.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_accessibility_node.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_dm_env_servicer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_playwright_crawler.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_web_environment.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client_new_session.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_environment.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_server.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_browser/_web_browser.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/tool/_tools/_web_search.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_concurrency.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_console.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_panel.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_resource.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/context.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/docker/cleanup.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/docker/compose.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/docker/config.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/docker/docker.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/docker/internal.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/docker/prereqs.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/docker/util.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/environment.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/limits.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/local.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/registry.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/self_check.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_sandbox/service.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_store.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_subprocess.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_subtask.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/util/_trace.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai.egg-info/dependency_links.txt +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai.egg-info/entry_points.txt +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai.egg-info/top_level.txt +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/approval/approve.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/approval/escalate.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/approval/modify.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/approval/reject.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/approval/terminate.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/approval/test_approval.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/conftest.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/dataset/test_dataset/dataset.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/dataset/test_dataset/images/ballons.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/dataset/test_dataset/images.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/dataset/test_dataset/samples-md.csv +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/dataset/test_dataset/samples-md.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/dataset/test_dataset/samples-md.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/dataset/test_dataset/samples.csv +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/dataset/test_dataset/samples.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/dataset/test_dataset/samples.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/dataset/test_dataset.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_eval_log/log_formats.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_eval_log/log_images.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_eval_log/log_images_tc.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_eval_log/log_invalid.txt +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_eval_log/log_length_stop_reason.txt +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_eval_log/log_streaming.eval +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_eval_log/log_valid.txt +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_eval_log/log_version_3.txt +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_eval_log/log_with_nan.txt +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_eval_log.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_list_logs/2024-11-05T13-31-45-05-00_input-task_8zXjbRzCWrL9GXiXo2vus9.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_list_logs/2024-11-05T13-32-37-05-00_input-task_hxs4q9azL3ySGkjJirypKZ.eval +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_list_logs/custom.eval +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_list_logs/ignore.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_list_logs.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_log_attachments.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_log_formats.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_log_level.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_log_streaming.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/log/test_log_tags.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_anthropic.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_azureai.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_cloudflare.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_google.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_grok.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_groq.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_hf.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_llama_cpp_python.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_openai.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_openai_o1.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_vertex.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/providers/test_vllm.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/test_api_key.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/test_collapse_assistant_message.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/test_collapse_user_message.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/test_disable.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/test_logprobs.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/test_mock_model_llm.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/test_num_choices.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/test_parse_tool_call.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/model/test_stop_reason.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/scorer/test_answer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/scorer/test_choice.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/scorer/test_classification.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/scorer/test_match.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/scorer/test_metric.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/scorer/test_model_graded.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/scorer/test_multiscorer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/scorer/test_pattern.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/scorer/test_reducers.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/scorer/test_scorer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/scorer/test_value_to_float.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/solver/test_basic_agent.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/solver/test_chain.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/solver/test_fork.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/solver/test_multiple_choice.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/solver/test_prompt.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/solver/test_solver.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/solver/test_solver_decorator.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/solver/test_solver_spec.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/solver/test_store.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/solver/test_subtask.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/solver/test_transcript.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_eval.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_eval_config/model.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_eval_config/solver.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_eval_config/task.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_eval_config.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_eval_set/2024-08-29T15-11-17+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_eval_set/2024-08-29T15-11-18+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_eval_set.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_examples.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_extensions.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_fail_on_error.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_helpers/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_helpers/tasks.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_helpers/tool_call_utils.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_helpers/tools.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_helpers/utils.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_list_task.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_log_dir/example_task/example_task.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_log_dir/test_log_dir.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_package/.gitignore +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_package/inspect_package/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_package/inspect_package/_registry.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_package/inspect_package/approvers/renamer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_package/inspect_package/modelapi/custom.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_package/inspect_package/py.typed +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_package/inspect_package/sandboxenv/podman.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_package/inspect_package/score/scorer.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_package/inspect_package/solvers/cot.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_package/pyproject.toml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_retry.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_run_dir/task1/task1.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_run_dir/task2/task2.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_run_dir.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_sample_limits.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_attr.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/__init__.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/attribs.ipynb +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/multiple.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/multiple_dir/_decoy/testit.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/multiple_dir/_decoy2.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/multiple_dir/bar.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/multiple_dir/foo.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/recurse/.folder3/epsilon.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/recurse/folder1/_decoy.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/recurse/folder1/theta.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/recurse/folder2/.folder3/epsilon.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/recurse/folder2/another.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/test_task_list/recurse/folder2/first.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/docker-compose-context/Dockerfile +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/docker-compose-context-alpine/Dockerfile +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_bash_tool.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_max_exec_output.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_max_tool_output.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_python_tool.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_sandbox_compose.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_sandbox_compose_alpine.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_sandbox_docker_and_local.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_sandbox_dockerfile.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_sandbox_tool_eval.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_tool_def.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_tool_parse.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_tool_types.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_tool_view.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_tool_with.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_tools.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_use_tools.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_web_browser.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/tools/test_web_browser_compose.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/sandbox/docker_compose_multiple_services/docker-compose.yaml +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/sandbox/sandbox_setup.sh +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/sandbox/test_docker_compose_multiple_services.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/sandbox/test_sandbox_service.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/sandbox/test_sandbox_setup.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/test_file.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/test_images/images.jsonl +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/test_images.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/test_package.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/test_registry.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/test_str_to_float.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/util/test_subprocess.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tests/view/test_bundle.py +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/.eslintrc.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/.gitignore +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/.vscode/extensions.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/.vscode/launch.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/.vscode/settings.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/.vscode/tasks.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/.vscode-test.mjs +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/.vscodeignore +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/.yarnrc +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/CHANGELOG.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/LICENSE +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/README.md +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/assets/icon/eval-treeview.svg +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/assets/icon/eval.svg +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/assets/logo/inspect.png +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/assets/logo/inspect.svg +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/assets/templates/task.py.template +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/assets/www/codicon/codicon.css +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/assets/www/codicon/codicon.ttf +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/assets/www/view/view-overrides.css +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/package.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/@types/hooks.d.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/@types/log.d.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/components/document.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/components/error.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/components/focus.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/components/notebook.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/components/symbol.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/components/task.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/components/templates.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/components/webview.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/appdirs.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/command.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/dispose.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/env.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/file.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/git.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/jsonrpc.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/log.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/nonce.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/path.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/port.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/process.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/python/code.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/python/env.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/python/exec.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/python/index.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/python/interpreter.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/random.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/string.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/text.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/uri.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/vscode/association.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/wait.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/core/workspace.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/extension.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/hooks/hooks.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/hooks/index.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/hooks/preview.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/inspect/index.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/inspect/logs.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/inspect/props.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/inspect/version.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/active-task/active-task-command.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/active-task/active-task-provider.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/activity-bar-provider.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/env-config-provider.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/log-listing/log-directory-selector.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-data.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-mru.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-provider.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/log-listing/log-listing.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/task-config-commands.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/task-config-provider.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/task-outline-commands.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/task-outline-provider.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.css +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.css +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/webview/vscode-controls.css +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/activity-bar/webview/webview-utils.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/codelens/codelens-provider.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/inspect/inspect-commands.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/inspect/inspect-constants.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/inspect/inspect-eval-commands.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/inspect/inspect-eval.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/inspect/inspect-logs-watcher.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/inspect/inspect-manager.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/inspect/inspect-view-server.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/lognotify.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/logview/commands.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/logview/logview-editor.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/logview/logview-link-provider.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/logview/logview-panel.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/logview/logview-state.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/logview/logview-view.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/logview/logview.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/openlog.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/protocol-handler.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/settings/inspect-settings.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/settings/user-settings.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/statusbar.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/workspace/workspace-env-commands.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/workspace/workspace-env-provider.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/workspace/workspace-init.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/workspace/workspace-state-provider.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/providers/workspace/workspace-task-provider.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/src/test/extension.test.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/tools/ts-to-mjs/.gitignore +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/tools/ts-to-mjs/package.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/tools/ts-to-mjs/rollup.config.js +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/tools/ts-to-mjs/src/index.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/tools/ts-to-mjs/src/jsonrpc.ts +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/tools/ts-to-mjs/yarn.lock +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/tsconfig.json +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/webpack.config.js +0 -0
- {inspect_ai-0.3.50 → inspect_ai-0.3.52}/tools/vscode/yarn.lock +0 -0
@@ -1,5 +1,19 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v0.3.52 (13 December 2024)
|
4
|
+
|
5
|
+
- Eval: `--sample-id` option for evaluating specific sample id(s).
|
6
|
+
- Bedrock: Detect and report HTTP rate limit errors.
|
7
|
+
- Azure AI: Add `emulate_tools` model arg to force tool emulation (emulation is enabled by default for Llama models).
|
8
|
+
- Basic Agent: Add `max_tool_output` parameter to override default max tool output from generate config.
|
9
|
+
- Inspect View: Correct display of sample ID for single sample tasks.
|
10
|
+
- Trace: Show custom tool views in `--trace` mode.
|
11
|
+
- Bugfix: Support for dynamic metric names in realtime scoring display.
|
12
|
+
|
13
|
+
## v0.3.51 (13 December 2024)
|
14
|
+
|
15
|
+
- Bugfix: Task display fails to load when no scorers are defined for a task.
|
16
|
+
|
3
17
|
## v0.3.50 (12 December 2024)
|
4
18
|
|
5
19
|
- Tools: Improved typing/schema support (unions, optional params, enums).
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: inspect_ai
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.52
|
4
4
|
Summary: Framework for large language model evaluations
|
5
5
|
Author: UK AI Safety Institute
|
6
6
|
License: MIT License
|
@@ -68,7 +68,7 @@ Requires-Dist: pytest-asyncio; extra == "dev"
|
|
68
68
|
Requires-Dist: pytest-cov; extra == "dev"
|
69
69
|
Requires-Dist: pytest-dotenv; extra == "dev"
|
70
70
|
Requires-Dist: pytest-xdist; extra == "dev"
|
71
|
-
Requires-Dist: ruff==0.8.
|
71
|
+
Requires-Dist: ruff==0.8.3; extra == "dev"
|
72
72
|
Requires-Dist: textual-dev>=0.86.2; extra == "dev"
|
73
73
|
Requires-Dist: types-PyYAML; extra == "dev"
|
74
74
|
Requires-Dist: types-aiofiles; extra == "dev"
|
@@ -187,6 +187,16 @@ $ export AZUREAI_BASE_URL=https://your-url-at.azure.com
|
|
187
187
|
$ inspect eval --model azureai/llama-2-70b-chat-wnsnw
|
188
188
|
```
|
189
189
|
|
190
|
+
#### Tool Emulation
|
191
|
+
|
192
|
+
When using the `azureai` model provider, tool calling support can be 'emulated' for models that Azure AI has not yet implemented tool calling for. This occurs by default for Llama models. For other models, use the `emulate_tools` model arg to force tool emulation:
|
193
|
+
|
194
|
+
```bash
|
195
|
+
inspect eval ctf.py -M emulate_tools=true
|
196
|
+
```
|
197
|
+
|
198
|
+
You can also use this option to disable tool emulation for Llama models with `emulate_tools=false`.
|
199
|
+
|
190
200
|
### AWS Bedrock {#aws-bedrock}
|
191
201
|
|
192
202
|
[AWS Bedrock](https://aws.amazon.com/bedrock/) provides hosting of models from Anthropic as well as a wide variety of other open models. Note that all models on AWS Bedrock require that you [request model access](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html) before using them in a deployment (in some cases access is granted immediately, in other cases it could one or more days).
|
@@ -170,6 +170,10 @@ There are several other command line options you can pass to eval. Here are some
|
|
170
170
|
# limit to 10 samples
|
171
171
|
$ inspect eval theory.py --limit 10
|
172
172
|
|
173
|
+
# limit to specific sample id(s)
|
174
|
+
$ inspect eval theory.py --sample-id 10
|
175
|
+
$ insepct eval theory.py --sample_id 9,10
|
176
|
+
|
173
177
|
# limit tokens
|
174
178
|
$ inspect eval theory.py --max-tokens 128
|
175
179
|
|
@@ -129,7 +129,7 @@ dev = [
|
|
129
129
|
"pytest-cov",
|
130
130
|
"pytest-dotenv",
|
131
131
|
"pytest-xdist",
|
132
|
-
"ruff==0.8.
|
132
|
+
"ruff==0.8.3", # match version specified in .pre-commit-config.yaml
|
133
133
|
"textual-dev>=0.86.2",
|
134
134
|
"types-PyYAML",
|
135
135
|
"types-aiofiles",
|
@@ -12,7 +12,7 @@ from inspect_ai._util.constants import (
|
|
12
12
|
DEFAULT_MAX_RETRIES,
|
13
13
|
)
|
14
14
|
from inspect_ai._util.file import filesystem
|
15
|
-
from inspect_ai._util.samples import parse_samples_limit
|
15
|
+
from inspect_ai._util.samples import parse_sample_id, parse_samples_limit
|
16
16
|
from inspect_ai.log._file import log_file_info
|
17
17
|
from inspect_ai.model import GenerateConfigArgs
|
18
18
|
from inspect_ai.scorer._reducer import create_reducers
|
@@ -144,6 +144,12 @@ def eval_options(func: Callable[..., Any]) -> Callable[..., click.Context]:
|
|
144
144
|
help="Limit samples to evaluate e.g. 10 or 10-20",
|
145
145
|
envvar="INSPECT_EVAL_LIMIT",
|
146
146
|
)
|
147
|
+
@click.option(
|
148
|
+
"--sample-id",
|
149
|
+
type=str,
|
150
|
+
help="Evaluate specific sample(s) (comma separated list of ids)",
|
151
|
+
envvar="INSPECT_EVAL_SAMPLE_ID",
|
152
|
+
)
|
147
153
|
@click.option(
|
148
154
|
"--epochs",
|
149
155
|
type=int,
|
@@ -391,6 +397,7 @@ def eval_command(
|
|
391
397
|
epochs: int | None,
|
392
398
|
epochs_reducer: str | None,
|
393
399
|
limit: str | None,
|
400
|
+
sample_id: str | None,
|
394
401
|
max_retries: int | None,
|
395
402
|
timeout: int | None,
|
396
403
|
max_connections: int | None,
|
@@ -458,6 +465,7 @@ def eval_command(
|
|
458
465
|
epochs=epochs,
|
459
466
|
epochs_reducer=epochs_reducer,
|
460
467
|
limit=limit,
|
468
|
+
sample_id=sample_id,
|
461
469
|
message_limit=message_limit,
|
462
470
|
token_limit=token_limit,
|
463
471
|
time_limit=time_limit,
|
@@ -543,6 +551,7 @@ def eval_set_command(
|
|
543
551
|
epochs: int | None,
|
544
552
|
epochs_reducer: str | None,
|
545
553
|
limit: str | None,
|
554
|
+
sample_id: str | None,
|
546
555
|
max_retries: int | None,
|
547
556
|
timeout: int | None,
|
548
557
|
max_connections: int | None,
|
@@ -612,6 +621,7 @@ def eval_set_command(
|
|
612
621
|
epochs=epochs,
|
613
622
|
epochs_reducer=epochs_reducer,
|
614
623
|
limit=limit,
|
624
|
+
sample_id=sample_id,
|
615
625
|
message_limit=message_limit,
|
616
626
|
token_limit=token_limit,
|
617
627
|
time_limit=time_limit,
|
@@ -662,6 +672,7 @@ def eval_exec(
|
|
662
672
|
epochs: int | None,
|
663
673
|
epochs_reducer: str | None,
|
664
674
|
limit: str | None,
|
675
|
+
sample_id: str | None,
|
665
676
|
message_limit: int | None,
|
666
677
|
token_limit: int | None,
|
667
678
|
time_limit: int | None,
|
@@ -699,8 +710,9 @@ def eval_exec(
|
|
699
710
|
else None
|
700
711
|
)
|
701
712
|
|
702
|
-
# resolve range
|
713
|
+
# resolve range and sample id
|
703
714
|
eval_limit = parse_samples_limit(limit)
|
715
|
+
eval_sample_id = parse_sample_id(sample_id)
|
704
716
|
|
705
717
|
# resolve fail_on_error
|
706
718
|
if no_fail_on_error is True:
|
@@ -734,6 +746,7 @@ def eval_exec(
|
|
734
746
|
log_dir=log_dir,
|
735
747
|
log_format=log_format,
|
736
748
|
limit=eval_limit,
|
749
|
+
sample_id=eval_sample_id,
|
737
750
|
epochs=eval_epochs,
|
738
751
|
fail_on_error=fail_on_error,
|
739
752
|
debug_errors=debug_errors,
|
@@ -24,6 +24,10 @@ def task_config(
|
|
24
24
|
config_print.append(
|
25
25
|
f"{name}: {','.join([approver['name'] for approver in value['approvers']])}"
|
26
26
|
)
|
27
|
+
elif name == "sample_id":
|
28
|
+
value = value if isinstance(value, list) else [value]
|
29
|
+
value = [str(v) for v in value]
|
30
|
+
config_print.append(f"{name}: {','.join(value)}")
|
27
31
|
elif name not in ["limit", "model"]:
|
28
32
|
config_print.append(f"{name}: {value}")
|
29
33
|
values = ", ".join(config_print)
|
@@ -112,7 +112,7 @@ def tasks_title(completed: int, total: int) -> str:
|
|
112
112
|
def task_title(profile: TaskProfile, show_model: bool) -> str:
|
113
113
|
eval_epochs = profile.eval_config.epochs or 1
|
114
114
|
epochs = f" x {profile.eval_config.epochs}" if eval_epochs > 1 else ""
|
115
|
-
samples = f"{profile.samples//eval_epochs:,}{epochs} sample{'s' if profile.samples
|
115
|
+
samples = f"{profile.samples//eval_epochs:,}{epochs} sample{'s' if profile.samples != 1 else ''}"
|
116
116
|
title = f"{registry_unqualified_name(profile.name)} ({samples})"
|
117
117
|
if show_model:
|
118
118
|
title = f"{title}: {profile.model}"
|
{inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/widgets/task_detail.py
RENAMED
@@ -63,6 +63,9 @@ class TaskDetail(Widget):
|
|
63
63
|
def update_metrics(self, metrics: list[TaskDisplayMetric]) -> None:
|
64
64
|
# Group by reducer then scorer within reducers
|
65
65
|
self.metrics = metrics
|
66
|
+
|
67
|
+
# clear the existing computed reducers
|
68
|
+
self.by_reducer = {}
|
66
69
|
for metric in metrics:
|
67
70
|
reducer_group = (
|
68
71
|
self.by_reducer[metric.reducer]
|
@@ -85,6 +88,10 @@ class TaskDetail(Widget):
|
|
85
88
|
if not self.grid.is_attached:
|
86
89
|
return
|
87
90
|
|
91
|
+
# don't refresh the grid if there are no scores
|
92
|
+
if len(self.by_reducer) == 0:
|
93
|
+
return
|
94
|
+
|
88
95
|
# Compute the row and column count
|
89
96
|
row_count = len(self.by_reducer)
|
90
97
|
col_count = len(next(iter(self.by_reducer.values())))
|
@@ -113,6 +120,7 @@ class TaskDetail(Widget):
|
|
113
120
|
for remove in to_remove:
|
114
121
|
task_metric = self.existing_metrics[remove]
|
115
122
|
task_metric.remove()
|
123
|
+
del self.existing_metrics[remove]
|
116
124
|
|
117
125
|
# add or update widgets with metrics
|
118
126
|
for reducer, scorers in self.by_reducer.items():
|
@@ -183,24 +191,49 @@ class TaskMetrics(Widget):
|
|
183
191
|
self.grid: Grid = Grid()
|
184
192
|
self.value_widgets: dict[str, Static] = {}
|
185
193
|
|
194
|
+
def grid_id(self) -> str:
|
195
|
+
return f"{self.id}-grid"
|
196
|
+
|
186
197
|
def compose(self) -> ComposeResult:
|
187
|
-
#
|
198
|
+
# Yield the title and base grid
|
188
199
|
yield Center(self._title())
|
189
|
-
|
190
|
-
for metric in self.metrics:
|
191
|
-
# Add the value static but keep it around
|
192
|
-
# for future updates
|
193
|
-
self.value_widgets[metric.name] = Static(
|
194
|
-
self._metric_value(metric.value)
|
195
|
-
)
|
196
|
-
|
197
|
-
yield Static(metric.name)
|
198
|
-
yield self.value_widgets[metric.name]
|
200
|
+
yield Grid(id=self.grid_id())
|
199
201
|
|
200
202
|
def update(self, metrics: list[TaskMetric]) -> None:
|
203
|
+
self.metrics = metrics
|
204
|
+
|
205
|
+
# We assume that generally the initial metric names will
|
206
|
+
# always match future updates (so we can just update values in line)
|
207
|
+
# but if an unrecognized metric appears on the scene, just
|
208
|
+
# recompute the whole grid
|
209
|
+
need_recompute = False
|
201
210
|
for metric in metrics:
|
202
|
-
widget = self.value_widgets
|
203
|
-
widget
|
211
|
+
widget = self.value_widgets.get(metric.name)
|
212
|
+
if widget:
|
213
|
+
# Just update the values themselves
|
214
|
+
widget.update(content=f"{metric.value:,.3f}")
|
215
|
+
else:
|
216
|
+
# Don't have a widget for this, recompute the whole grid
|
217
|
+
need_recompute = True
|
218
|
+
break
|
219
|
+
|
220
|
+
if need_recompute:
|
221
|
+
self.recompute_grid()
|
222
|
+
|
223
|
+
def on_mount(self) -> None:
|
224
|
+
self.recompute_grid()
|
225
|
+
|
226
|
+
def recompute_grid(self) -> None:
|
227
|
+
grid = self.query_one(f"#{self.grid_id()}")
|
228
|
+
|
229
|
+
grid.remove_children()
|
230
|
+
for metric in self.metrics:
|
231
|
+
# Add the value static but keep it around
|
232
|
+
# for future updates
|
233
|
+
self.value_widgets[metric.name] = Static(self._metric_value(metric.value))
|
234
|
+
|
235
|
+
grid.mount(Static(metric.name))
|
236
|
+
grid.mount(self.value_widgets[metric.name])
|
204
237
|
|
205
238
|
def _title(self) -> Widget:
|
206
239
|
if self.scorer is None:
|
{inspect_ai-0.3.50 → inspect_ai-0.3.52}/src/inspect_ai/_display/textual/widgets/transcript.py
RENAMED
@@ -10,10 +10,10 @@ from textual.widget import Widget
|
|
10
10
|
from textual.widgets import Static
|
11
11
|
|
12
12
|
from inspect_ai._util.content import ContentText
|
13
|
-
from inspect_ai._util.format import format_function_call
|
14
13
|
from inspect_ai._util.rich import lines_display
|
15
14
|
from inspect_ai._util.transcript import (
|
16
15
|
set_transcript_markdown_options,
|
16
|
+
transcript_function,
|
17
17
|
transcript_markdown,
|
18
18
|
transcript_separator,
|
19
19
|
)
|
@@ -36,6 +36,7 @@ from inspect_ai.log._transcript import (
|
|
36
36
|
from inspect_ai.model._chat_message import ChatMessage, ChatMessageUser
|
37
37
|
from inspect_ai.model._render import messages_preceding_assistant
|
38
38
|
from inspect_ai.tool._tool import ToolResult
|
39
|
+
from inspect_ai.tool._tool_transcript import transcript_tool_call
|
39
40
|
|
40
41
|
|
41
42
|
class TranscriptView(ScrollableContainer):
|
@@ -195,16 +196,7 @@ def render_tool_event(event: ToolEvent) -> list[EventDisplay]:
|
|
195
196
|
display.extend(render_event(e) or [])
|
196
197
|
|
197
198
|
# render the call
|
198
|
-
content
|
199
|
-
if event.view:
|
200
|
-
if event.view.title:
|
201
|
-
content.append(Text.from_markup(f"[bold]{event.view.title}[/bold]\n"))
|
202
|
-
if event.view.format == "markdown":
|
203
|
-
content.append(transcript_markdown(event.view.content))
|
204
|
-
else:
|
205
|
-
content.append(event.view.content)
|
206
|
-
else:
|
207
|
-
content.append(render_function_call(event.function, event.arguments))
|
199
|
+
content = transcript_tool_call(event)
|
208
200
|
|
209
201
|
# render the output
|
210
202
|
if isinstance(event.result, list):
|
@@ -266,7 +258,7 @@ def render_subtask_event(event: SubtaskEvent) -> list[EventDisplay]:
|
|
266
258
|
for e in event.events:
|
267
259
|
display.extend(render_event(e) or [])
|
268
260
|
|
269
|
-
content: list[RenderableType] = [
|
261
|
+
content: list[RenderableType] = [transcript_function(event.name, event.input)]
|
270
262
|
if event.result:
|
271
263
|
content.append(Text())
|
272
264
|
if isinstance(event.result, str | int | float | bool | None):
|
@@ -309,11 +301,6 @@ def render_error_event(event: ErrorEvent) -> EventDisplay:
|
|
309
301
|
return EventDisplay("error", event.error.traceback.strip())
|
310
302
|
|
311
303
|
|
312
|
-
def render_function_call(function: str, arguments: dict[str, Any]) -> RenderableType:
|
313
|
-
call = format_function_call(function, arguments)
|
314
|
-
return transcript_markdown("```python\n" + call + "\n```\n")
|
315
|
-
|
316
|
-
|
317
304
|
def render_as_json(json: Any) -> RenderableType:
|
318
305
|
return transcript_markdown(
|
319
306
|
"```json\n"
|
@@ -61,6 +61,7 @@ def eval(
|
|
61
61
|
log_dir: str | None = None,
|
62
62
|
log_format: Literal["eval", "json"] | None = None,
|
63
63
|
limit: int | tuple[int, int] | None = None,
|
64
|
+
sample_id: str | int | list[str | int] | None = None,
|
64
65
|
epochs: int | Epochs | None = None,
|
65
66
|
fail_on_error: bool | float | None = None,
|
66
67
|
debug_errors: bool | None = None,
|
@@ -110,6 +111,7 @@ def eval(
|
|
110
111
|
to "eval", the native high-performance format).
|
111
112
|
limit (int | tuple[int, int] | None): Limit evaluated samples
|
112
113
|
(defaults to all samples).
|
114
|
+
sample_id (str | int | list[str | int] | None): Evaluate specific sample(s) from the dataset.
|
113
115
|
epochs (int | Epochs | None): Epochs to repeat samples for and optional score
|
114
116
|
reducer function(s) used to combine sample scores (defaults to "mean")
|
115
117
|
fail_on_error (bool | float | None): `True` to fail on first sample error
|
@@ -163,6 +165,7 @@ def eval(
|
|
163
165
|
log_dir=log_dir,
|
164
166
|
log_format=log_format,
|
165
167
|
limit=limit,
|
168
|
+
sample_id=sample_id,
|
166
169
|
epochs=epochs,
|
167
170
|
fail_on_error=fail_on_error,
|
168
171
|
debug_errors=debug_errors,
|
@@ -198,6 +201,7 @@ async def eval_async(
|
|
198
201
|
log_dir: str | None = None,
|
199
202
|
log_format: Literal["eval", "json"] | None = None,
|
200
203
|
limit: int | tuple[int, int] | None = None,
|
204
|
+
sample_id: str | int | list[str | int] | None = None,
|
201
205
|
epochs: int | Epochs | None = None,
|
202
206
|
fail_on_error: bool | float | None = None,
|
203
207
|
debug_errors: bool | None = None,
|
@@ -245,8 +249,9 @@ async def eval_async(
|
|
245
249
|
(defaults to file log in ./logs directory).
|
246
250
|
log_format (Literal["eval", "json"] | None): Format for writing log files (defaults
|
247
251
|
to "eval", the native high-performance format).
|
248
|
-
limit (int |
|
252
|
+
limit (str | int | list[str | int] | None): Limit evaluated samples
|
249
253
|
(defaults to all samples).
|
254
|
+
sample_id (str | list[str] | None): Evaluate specific sample(s) from the dataset.
|
250
255
|
epochs (int | Epochs | None): Epochs to repeat samples for and optional score
|
251
256
|
reducer function(s) used to combine sample scores (defaults to "mean")
|
252
257
|
fail_on_error (bool | float | None): `True` to fail on first sample error
|
@@ -335,6 +340,10 @@ async def eval_async(
|
|
335
340
|
# resolve solver
|
336
341
|
solver = chain(solver) if isinstance(solver, list) else solver
|
337
342
|
|
343
|
+
# ensure consistency of limit and sample_id
|
344
|
+
if sample_id is not None and limit is not None:
|
345
|
+
raise ValueError("You cannot specify both sample_id and limit.")
|
346
|
+
|
338
347
|
# resolve epochs
|
339
348
|
if isinstance(epochs, int):
|
340
349
|
epochs = Epochs(epochs)
|
@@ -345,6 +354,7 @@ async def eval_async(
|
|
345
354
|
epochs_reducer = epochs.reducer if epochs else None
|
346
355
|
eval_config = EvalConfig(
|
347
356
|
limit=limit,
|
357
|
+
sample_id=sample_id,
|
348
358
|
epochs=epochs.epochs if epochs else None,
|
349
359
|
epochs_reducer=reducer_log_names(epochs_reducer)
|
350
360
|
if epochs_reducer
|
@@ -642,6 +652,7 @@ async def eval_retry_async(
|
|
642
652
|
task_args = eval_log.eval.task_args
|
643
653
|
tags = eval_log.eval.tags
|
644
654
|
limit = eval_log.eval.config.limit
|
655
|
+
sample_id = eval_log.eval.config.sample_id
|
645
656
|
epochs = (
|
646
657
|
Epochs(eval_log.eval.config.epochs, eval_log.eval.config.epochs_reducer)
|
647
658
|
if eval_log.eval.config.epochs
|
@@ -699,6 +710,7 @@ async def eval_retry_async(
|
|
699
710
|
log_dir=log_dir,
|
700
711
|
log_format=log_format,
|
701
712
|
limit=limit,
|
713
|
+
sample_id=sample_id,
|
702
714
|
epochs=epochs,
|
703
715
|
fail_on_error=fail_on_error,
|
704
716
|
debug_errors=debug_errors,
|
@@ -65,6 +65,7 @@ def eval_set(
|
|
65
65
|
log_level_transcript: str | None = None,
|
66
66
|
log_format: Literal["eval", "json"] | None = None,
|
67
67
|
limit: int | tuple[int, int] | None = None,
|
68
|
+
sample_id: str | int | list[str | int] | None = None,
|
68
69
|
epochs: int | Epochs | None = None,
|
69
70
|
fail_on_error: bool | float | None = None,
|
70
71
|
debug_errors: bool | None = None,
|
@@ -125,6 +126,7 @@ def eval_set(
|
|
125
126
|
log files (defaults to "eval", the native high-performance format).
|
126
127
|
limit (int | tuple[int, int] | None): Limit evaluated samples
|
127
128
|
(defaults to all samples).
|
129
|
+
sample_id (str | int | list[str | int] | None): Evaluate specific sample(s) from the dataset.
|
128
130
|
epochs (int | Epochs | None): Epochs to repeat samples for and optional score
|
129
131
|
reducer function(s) used to combine sample scores (defaults to "mean")
|
130
132
|
fail_on_error (bool | float | None): `True` to fail on first sample error
|
@@ -181,6 +183,7 @@ def eval_set(
|
|
181
183
|
log_dir=log_dir,
|
182
184
|
log_format=log_format,
|
183
185
|
limit=limit,
|
186
|
+
sample_id=sample_id,
|
184
187
|
epochs=epochs,
|
185
188
|
fail_on_error=fail_on_error,
|
186
189
|
debug_errors=debug_errors,
|
@@ -83,7 +83,12 @@ class TaskLogger:
|
|
83
83
|
# ensure that the dataset has sample ids and record them
|
84
84
|
sample_ids = cast(
|
85
85
|
list[int | str],
|
86
|
-
[
|
86
|
+
[
|
87
|
+
sample.id
|
88
|
+
for sample in slice_dataset(
|
89
|
+
dataset, eval_config.limit, eval_config.sample_id
|
90
|
+
)
|
91
|
+
],
|
87
92
|
)
|
88
93
|
|
89
94
|
# create eval spec
|
@@ -162,6 +162,7 @@ async def task_run(options: TaskRunOptions) -> EvalLog:
|
|
162
162
|
dataset=task.dataset,
|
163
163
|
model_name=model_name,
|
164
164
|
limit=config.limit,
|
165
|
+
sample_id=config.sample_id,
|
165
166
|
epochs=epochs,
|
166
167
|
log_images=log_images,
|
167
168
|
message_limit=config.message_limit,
|
@@ -748,13 +749,14 @@ async def resolve_dataset(
|
|
748
749
|
dataset: Dataset,
|
749
750
|
model_name: ModelName,
|
750
751
|
limit: int | tuple[int, int] | None,
|
752
|
+
sample_id: str | int | list[str | int] | None,
|
751
753
|
epochs: int,
|
752
754
|
log_images: bool,
|
753
755
|
message_limit: int | None,
|
754
756
|
token_limit: int | None,
|
755
757
|
) -> tuple[Dataset, list[Sample], list[TaskState]]:
|
756
|
-
#
|
757
|
-
dataset = slice_dataset(dataset, limit)
|
758
|
+
# slice dataset
|
759
|
+
dataset = slice_dataset(dataset, limit, sample_id)
|
758
760
|
|
759
761
|
# apply epochs (deepcopy the samples so they remain independent)
|
760
762
|
samples: list[Sample] = []
|
@@ -39,10 +39,19 @@ def task_file(task: Task, relative: bool = False) -> str | None:
|
|
39
39
|
def slice_dataset(
|
40
40
|
dataset: Dataset,
|
41
41
|
limit: int | tuple[int, int] | None,
|
42
|
+
sample_id: str | int | list[str | int] | None,
|
42
43
|
) -> Dataset:
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
def normalise(id: str | int | None) -> str:
|
45
|
+
return id if isinstance(id, str) else str(id).zfill(20)
|
46
|
+
|
47
|
+
if sample_id is not None:
|
48
|
+
sample_id = sample_id if isinstance(sample_id, list) else [sample_id]
|
49
|
+
sample_id = [normalise(id) for id in sample_id]
|
50
|
+
return dataset.filter(lambda sample: normalise(sample.id) in sample_id)
|
51
|
+
else:
|
52
|
+
dataset_limit = (
|
53
|
+
slice(0, len(dataset))
|
54
|
+
if limit is None
|
55
|
+
else (slice(*limit) if isinstance(limit, tuple) else slice(0, limit))
|
56
|
+
)
|
57
|
+
return dataset[dataset_limit]
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import os
|
2
2
|
from logging import (
|
3
|
+
DEBUG,
|
3
4
|
INFO,
|
4
5
|
WARNING,
|
5
6
|
FileHandler,
|
@@ -129,7 +130,7 @@ def init_logger(
|
|
129
130
|
# init logging handler on demand
|
130
131
|
global _logHandler
|
131
132
|
if not _logHandler:
|
132
|
-
_logHandler = LogHandler(min(
|
133
|
+
_logHandler = LogHandler(min(DEBUG, levelno), transcript_levelno)
|
133
134
|
getLogger().addHandler(_logHandler)
|
134
135
|
|
135
136
|
# establish default capture level
|
@@ -139,6 +140,7 @@ def init_logger(
|
|
139
140
|
getLogger().setLevel(capture_level)
|
140
141
|
getLogger(PKG_NAME).setLevel(capture_level)
|
141
142
|
getLogger("httpx").setLevel(capture_level)
|
143
|
+
getLogger("botocore").setLevel(DEBUG)
|
142
144
|
|
143
145
|
# set the levelno on the global handler
|
144
146
|
_logHandler.display_level = levelno
|
@@ -154,7 +156,13 @@ def notify_logger_record(record: LogRecord, write: bool) -> None:
|
|
154
156
|
if write:
|
155
157
|
transcript()._event(LoggerEvent(message=LoggingMessage.from_log_record(record)))
|
156
158
|
global _rate_limit_count
|
157
|
-
if record.levelno <= INFO and "429" in record.getMessage()
|
159
|
+
if (record.levelno <= INFO and "429" in record.getMessage()) or (
|
160
|
+
record.levelno == DEBUG
|
161
|
+
# See https://boto3.amazonaws.com/v1/documentation/api/latest/guide/retries.html#validating-retry-attempts
|
162
|
+
# for boto retry logic / log messages (this is tracking standard or adapative retries)
|
163
|
+
and "botocore.retries.standard" in record.name
|
164
|
+
and "Retry needed, retrying request after delay of:" in record.getMessage()
|
165
|
+
):
|
158
166
|
_rate_limit_count = _rate_limit_count + 1
|
159
167
|
|
160
168
|
|
@@ -7,3 +7,10 @@ def parse_samples_limit(limit: str | None) -> int | tuple[int, int] | None:
|
|
7
7
|
return (limit_split[0] - 1, limit_split[1])
|
8
8
|
else:
|
9
9
|
return None
|
10
|
+
|
11
|
+
|
12
|
+
def parse_sample_id(sample_id: str | None) -> list[str] | None:
|
13
|
+
if sample_id is not None:
|
14
|
+
return [id.strip() for id in sample_id.split(",")]
|
15
|
+
else:
|
16
|
+
return None
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import html
|
2
|
+
from typing import Any
|
2
3
|
|
3
4
|
from rich.align import AlignMethod
|
4
5
|
from rich.box import ROUNDED, Box
|
@@ -8,6 +9,8 @@ from rich.panel import Panel
|
|
8
9
|
from rich.rule import Rule
|
9
10
|
from rich.text import Text
|
10
11
|
|
12
|
+
from .format import format_function_call
|
13
|
+
|
11
14
|
|
12
15
|
def transcript_code_theme() -> str:
|
13
16
|
return "github-dark"
|
@@ -81,6 +84,11 @@ def transcript_separator(title: str, color: str) -> RenderableType:
|
|
81
84
|
return Rule(title=title, style=f"{color} bold", align="center", end="\n\n")
|
82
85
|
|
83
86
|
|
87
|
+
def transcript_function(function: str, arguments: dict[str, Any]) -> RenderableType:
|
88
|
+
call = format_function_call(function, arguments)
|
89
|
+
return transcript_markdown("```python\n" + call + "\n```\n")
|
90
|
+
|
91
|
+
|
84
92
|
LINE = Box(" ── \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n")
|
85
93
|
|
86
94
|
DOTTED = Box(" ·· \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n")
|
@@ -20225,7 +20225,7 @@ const metadataViewsForSample = (id, sample) => {
|
|
20225
20225
|
}
|
20226
20226
|
return sampleMetadatas;
|
20227
20227
|
};
|
20228
|
-
const SampleSummary = ({
|
20228
|
+
const SampleSummary = ({ parent_id, sample, style, sampleDescriptor }) => {
|
20229
20229
|
const input = (sampleDescriptor == null ? void 0 : sampleDescriptor.messageShape.normalized.input) > 0 ? Math.max(0.15, sampleDescriptor.messageShape.normalized.input) : 0;
|
20230
20230
|
const target = (sampleDescriptor == null ? void 0 : sampleDescriptor.messageShape.normalized.target) > 0 ? Math.max(0.15, sampleDescriptor.messageShape.normalized.target) : 0;
|
20231
20231
|
const answer = (sampleDescriptor == null ? void 0 : sampleDescriptor.messageShape.normalized.answer) > 0 ? Math.max(0.15, sampleDescriptor.messageShape.normalized.answer) : 0;
|
@@ -20246,7 +20246,7 @@ const SampleSummary = ({ id, sample, style, sampleDescriptor }) => {
|
|
20246
20246
|
const columns = [];
|
20247
20247
|
columns.push({
|
20248
20248
|
label: "Id",
|
20249
|
-
value: id,
|
20249
|
+
value: sample.id,
|
20250
20250
|
size: `${idSize}em`
|
20251
20251
|
});
|
20252
20252
|
columns.push({
|
@@ -20299,7 +20299,7 @@ const SampleSummary = ({ id, sample, style, sampleDescriptor }) => {
|
|
20299
20299
|
});
|
20300
20300
|
return m$1`
|
20301
20301
|
<div
|
20302
|
-
id=${`sample-heading-${
|
20302
|
+
id=${`sample-heading-${parent_id}`}
|
20303
20303
|
style=${{
|
20304
20304
|
display: "grid",
|
20305
20305
|
gridTemplateColumns: `${columns.map((col) => {
|
@@ -25449,22 +25449,35 @@ const createsSamplesDescriptor = (scorers, samples, epochs, selectedScore) => {
|
|
25449
25449
|
if (!sample || !sample.scores) {
|
25450
25450
|
return [];
|
25451
25451
|
}
|
25452
|
-
scorers.map((score2) => {
|
25452
|
+
const scoreNames = scorers.map((score2) => {
|
25453
25453
|
return score2.name;
|
25454
25454
|
});
|
25455
25455
|
const sampleScorer = sample.scores[scorer];
|
25456
25456
|
const scoreVal = sampleScorer.value;
|
25457
25457
|
if (typeof scoreVal === "object") {
|
25458
25458
|
const names = Object.keys(scoreVal);
|
25459
|
-
|
25460
|
-
return
|
25461
|
-
|
25462
|
-
|
25463
|
-
|
25459
|
+
if (names.find((name) => {
|
25460
|
+
return scoreNames.includes(name);
|
25461
|
+
})) {
|
25462
|
+
const scores = names.map((name) => {
|
25463
|
+
return {
|
25464
|
+
name,
|
25465
|
+
rendered: () => {
|
25466
|
+
return scoreDescriptor.render(scoreVal[name]);
|
25467
|
+
}
|
25468
|
+
};
|
25469
|
+
});
|
25470
|
+
return scores;
|
25471
|
+
} else {
|
25472
|
+
return [
|
25473
|
+
{
|
25474
|
+
name: scorer,
|
25475
|
+
rendered: () => {
|
25476
|
+
return scoreDescriptor.render(scoreVal);
|
25477
|
+
}
|
25464
25478
|
}
|
25465
|
-
|
25466
|
-
}
|
25467
|
-
return scores;
|
25479
|
+
];
|
25480
|
+
}
|
25468
25481
|
} else {
|
25469
25482
|
return [
|
25470
25483
|
{
|