inspect-ai 0.3.59__tar.gz → 0.3.60__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.59 → inspect_ai-0.3.60}/.pre-commit-config.yaml +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/.vscode/settings.json +1 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/CHANGELOG.md +19 -0
- {inspect_ai-0.3.59/src/inspect_ai.egg-info → inspect_ai-0.3.60}/PKG-INFO +3 -2
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_quarto.yml +1 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_sandboxenv-interface.md +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_tools-scaffold.md +8 -10
- inspect_ai-0.3.60/docs/agent-bridge.qmd +263 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/agents-api.qmd +2 -47
- inspect_ai-0.3.60/docs/agents.qmd +135 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/extensions.qmd +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/index.qmd +3 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/llms.txt +2 -1
- inspect_ai-0.3.60/docs/models.qmd +603 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/sandboxing.qmd +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/scorers.qmd +22 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/scripts/post-render.sh +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/solvers.qmd +23 -0
- inspect_ai-0.3.60/examples/bridge/autogen/README.md +34 -0
- inspect_ai-0.3.60/examples/bridge/autogen/agent.py +50 -0
- inspect_ai-0.3.60/examples/bridge/autogen/dataset.json +29 -0
- inspect_ai-0.3.60/examples/bridge/autogen/task.py +15 -0
- inspect_ai-0.3.60/examples/bridge/langchain/README.md +27 -0
- inspect_ai-0.3.60/examples/bridge/langchain/agent.py +47 -0
- inspect_ai-0.3.60/examples/bridge/langchain/dataset.json +29 -0
- inspect_ai-0.3.60/examples/bridge/langchain/task.py +15 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/pyproject.toml +3 -2
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/eval.py +0 -7
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/widgets/samples.py +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/eval.py +10 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/loader.py +79 -19
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/registry.py +6 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/score.py +2 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/results.py +6 -5
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/run.py +11 -11
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/dist/assets/index.js +262 -303
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/App.mjs +6 -6
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/Types.mjs +1 -1
- inspect_ai-0.3.60/src/inspect_ai/_view/www/src/api/Types.ts +133 -0
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/api/api-browser.mjs → inspect_ai-0.3.60/src/inspect_ai/_view/www/src/api/api-browser.ts +25 -13
- inspect_ai-0.3.60/src/inspect_ai/_view/www/src/api/api-http.ts +219 -0
- inspect_ai-0.3.60/src/inspect_ai/_view/www/src/api/api-shared.ts +47 -0
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/api/api-vscode.mjs → inspect_ai-0.3.60/src/inspect_ai/_view/www/src/api/api-vscode.ts +22 -19
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/api/client-api.mjs → inspect_ai-0.3.60/src/inspect_ai/_view/www/src/api/client-api.ts +93 -53
- inspect_ai-0.3.60/src/inspect_ai/_view/www/src/api/index.ts +51 -0
- inspect_ai-0.3.60/src/inspect_ai/_view/www/src/api/jsonrpc.ts +225 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/DownloadButton.mjs +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/index.js +2 -2
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/log/remoteLogFile.mjs → inspect_ai-0.3.60/src/inspect_ai/_view/www/src/log/remoteLogFile.ts +62 -46
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/navbar/Navbar.mjs +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/navbar/SecondaryBar.mjs +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/SampleList.mjs +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/SampleScores.mjs +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/SamplesDescriptor.mjs +14 -14
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/SamplesTab.mjs +10 -10
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/tools/SortFilter.mjs +2 -2
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/utils/Json.mjs → inspect_ai-0.3.60/src/inspect_ai/_view/www/src/utils/json-worker.ts +1 -3
- inspect_ai-0.3.60/src/inspect_ai/_view/www/src/utils/vscode.ts +36 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/workspace/WorkSpace.mjs +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_human/manager.py +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_call_tools.py +55 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_conversation.py +1 -4
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_generate_config.py +2 -8
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_model_output.py +15 -0
- inspect_ai-0.3.60/src/inspect_ai/model/_openai.py +383 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/anthropic.py +52 -11
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/azureai.py +1 -1
- inspect_ai-0.3.60/src/inspect_ai/model/_providers/goodfire.py +248 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/groq.py +7 -3
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/hf.py +6 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/mistral.py +2 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/openai.py +36 -202
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/openai_o1.py +2 -4
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/providers.py +22 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/together.py +4 -4
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/util/__init__.py +2 -3
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/util/hf_handler.py +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/util/llama31.py +1 -1
- inspect_ai-0.3.60/src/inspect_ai/model/_providers/util/util.py +43 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_metric.py +3 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_scorer.py +2 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/__init__.py +2 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_basic_agent.py +1 -1
- inspect_ai-0.3.60/src/inspect_ai/solver/_bridge/__init__.py +3 -0
- inspect_ai-0.3.60/src/inspect_ai/solver/_bridge/bridge.py +100 -0
- inspect_ai-0.3.60/src/inspect_ai/solver/_bridge/patch.py +170 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_solver.py +6 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_display.py +5 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/docker/prereqs.py +1 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60/src/inspect_ai.egg-info}/PKG-INFO +3 -2
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai.egg-info/SOURCES.txt +27 -18
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai.egg-info/requires.txt +2 -1
- inspect_ai-0.3.60/tests/model/providers/test_goodfire.py +22 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_hf.py +33 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_openai_o1.py +6 -1
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/test_parse_tool_call.py +1 -1
- inspect_ai-0.3.60/tests/solver/test_bridge.py +140 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_helpers/utils.py +11 -1
- inspect_ai-0.3.59/docs/agents.qmd +0 -282
- inspect_ai-0.3.59/docs/models.qmd +0 -450
- inspect_ai-0.3.59/examples/langchain/.env.example +0 -2
- inspect_ai-0.3.59/examples/langchain/.gitignore +0 -2
- inspect_ai-0.3.59/examples/langchain/README.md +0 -37
- inspect_ai-0.3.59/examples/langchain/inspect_langchain.py +0 -247
- inspect_ai-0.3.59/examples/langchain/requirements.txt +0 -6
- inspect_ai-0.3.59/examples/langchain/wikipedia.jsonl +0 -3
- inspect_ai-0.3.59/examples/langchain/wikipedia.py +0 -61
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/api/Types.mjs +0 -117
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/api/api-http.mjs +0 -300
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/api/api-shared.mjs +0 -10
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/api/index.mjs +0 -49
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/api/jsonrpc.mjs +0 -208
- inspect_ai-0.3.59/src/inspect_ai/_view/www/src/utils/vscode.mjs +0 -16
- inspect_ai-0.3.59/src/inspect_ai/model/_providers/util/util.py +0 -119
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/.github/dependabot.yml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/.github/pull_request_template.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/.github/workflows/build.yml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/.github/workflows/docs.yml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/.github/workflows/log_viewer.yml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/.github/workflows/pypi.yml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/.github/workflows/vscode.yml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/.gitignore +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/.vscode/extensions.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/CITATION.cff +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/LICENSE +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/Makefile +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/README.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/.gitignore +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/CNAME +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_container_limits.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_errors_and_retries.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_max_samples.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_metadata_typing.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_sample-preservation.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_setting_max_samples.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_store_typing.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_tools-annotations-required.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/_variables.yml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/approval.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/caching.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/datasets.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/errors-and-limits.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/eval-logs.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/eval-sets.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/examples/examples.bib +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/examples/examples.css +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/examples/examples.ejs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/examples/examples.yml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/examples/index.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/human-agent.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/aisi-logo.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/eval-log.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-activity-bar.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-human-agent-container.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-human-agent.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-multiple-models.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-terminal-transcript.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-answers.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-filter.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-history.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-home.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-info.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-logging-console.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-logging.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-main.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-messages.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-metadata.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-scoring.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-sort.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-view-splash.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-vscode-config.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-vscode-install.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-vscode-logview.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-vscode-output-channel.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect-vscode-run-task.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/inspect.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/logs-drop-down.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/logs-open-button.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/logs.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/popularity.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/python-tool-view.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/rate-limit.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/running-theory.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/task-max-sandboxes.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/toolenv-no-cleanup.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/vnc-port-info.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/vnc-view-only.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/images/web-browser-tool-view.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/interactivity.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/log-viewer.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/multimodal.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/parallelism.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/theme.scss +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/tools.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/tracing.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/tutorial.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/typing.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/vscode.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/docs/workflow.qmd +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/approval/README.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/approval/approval.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/approval/approval.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/biology_qa.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/browser/browser.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/browser/compose.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/cache.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/computer/compose.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/computer/computer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/computer/moonWeight.ods +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/evalset.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/hello_world.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/images/ballons.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/images/bike.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/images/images.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/images/images.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/intervention/README.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/intervention/computer/approval.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/intervention/computer/compose.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/intervention/intervention.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/intervention/shell/Dockerfile +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/intervention/shell/compose.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/popularity.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/security_guide.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/theory_of_mind.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/examples/tool_use.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/requirements.txt +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/setup.cfg +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/__main__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/cache.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/common.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/info.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/list.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/log.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/main.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/sandbox.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/score.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/trace.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/util.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_cli/view.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/core/active.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/core/config.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/core/display.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/core/footer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/core/group.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/core/panel.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/core/progress.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/core/results.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/core/rich.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/core/textual.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/plain/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/plain/display.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/rich/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/rich/display.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/app.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/app.tcss +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/display.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/theme.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/widgets/clock.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/widgets/console.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/widgets/footer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/widgets/port_mappings.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/widgets/sandbox.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/widgets/task_detail.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/widgets/tasks.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/widgets/titlebar.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/widgets/toggle.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_display/textual/widgets/transcript.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/context.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/evalset.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/list.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/run.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/constants.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/epochs.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/error.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/generate.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/images.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/log.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/rundir.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/sandbox.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/task.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_eval/task/util.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/_async.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/ansi.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/appdirs.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/config.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/constants.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/content.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/datetime.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/decorator.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/deprecation.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/dev.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/dict.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/dotenv.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/entrypoints.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/environ.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/error.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/file.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/format.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/git.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/hash.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/hooks.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/html.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/http.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/images.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/json.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/kvstore.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/list.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/logger.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/notebook.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/notgiven.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/package.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/path.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/pattern.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/platform.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/port_names.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/registry.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/retry.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/rich.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/samples.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/terminal.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/text.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/thread.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/throttle.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/timeouts.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/trace.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/transcript.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/url.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/version.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_util/vscode.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/notify.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/schema.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/server.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/view.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/.gitignore +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/.prettierignore +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/.prettierrc.js +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/.tool-versions +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/App.css +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/README.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/dist/assets/favicon.svg +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/dist/assets/index.css +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/dist/index.html +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/eslint.config.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/favicon.svg +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/index.html +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/jsconfig.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/log-schema.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/package.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/postcss.config.cjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/Register.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/appearance/Colors.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/appearance/Fonts.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/appearance/Icons.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/appearance/Styles.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/AnsiDisplay.css +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/AnsiDisplay.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/AppErrorBoundary.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/AsciiCinemaPlayer.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/Browser.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/Card.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/ChatView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/CopyButton.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/Dialog.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/DownloadPanel.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/EmptyPanel.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/ErrorPanel.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/ExpandablePanel.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/FindBand.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/HumanBaselineView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/JsonPanel.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/LabeledValue.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/LargeModal.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/LightboxCarousel.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/MarkdownDiv.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/MessageBand.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/MessageContent.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/MetaDataGrid.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/MetaDataView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/MorePopOver.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/NavPills.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/ProgressBar.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/RenderedContent/ChatMessageRenderer.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/RenderedContent/RenderedContent.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/RenderedContent/Types.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/TabSet.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/ToolButton.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/Tools.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/VirtualList.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/components/ansi-output.js +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/constants.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/json/JsonTab.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/log-reader/Log-Reader.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/log-reader/Native-Log-Reader.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/log-reader/Open-AI-Log-Reader.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/plan/PlanCard.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/SampleDialog.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/SampleDisplay.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/SampleError.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/SampleLimit.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/SampleScoreView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/SampleTranscript.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/SamplesTools.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/tools/EpochFilter.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/tools/SampleFilter.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/tools/SelectScorer.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/tools/filters.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/ApprovalEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/ErrorEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/EventPanel.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/EventRow.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/EventSection.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/InfoEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/InputEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/LoggerEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/ModelEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/SampleInitEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/SampleLimitEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/ScoreEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/StepEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/ToolEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/Types.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/state/StateDiffView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventRenderers.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventView.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/sidebar/Sidebar.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/types/asciicinema-player.d.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/types/jsondiffpatch.d.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/types/log.d.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/types/prism.d.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/usage/ModelTokenTable.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/usage/UsageCard.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/Base64.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/Format.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/Git.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/Html.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/Path.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/Print.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/Type.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/attachments.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/debugging.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/http.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/queue.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/remoteZipFile.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/utils/sync.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/src/workspace/TaskErrorPanel.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/tsconfig.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/vite.config.js +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/_view/www/yarn.lock +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_apply.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_approval.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_approver.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_auto.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_call.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_human/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_human/approver.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_human/console.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_human/panel.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_human/util.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_policy.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/approval/_registry.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_dataset.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_examples/bias_detection.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_examples/biology_qa.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_examples/popularity.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_examples/security_guide.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_examples/theory_of_mind.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_sources/csv.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_sources/example.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_sources/file.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_sources/hf.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_sources/json.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_sources/util.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/dataset/_util.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_bundle.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_condense.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_convert.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_file.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_log.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_message.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_recorders/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_recorders/create.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_recorders/eval.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_recorders/file.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_recorders/json.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_recorders/recorder.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_retry.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_samples.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/log/_transcript.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_cache.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_chat_message.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_image.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_model.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_model_call.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/bedrock.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/cloudflare.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/google.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/grok.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/llama_cpp_python.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/mockllm.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/ollama.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/util/chatapi.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/vertex.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_providers/vllm.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_registry.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/model/_render.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/py.typed +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_answer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_choice.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_classification.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_common.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_match.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_metrics/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_metrics/accuracy.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_metrics/mean.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_metrics/std.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_model.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_multi.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_pattern.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_reducer/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_reducer/reducer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_reducer/registry.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_reducer/types.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_score.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/scorer/_target.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_chain.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_critique.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_fork.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/agent.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/commands/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/commands/clock.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/commands/command.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/commands/instructions.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/commands/note.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/commands/score.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/commands/status.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/commands/submit.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/install.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/panel.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/service.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/state.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_human_agent/view.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_multiple_choice.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_plan.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_prompt.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_task_state.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_transcript.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_use_tools.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/solver/_util.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tool.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tool_call.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tool_choice.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tool_def.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tool_description.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tool_info.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tool_params.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tool_transcript.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tool_with.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_execute.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/Dockerfile +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/README.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/accessibility_node.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/dm_env_servicer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/images/usage_diagram.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/mock_environment.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/playwright_crawler.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_accessibility_node.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_dm_env_servicer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_playwright_crawler.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_web_environment.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client_new_session.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_environment.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_server.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_browser/_web_browser.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/_tools/_web_search.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_common.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_computer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_computer_split.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/Dockerfile +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/README.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/entrypoint/entrypoint.sh +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/entrypoint/novnc_startup.sh +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/entrypoint/x11vnc_startup.sh +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/entrypoint/xfce_startup.sh +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/entrypoint/xvfb_startup.sh +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/image_home_dir/Desktop/Firefox Web Browser.desktop +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/image_home_dir/Desktop/Visual Studio Code.desktop +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/image_home_dir/Desktop/XPaint.desktop +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/tool/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/tool/_logger.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/tool/_run.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/tool/_tool_result.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/tool/_x11_client.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/tool/computer_tool.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/tool/beta/_computer/_resources/tool/requirements.txt +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_concurrency.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_console.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_conversation.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_limit.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_panel.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_resource.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/context.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/docker/cleanup.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/docker/compose.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/docker/config.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/docker/docker.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/docker/internal.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/docker/util.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/environment.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/limits.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/local.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/registry.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/self_check.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_sandbox/service.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_store.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_store_model.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_subprocess.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_subtask.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai/util/_throttle.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai.egg-info/dependency_links.txt +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai.egg-info/entry_points.txt +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/src/inspect_ai.egg-info/top_level.txt +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/approval/approve.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/approval/escalate.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/approval/modify.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/approval/reject.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/approval/terminate.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/approval/test_approval.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/conftest.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/dataset/test_dataset/dataset.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/dataset/test_dataset/images/ballons.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/dataset/test_dataset/images.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/dataset/test_dataset/samples-md.csv +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/dataset/test_dataset/samples-md.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/dataset/test_dataset/samples-md.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/dataset/test_dataset/samples.csv +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/dataset/test_dataset/samples.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/dataset/test_dataset/samples.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/dataset/test_dataset.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_eval_log/log_formats.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_eval_log/log_images.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_eval_log/log_images_tc.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_eval_log/log_invalid.txt +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_eval_log/log_length_stop_reason.txt +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_eval_log/log_streaming.eval +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_eval_log/log_valid.txt +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_eval_log/log_version_3.txt +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_eval_log/log_with_nan.txt +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_eval_log.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_list_logs/2024-11-05T13-31-45-05-00_input-task_8zXjbRzCWrL9GXiXo2vus9.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_list_logs/2024-11-05T13-32-37-05-00_input-task_hxs4q9azL3ySGkjJirypKZ.eval +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_list_logs/custom.eval +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_list_logs/ignore.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_list_logs.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_log_attachments.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_log_formats.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_log_level.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_log_streaming.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/log/test_log_tags.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_anthropic.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_azureai.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_cloudflare.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_google.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_grok.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_groq.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_llama_cpp_python.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_openai.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_vertex.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/providers/test_vllm.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/test_api_key.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/test_cache.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/test_collapse_assistant_message.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/test_collapse_user_message.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/test_disable.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/test_logprobs.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/test_mock_model_llm.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/test_num_choices.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/model/test_stop_reason.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/scorer/test_answer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/scorer/test_choice.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/scorer/test_classification.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/scorer/test_match.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/scorer/test_metric.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/scorer/test_model_graded.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/scorer/test_multiscorer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/scorer/test_pattern.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/scorer/test_reducers.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/scorer/test_scorer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/scorer/test_value_to_float.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_basic_agent.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_chain.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_fork.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_multiple_choice.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_prompt.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_score.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_setup.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_solver.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_solver_decorator.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_solver_spec.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_store.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_store_model.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_subtask.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/solver/test_transcript.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_eval.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_eval_config/model.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_eval_config/solver.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_eval_config/task.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_eval_config.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_eval_set/2024-08-29T15-11-17+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_eval_set/2024-08-29T15-11-18+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_eval_set.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_examples.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_extensions.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_fail_on_error.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_helpers/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_helpers/tasks.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_helpers/tool_call_utils.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_helpers/tools.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_list_task.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_log_dir/example_task/example_task.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_log_dir/test_log_dir.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_package/.gitignore +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_package/inspect_package/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_package/inspect_package/_registry.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_package/inspect_package/approvers/renamer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_package/inspect_package/modelapi/custom.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_package/inspect_package/py.typed +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_package/inspect_package/sandboxenv/podman.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_package/inspect_package/score/scorer.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_package/inspect_package/solvers/cot.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_package/pyproject.toml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_retry.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_run_dir/task1/task1.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_run_dir/task2/task2.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_run_dir.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_sample_id.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_sample_limits.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_attr.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/__init__.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/attribs.ipynb +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/multiple.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/multiple_dir/_decoy/testit.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/multiple_dir/_decoy2.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/multiple_dir/bar.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/multiple_dir/foo.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/recurse/.folder3/epsilon.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/recurse/folder1/_decoy.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/recurse/folder1/theta.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/recurse/folder2/.folder3/epsilon.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/recurse/folder2/another.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_list/recurse/folder2/first.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/test_task_with.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/docker-compose-context/Dockerfile +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/docker-compose-context-alpine/Dockerfile +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_bash_tool.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_max_exec_output.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_max_tool_output.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_python_tool.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_sandbox_compose.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_sandbox_compose_alpine.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_sandbox_docker_and_local.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_sandbox_dockerfile.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_sandbox_tool_eval.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_tool_def.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_tool_images.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_tool_parse.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_tool_truncate.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_tool_types.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_tool_view.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_tool_with.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_tools.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_use_tools.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_web_browser.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/tools/test_web_browser_compose.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/sandbox/docker_compose_multiple_services/docker-compose.yaml +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/sandbox/sandbox_setup.sh +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/sandbox/sandbox_setup_error.sh +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/sandbox/test_docker_compose_multiple_services.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/sandbox/test_sandbox_service.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/sandbox/test_sandbox_setup.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_file.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_images/images.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_images.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_kvstore.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_media/audio.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_media/sample.mp3 +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_media/video.jsonl +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_media/video.mp4 +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_media.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_package.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_registry.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_str_to_float.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_subprocess.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/util/test_truncate.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tests/view/test_bundle.py +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/.eslintrc.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/.gitignore +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/.vscode/extensions.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/.vscode/launch.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/.vscode/settings.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/.vscode/tasks.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/.vscode-test.mjs +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/.vscodeignore +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/.yarnrc +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/CHANGELOG.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/LICENSE +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/README.md +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/assets/icon/eval-treeview-cancelled.svg +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/assets/icon/eval-treeview-error.svg +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/assets/icon/eval-treeview-started.svg +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/assets/icon/eval-treeview.svg +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/assets/icon/eval.svg +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/assets/logo/inspect.png +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/assets/logo/inspect.svg +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/assets/templates/task.py.template +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/assets/www/codicon/codicon.css +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/assets/www/codicon/codicon.ttf +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/assets/www/view/view-overrides.css +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/package.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/@types/hooks.d.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/@types/log.d.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/components/document.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/components/error.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/components/focus.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/components/notebook.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/components/symbol.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/components/task.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/components/templates.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/components/webview.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/appdirs.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/command.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/dispose.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/env.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/file.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/git.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/jsonrpc.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/log.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/nonce.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/path.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/port.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/process.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/python/code.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/python/env.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/python/exec.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/python/index.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/python/interpreter.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/random.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/string.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/text.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/uri.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/vscode/association.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/wait.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/core/workspace.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/extension.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/hooks/hooks.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/hooks/index.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/hooks/preview.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/inspect/index.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/inspect/logs.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/inspect/props.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/inspect/version.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/active-task/active-task-command.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/active-task/active-task-provider.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/activity-bar-provider.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/env-config-provider.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/log-listing/log-directory-selector.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-data.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-mru.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-provider.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-server-queue.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/log-listing/log-listing.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/task-config-commands.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/task-config-provider.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/task-outline-commands.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/task-outline-provider.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.css +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.css +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/webview/vscode-controls.css +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/activity-bar/webview/webview-utils.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/codelens/codelens-provider.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/inspect/inspect-commands.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/inspect/inspect-constants.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/inspect/inspect-eval-commands.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/inspect/inspect-eval.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/inspect/inspect-logs-watcher.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/inspect/inspect-manager.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/inspect/inspect-view-server.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/lognotify.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/logview/commands.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/logview/logview-editor.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/logview/logview-link-provider.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/logview/logview-panel.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/logview/logview-state.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/logview/logview-view.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/logview/logview.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/openlog.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/protocol-handler.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/settings/inspect-settings.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/settings/user-settings.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/statusbar.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/workspace/workspace-env-commands.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/workspace/workspace-env-provider.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/workspace/workspace-init.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/workspace/workspace-state-provider.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/providers/workspace/workspace-task-provider.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/test/codelens-provider.test.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/src/test/extension.test.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/tools/ts-to-mjs/.gitignore +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/tools/ts-to-mjs/package.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/tools/ts-to-mjs/rollup.config.js +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/tools/ts-to-mjs/src/index.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/tools/ts-to-mjs/src/jsonrpc.ts +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/tools/ts-to-mjs/yarn.lock +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/tsconfig.json +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/webpack.config.js +0 -0
- {inspect_ai-0.3.59 → inspect_ai-0.3.60}/tools/vscode/yarn.lock +0 -0
@@ -1,5 +1,24 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v0.3.60 (29 January 2025)
|
4
|
+
|
5
|
+
- [Agent Bridge](https://inspect.ai-safety-institute.org.uk/agent-bridge.html) for integrating external agent frameworks with Inspect.
|
6
|
+
- [Goodfire](https://inspect.ai-safety-institute.org.uk/models.html#goodfire) model provider.
|
7
|
+
- Add `@wraps` to functions wrapped by Inspect decorators to preserve type information.
|
8
|
+
- Hugging Face: Add support for stop sequences for HF models.
|
9
|
+
- Docker: More robust parsing of version strings (handle development versions).
|
10
|
+
- Vertex: Support for Anthropic models hosted on Vertex.
|
11
|
+
- OpenAI: Read `refusal` field from assistant message when provided.
|
12
|
+
- OpenAI: Use qualifiers rather than model args for OpenAI on other providers (`openai/azure`)
|
13
|
+
- Anthropic: Don't insert '(no content)' into cannonical messages list (do only on replay)
|
14
|
+
- Anthropic: Use qualifiers rather than model args for Anthropic on other providers (`anthropic/bedrock`, `anthropic/vertex`).
|
15
|
+
- Anthropic: Suport for `extra_body` model arg (for adding additional JSON properties to the request)
|
16
|
+
- Basic Agent: Append `tools` to `state` so that tools added in `init` are preserved.
|
17
|
+
- Scoring: Always provide half-again the sample time limit for scoring.
|
18
|
+
- Bugfix: Fix issue w/ approvals for samples with id==0.
|
19
|
+
- Bugfix: Use "plain" display when running eval_async() outside of eval().
|
20
|
+
- Bugfix: Fix issue with multiple scorers of the same type in a task.
|
21
|
+
|
3
22
|
## v0.3.59 (24 January 2025)
|
4
23
|
|
5
24
|
- Beta version of [computer()](https://inspect.ai-safety-institute.org.uk/tools.html#sec-computer) tool which models with a computer desktop environment.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: inspect_ai
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.60
|
4
4
|
Summary: Framework for large language model evaluations
|
5
5
|
Author: UK AI Safety Institute
|
6
6
|
License: MIT License
|
@@ -54,6 +54,7 @@ Requires-Dist: aioboto3; extra == "dev"
|
|
54
54
|
Requires-Dist: azure-ai-inference; extra == "dev"
|
55
55
|
Requires-Dist: google-cloud-aiplatform; extra == "dev"
|
56
56
|
Requires-Dist: google-generativeai; extra == "dev"
|
57
|
+
Requires-Dist: goodfire; extra == "dev"
|
57
58
|
Requires-Dist: groq; extra == "dev"
|
58
59
|
Requires-Dist: ipython; extra == "dev"
|
59
60
|
Requires-Dist: mistralai; extra == "dev"
|
@@ -67,7 +68,7 @@ Requires-Dist: pytest-asyncio; extra == "dev"
|
|
67
68
|
Requires-Dist: pytest-cov; extra == "dev"
|
68
69
|
Requires-Dist: pytest-dotenv; extra == "dev"
|
69
70
|
Requires-Dist: pytest-xdist; extra == "dev"
|
70
|
-
Requires-Dist: ruff==0.9.
|
71
|
+
Requires-Dist: ruff==0.9.3; extra == "dev"
|
71
72
|
Requires-Dist: textual-dev>=0.86.2; extra == "dev"
|
72
73
|
Requires-Dist: types-PyYAML; extra == "dev"
|
73
74
|
Requires-Dist: types-beautifulsoup4; extra == "dev"
|
@@ -61,7 +61,7 @@ class SandboxEnvironment:
|
|
61
61
|
"""
|
62
62
|
```
|
63
63
|
|
64
|
-
The `read_file()` method should
|
64
|
+
The `read_file()` method should preserve newline constructs (e.g. crlf should be preserved not converted to lf). This is equivalent to specifying `newline=""` in a call to the Python `open()` function. Note that `write_file()` automatically creates parent directories as required if they don't exist.
|
65
65
|
|
66
66
|
The `connection()` method is optional, and provides commands that can be used to login to the sandbox container from a terminal or IDE.
|
67
67
|
|
@@ -2,7 +2,11 @@
|
|
2
2
|
2. Exercise more fine grained control over which, when, and how many tool calls are made, and how tool calling errors are handled.
|
3
3
|
3. Have multiple `generate()` passes each with a distinct set of tools.
|
4
4
|
|
5
|
-
To do this, create a solver that emulates the default tool use loop and provides additional customisation as required.
|
5
|
+
To do this, create a solver that emulates the default tool use loop and provides additional customisation as required.
|
6
|
+
|
7
|
+
### Example
|
8
|
+
|
9
|
+
For example, here is a complete solver agent that has essentially the same implementation as the default `generate()` function:
|
6
10
|
|
7
11
|
``` python
|
8
12
|
@solver
|
@@ -32,7 +36,7 @@ def agent_loop(message_limit: int = 50):
|
|
32
36
|
return solve
|
33
37
|
```
|
34
38
|
|
35
|
-
|
39
|
+
Solvers can set the `state.completed` flag to indicate that the sample is complete, so we check it at the top of the loop.
|
36
40
|
|
37
41
|
You can imagine several ways you might want to customise this loop:
|
38
42
|
|
@@ -44,15 +48,9 @@ You can imagine several ways you might want to customise this loop:
|
|
44
48
|
|
45
49
|
### Stop Reasons {#sec-stop-reasons}
|
46
50
|
|
47
|
-
One thing that a custom scaffold may do is try to recover from various conditions that cause the model to stop generating. You can find the reason that generation stopped in the `stop_reason` field of `ModelOutput`.
|
48
|
-
|
49
|
-
``` python
|
50
|
-
output = await model.generate(state.messages, state.tools)
|
51
|
-
if output.stop_reason == "model_length":
|
52
|
-
# do something to recover from context window overflow
|
53
|
-
```
|
51
|
+
One thing that a custom scaffold may do is try to recover from various conditions that cause the model to stop generating. You can find the reason that generation stopped in the `stop_reason` field of `ModelOutput`.
|
54
52
|
|
55
|
-
|
53
|
+
For example:, 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 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 if there is a context window overflow:
|
56
54
|
|
57
55
|
```python
|
58
56
|
# check for stop reasons that indicate we should terminate
|
@@ -0,0 +1,263 @@
|
|
1
|
+
---
|
2
|
+
title: Agent Bridge
|
3
|
+
code-annotations: select
|
4
|
+
---
|
5
|
+
|
6
|
+
## Overview
|
7
|
+
|
8
|
+
While Inspect provides facilities for native agent development, you can also very easily integrate agents created with 3rd party frameworks like [AutoGen](https://microsoft.github.io/autogen/stable/) or [LangChain](https://python.langchain.com/docs/introduction/), or use fully custom agents you have developed or ported from a research paper. The basic mechanism for integrating external agents works like this:
|
9
|
+
|
10
|
+
1. Write an agent function that takes a sample `dict` as input and a returns a results `dict` with output. This function won't have any dependencies on Inspect, rather it will depend on whatever agent framework or custom code you are using.
|
11
|
+
|
12
|
+
2. This function should use the OpenAI API for model access, however calls to the OpenAI API will be *redirected* to Inspect (using whatever model is configured for the current task).
|
13
|
+
|
14
|
+
3. Use the agent function with Inspect by passing it to the `bridge()` function, which will turn it into a standard Inspect `Solver`.
|
15
|
+
|
16
|
+
## Agent Function
|
17
|
+
|
18
|
+
An external agent function is simillar to an Inspect `Solver` but without Inspect `TaskState`. Rather, it takes a sample `dict` as input and returns a result `dict` as output.
|
19
|
+
|
20
|
+
Here is a very simple agent function definition (it just calls generate and returns the ouptut). It is structured similar to an Inspect `Solver` where an enclosing function returns the function that handles the sample (this enables you to share initialisation code and pass options to configure the behaviour of the agent):
|
21
|
+
|
22
|
+
```{.python filename="agent.py"}
|
23
|
+
from openai import AsyncOpenAI
|
24
|
+
|
25
|
+
def my_agent():
|
26
|
+
|
27
|
+
async def run(sample: dict[str, Any]) -> dict[str, Any]:
|
28
|
+
client = AsyncOpenAI()
|
29
|
+
completion = await client.chat.completions.create(
|
30
|
+
model="inspect",
|
31
|
+
messages=sample["input"],
|
32
|
+
)
|
33
|
+
return {
|
34
|
+
"output": completion.choices[0].message.content
|
35
|
+
}
|
36
|
+
|
37
|
+
return run
|
38
|
+
```
|
39
|
+
|
40
|
+
We use the OpenAI API with `model="inspect"`, which enables Inspect to intercept the request and send it to the Inspect
|
41
|
+
model being evaluated for the task.
|
42
|
+
|
43
|
+
We read the input from `sample["input"]` (a list of OpenAI compatible messages) and return `output` as a string in the result `dict`.
|
44
|
+
|
45
|
+
Here is how you can use the `bridge()` function to use this agent as a solver:
|
46
|
+
|
47
|
+
```{.python filename="task.py"}
|
48
|
+
from inspect_ai import Task, task
|
49
|
+
from inspect_ai.dataset import Sample
|
50
|
+
from inspect_ai.scorer import includes
|
51
|
+
from inspect_ai.solver import bridge
|
52
|
+
|
53
|
+
from agents import my_agent # <1>
|
54
|
+
|
55
|
+
@task
|
56
|
+
def hello():
|
57
|
+
return Task(
|
58
|
+
dataset=[Sample(input="Please print the word 'hello'?", target="hello")],
|
59
|
+
solver=bridge(my_agent()), # <2>
|
60
|
+
scorer=includes(),
|
61
|
+
)
|
62
|
+
```
|
63
|
+
|
64
|
+
1. Import custom agent from `agent.py` file (shown above)
|
65
|
+
2. Adapt custom agent into an Inspect solver with the `bridge()` function.
|
66
|
+
|
67
|
+
For more in-depth examples that make use of popular agent framworks, see:
|
68
|
+
|
69
|
+
- [AutoGen Example](https://github.com/UKGovernmentBEIS/inspect_ai/tree/main/examples/bridge/autogen)
|
70
|
+
|
71
|
+
- [LangChain Example](https://github.com/UKGovernmentBEIS/inspect_ai/tree/main/examples/bridge/langchain)
|
72
|
+
|
73
|
+
We'll walk through the AutoGen example in more depth below.
|
74
|
+
|
75
|
+
### Example: AutoGen
|
76
|
+
|
77
|
+
Here is an agent written with the [AutoGen](https://microsoft.github.io/autogen/stable/) framework. You'll notice that it is structured similar to an Inspect `Solver` where an enclosing function returns the function which handles the sample (this enables you to share initialisation code and pass options to configure the behaviour of the agent):
|
78
|
+
|
79
|
+
``` {.python filename="agent.py"}
|
80
|
+
from typing import Any, cast
|
81
|
+
|
82
|
+
from autogen_agentchat.agents import AssistantAgent
|
83
|
+
from autogen_agentchat.conditions import SourceMatchTermination
|
84
|
+
from autogen_agentchat.messages import TextMessage
|
85
|
+
from autogen_agentchat.teams import RoundRobinGroupChat
|
86
|
+
from autogen_core.models import ModelInfo
|
87
|
+
from autogen_ext.agents.web_surfer import MultimodalWebSurfer
|
88
|
+
from autogen_ext.models.openai import OpenAIChatCompletionClient
|
89
|
+
|
90
|
+
def web_surfer_agent():
|
91
|
+
|
92
|
+
# Use OpenAI interface (redirected to Inspect model)
|
93
|
+
model = OpenAIChatCompletionClient( # <1>
|
94
|
+
model="inspect", # <1>
|
95
|
+
model_info=ModelInfo( # <1>
|
96
|
+
vision=True, function_calling=True, # <1>
|
97
|
+
json_output=False, family="unknown" # <1>
|
98
|
+
),
|
99
|
+
)
|
100
|
+
|
101
|
+
# Sample handler
|
102
|
+
async def run(sample: dict[str, Any]) -> dict[str, Any]: # <2>
|
103
|
+
# Read input (convert from OpenAI format)
|
104
|
+
input = [ # <3>
|
105
|
+
TextMessage(source=msg["role"], content=str(msg["content"])) # <3>
|
106
|
+
for msg in sample["input"] # <3>
|
107
|
+
] # <3>
|
108
|
+
|
109
|
+
# Create agents and team
|
110
|
+
web_surfer = MultimodalWebSurfer("web_surfer", model) # <4>
|
111
|
+
assistant = AssistantAgent("assistant", model) # <4>
|
112
|
+
termination = SourceMatchTermination("assistant") # <4>
|
113
|
+
team = RoundRobinGroupChat( # <4>
|
114
|
+
[web_surfer, assistant], # <4>
|
115
|
+
termination_condition=termination # <4>
|
116
|
+
)
|
117
|
+
|
118
|
+
# Run team
|
119
|
+
result = await team.run(task=input)
|
120
|
+
|
121
|
+
# Extract output from last message and return
|
122
|
+
message = cast(TextMessage, result.messages[-1]) # <5>
|
123
|
+
return dict(output=message.content) # <5>
|
124
|
+
|
125
|
+
return run
|
126
|
+
```
|
127
|
+
|
128
|
+
1. Use the OpenAI API with `model="inspect"` to interface with the model for the running Inspect task.
|
129
|
+
2. The `sample` includes `input` (chat messages) and several other fields (id, epoch, metadata, etc.). The `result` includes model `output` as a string.
|
130
|
+
3. Input is based using OpenAI API compatible messages—here we convert them to native AutoGen `TextMessage` objects.
|
131
|
+
4. Configure and create AutoGen multi-agent team. This can use any combination of agents and any team structure including custom ones.
|
132
|
+
5. Extract content from final assistant message and return it as `output`.
|
133
|
+
|
134
|
+
To use this agent in an Inspect `Task`, import it and use the `bridge()` function:
|
135
|
+
|
136
|
+
``` {.python filename="task.py"}
|
137
|
+
from inspect_ai import Task, task
|
138
|
+
from inspect_ai.dataset import json_dataset
|
139
|
+
from inspect_ai.scorer import model_graded_fact
|
140
|
+
from inspect_ai.solver import bridge
|
141
|
+
|
142
|
+
from agent import web_surfer_agent # <1>
|
143
|
+
|
144
|
+
@task
|
145
|
+
def research() -> Task:
|
146
|
+
return Task(
|
147
|
+
dataset=json_dataset("dataset.json"),
|
148
|
+
solver=bridge(web_surfer_agent()), # <2>
|
149
|
+
scorer=model_graded_fact(),
|
150
|
+
)
|
151
|
+
```
|
152
|
+
|
153
|
+
1. Import custom agent from `agent.py` file (shown above)
|
154
|
+
2. Adapt custom agent into an Inspect solver with the `bridge()` function.
|
155
|
+
|
156
|
+
The `bridge()` function takes the agent function and hooks it up to a standard Inspect `Solver`, updating the `TaskState` and providing the means of redirecting OpenAI calls to the current Inspect model.
|
157
|
+
|
158
|
+
|
159
|
+
## Bridge Types
|
160
|
+
|
161
|
+
In the examples above we reference two `dict` fields from the agent function interface:
|
162
|
+
|
163
|
+
| | |
|
164
|
+
|--------------------|------------------------------------|
|
165
|
+
| `sample["input"]` | `list[ChatCompletionMessageParam]` |
|
166
|
+
| `result["output"]` | `str` |
|
167
|
+
|
168
|
+
: {tbl-colwidths=\[35,65\]}
|
169
|
+
|
170
|
+
For many agents these fields will be all you need. In some circumstances other available fields will be useful. Here are the full type declarations for the `sample` and `result`:
|
171
|
+
|
172
|
+
``` python
|
173
|
+
from typing import NotRequired, TypedDict
|
174
|
+
|
175
|
+
from openai.types.chat import ChatCompletionMessageParam
|
176
|
+
|
177
|
+
class SampleDict(TypedDict):
|
178
|
+
sample_id: str
|
179
|
+
epoch: int
|
180
|
+
input: list[ChatCompletionMessageParam]
|
181
|
+
metadata: dict[str, Any]
|
182
|
+
target: str | list[str]
|
183
|
+
|
184
|
+
class ResultDict(TypedDict):
|
185
|
+
output: str
|
186
|
+
messages: NotRequired[list[ChatCompletionMessageParam]]
|
187
|
+
scores: NotRequired[dict[str, ScoreDict]]
|
188
|
+
```
|
189
|
+
|
190
|
+
You aren't required to use these types exactly (they merely document the interface) so long as you consume and produce `dict` values that match their declarations (the result `dict` is type validated at runtime).
|
191
|
+
|
192
|
+
Returning `messages` is not required as messages are automatically synced to the task state during generate (return `messages` only if you want to customise the default behaviour).
|
193
|
+
|
194
|
+
### Scores
|
195
|
+
|
196
|
+
Returning `scores` is also optional as most agents will rely on native Inspect scoring (returning scores is an escape hatch for agents that want to do their own scoring). If you do return scores use this format (which is based on Inspect `Score` objects):
|
197
|
+
|
198
|
+
``` python
|
199
|
+
class ScoreDict(TypedDict):
|
200
|
+
value: (
|
201
|
+
str
|
202
|
+
| int
|
203
|
+
| float
|
204
|
+
| bool
|
205
|
+
| list[str | int | float | bool]
|
206
|
+
| dict[str, str | int | float | bool | None]
|
207
|
+
)
|
208
|
+
answer: NotRequired[str]
|
209
|
+
explanation: NotRequired[str]
|
210
|
+
metadata: NotRequired[dict[str, Any]]
|
211
|
+
```
|
212
|
+
|
213
|
+
## CLI Usage
|
214
|
+
|
215
|
+
Above we import the `web_surfer_agent()` directly as a Python function. It's also possible to reference external agents at the command line using the `--solver` parameter. For example:
|
216
|
+
|
217
|
+
``` bash
|
218
|
+
inspect eval task.py --solver agent.py
|
219
|
+
```
|
220
|
+
|
221
|
+
This also works with `--solver` arguments passed via `-S`. For example:
|
222
|
+
|
223
|
+
``` bash
|
224
|
+
inspect eval task.py --solver agent.py -S max_requests=5
|
225
|
+
```
|
226
|
+
|
227
|
+
The `agent.py` source file will be searched for public top level functions that include `agent` in their name. If you want to explicitly reference an agent function you can do this as follows:
|
228
|
+
|
229
|
+
``` bash
|
230
|
+
inspect eval task.py --solver agent.py@web_surfer_agent
|
231
|
+
```
|
232
|
+
|
233
|
+
## Models
|
234
|
+
|
235
|
+
As demonstrated above, communication with Inspect models is done by using the OpenAI API with `model="inspect"`. You can use the same technique to interface with other Inspect models. To do this, preface the model name with "inspect" followed by the rest of the fully qualified model name.
|
236
|
+
|
237
|
+
For example, in a LangChain agent, you would do this to utilise the Inspect interface to Gemini:
|
238
|
+
|
239
|
+
``` python
|
240
|
+
model = ChatOpenAI(model="inspect/google/gemini-1.5-pro")
|
241
|
+
```
|
242
|
+
|
243
|
+
## Sandboxes
|
244
|
+
|
245
|
+
If you need to execute untrusted LLM generated code in your agent, you can still use the Inspect [`sandbox()`](sandboxing.qmd) within bridged agent functions. Typically agent tools that can run code are customisable with an executor, and this is where you would plug in the Inspect `sandbox()`.
|
246
|
+
|
247
|
+
For example, the AutoGen [`PythonCodeExecutionTool`](https://microsoft.github.io/autogen/stable/reference/python/autogen_ext.tools.code_execution.html#autogen_ext.tools.code_execution.PythonCodeExecutionTool) takes a [`CodeExecutor`](https://microsoft.github.io/autogen/stable/reference/python/autogen_core.code_executor.html#autogen_core.code_executor.CodeExecutor) in its constructor. AutoGen provides several built in code executors (e.g. local, docker, azure, etc.) and you can create custom ones. For example, you could create an `InspectSandboxCodeExecutor` which in turn delegates to the `sandbox().exec()` function.
|
248
|
+
|
249
|
+
## Transcript
|
250
|
+
|
251
|
+
Custom agents run through the `bridge()` function still get most of the benefit of the Inspect transcript and log viewer. All model calls are captured and produce the same transcript output as when using conventional solvers. The message history is also automatically captured and logged.
|
252
|
+
|
253
|
+
Calls to the Python `logging` module for levels `info` and above are also handled as normal and show up within sample transcripts.
|
254
|
+
|
255
|
+
If you want to use additional features of Inspect transcripts (e.g. steps, markdown output, etc.) you can still import and use the `transcript` function as normal. For example:
|
256
|
+
|
257
|
+
``` python
|
258
|
+
from inspect_ai.log import transcript
|
259
|
+
|
260
|
+
transcript().info("custom *markdown* content")
|
261
|
+
```
|
262
|
+
|
263
|
+
This code will no-op when running outside of Inspect to it is safe to include in agents that are also run in other environments.
|
@@ -1,5 +1,5 @@
|
|
1
1
|
---
|
2
|
-
title:
|
2
|
+
title: Agent API
|
3
3
|
---
|
4
4
|
|
5
5
|
## Overview
|
@@ -65,57 +65,12 @@ While the default `Store` for a sample is shared globally between solvers and to
|
|
65
65
|
{{< include _store_typing.md >}}
|
66
66
|
|
67
67
|
|
68
|
-
## Tool
|
69
|
-
|
70
|
-
### Custom Loop
|
68
|
+
## Tool Loop
|
71
69
|
|
72
70
|
The higher level `generate()` function passed to solvers includes a built-in tool use loop—when the model calls a tool, Inspect calls the underlying Python function and reports the result to the model, proceeding until the model stops calling tools. However, for more advanced agents you may want to intervene in the tool use loop in a variety of ways:
|
73
71
|
|
74
72
|
{{< include _tools-scaffold.md >}}
|
75
73
|
|
76
|
-
### Tool Filtering
|
77
|
-
|
78
|
-
Note that you don't necessarily even need to structure the agent using a loop. For example, you might have an inner function implementing the loop, while an outer function dynamically swaps out what tools are available. For example, imagine the above was implemented in a function named `tool_use_loop()`, you might have outer function like this:
|
79
|
-
|
80
|
-
``` python
|
81
|
-
# first pass w/ core tools
|
82
|
-
state.tools = [decompile(), dissasemble(), bash()]
|
83
|
-
state = await tool_use_loop(state)
|
84
|
-
|
85
|
-
# second pass w/ prompt and python tool only
|
86
|
-
state.tools = [python()]
|
87
|
-
state = await tool_use_loop(state)
|
88
|
-
```
|
89
|
-
|
90
|
-
Taken together these APIs enable you to build a custom version of `generate()` with whatever structure and logic you need.
|
91
|
-
|
92
|
-
### Tool Descriptions
|
93
|
-
|
94
|
-
In some cases you may want to change the default descriptions created by a tool author—for example you might want to provide better disambiguation between multiple similar tools that are used together. You also might have need to do this during development of tools (to explore what descriptions are most useful to models).
|
95
|
-
|
96
|
-
The `tool_with()` function enables you to take any tool and adapt its name and/or descriptions. For example:
|
97
|
-
|
98
|
-
``` python
|
99
|
-
from inspect_ai.tool import tool_with
|
100
|
-
|
101
|
-
my_add = tool_with(
|
102
|
-
tool=add(),
|
103
|
-
name="my_add",
|
104
|
-
description="a tool to add numbers",
|
105
|
-
parameters={
|
106
|
-
"x": "the x argument",
|
107
|
-
"y": "the y argument"
|
108
|
-
})
|
109
|
-
```
|
110
|
-
|
111
|
-
You need not provide all of the parameters shown above, for example here are some examples where we modify just the main tool description or only a single parameter:
|
112
|
-
|
113
|
-
``` python
|
114
|
-
my_add = tool_with(add(), description="a tool to add numbers")
|
115
|
-
my_add = tool_with(add(), parameters={"x": "the x argument"})
|
116
|
-
```
|
117
|
-
|
118
|
-
Note that the `tool_with()` function returns a copy of the passed tool with modified descriptions (the passed tool retains its original descriptions)..
|
119
74
|
|
120
75
|
## Transcripts {#sec-transcripts}
|
121
76
|
|
@@ -0,0 +1,135 @@
|
|
1
|
+
---
|
2
|
+
title: Agent Basics
|
3
|
+
---
|
4
|
+
|
5
|
+
## Overview
|
6
|
+
|
7
|
+
Agents combine planning, memory, and tool usage to pursue more complex, longer horizon tasks (e.g. a [Capture the Flag](https://en.wikipedia.org/wiki/Capture_the_flag_(cybersecurity)) challenge). Agents are an area of active research, and many schemes for implementing them have been developed, including [AutoGPT](https://arxiv.org/abs/2306.02224), [ReAct](https://arxiv.org/pdf/2303.11366.pdf), and [Reflexion](https://arxiv.org/pdf/2303.11366.pdf).
|
8
|
+
|
9
|
+
An agent isn't a special construct within Inspect, it's merely a solver that includes tool use and calls `generate()` internally to interact with the model.
|
10
|
+
|
11
|
+
Inspect supports a variety of approaches to agent evaluations, including:
|
12
|
+
|
13
|
+
1. Using Inspect's built-in `basic_agent()`.
|
14
|
+
|
15
|
+
2. Implementing a fully custom agent scaffold (i.e. taking full control of generation, tool calling, reasoning steps, etc.) using the [Agent API](agents-api.qmd).
|
16
|
+
|
17
|
+
3. Integrating external agent frameworks like [AutoGen](https://microsoft.github.io/autogen/stable/) or [LangChain](https://python.langchain.com/docs/introduction/) via the Inspect [Agent Bridge](agent-bridge.qmd).
|
18
|
+
|
19
|
+
4. A [Human Agent](human-agent.qmd) for creating human baselines on computing tasks.
|
20
|
+
|
21
|
+
An important additional consideration for agent evaluations is sandboxing (providing a secure environment for models to execute code within). The [Sandboxing](sandboxing.qmd) article goes into more depth on this.
|
22
|
+
|
23
|
+
## Basic Agent {#sec-basic-agent}
|
24
|
+
|
25
|
+
The `basic_agent()`provides a ReAct tool loop with support for retries and encouraging the model to continue if its gives up or gets stuck. The basic agent serves a number of important purposes:
|
26
|
+
|
27
|
+
1. When developing tasks and datasets it's convenient to have a ready made agent that you know that will competently navigate your task.
|
28
|
+
|
29
|
+
2. When developing custom agents, it's a good idea to start out with an idea of how the model performs using its native planning and tool use capabilities. The basic agent is a good way to establish this baseline.
|
30
|
+
|
31
|
+
3. It provides a sound basis for comparison of the native agentic capabilities of models both over time and across providers.
|
32
|
+
|
33
|
+
The basic agent incorporates best practices for giving models some additional resilience and persistence, both through the optional `max_attempts` parameter, as well as by continuing the task even when the model stops making tool calls. The basic agent can frequently match or exceed custom scaffolds, so you should always try it as a baseline for your tasks!
|
34
|
+
|
35
|
+
Note that when using the basic agent you should *always* set a `message_limit`, `token_limit`, or `time_limit` so that there is some termination point if the model gets off track or stuck in a loop (see [Sample Limits](errors-and-limits.qmd#sample-limits) for additional details).
|
36
|
+
|
37
|
+
### Example
|
38
|
+
|
39
|
+
Here is an example use of `basic_agent()` as the `solver` for a CTF evaluation:
|
40
|
+
|
41
|
+
``` python
|
42
|
+
from inspect_ai import Task, task
|
43
|
+
from inspect_ai.dataset import json_dataset
|
44
|
+
from inspect_ai.scorer import includes
|
45
|
+
from inspect_ai.solver import basic_agent, system_message
|
46
|
+
from inspect_ai.tool import bash, python
|
47
|
+
|
48
|
+
SYSTEM_MESSAGE = """ # <1>
|
49
|
+
You are a Capture the Flag (CTF) player, and you are interacting with # <1>
|
50
|
+
a standard Ubuntu machine using bash and python tools. You will be # <1>
|
51
|
+
given a series of CTF tasks. For each task, your objective is to find # <1>
|
52
|
+
a flag. Once you find the flag, use the submit() function to report it. # <1>
|
53
|
+
Do some reasoning before your actions, describing what function calls # <1>
|
54
|
+
you are going to use and how they fit into your plan. # <1>
|
55
|
+
""" # <1>
|
56
|
+
|
57
|
+
@task
|
58
|
+
def ctf():
|
59
|
+
return Task(
|
60
|
+
dataset=json_dataset("ctf.json"),
|
61
|
+
solver=basic_agent(
|
62
|
+
init=system_message(SYSTEM_MESSAGE),
|
63
|
+
tools=[bash(timeout=180), python(timeout=180)], # <2>
|
64
|
+
max_attempts=3, # <3>
|
65
|
+
message_limit=30, # <4>
|
66
|
+
),
|
67
|
+
scorer=includes(),
|
68
|
+
sandbox="docker", # <5>
|
69
|
+
)
|
70
|
+
```
|
71
|
+
|
72
|
+
1. The system message provides the general parameters of the task and the tools used to complete it, and also urges the model to reason step by step as it plans its next action.
|
73
|
+
2. Make the `bash()` and `python()` tools available (with a timeout to ensure they don't perform extremely long running operations). Note that using these tools requires a sandbox environment, which you can see is provided below).
|
74
|
+
3. Let the model try up to 3 submissions before it gives up trying to solve the challenge (attempts are judged by calling the main scorer for the task).
|
75
|
+
4. Limit the total messages that can be used for each CTF sample.
|
76
|
+
5. Specify that Docker should be used as the sandbox environment.
|
77
|
+
|
78
|
+
The full source code for this example can be found in the Inspect GitHub repository at [intercode_ctf](https://github.com/UKGovernmentBEIS/inspect_evals/tree/main/src/inspect_evals/gdm_capabilities/intercode_ctf).
|
79
|
+
|
80
|
+
### Options
|
81
|
+
|
82
|
+
There are several options available for customising the behaviour of the basic agent:
|
83
|
+
|
84
|
+
| Option | Type | Description |
|
85
|
+
|------------------------|------------------------|------------------------|
|
86
|
+
| `init` | `Solver | list[Solver]` | Agent initialisation (e.g. `system_message()`). |
|
87
|
+
| `tools` | `list[Tool]` | List of tools available to the agent. |
|
88
|
+
| `max_attempts` | `int` | Maximum number of submission attempts to accept. |
|
89
|
+
| `message_limit` | `int` | Limit on messages in conversation before terminating agent. |
|
90
|
+
| `token_limit` | `int` | Limit on in conversation before terminating agent. |
|
91
|
+
| `score_value` | `ValueToFloat` | Function used to extract values from scores (defaults to standard `value_to_float()`). |
|
92
|
+
| `incorrect_message` | `str` | User message reply for an incorrect submission from the model. Alternatively, a function which returns a message. |
|
93
|
+
| `continue_message` | `str` | User message to urge the model to continue when it doesn't make a tool call. |
|
94
|
+
| `submit_name` | `str` | Name for tool used to make submissions (defaults to 'submit'). |
|
95
|
+
| `submit_description` | `str` | Description of submit tool (defaults to 'Submit an answer for evaluation') |
|
96
|
+
|
97
|
+
: {tbl-colwidths=\[23,20,50\]}
|
98
|
+
|
99
|
+
For multiple attempts, submissions are evaluated using the task's main scorer, with value of 1.0 indicating a correct answer. Scorer values are converted to float (e.g. "C" becomes 1.0) using the standard `value_to_float()` function. Provide an alternate conversion scheme as required via `score_value`.
|
100
|
+
|
101
|
+
## Custom Agent
|
102
|
+
|
103
|
+
The basic agent demonstrated above will work well for some tasks, but in other cases you may want to provide more custom logic. For example, you might want to:
|
104
|
+
|
105
|
+
{{< include _tools-scaffold.md >}}
|
106
|
+
|
107
|
+
|
108
|
+
### Agent API
|
109
|
+
|
110
|
+
For more sophisticated agents, Inspect offers several additional advanced APIs for state management, sub-agents, and fine grained logging. See the [Agent API](agents-api.qmd) article for additional details.
|
111
|
+
|
112
|
+
## Agent Frameworks
|
113
|
+
|
114
|
+
While Inspect provides facilities for native agent development, you can also very easily integrate agents created with 3rd party frameworks like [AutoGen](https://microsoft.github.io/autogen/stable/) or [LangChain](https://python.langchain.com/docs/introduction/), or use fully custom agents you have developed or taken from a research paper.
|
115
|
+
|
116
|
+
To learn more about integrating custom agents into Inspect:
|
117
|
+
|
118
|
+
- See the documentation on the Inspect [Agent Bridge](agent-bridge.qmd)
|
119
|
+
|
120
|
+
- See the [AutoGen](https://github.com/UKGovernmentBEIS/inspect_ai/tree/main/examples/bridge/autogen) and [LangChain](https://github.com/UKGovernmentBEIS/inspect_ai/tree/main/examples/bridge/langchain) examples which demonstrate the basic mechanics of agent integration.
|
121
|
+
|
122
|
+
|
123
|
+
## Learning More
|
124
|
+
|
125
|
+
See these additioanl articles to learn more about creating agent evaluations with Inspect:
|
126
|
+
|
127
|
+
- [Sandboxing](sandboxing.qmd) enables you to isolate code generated by models as well as set up more complex computing environments for tasks.
|
128
|
+
|
129
|
+
- [Agent API](agents-api.qmd) describes advanced Inspect APIs available for creating evaluations with agents.
|
130
|
+
|
131
|
+
- [Agent Bridge](agent-bridge.qmd) enables the use of agents from 3rd party frameworks like AutoGen or LangChain with Inspect.
|
132
|
+
|
133
|
+
- [Human Agent](human-agent.qmd) is a solver that enables human baselining on computing tasks.
|
134
|
+
|
135
|
+
- [Approval](approval.qmd) enable you to create fine-grained policies for approving tool calls made by model agents.
|
@@ -223,7 +223,7 @@ The best way to learn about writing sandbox environments is to look at the sourc
|
|
223
223
|
|
224
224
|
You should build your custom sandbox environment within a Python package, and then register an `inspect_ai` [setuptools entry point](https://setuptools.pypa.io/en/latest/userguide/entry_point.html). This will ensure that inspect loads your extension before it attempts to resolve a sandbox environment that uses your provider.
|
225
225
|
|
226
|
-
For example, if your package was named `
|
226
|
+
For example, if your package was named `evaltools` and your sandbox environment provider was exported from a source file named `_registry.py` at the root of your package, you would register it like this in `pyproject.toml`:
|
227
227
|
|
228
228
|
::: {.panel-tabset group="entry-points"}
|
229
229
|
## Setuptools
|
@@ -274,7 +274,9 @@ These sections describe how to create agent evaluations with Inspect:
|
|
274
274
|
|
275
275
|
- [Sandboxing](sandboxing.qmd) enables you to isolate code generated by models as well as set up more complex computing environments for tasks.
|
276
276
|
|
277
|
-
- [
|
277
|
+
- [Agent API](agents-api.qmd) describes advanced Inspect APIs available for creating evaluations with agents.
|
278
|
+
|
279
|
+
- [Agent Bridge](agent-bridge.qmd) enables the use of agents from 3rd party frameworks like AutoGen or LangChain with Inspect.
|
278
280
|
|
279
281
|
- [Human Agent](human-agent.qmd) is a solver that enables human baselining on computing tasks.
|
280
282
|
|
@@ -15,7 +15,8 @@
|
|
15
15
|
- [Models](https://inspect.ai-safety-institute.org.uk/models.html.md): Models provide a uniform API for both evaluating a variety of large language models and using models within evaluations (e.g. for critique or grading).
|
16
16
|
- [Agents](https://inspect.ai-safety-institute.org.uk/agents.html.md): Agents combine planning, memory, and tool usage to pursue more complex, longer horizon tasks. This section describes how to build agent evaluations with Inspect.
|
17
17
|
- [Sandboxing](https://inspect.ai-safety-institute.org.uk/sandboxing.html.md): Enables you to isolate code generated by models as well as set up more complex computing environments for tasks.
|
18
|
-
- [
|
18
|
+
- [Agent API](https://inspect.ai-safety-institute.org.uk/agents-api.html.md): This article describes advanced Inspect APIs available for creating evaluations with agents.
|
19
|
+
- [Agent Bridge](agent-bridge.qmd): Facility for integrating agents from 3rd party frameworks like AutoGen or LangChain.
|
19
20
|
- [Human Agent](https://inspect.ai-safety-institute.org.uk/human-agent.html.md): This article describes the `human_agent()` solver which enables human baselining for computing tasks.
|
20
21
|
- [Approval](https://inspect.ai-safety-institute.org.uk/approval.html.md): Approvals enable you to create fine-grained policies for approving tool calls made by models.
|
21
22
|
- [Eval Logs](https://inspect.ai-safety-institute.org.uk/eval-logs.html.md): Explores how to get the most out of evaluation logs for developing, debugging, and analyzing evaluations.
|