inspect-ai 0.3.58__tar.gz → 0.3.59__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.58 → inspect_ai-0.3.59}/.pre-commit-config.yaml +1 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/CHANGELOG.md +19 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/PKG-INFO +2 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_tools-scaffold.md +11 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/approval.qmd +22 -3
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/errors-and-limits.qmd +13 -10
- inspect_ai-0.3.59/docs/images/vnc-port-info.png +0 -0
- inspect_ai-0.3.59/docs/images/vnc-view-only.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/models.qmd +1 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/solvers.qmd +61 -39
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/tools.qmd +177 -10
- inspect_ai-0.3.59/examples/computer/compose.yaml +17 -0
- inspect_ai-0.3.59/examples/computer/computer.py +50 -0
- inspect_ai-0.3.59/examples/computer/moonWeight.ods +0 -0
- inspect_ai-0.3.59/examples/intervention/README.md +47 -0
- inspect_ai-0.3.59/examples/intervention/computer/approval.yaml +10 -0
- inspect_ai-0.3.59/examples/intervention/computer/compose.yaml +8 -0
- inspect_ai-0.3.59/examples/intervention/intervention.py +135 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/pyproject.toml +1 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/common.py +3 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/eval.py +15 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/core/active.py +4 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/core/config.py +3 -3
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/core/panel.py +7 -3
- inspect_ai-0.3.59/src/inspect_ai/_display/plain/display.py +203 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/rich/display.py +0 -5
- inspect_ai-0.3.59/src/inspect_ai/_display/textual/widgets/port_mappings.py +110 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/widgets/samples.py +78 -11
- inspect_ai-0.3.59/src/inspect_ai/_display/textual/widgets/sandbox.py +37 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/score.py +1 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/results.py +50 -22
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/run.py +41 -7
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/sandbox.py +10 -5
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/constants.py +1 -0
- inspect_ai-0.3.59/src/inspect_ai/_util/port_names.py +61 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/text.py +23 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/App.css +31 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/dist/assets/index.css +31 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/dist/assets/index.js +25344 -1849
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/log-schema.json +32 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/package.json +2 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/App.mjs +8 -10
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/Types.mjs +0 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/ChatView.mjs +133 -43
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/ExpandablePanel.mjs +0 -4
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/LargeModal.mjs +19 -20
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/TabSet.mjs +3 -1
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/components/VirtualList.mjs +280 -0
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/index.js +101 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/navbar/Navbar.mjs +3 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/navbar/SecondaryBar.mjs +18 -9
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/SampleDialog.mjs +5 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/SampleDisplay.mjs +23 -15
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/SampleList.mjs +18 -48
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/SampleTranscript.mjs +8 -3
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/SamplesDescriptor.mjs +24 -12
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/SamplesTab.mjs +4 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/SamplesTools.mjs +8 -8
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/samples/tools/SampleFilter.mjs +756 -0
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/samples/tools/filters.mjs +287 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/ErrorEventView.mjs +24 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/EventPanel.mjs +29 -24
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/EventRow.mjs +1 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/InfoEventView.mjs +24 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/InputEventView.mjs +24 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/ModelEventView.mjs +31 -10
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/SampleInitEventView.mjs +24 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/SampleLimitEventView.mjs +23 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/ScoreEventView.mjs +24 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/StepEventView.mjs +33 -3
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.mjs +25 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/ToolEventView.mjs +25 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptView.mjs +193 -11
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/Types.mjs +10 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventView.mjs +26 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/types/log.d.ts +13 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/Format.mjs +10 -3
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/Json.mjs +12 -6
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/workspace/WorkSpace.mjs +10 -4
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/vite.config.js +7 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/yarn.lock +116 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_policy.py +12 -6
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_log.py +1 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_samples.py +16 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_transcript.py +4 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_call_tools.py +4 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_conversation.py +20 -8
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_generate_config.py +10 -4
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_model.py +117 -18
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_model_output.py +7 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/anthropic.py +100 -44
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/azureai.py +20 -20
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/bedrock.py +37 -40
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/google.py +46 -54
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/mistral.py +11 -11
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/openai.py +15 -16
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/openai_o1.py +9 -8
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/providers.py +1 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/together.py +8 -8
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/vertex.py +1 -4
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_reducer/reducer.py +1 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_scorer.py +2 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/__init__.py +2 -5
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_prompt.py +35 -5
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_task_state.py +80 -38
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/__init__.py +2 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tool.py +12 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tool_call.py +10 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tool_def.py +16 -5
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tool_with.py +21 -4
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/__init__.py +5 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/__init__.py +3 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_common.py +133 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_computer.py +155 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_computer_split.py +198 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/Dockerfile +100 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/README.md +30 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/entrypoint/entrypoint.sh +18 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/entrypoint/novnc_startup.sh +20 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/entrypoint/x11vnc_startup.sh +48 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/entrypoint/xfce_startup.sh +13 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/entrypoint/xvfb_startup.sh +48 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/image_home_dir/Desktop/Firefox Web Browser.desktop +10 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/image_home_dir/Desktop/Visual Studio Code.desktop +10 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/image_home_dir/Desktop/XPaint.desktop +10 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/tool/_logger.py +22 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/tool/_run.py +42 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/tool/_tool_result.py +33 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/tool/_x11_client.py +262 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/tool/computer_tool.py +85 -0
- inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/tool/requirements.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/__init__.py +2 -0
- inspect_ai-0.3.59/src/inspect_ai/util/_limit.py +26 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/docker/docker.py +64 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/docker/internal.py +3 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/environment.py +14 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai.egg-info/PKG-INFO +2 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai.egg-info/SOURCES.txt +40 -3
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai.egg-info/requires.txt +1 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_prompt.py +20 -5
- inspect_ai-0.3.59/tests/solver/test_score.py +45 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_solver.py +0 -1
- inspect_ai-0.3.59/tests/test_helpers/__init__.py +0 -0
- inspect_ai-0.3.59/tests/test_package/inspect_package/py.typed +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_sample_limits.py +42 -3
- inspect_ai-0.3.59/tests/test_task_list/__init__.py +0 -0
- inspect_ai-0.3.59/tests/util/test_truncate.py +21 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/CHANGELOG.md +4 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/package.json +1 -1
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/@types/log.d.ts +13 -2
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/inspect/inspect-eval.ts +1 -1
- inspect_ai-0.3.58/examples/intervention/README.md +0 -164
- inspect_ai-0.3.58/examples/intervention/intervention.py +0 -110
- inspect_ai-0.3.58/src/inspect_ai/_view/www/src/components/VirtualList.mjs +0 -98
- inspect_ai-0.3.58/src/inspect_ai/_view/www/src/index.js +0 -28
- inspect_ai-0.3.58/src/inspect_ai/_view/www/src/samples/tools/SampleFilter.mjs +0 -133
- inspect_ai-0.3.58/src/inspect_ai/_view/www/src/samples/tools/filters.mjs +0 -114
- inspect_ai-0.3.58/src/inspect_ai/_view/www/src/samples/transcript/TranscriptState.mjs +0 -70
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/.github/dependabot.yml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/.github/pull_request_template.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/.github/workflows/build.yml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/.github/workflows/docs.yml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/.github/workflows/log_viewer.yml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/.github/workflows/pypi.yml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/.github/workflows/vscode.yml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/.gitignore +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/.vscode/extensions.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/.vscode/settings.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/CITATION.cff +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/LICENSE +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/Makefile +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/README.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/.gitignore +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/CNAME +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_container_limits.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_errors_and_retries.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_max_samples.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_metadata_typing.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_quarto.yml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_sample-preservation.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_sandboxenv-interface.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_setting_max_samples.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_store_typing.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_tools-annotations-required.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/_variables.yml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/agents-api.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/agents.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/caching.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/datasets.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/eval-logs.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/eval-sets.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/examples/examples.bib +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/examples/examples.css +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/examples/examples.ejs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/examples/examples.yml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/examples/index.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/extensions.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/human-agent.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/aisi-logo.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/eval-log.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-activity-bar.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-human-agent-container.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-human-agent.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-multiple-models.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-terminal-transcript.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-answers.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-filter.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-history.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-home.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-info.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-logging-console.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-logging.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-main.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-messages.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-metadata.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-scoring.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-sort.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-view-splash.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-vscode-config.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-vscode-install.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-vscode-logview.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-vscode-output-channel.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect-vscode-run-task.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/inspect.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/logs-drop-down.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/logs-open-button.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/logs.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/popularity.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/python-tool-view.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/rate-limit.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/running-theory.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/task-max-sandboxes.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/toolenv-no-cleanup.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/images/web-browser-tool-view.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/index.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/interactivity.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/llms.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/log-viewer.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/multimodal.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/parallelism.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/sandboxing.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/scorers.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/scripts/post-render.sh +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/theme.scss +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/tracing.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/tutorial.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/typing.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/vscode.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/docs/workflow.qmd +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/approval/README.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/approval/approval.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/approval/approval.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/biology_qa.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/browser/browser.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/browser/compose.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/cache.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/evalset.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/hello_world.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/images/ballons.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/images/bike.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/images/images.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/images/images.py +0 -0
- {inspect_ai-0.3.58/examples/intervention → inspect_ai-0.3.59/examples/intervention/shell}/Dockerfile +0 -0
- {inspect_ai-0.3.58/examples/intervention → inspect_ai-0.3.59/examples/intervention/shell}/compose.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/langchain/.env.example +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/langchain/.gitignore +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/langchain/README.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/langchain/inspect_langchain.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/langchain/requirements.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/langchain/wikipedia.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/langchain/wikipedia.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/popularity.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/security_guide.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/theory_of_mind.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/examples/tool_use.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/requirements.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/setup.cfg +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/__main__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/cache.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/info.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/list.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/log.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/main.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/sandbox.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/score.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/trace.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/util.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_cli/view.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/core/display.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/core/footer.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/core/group.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/core/progress.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/core/results.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/core/rich.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/core/textual.py +0 -0
- {inspect_ai-0.3.58/src/inspect_ai/_display/rich → inspect_ai-0.3.59/src/inspect_ai/_display/plain}/__init__.py +0 -0
- {inspect_ai-0.3.58/tests/test_helpers → inspect_ai-0.3.59/src/inspect_ai/_display/rich}/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/app.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/app.tcss +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/display.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/theme.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/widgets/clock.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/widgets/console.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/widgets/footer.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/widgets/task_detail.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/widgets/tasks.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/widgets/titlebar.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/widgets/toggle.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_display/textual/widgets/transcript.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/context.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/eval.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/evalset.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/list.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/loader.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/registry.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/run.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/constants.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/epochs.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/error.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/generate.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/images.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/log.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/rundir.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/task.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_eval/task/util.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/_async.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/ansi.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/appdirs.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/config.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/content.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/datetime.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/decorator.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/deprecation.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/dev.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/dict.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/dotenv.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/entrypoints.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/environ.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/error.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/file.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/format.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/git.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/hash.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/hooks.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/html.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/http.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/images.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/json.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/kvstore.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/list.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/logger.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/notebook.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/notgiven.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/package.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/path.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/pattern.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/platform.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/registry.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/retry.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/rich.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/samples.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/terminal.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/thread.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/throttle.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/timeouts.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/trace.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/transcript.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/url.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/version.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_util/vscode.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/notify.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/schema.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/server.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/view.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/.gitignore +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/.prettierignore +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/.prettierrc.js +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/.tool-versions +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/README.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/dist/assets/favicon.svg +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/dist/index.html +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/eslint.config.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/favicon.svg +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/index.html +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/jsconfig.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/postcss.config.cjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/Register.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/api/Types.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/api/api-browser.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/api/api-http.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/api/api-shared.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/api/api-vscode.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/api/client-api.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/api/index.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/api/jsonrpc.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/appearance/Colors.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/appearance/Fonts.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/appearance/Icons.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/appearance/Styles.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/AnsiDisplay.css +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/AnsiDisplay.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/AppErrorBoundary.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/AsciiCinemaPlayer.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/Browser.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/Card.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/CopyButton.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/Dialog.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/DownloadButton.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/DownloadPanel.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/EmptyPanel.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/ErrorPanel.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/FindBand.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/HumanBaselineView.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/JsonPanel.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/LabeledValue.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/LightboxCarousel.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/MarkdownDiv.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/MessageBand.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/MessageContent.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/MetaDataGrid.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/MetaDataView.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/MorePopOver.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/NavPills.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/ProgressBar.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/RenderedContent/ChatMessageRenderer.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/RenderedContent/RenderedContent.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/RenderedContent/Types.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/ToolButton.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/Tools.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/components/ansi-output.js +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/constants.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/json/JsonTab.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/log/remoteLogFile.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/log-reader/Log-Reader.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/log-reader/Native-Log-Reader.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/log-reader/Open-AI-Log-Reader.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/plan/PlanCard.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/SampleError.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/SampleLimit.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/SampleScoreView.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/SampleScores.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/tools/EpochFilter.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/tools/SelectScorer.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/tools/SortFilter.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/ApprovalEventView.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/EventSection.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/LoggerEventView.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/state/StateDiffView.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventRenderers.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/sidebar/Sidebar.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/types/asciicinema-player.d.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/types/jsondiffpatch.d.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/types/prism.d.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/usage/ModelTokenTable.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/usage/UsageCard.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/Base64.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/Git.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/Html.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/Path.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/Print.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/Type.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/attachments.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/debugging.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/http.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/queue.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/remoteZipFile.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/sync.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/utils/vscode.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/src/workspace/TaskErrorPanel.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/_view/www/tsconfig.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_apply.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_approval.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_approver.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_auto.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_call.py +0 -0
- {inspect_ai-0.3.58/tests/test_task_list → inspect_ai-0.3.59/src/inspect_ai/approval/_human}/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_human/approver.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_human/console.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_human/manager.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_human/panel.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_human/util.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/approval/_registry.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_dataset.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_examples/bias_detection.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_examples/biology_qa.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_examples/popularity.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_examples/security_guide.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_examples/theory_of_mind.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_sources/csv.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_sources/example.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_sources/file.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_sources/hf.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_sources/json.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_sources/util.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/dataset/_util.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_bundle.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_condense.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_convert.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_file.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_message.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_recorders/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_recorders/create.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_recorders/eval.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_recorders/file.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_recorders/json.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_recorders/recorder.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/log/_retry.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_cache.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_chat_message.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_image.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_model_call.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/cloudflare.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/grok.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/groq.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/hf.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/llama_cpp_python.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/mockllm.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/ollama.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/util/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/util/chatapi.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/util/hf_handler.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/util/llama31.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/util/util.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_providers/vllm.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_registry.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/model/_render.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/py.typed +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_answer.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_choice.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_classification.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_common.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_match.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_metric.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_metrics/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_metrics/accuracy.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_metrics/mean.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_metrics/std.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_model.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_multi.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_pattern.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_reducer/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_reducer/registry.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_reducer/types.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_score.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/scorer/_target.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_basic_agent.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_chain.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_critique.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_fork.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/agent.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/commands/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/commands/clock.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/commands/command.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/commands/instructions.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/commands/note.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/commands/score.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/commands/status.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/commands/submit.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/install.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/panel.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/service.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/state.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_human_agent/view.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_multiple_choice.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_plan.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_solver.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_transcript.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_use_tools.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/solver/_util.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tool_choice.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tool_description.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tool_info.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tool_params.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tool_transcript.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_execute.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/Dockerfile +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/README.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/accessibility_node.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/dm_env_servicer.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/images/usage_diagram.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/mock_environment.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/playwright_crawler.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_accessibility_node.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_dm_env_servicer.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_playwright_crawler.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_web_environment.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client_new_session.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_environment.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_server.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_browser/_web_browser.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/tool/_tools/_web_search.py +0 -0
- /inspect_ai-0.3.58/tests/test_package/inspect_package/py.typed → /inspect_ai-0.3.59/src/inspect_ai/tool/beta/_computer/_resources/tool/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_concurrency.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_console.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_conversation.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_display.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_panel.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_resource.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/context.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/docker/cleanup.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/docker/compose.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/docker/config.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/docker/prereqs.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/docker/util.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/limits.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/local.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/registry.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/self_check.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_sandbox/service.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_store.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_store_model.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_subprocess.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_subtask.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai/util/_throttle.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai.egg-info/dependency_links.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai.egg-info/entry_points.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/src/inspect_ai.egg-info/top_level.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/approval/approve.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/approval/escalate.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/approval/modify.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/approval/reject.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/approval/terminate.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/approval/test_approval.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/conftest.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/dataset/test_dataset/dataset.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/dataset/test_dataset/images/ballons.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/dataset/test_dataset/images.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/dataset/test_dataset/samples-md.csv +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/dataset/test_dataset/samples-md.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/dataset/test_dataset/samples-md.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/dataset/test_dataset/samples.csv +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/dataset/test_dataset/samples.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/dataset/test_dataset/samples.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/dataset/test_dataset.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_eval_log/log_formats.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_eval_log/log_images.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_eval_log/log_images_tc.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_eval_log/log_invalid.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_eval_log/log_length_stop_reason.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_eval_log/log_streaming.eval +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_eval_log/log_valid.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_eval_log/log_version_3.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_eval_log/log_with_nan.txt +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_eval_log.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_list_logs/2024-11-05T13-31-45-05-00_input-task_8zXjbRzCWrL9GXiXo2vus9.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_list_logs/2024-11-05T13-32-37-05-00_input-task_hxs4q9azL3ySGkjJirypKZ.eval +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_list_logs/custom.eval +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_list_logs/ignore.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_list_logs.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_log_attachments.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_log_formats.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_log_level.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_log_streaming.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/log/test_log_tags.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_anthropic.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_azureai.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_cloudflare.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_google.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_grok.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_groq.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_hf.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_llama_cpp_python.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_openai.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_openai_o1.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_vertex.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/providers/test_vllm.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/test_api_key.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/test_cache.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/test_collapse_assistant_message.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/test_collapse_user_message.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/test_disable.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/test_logprobs.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/test_mock_model_llm.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/test_num_choices.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/test_parse_tool_call.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/model/test_stop_reason.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/scorer/test_answer.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/scorer/test_choice.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/scorer/test_classification.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/scorer/test_match.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/scorer/test_metric.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/scorer/test_model_graded.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/scorer/test_multiscorer.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/scorer/test_pattern.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/scorer/test_reducers.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/scorer/test_scorer.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/scorer/test_value_to_float.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_basic_agent.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_chain.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_fork.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_multiple_choice.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_setup.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_solver_decorator.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_solver_spec.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_store.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_store_model.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_subtask.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/solver/test_transcript.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_eval.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_eval_config/model.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_eval_config/solver.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_eval_config/task.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_eval_config.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_eval_set/2024-08-29T15-11-17+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_eval_set/2024-08-29T15-11-18+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_eval_set.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_examples.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_extensions.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_fail_on_error.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_helpers/tasks.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_helpers/tool_call_utils.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_helpers/tools.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_helpers/utils.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_list_task.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_log_dir/example_task/example_task.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_log_dir/test_log_dir.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_package/.gitignore +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_package/inspect_package/__init__.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_package/inspect_package/_registry.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_package/inspect_package/approvers/renamer.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_package/inspect_package/modelapi/custom.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_package/inspect_package/sandboxenv/podman.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_package/inspect_package/score/scorer.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_package/inspect_package/solvers/cot.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_package/pyproject.toml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_retry.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_run_dir/task1/task1.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_run_dir/task2/task2.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_run_dir.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_sample_id.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_attr.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/attribs.ipynb +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/multiple.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/multiple_dir/_decoy/testit.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/multiple_dir/_decoy2.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/multiple_dir/bar.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/multiple_dir/foo.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/recurse/.folder3/epsilon.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/recurse/folder1/_decoy.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/recurse/folder1/theta.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/recurse/folder2/.folder3/epsilon.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/recurse/folder2/another.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_list/recurse/folder2/first.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/test_task_with.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/docker-compose-context/Dockerfile +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/docker-compose-context-alpine/Dockerfile +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_bash_tool.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_max_exec_output.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_max_tool_output.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_python_tool.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_sandbox_compose.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_sandbox_compose_alpine.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_sandbox_docker_and_local.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_sandbox_dockerfile.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_sandbox_tool_eval.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_tool_def.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_tool_images.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_tool_parse.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_tool_truncate.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_tool_types.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_tool_view.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_tool_with.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_tools.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_use_tools.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_web_browser.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/tools/test_web_browser_compose.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/sandbox/docker_compose_multiple_services/docker-compose.yaml +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/sandbox/sandbox_setup.sh +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/sandbox/sandbox_setup_error.sh +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/sandbox/test_docker_compose_multiple_services.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/sandbox/test_sandbox_service.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/sandbox/test_sandbox_setup.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_file.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_images/images.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_images.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_kvstore.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_media/audio.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_media/sample.mp3 +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_media/video.jsonl +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_media/video.mp4 +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_media.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_package.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_registry.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_str_to_float.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/util/test_subprocess.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tests/view/test_bundle.py +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/.eslintrc.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/.gitignore +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/.vscode/extensions.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/.vscode/launch.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/.vscode/settings.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/.vscode/tasks.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/.vscode-test.mjs +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/.vscodeignore +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/.yarnrc +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/LICENSE +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/README.md +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/assets/icon/eval-treeview-cancelled.svg +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/assets/icon/eval-treeview-error.svg +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/assets/icon/eval-treeview-started.svg +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/assets/icon/eval-treeview.svg +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/assets/icon/eval.svg +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/assets/logo/inspect.png +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/assets/logo/inspect.svg +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/assets/templates/task.py.template +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/assets/www/codicon/codicon.css +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/assets/www/codicon/codicon.ttf +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/assets/www/view/view-overrides.css +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/@types/hooks.d.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/components/document.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/components/error.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/components/focus.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/components/notebook.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/components/symbol.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/components/task.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/components/templates.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/components/webview.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/appdirs.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/command.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/dispose.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/env.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/file.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/git.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/jsonrpc.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/log.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/nonce.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/path.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/port.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/process.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/python/code.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/python/env.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/python/exec.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/python/index.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/python/interpreter.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/random.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/string.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/text.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/uri.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/vscode/association.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/wait.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/core/workspace.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/extension.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/hooks/hooks.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/hooks/index.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/hooks/preview.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/inspect/index.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/inspect/logs.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/inspect/props.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/inspect/version.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/active-task/active-task-command.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/active-task/active-task-provider.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/activity-bar-provider.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/env-config-provider.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/log-listing/log-directory-selector.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-data.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-mru.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-provider.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-server-queue.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/log-listing/log-listing.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/task-config-commands.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/task-config-provider.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/task-outline-commands.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/task-outline-provider.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.css +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.css +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/webview/vscode-controls.css +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/activity-bar/webview/webview-utils.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/codelens/codelens-provider.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/inspect/inspect-commands.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/inspect/inspect-constants.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/inspect/inspect-eval-commands.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/inspect/inspect-logs-watcher.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/inspect/inspect-manager.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/inspect/inspect-view-server.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/lognotify.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/logview/commands.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/logview/logview-editor.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/logview/logview-link-provider.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/logview/logview-panel.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/logview/logview-state.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/logview/logview-view.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/logview/logview.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/openlog.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/protocol-handler.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/settings/inspect-settings.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/settings/user-settings.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/statusbar.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/workspace/workspace-env-commands.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/workspace/workspace-env-provider.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/workspace/workspace-init.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/workspace/workspace-state-provider.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/providers/workspace/workspace-task-provider.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/test/codelens-provider.test.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/src/test/extension.test.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/tools/ts-to-mjs/.gitignore +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/tools/ts-to-mjs/package.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/tools/ts-to-mjs/rollup.config.js +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/tools/ts-to-mjs/src/index.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/tools/ts-to-mjs/src/jsonrpc.ts +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/tools/ts-to-mjs/yarn.lock +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/tsconfig.json +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/webpack.config.js +0 -0
- {inspect_ai-0.3.58 → inspect_ai-0.3.59}/tools/vscode/yarn.lock +0 -0
@@ -1,8 +1,26 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v0.3.59 (24 January 2025)
|
4
|
+
|
5
|
+
- Beta version of [computer()](https://inspect.ai-safety-institute.org.uk/tools.html#sec-computer) tool which models with a computer desktop environment.
|
6
|
+
- `user_message()` solver for appending parameterised user messages.
|
7
|
+
- `prompt_template()`, `system_message()` and `user_message()` solver now also include the sample `store` in substitution parameters.
|
8
|
+
- Limits: Enforce token and message limit at lower level (not longer required to check `state.completed` for limit enforcement).
|
9
|
+
- Limits: Enforce [custom limits](https://inspect.ai-safety-institute.org.uk/errors-and-limits.html#custom-limit) for samples by raising `SampleLimitExceededError`.
|
10
|
+
- Tasks: Optional ability for solvers to [yield scores](https://inspect.ai-safety-institute.org.uk/solvers.html#sec-scoring-in-solvers) for a task.
|
11
|
+
- Model API: Log model calls that result in bad request errors.
|
12
|
+
- Tools: `model_input` option that determines how tool call result content is played back to the model.
|
13
|
+
- Tools: Don't attempt to marshall arguments of dynamic `ToolDef` with `**kwargs: Any` (just pass them through).
|
14
|
+
- Log warning when a non-fatal sample error occurs (i.e. errors permitted by the `fail_on_error` option)
|
15
|
+
- Inspect View: allow filtering samples by compound expressions including multiple scorers. (thanks @andrei-apollo)
|
16
|
+
- Inspect View: improve rendering performance and stability for the viewer when viewing very large eval logs or samples with a large number of steps.
|
17
|
+
- Task display: Improved `plain` mode with periodic updates on progress, metrics, etc.
|
18
|
+
- Google: Update to v0.8.4 of google-generativeai (py.typed support and removal of logprobs generation options)
|
19
|
+
- Google: Support for string enums (e.g. `Literal["a", "b", "c"])`) in tool function declarations.
|
20
|
+
|
3
21
|
## v0.3.58 (16 January 2025)
|
4
22
|
|
5
|
-
- Support for [audio and video](https://
|
23
|
+
- Support for [audio and video](https://inspect.ai-safety-institute.org.uk/multimodal.html) inputs for Open AI and Google Gemini models.
|
6
24
|
- Task display: Added Timeout Tool button for manually timing out a tool call.
|
7
25
|
- Task display: Automatically switch to "plain" mode when running in a background thread
|
8
26
|
- Sandboxes: Setup and initialisation errors are now handled at the sample level.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: inspect_ai
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.59
|
4
4
|
Summary: Framework for large language model evaluations
|
5
5
|
Author: UK AI Safety Institute
|
6
6
|
License: MIT License
|
@@ -67,7 +67,7 @@ Requires-Dist: pytest-asyncio; extra == "dev"
|
|
67
67
|
Requires-Dist: pytest-cov; extra == "dev"
|
68
68
|
Requires-Dist: pytest-dotenv; extra == "dev"
|
69
69
|
Requires-Dist: pytest-xdist; extra == "dev"
|
70
|
-
Requires-Dist: ruff==0.9.
|
70
|
+
Requires-Dist: ruff==0.9.2; extra == "dev"
|
71
71
|
Requires-Dist: textual-dev>=0.86.2; extra == "dev"
|
72
72
|
Requires-Dist: types-PyYAML; extra == "dev"
|
73
73
|
Requires-Dist: types-beautifulsoup4; extra == "dev"
|
@@ -52,6 +52,17 @@ if output.stop_reason == "model_length":
|
|
52
52
|
# do something to recover from context window overflow
|
53
53
|
```
|
54
54
|
|
55
|
+
If you have written a scaffold loop that continues calling the model even after it stops calling tools, there may be values of `stop_reason` that indicate that the the loop should terminate anyway (because the error will just keep repeating on subsequent calls to the model). For example, the [basic agent](agents.qmd#sec-basic-agent) checks for `stop_reason` and exits under the following conditions:
|
56
|
+
|
57
|
+
```python
|
58
|
+
# check for stop reasons that indicate we should terminate
|
59
|
+
if state.output.stop_reason == "model_length":
|
60
|
+
transcript().info(
|
61
|
+
f"Agent terminated (reason: {state.output.stop_reason})"
|
62
|
+
)
|
63
|
+
break
|
64
|
+
```
|
65
|
+
|
55
66
|
Here are the possible values for `StopReason` :
|
56
67
|
|
57
68
|
| Stop Reason | Description |
|
@@ -33,13 +33,14 @@ You can chain to together the `human` and `auto` approvers in an *approval polic
|
|
33
33
|
``` yaml
|
34
34
|
approvers:
|
35
35
|
- name: human
|
36
|
-
tools: ["web_browser_click", "web_browser_type
|
36
|
+
tools: ["web_browser_click", "web_browser_type"]
|
37
37
|
|
38
38
|
- name: auto
|
39
39
|
tools: "*"
|
40
40
|
```
|
41
41
|
|
42
|
-
|
42
|
+
|
43
|
+
Navigational web browser tool calls (e.g. `web_browser_go`) are approved automatically via the catch-all `auto` approver at the end of the chain. Note that when listing an approver in a policy you indicate which tools it should handle using a glob or list of globs. These globs are prefix matched so the `web_browser_type` glob matches both `web_browser_type` and `web_browser_type_submit`.
|
43
44
|
|
44
45
|
To use this policy, pass the path to the policy YAML file as the approver. For example:
|
45
46
|
|
@@ -47,6 +48,24 @@ To use this policy, pass the path to the policy YAML file as the approver. For e
|
|
47
48
|
inspect eval browser.py --approval approval.yaml
|
48
49
|
```
|
49
50
|
|
51
|
+
You can also match on tool arguments (for tools that dispatch many action types). For example, here is an approval policy for the [Computer Tool](tools.qmd#sec-computer) which allows typing and mouse movement but requires approval for key combos (e.g. Enter or a shortcut) and typing:
|
52
|
+
|
53
|
+
|
54
|
+
```{.yaml filename="approval.yaml"}
|
55
|
+
approvers:
|
56
|
+
- name: human
|
57
|
+
tools:
|
58
|
+
- computer(action='key'
|
59
|
+
- computer(action='left_click'
|
60
|
+
- computer(action='middle_click'
|
61
|
+
- computer(action='double_click'
|
62
|
+
|
63
|
+
- name: auto
|
64
|
+
tools: "*"
|
65
|
+
```
|
66
|
+
|
67
|
+
Note that since this is a prefix match and there could be other arguments, we don't end the tool match pattern with a parentheses.
|
68
|
+
|
50
69
|
## Approvers in Code
|
51
70
|
|
52
71
|
We've demonstrated configuring approvers via a YAML approval policy file—you can also provide a policy directly in code (useful if it needs to be more dynamic). Here's a pure Python version of the example from the previous section:
|
@@ -152,7 +171,7 @@ Assuming we have properly [registered our approver](extensions.qmd#sec-extension
|
|
152
171
|
``` yaml
|
153
172
|
approvers:
|
154
173
|
- name: evaltools/bash_allowlist
|
155
|
-
tools: "
|
174
|
+
tools: "bash"
|
156
175
|
allowed_commands: ["ls", "echo", "cat"]
|
157
176
|
|
158
177
|
- name: human
|
@@ -126,6 +126,8 @@ def agent_loop(message_limit: int = 50):
|
|
126
126
|
...
|
127
127
|
```
|
128
128
|
|
129
|
+
Message limits are checked whenever you call `generate()` on the main model being evaluated. The `message_limit` is comparted to the number of messages passed in `input` parameter to `generate()`.
|
130
|
+
|
129
131
|
### Token Limit
|
130
132
|
|
131
133
|
Here we set a `token_limit` of 500K for each sample within a task:
|
@@ -163,16 +165,17 @@ def agent_loop(token_limit: int = (1024 * 500)) -> Solver:
|
|
163
165
|
It's important to note that the `token_limit` is for all tokens used within the execution of a sample. If you want to limit the number of tokens that can be yielded from a single call to the model you should use the `max_tokens` generation option.
|
164
166
|
:::
|
165
167
|
|
166
|
-
### Limit
|
168
|
+
### Custom Limit
|
167
169
|
|
168
|
-
|
170
|
+
When limits are exceeded, a `SampleLimitExceededError` is raised and caught by the main Inspect sample execution logic. If you want to create custom limit types, you can enforce them by raising a `SampleLimitExceededError` as follows:
|
169
171
|
|
170
|
-
```
|
171
|
-
|
172
|
-
# call model
|
173
|
-
output = await model.generate(state.messages, state.tools)
|
174
|
-
|
175
|
-
...
|
176
|
-
```
|
172
|
+
```python
|
173
|
+
from inspect_ai.util import SampleLimitExceededError
|
177
174
|
|
178
|
-
|
175
|
+
raise SampleLimitExceededError(
|
176
|
+
"custom",
|
177
|
+
value=value,
|
178
|
+
limit=limit,
|
179
|
+
message=f"A custom limit was exceeded: {value}"
|
180
|
+
)
|
181
|
+
```
|
Binary file
|
Binary file
|
@@ -4,7 +4,7 @@ title: Models
|
|
4
4
|
|
5
5
|
## Overview
|
6
6
|
|
7
|
-
Inspect has built in support for a variety of language model API providers and can be extended to support arbitrary
|
7
|
+
Inspect has built in support for a variety of language model API providers and can be extended to support arbitrary additional ones. Built-in model API providers, their dependencies, and environment variables required to use them are as follows:
|
8
8
|
|
9
9
|
| Model API | Dependencies | Environment Variables |
|
10
10
|
|---------------|--------------------|--------------------------------------|
|
@@ -14,11 +14,11 @@ Solvers are the heart of Inspect evaluations and can serve a wide variety of pur
|
|
14
14
|
5. Multi-turn dialog
|
15
15
|
6. Running an agent scaffold
|
16
16
|
|
17
|
-
Tasks have a single top-level solver that defines an execution plan. This solver could be implemented with arbitrary Python code (calling the model as required) or could consist of a set of other solvers composed together. Solvers can therefore play two differnet roles:
|
17
|
+
Tasks have a single top-level solver that defines an execution plan. This solver could be implemented with arbitrary Python code (calling the model as required) or could consist of a set of other solvers composed together. Solvers can therefore play two differnet roles:
|
18
18
|
|
19
|
-
1.
|
19
|
+
1. *Composite* specifications for task execution; and
|
20
20
|
|
21
|
-
2.
|
21
|
+
2. *Components* that can be chained together.
|
22
22
|
|
23
23
|
### Example
|
24
24
|
|
@@ -99,7 +99,7 @@ The `generate` function passed to solvers is a convenience function that takes a
|
|
99
99
|
|
100
100
|
Here are what some of the built-in solvers do with the `TaskState`:
|
101
101
|
|
102
|
-
1. The `system_message()`
|
102
|
+
1. The `system_message()` and `user_message()` solvers insert messages into the chat history.
|
103
103
|
|
104
104
|
2. The `chain_of_thought()` solver takes the original user prompt and re-writes it to ask the model to use chain of thought reasoning to come up with its answer.
|
105
105
|
|
@@ -117,14 +117,19 @@ You can also imagine solvers that call other models to help come up with a bette
|
|
117
117
|
## Built-In Solvers
|
118
118
|
|
119
119
|
Inspect has a number of built-in solvers, each of which can be customised in some fashion. Built in solvers can be imported from the `inspect_ai.solver` module. Below is a summary of these solvers. There is not (yet) reference documentation on these functions so the best way to learn about how they can be customised, etc. is to use the **Go to Definition** command in your source editor.
|
120
|
+
- `prompt_template()`
|
121
|
+
|
122
|
+
Modify the user prompt by substituting the current prompt into the `{prompt}` placeholder within the specified template. Also automatically substitutes any variables defined in sample `metadata` as well as any other custom named paramters passed in `params`.
|
123
|
+
|
120
124
|
|
121
125
|
- `system_message()`
|
122
126
|
|
123
|
-
Prepend role="system" `message` to the list of messages (will follow any other system messages it finds in the message stream). Also automatically substitutes any variables defined in sample `metadata` as well as any other custom named paramters passed in `params`.
|
127
|
+
Prepend role="system" `message` to the list of messages (will follow any other system messages it finds in the message stream). Also automatically substitutes any variables defined in sample `metadata` and `store`, as well as any other custom named paramters passed in `params`.
|
124
128
|
|
125
|
-
- `
|
129
|
+
- `user_message()`
|
130
|
+
|
131
|
+
Append role="user" `message` to the list of messages. Also automatically substitutes any variables defined in sample `metadata` and `store`, as well as any other custom named paramters passed in `params`.
|
126
132
|
|
127
|
-
Modify the user prompt by substituting the current prompt into the `{prompt}` placeholder within the specified template. Also automatically substitutes any variables defined in sample `metadata` as well as any other custom named paramters passed in `params`.
|
128
133
|
|
129
134
|
- `chain_of_thought()`
|
130
135
|
|
@@ -173,10 +178,10 @@ We'll present an example and then discuss the various options below (in most cas
|
|
173
178
|
|
174
179
|
Below is a full example of reading a dataset for use with `multiple choice()` and using it in an evaluation task. The underlying data in `mmlu.csv` has the following form:
|
175
180
|
|
176
|
-
| Question
|
181
|
+
| Question | A | B | C | D | Answer |
|
177
182
|
|------------|------------|------------|------------|------------|:----------:|
|
178
|
-
| Find the degree for the given field extension Q(sqrt(2), sqrt(3), sqrt(18)) over Q. | 0
|
179
|
-
| Let p = (1, 2, 5, 4)(2, 3) in S_5 . Find the index of \<p\> in S_5.
|
183
|
+
| Find the degree for the given field extension Q(sqrt(2), sqrt(3), sqrt(18)) over Q. | 0 | 4 | 2 | 6 | B |
|
184
|
+
| Let p = (1, 2, 5, 4)(2, 3) in S_5 . Find the index of \<p\> in S_5. | 8 | 2 | 24 | 120 | C |
|
180
185
|
|
181
186
|
: {tbl-colwidths=\[50,10,10,10,10,10\]}
|
182
187
|
|
@@ -217,13 +222,12 @@ We use the `record_to_sample()` function to read the `choices` along with the `t
|
|
217
222
|
|
218
223
|
The following options are available for further customisation of the multiple choice solver:
|
219
224
|
|
220
|
-
| Option
|
225
|
+
| Option | Description |
|
221
226
|
|------------------------------------|------------------------------------|
|
222
|
-
| `template`
|
223
|
-
| `cot`
|
224
|
-
| `multiple_correct` | By default, multiple choice questions have a single correct answer. Set `multiple_correct=True` if your target has defined multiple correct answers (for example, a `target` of `["B", "C"]`). In this case the model is prompted to provide one or more answers, and the sample is scored correct only if each of these answers are provided.
|
225
|
-
| `shuffle`
|
226
|
-
|
227
|
+
| `template` | Use `template` to provide an alternate prompt template (note that if you do this your template should handle prompting for `multiple_correct` directly if required). You can access the built in templates using the `MultipleChoiceTemplate` enum. |
|
228
|
+
| `cot` | Whether the solver should perform chain-of-thought reasoning before answering (defaults to `False`). NOTE: this has no effect if you provide a custom template. |
|
229
|
+
| `multiple_correct` | By default, multiple choice questions have a single correct answer. Set `multiple_correct=True` if your target has defined multiple correct answers (for example, a `target` of `["B", "C"]`). In this case the model is prompted to provide one or more answers, and the sample is scored correct only if each of these answers are provided. NOTE: this has no effect if you provide a custom template. |
|
230
|
+
| `shuffle` | If you specify `shuffle=True`, then the order of the answers presented to the model will be randomised (this may or may not affect results, depending on the nature of the questions and the model being evaluated). |
|
227
231
|
|
228
232
|
: {tbl-colwidths=\[35,65\]}
|
229
233
|
|
@@ -260,40 +264,34 @@ Typically solvers can be customised with parameters (e.g. `template` for prompt
|
|
260
264
|
|
261
265
|
Before presenting the examples we'll take a more in-depth look at the `TaskState` class. Task states consist of both lower level data members (e.g. `messages`, `output`) as well as a number of convenience properties. The core members of `TaskState` that are *modified* by solvers are `messages` / `user_prompt` and `output`:
|
262
266
|
|
263
|
-
| Member
|
267
|
+
| Member | Type | Description |
|
264
268
|
|-------------------|-------------------|----------------------------------|
|
265
|
-
| `messages`
|
266
|
-
| `user_prompt` | ChatMessageUser
|
267
|
-
| `output`
|
269
|
+
| `messages` | list\[ChatMessage\] | Chat conversation history for sample. It is automatically appended to by the `generate()` solver, and is often manipulated by other solvers (e.g. for prompt engineering or elicitation). |
|
270
|
+
| `user_prompt` | ChatMessageUser | Convenience property for accessing the first user message in the message history (commonly used for prompt engineering). |
|
271
|
+
| `output` | ModelOutput | The 'final' model output once we've completed all solving. This field is automatically updated with the last "assistant" message by the `generate()` solver. |
|
268
272
|
|
269
273
|
::: {.callout-note appearance="simple"}
|
270
274
|
Note that the `generate()` solver automatically updates both the `messages` and `output` fields. For very simple evaluations modifying the `user_prompt` and then calling `generate()` encompasses all of the required interaction with `TaskState`.
|
271
275
|
:::
|
272
276
|
|
273
|
-
|
274
|
-
|
275
|
-
| Member | Type | Description |
|
276
|
-
|-------------------|-------------------|----------------------------------|
|
277
|
-
| `metadata` | dict | Original metadata from `Sample`, as well as any other custom metadata that solvers choose to write (typically used to coordinate between solvers and/or for custom logging). |
|
278
|
-
| `completed` | bool | Solvers can set `completed = True` to cause the task to exit the sample immediately. |
|
279
|
-
|
280
|
-
Sometimes its import to have access to the *original* prompt input for the task (as other solvers may have re-written or even removed it entirely). This is available using the `input` and `input_text` properties:
|
277
|
+
Sometimes its important to have access to the *original* prompt input for the task (as other solvers may have re-written or even removed it entirely). This is available using the `input` and `input_text` properties:
|
281
278
|
|
282
|
-
| Member
|
279
|
+
| Member | Type | Description |
|
283
280
|
|-------------------|-------------------|----------------------------------|
|
284
|
-
| `input`
|
285
|
-
| `input_text` | str
|
281
|
+
| `input` | str \| list\[ChatMessage\] | Original `Sample` input. |
|
282
|
+
| `input_text` | str | Convenience function for accessing the initial input from the `Sample` as a string. |
|
286
283
|
|
287
284
|
There are several other fields used to provide contextual data from either the task sample or evaluation:
|
288
285
|
|
289
|
-
| Member
|
286
|
+
| Member | Type | Description |
|
290
287
|
|-------------------|-------------------|----------------------------------|
|
291
|
-
| `sample_id` | int \| str
|
292
|
-
| `epoch`
|
293
|
-
| `
|
294
|
-
| `
|
288
|
+
| `sample_id` | int \| str | Unique ID for sample. |
|
289
|
+
| `epoch` | int | Epoch for sample. |
|
290
|
+
| `metadata` | dict | Original metadata from `Sample` |
|
291
|
+
| `choices` | list\[str\] \| None | Choices from sample (used only in multiple-choice evals). |
|
292
|
+
| `model` | ModelName | Name of model currently being evaluated. |
|
295
293
|
|
296
|
-
|
294
|
+
Task states also include available tools as well as guidance for the model on which tools to use (if you haven't yet encountered the concept of tool use in language models, don't worry about understanding these fields, the [Tools](tools.qmd) article provides a more in-depth treatment):
|
297
295
|
|
298
296
|
| Member | Type | Description |
|
299
297
|
|---------------|--------------|------------------------------|
|
@@ -422,7 +420,31 @@ Note that calls to `generate()` (for both the critique model and the model being
|
|
422
420
|
|
423
421
|
### Scoring in Solvers {#sec-scoring-in-solvers}
|
424
422
|
|
425
|
-
|
423
|
+
Typically, solvers don't score samples but rather leave that to externally specified [scorers](scorers.qmd). However, in some cases it is more convenient to have solvers also do scoring (e.g. when there is high coupling between the solver and scoring). The following two task state fields can be used for scoring:
|
424
|
+
|
425
|
+
| Member | Type | Description |
|
426
|
+
|----------|--------------------|------------------------------|
|
427
|
+
| `target` | Target | Scoring target from `Sample` |
|
428
|
+
| `scores` | dict\[str, Score\] | Optional scores. |
|
429
|
+
|
430
|
+
|
431
|
+
Here is a trivial example of the code that might be used to yield scores from a solver:
|
432
|
+
|
433
|
+
``` python
|
434
|
+
async def solve(state: TaskState, generate: Generate):
|
435
|
+
# ...perform solver work
|
436
|
+
|
437
|
+
# score
|
438
|
+
correct = state.output.completion == state.target.text
|
439
|
+
state.scores = { "correct": Score(value=correct) }
|
440
|
+
return state
|
441
|
+
```
|
442
|
+
|
443
|
+
Note that scores yielded by a `Solver` are combined with scores from the normal scoring provided by the scorer(s) defined for a `Task`.
|
444
|
+
|
445
|
+
### Intermediate Scoring
|
446
|
+
|
447
|
+
In some cases it is useful for a solver to score a task directly to generate an intermediate score or assist in deciding whether or how to continue. You can do this using the `score()` function:
|
426
448
|
|
427
449
|
``` python
|
428
450
|
from inspect_ai.scorer import score
|
@@ -463,4 +485,4 @@ Early termination might also occur if you specify the `message_limit` option and
|
|
463
485
|
``` python
|
464
486
|
# could terminate early
|
465
487
|
eval(my_task, message_limit = 10)
|
466
|
-
```
|
488
|
+
```
|
@@ -6,7 +6,7 @@ title: Tools
|
|
6
6
|
|
7
7
|
Many models now have the ability to interact with client-side Python functions in order to expand their capabilities. This enables you to equip models with your own set of custom tools so they can perform a wider variety of tasks.
|
8
8
|
|
9
|
-
Inspect natively supports registering Python functions as tools and providing these tools to models that support them (currently OpenAI, Claude 3, Google Gemini, and Mistral). Inspect also includes several built-in tools ([bash](#sec-bash-and-python), [python](#sec-bash-and-python), and [web_search](#sec-web-search)).
|
9
|
+
Inspect natively supports registering Python functions as tools and providing these tools to models that support them (currently OpenAI, Claude 3, Google Gemini, and Mistral). Inspect also includes several built-in tools ([bash](#sec-bash-and-python), [python](#sec-bash-and-python), [computer](#sec-computer), [web browser](#sec-web-browser), and [web_search](#sec-web-search)).
|
10
10
|
|
11
11
|
::: callout-note
|
12
12
|
### Tools and Agents
|
@@ -22,6 +22,8 @@ Inspect has several built-in tools, including:
|
|
22
22
|
|
23
23
|
- [Web Browser](#sec-web-browser), which provides the model with a headless Chromium web browser that supports navigation, history, and mouse/keyboard interactions.
|
24
24
|
|
25
|
+
- [Computer](#sec-computer), which provides the model with a desktop computer (viewed through screenshots) that supports mouse and keyboard interaction.
|
26
|
+
|
25
27
|
- [Web Search](#sec-web-search), which uses the Google Search API to execute and summarise web searches.
|
26
28
|
|
27
29
|
If you are only interested in using the built-in tools, check out their respective documentation links above. To learn more about creating your own tools read on immediately below.
|
@@ -371,16 +373,16 @@ Note that unlike some other tool functions like `bash()`, the `web_browser()` fu
|
|
371
373
|
|
372
374
|
If you review the transcripts of a sample with access to the web browser tool, you'll notice that there are several distinct tools made available for control of the web browser. These tools include:
|
373
375
|
|
374
|
-
| Tool
|
376
|
+
| Tool | Description |
|
375
377
|
|------------------------------------|------------------------------------|
|
376
|
-
| `web_browser_go(url)`
|
377
|
-
| `web_browser_click(element_id)`
|
378
|
-
| `web_browser_type(element_id)`
|
378
|
+
| `web_browser_go(url)` | Navigate the web browser to a URL. |
|
379
|
+
| `web_browser_click(element_id)` | Click an element on the page currently displayed by the web browser. |
|
380
|
+
| `web_browser_type(element_id)` | Type text into an input on a web browser page. |
|
379
381
|
| `web_browser_type_submit(element_id, text)` | Type text into a form input on a web browser page and press ENTER to submit the form. |
|
380
|
-
| `web_browser_scroll(direction)`
|
381
|
-
| `web_browser_forward()`
|
382
|
-
| `web_browser_back()`
|
383
|
-
| `web_browser_refresh()`
|
382
|
+
| `web_browser_scroll(direction)` | Scroll the web browser up or down by one page. |
|
383
|
+
| `web_browser_forward()` | Navigate the web browser forward in the browser history. |
|
384
|
+
| `web_browser_back()` | Navigate the web browser back in the browser history. |
|
385
|
+
| `web_browser_refresh()` | Refresh the current page of the web browser. |
|
384
386
|
|
385
387
|
: {tbl-colwidths=\[35,65\]}
|
386
388
|
|
@@ -420,6 +422,171 @@ CMD ["python3", "/app/web_browser/web_server.py"]
|
|
420
422
|
|
421
423
|
Note that all of the Python files in the [\_resources](https://github.com/UKGovernmentBEIS/inspect_ai/blob/main/src/inspect_ai/tool/_tools/_web_browser/_resources/) directory alongside the `Dockerfile` need to be available for copying when building the container.
|
422
424
|
|
425
|
+
## Computer (Beta) {#sec-computer}
|
426
|
+
|
427
|
+
|
428
|
+
The `computer()` tool provides models with a computer desktop environment along with the ability to view the screen and perform mouse and keyboard gestures. The computer tool is based on the Anthropic [Computer Use Beta](https://docs.anthropic.com/en/docs/build-with-claude/computer-use) reference implementation and works with any model that supports image input.
|
429
|
+
|
430
|
+
The current release of the computer tool is a beta version (exported from the `inspect_ai.tool.beta` module). We expect to finalise the interface and move it into the main `inspect_ai.tool` module over the next several weeks.
|
431
|
+
|
432
|
+
### Configuration
|
433
|
+
|
434
|
+
The `computer()` tool runs within a Docker container. To use it with a task you need to reference the `aisiuk/inspect-computer-tool:latest-beta` image in your Docker compose file. For example:
|
435
|
+
|
436
|
+
``` {.yaml filename="compose.yaml"}
|
437
|
+
services:
|
438
|
+
default:
|
439
|
+
image: aisiuk/inspect-computer-tool:latest-beta
|
440
|
+
```
|
441
|
+
|
442
|
+
You can configure the container to not have Internet access as follows:
|
443
|
+
|
444
|
+
``` {.yaml filename="compose.yaml"}
|
445
|
+
services:
|
446
|
+
default:
|
447
|
+
image: aisiuk/inspect-computer-tool:latest-beta
|
448
|
+
network_mode: none
|
449
|
+
```
|
450
|
+
|
451
|
+
Note that if you'd like to be able to view the model's interactions with the computer desktop in realtime, you will need to also do some port mapping to enable a VNC connection with the container. See the [VNC Client](#vnc-client) section below for details on how to do this.
|
452
|
+
|
453
|
+
The `aisiuk/inspect-computer-tool:latest-beta` image is based on the [ubuntu:22.04](https://hub.docker.com/layers/library/ubuntu/22.04/images/sha256-965fbcae990b0467ed5657caceaec165018ef44a4d2d46c7cdea80a9dff0d1ea?context=explore) image and includes the following additional applications pre-installed:
|
454
|
+
|
455
|
+
- Firefox
|
456
|
+
- VS Code
|
457
|
+
- Xpdf
|
458
|
+
- Xpaint
|
459
|
+
- galculator
|
460
|
+
|
461
|
+
### Task Setup
|
462
|
+
|
463
|
+
A task configured to use the computer tool might look like this:
|
464
|
+
|
465
|
+
``` python
|
466
|
+
from inspect_ai import Task, task
|
467
|
+
from inspect_ai.scorer import match
|
468
|
+
from inspect_ai.solver import generate, use_tools
|
469
|
+
from inspect_ai.tool.beta import computer
|
470
|
+
|
471
|
+
@task
|
472
|
+
def computer_task():
|
473
|
+
return Task(
|
474
|
+
dataset=read_dataset(),
|
475
|
+
solver=[
|
476
|
+
use_tools([computer()]),
|
477
|
+
generate(),
|
478
|
+
],
|
479
|
+
scorer=match(),
|
480
|
+
sandbox=("docker", "compose.yaml"),
|
481
|
+
)
|
482
|
+
```
|
483
|
+
|
484
|
+
#### Options
|
485
|
+
|
486
|
+
The computer tool supports the following options:
|
487
|
+
|
488
|
+
| Option | Description |
|
489
|
+
|-------------------|-----------------------------------------------------------------------------------------------------------------------|
|
490
|
+
| `max_screenshots` | The maximum number of screenshots to play back to the model as input. Defaults to 1 (set to `None` to have no limit). |
|
491
|
+
| `timeout` | Timeout in seconds for computer tool actions. Defaults to 180 (set to `None` for no timeout). |
|
492
|
+
|
493
|
+
For example:
|
494
|
+
|
495
|
+
``` python
|
496
|
+
solver=[
|
497
|
+
use_tools([computer(max_screenshots=2, timeout=300)]),
|
498
|
+
generate()
|
499
|
+
]
|
500
|
+
```
|
501
|
+
|
502
|
+
#### Examples
|
503
|
+
|
504
|
+
Two of the Inspect examples demonstrate basic computer use:
|
505
|
+
|
506
|
+
- [computer](https://github.com/UKGovernmentBEIS/inspect_ai/tree/main/examples/computer/computer.py) — Three simple computing tasks as a minimal demonstration of computer use.
|
507
|
+
|
508
|
+
``` bash
|
509
|
+
inspect eval examples/computer
|
510
|
+
```
|
511
|
+
|
512
|
+
- [intervention](https://github.com/UKGovernmentBEIS/inspect_ai/tree/main/examples/intervention/intervention.py) — Computer task driven interactively by a human operator.
|
513
|
+
|
514
|
+
``` bash
|
515
|
+
inspect eval examples/intervention -T mode=computer --display conversation
|
516
|
+
```
|
517
|
+
|
518
|
+
### VNC Client {#vnc-client}
|
519
|
+
|
520
|
+
You can use a [VNC](https://en.wikipedia.org/wiki/VNC) connection to the container to watch computer use in real-time. This requires some additional port-mapping in the Docker compose file. You can define dynamic port ranges for VNC (5900) and a browser based noVNC client (6080) with the following `ports` entries:
|
521
|
+
|
522
|
+
``` {.yaml filename="compose.yaml"}
|
523
|
+
services:
|
524
|
+
default:
|
525
|
+
image: aisiuk/inspect-computer-tool:latest-beta
|
526
|
+
ports:
|
527
|
+
- "5900"
|
528
|
+
- "6080"
|
529
|
+
```
|
530
|
+
|
531
|
+
To connect to the container for a given sample, locate the sample in the **Running Samples** UI and expand the sample info panel at the top:
|
532
|
+
|
533
|
+
{.lightbox width="958"}
|
534
|
+
|
535
|
+
Click on the link for the noVNC browser client, or use a native VNC client to connect to the VNC port. Note that the VNC server will take a few seconds to start up so you should give it some time and attempt to reconnect as required if the first connection fails.
|
536
|
+
|
537
|
+
The browser based client provides a view-only interface. If you use a native VNC client you should also set it to "view only" so as to not interfere with the model's use of the computer. For example, for Real VNC Viewer:
|
538
|
+
|
539
|
+
{width="549"}
|
540
|
+
|
541
|
+
### Approval
|
542
|
+
|
543
|
+
If the container you are using is connected to the Internet, you may want to configure human approval for a subset of computer tool actions. Here are the possible actions (specified using the `action` parameter to the `computer` tool):
|
544
|
+
|
545
|
+
- `key`: Press a key or key-combination on the keyboard.
|
546
|
+
- `type`: Type a string of text on the keyboard.
|
547
|
+
- `cursor_position`: Get the current (x, y) pixel coordinate of the cursor on the screen.
|
548
|
+
- `mouse_move`: Move the cursor to a specified (x, y) pixel coordinate on the screen.
|
549
|
+
- Example: execute(action="mouse_move", coordinate=(100, 200))
|
550
|
+
- `left_click`: Click the left mouse button.
|
551
|
+
- `left_click_drag`: Click and drag the cursor to a specified (x, y) pixel coordinate on the screen.
|
552
|
+
- `right_click`: Click the right mouse button.
|
553
|
+
- `middle_click`: Click the middle mouse button.
|
554
|
+
- `double_click`: Double-click the left mouse button.
|
555
|
+
- `screenshot`: Take a screenshot.
|
556
|
+
|
557
|
+
Here is an approval policy that requires approval for key combos (e.g. `Enter` or a shortcut) and mouse clicks:
|
558
|
+
|
559
|
+
``` {.yaml filename="approval.yaml"}
|
560
|
+
approvers:
|
561
|
+
- name: human
|
562
|
+
tools:
|
563
|
+
- computer(action='key'
|
564
|
+
- computer(action='left_click'
|
565
|
+
- computer(action='middle_click'
|
566
|
+
- computer(action='double_click'
|
567
|
+
|
568
|
+
- name: auto
|
569
|
+
tools: "*"
|
570
|
+
```
|
571
|
+
|
572
|
+
Note that since this is a prefix match and there could be other arguments, we don't end the tool match pattern with a parentheses.
|
573
|
+
|
574
|
+
You can apply this policy using the `--approval` commmand line option:
|
575
|
+
|
576
|
+
``` bash
|
577
|
+
inspect eval computer.py --approval approval.yaml
|
578
|
+
```
|
579
|
+
|
580
|
+
### Tool Binding
|
581
|
+
|
582
|
+
The computer tool's schema is based on the standard Anthropoic [computer tool-type](https://docs.anthropic.com/en/docs/build-with-claude/computer-use#computer-tool). When using Claude 3.5 the coputer tool will automatically bind to the native Claude computer tool definition. This presumably provides improved performance due to fine tuning on the use of the tool but we have not verified this.
|
583
|
+
|
584
|
+
If you want to experiement with bypassing the native Claude computer tool type and just register the computer tool as a normal function based tool then specify the `--no-internal-tools` generation option as follows:
|
585
|
+
|
586
|
+
``` bash
|
587
|
+
inspect eval computer.py --no-internal-tools
|
588
|
+
```
|
589
|
+
|
423
590
|
## Web Search {#sec-web-search}
|
424
591
|
|
425
592
|
The `web_search()` tool provides models the ability to enhance their context window by performing a search. By default web searches retrieve 10 results from a provider, uses a model to determine if the contents is relevant then returns the top 3 relevant search results to the main model. Here is the definition of the `web_search()` function:
|
@@ -464,4 +631,4 @@ The `web_search()` tool uses [Google Programmable Search Engine](https://program
|
|
464
631
|
|
465
632
|
- `GOOGLE_CSE_ID` — Google Custom Search Engine ID
|
466
633
|
|
467
|
-
- `GOOGLE_CSE_API_KEY` — Google API key used to enable the Search API
|
634
|
+
- `GOOGLE_CSE_API_KEY` — Google API key used to enable the Search API
|
@@ -0,0 +1,17 @@
|
|
1
|
+
services:
|
2
|
+
default:
|
3
|
+
image: aisiuk/inspect-computer-tool:latest-beta
|
4
|
+
init: true
|
5
|
+
|
6
|
+
# You can vnc into each container by using the following port mapping which will
|
7
|
+
# dynamically bind to host ports. The specific bindings can be found by using
|
8
|
+
# `docker inspect <container_id_or_name>`. This info is included in Running Samples
|
9
|
+
# tab. The output will look something like:
|
10
|
+
#
|
11
|
+
# service container host url
|
12
|
+
# VNC 5900 61029 vnc://localhost:61029
|
13
|
+
# noVNC 6080 61030 http://localhost:61030?view_only=true&autoconnect=true
|
14
|
+
|
15
|
+
ports:
|
16
|
+
- "5900"
|
17
|
+
- "6080"
|