inspect-ai 0.3.51__tar.gz → 0.3.53__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (816) hide show
  1. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/.pre-commit-config.yaml +1 -1
  2. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/CHANGELOG.md +31 -0
  3. {inspect_ai-0.3.51/src/inspect_ai.egg-info → inspect_ai-0.3.53}/PKG-INFO +2 -4
  4. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/_quarto.yml +0 -3
  5. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/_sandboxenv-interface.md +1 -1
  6. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/extensions.qmd +5 -0
  7. inspect_ai-0.3.53/docs/images/task-max-sandboxes.png +0 -0
  8. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/models.qmd +10 -0
  9. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/parallelism.qmd +6 -4
  10. inspect_ai-0.3.53/docs/scripts/post-render.sh +23 -0
  11. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/tools.qmd +1 -1
  12. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/workflow.qmd +4 -0
  13. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/pyproject.toml +1 -2
  14. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/requirements.txt +0 -1
  15. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_cli/eval.py +44 -2
  16. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/config.py +4 -0
  17. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/panel.py +1 -1
  18. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/progress.py +9 -3
  19. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/results.py +8 -4
  20. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/task_detail.py +45 -13
  21. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/tasks.py +86 -5
  22. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/transcript.py +4 -17
  23. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/eval.py +29 -1
  24. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/evalset.py +7 -0
  25. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/registry.py +2 -2
  26. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/log.py +6 -1
  27. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/results.py +22 -4
  28. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/run.py +18 -12
  29. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/sandbox.py +72 -43
  30. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/task.py +4 -0
  31. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/util.py +17 -6
  32. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/logger.py +10 -2
  33. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/samples.py +7 -0
  34. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/transcript.py +8 -0
  35. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/App.css +13 -0
  36. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/assets/index.css +13 -0
  37. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/assets/index.js +105 -55
  38. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/App.mjs +31 -6
  39. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/Types.mjs +6 -0
  40. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/JsonPanel.mjs +11 -17
  41. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MessageContent.mjs +9 -2
  42. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Tools.mjs +46 -18
  43. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/navbar/Navbar.mjs +12 -0
  44. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleDisplay.mjs +18 -5
  45. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleList.mjs +2 -2
  46. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ToolEventView.mjs +2 -2
  47. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_log.py +6 -0
  48. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/eval.py +8 -7
  49. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_call_tools.py +2 -6
  50. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_generate_config.py +6 -0
  51. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_model.py +18 -4
  52. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/azureai.py +22 -2
  53. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/bedrock.py +17 -1
  54. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/hf.py +1 -1
  55. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/openai.py +32 -8
  56. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/providers.py +1 -1
  57. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/vllm.py +1 -1
  58. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_render.py +7 -6
  59. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_trace.py +1 -1
  60. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_basic_agent.py +8 -1
  61. inspect_ai-0.3.53/src/inspect_ai/tool/_tool_transcript.py +28 -0
  62. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/context.py +1 -2
  63. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/config.py +8 -10
  64. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/docker.py +9 -5
  65. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/util.py +3 -3
  66. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/environment.py +7 -2
  67. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/limits.py +1 -1
  68. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/local.py +8 -9
  69. {inspect_ai-0.3.51 → inspect_ai-0.3.53/src/inspect_ai.egg-info}/PKG-INFO +2 -4
  70. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/SOURCES.txt +4 -0
  71. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/requires.txt +1 -3
  72. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/scorer/test_metric.py +80 -0
  73. inspect_ai-0.3.53/tests/solver/test_setup.py +21 -0
  74. inspect_ai-0.3.53/tests/test_sample_id.py +28 -0
  75. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/CHANGELOG.md +9 -1
  76. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/package.json +1 -1
  77. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/extension.ts +1 -0
  78. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-panel.ts +1 -1
  79. inspect_ai-0.3.51/docs/scripts/post-render.sh +0 -13
  80. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/.github/dependabot.yml +0 -0
  81. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/.github/pull_request_template.md +0 -0
  82. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/.github/workflows/build.yml +0 -0
  83. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/.github/workflows/docs.yml +0 -0
  84. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/.github/workflows/log_viewer.yml +0 -0
  85. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/.github/workflows/pypi.yml +0 -0
  86. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/.github/workflows/vscode.yml +0 -0
  87. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/.gitignore +0 -0
  88. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/.vscode/extensions.json +0 -0
  89. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/.vscode/settings.json +0 -0
  90. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/CITATION.cff +0 -0
  91. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/LICENSE +0 -0
  92. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/Makefile +0 -0
  93. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/README.md +0 -0
  94. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/.gitignore +0 -0
  95. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/CNAME +0 -0
  96. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/_errors_and_retries.md +0 -0
  97. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/_sample-preservation.md +0 -0
  98. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/_tools-annotations-required.md +0 -0
  99. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/_tools-scaffold.md +0 -0
  100. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/_trace.md +0 -0
  101. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/_variables.yml +0 -0
  102. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/agents-api.qmd +0 -0
  103. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/agents.qmd +0 -0
  104. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/approval.qmd +0 -0
  105. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/caching.qmd +0 -0
  106. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/datasets.qmd +0 -0
  107. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/errors-and-limits.qmd +0 -0
  108. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/eval-logs.qmd +0 -0
  109. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/eval-sets.qmd +0 -0
  110. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/examples/examples.bib +0 -0
  111. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/examples/examples.css +0 -0
  112. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/examples/examples.ejs +0 -0
  113. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/examples/examples.yml +0 -0
  114. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/examples/index.qmd +0 -0
  115. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/aisi-logo.png +0 -0
  116. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/eval-log.png +0 -0
  117. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-activity-bar.png +0 -0
  118. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-multiple-models.png +0 -0
  119. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-answers.png +0 -0
  120. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-filter.png +0 -0
  121. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-history.png +0 -0
  122. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-home.png +0 -0
  123. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-info.png +0 -0
  124. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-logging-console.png +0 -0
  125. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-logging.png +0 -0
  126. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-main.png +0 -0
  127. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-messages.png +0 -0
  128. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-metadata.png +0 -0
  129. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-scoring.png +0 -0
  130. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-sort.png +0 -0
  131. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-view-splash.png +0 -0
  132. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-vscode-config.png +0 -0
  133. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-vscode-install.png +0 -0
  134. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-vscode-logview.png +0 -0
  135. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-vscode-output-channel.png +0 -0
  136. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect-vscode-run-task.png +0 -0
  137. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/inspect.png +0 -0
  138. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/logs-drop-down.png +0 -0
  139. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/logs-open-button.png +0 -0
  140. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/logs.png +0 -0
  141. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/popularity.png +0 -0
  142. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/python-tool-view.png +0 -0
  143. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/rate-limit.png +0 -0
  144. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/running-theory.png +0 -0
  145. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/toolenv-no-cleanup.png +0 -0
  146. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/images/web-browser-tool-view.png +0 -0
  147. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/index.qmd +0 -0
  148. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/interactivity.qmd +0 -0
  149. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/llms.txt +0 -0
  150. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/log-viewer.qmd +0 -0
  151. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/scorers.qmd +0 -0
  152. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/solvers.qmd +0 -0
  153. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/theme.scss +0 -0
  154. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/tutorial.qmd +0 -0
  155. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/docs/vscode.qmd +0 -0
  156. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/approval/README.md +0 -0
  157. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/approval/approval.py +0 -0
  158. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/approval/approval.yaml +0 -0
  159. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/biology_qa.py +0 -0
  160. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/browser/browser.py +0 -0
  161. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/browser/compose.yaml +0 -0
  162. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/cache.py +0 -0
  163. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/evalset.py +0 -0
  164. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/hello_world.py +0 -0
  165. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/images/ballons.png +0 -0
  166. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/images/bike.png +0 -0
  167. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/images/images.jsonl +0 -0
  168. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/images/images.py +0 -0
  169. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/intervention/Dockerfile +0 -0
  170. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/intervention/README.md +0 -0
  171. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/intervention/compose.yaml +0 -0
  172. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/intervention/intervention.py +0 -0
  173. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/langchain/.env.example +0 -0
  174. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/langchain/.gitignore +0 -0
  175. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/langchain/README.md +0 -0
  176. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/langchain/inspect_langchain.py +0 -0
  177. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/langchain/requirements.txt +0 -0
  178. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/langchain/wikipedia.jsonl +0 -0
  179. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/langchain/wikipedia.py +0 -0
  180. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/popularity.py +0 -0
  181. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/security_guide.py +0 -0
  182. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/theory_of_mind.py +0 -0
  183. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/examples/tool_use.py +0 -0
  184. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/setup.cfg +0 -0
  185. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/__init__.py +0 -0
  186. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/__main__.py +0 -0
  187. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_cli/cache.py +0 -0
  188. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_cli/common.py +0 -0
  189. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_cli/info.py +0 -0
  190. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_cli/list.py +0 -0
  191. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_cli/log.py +0 -0
  192. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_cli/main.py +0 -0
  193. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_cli/sandbox.py +0 -0
  194. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_cli/score.py +0 -0
  195. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_cli/util.py +0 -0
  196. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_cli/view.py +0 -0
  197. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/__init__.py +0 -0
  198. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/active.py +0 -0
  199. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/display.py +0 -0
  200. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/footer.py +0 -0
  201. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/group.py +0 -0
  202. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/rich.py +0 -0
  203. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/textual.py +0 -0
  204. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/rich/__init__.py +0 -0
  205. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/rich/display.py +0 -0
  206. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/app.py +0 -0
  207. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/app.tcss +0 -0
  208. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/display.py +0 -0
  209. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/theme.py +0 -0
  210. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/clock.py +0 -0
  211. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/console.py +0 -0
  212. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/footer.py +0 -0
  213. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/samples.py +0 -0
  214. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/titlebar.py +0 -0
  215. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/toggle.py +0 -0
  216. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/context.py +0 -0
  217. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/list.py +0 -0
  218. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/loader.py +0 -0
  219. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/run.py +0 -0
  220. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/score.py +0 -0
  221. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/__init__.py +0 -0
  222. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/constants.py +0 -0
  223. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/epochs.py +0 -0
  224. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/error.py +0 -0
  225. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/generate.py +0 -0
  226. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/images.py +0 -0
  227. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/rundir.py +0 -0
  228. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/_async.py +0 -0
  229. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/appdirs.py +0 -0
  230. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/config.py +0 -0
  231. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/constants.py +0 -0
  232. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/content.py +0 -0
  233. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/datetime.py +0 -0
  234. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/decorator.py +0 -0
  235. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/deprecation.py +0 -0
  236. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/dev.py +0 -0
  237. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/dict.py +0 -0
  238. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/display.py +0 -0
  239. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/dotenv.py +0 -0
  240. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/entrypoints.py +0 -0
  241. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/environ.py +0 -0
  242. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/error.py +0 -0
  243. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/file.py +0 -0
  244. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/format.py +0 -0
  245. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/git.py +0 -0
  246. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/hash.py +0 -0
  247. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/hooks.py +0 -0
  248. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/html.py +0 -0
  249. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/http.py +0 -0
  250. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/images.py +0 -0
  251. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/json.py +0 -0
  252. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/list.py +0 -0
  253. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/notebook.py +0 -0
  254. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/package.py +0 -0
  255. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/path.py +0 -0
  256. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/pattern.py +0 -0
  257. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/platform.py +0 -0
  258. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/registry.py +0 -0
  259. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/retry.py +0 -0
  260. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/rich.py +0 -0
  261. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/terminal.py +0 -0
  262. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/text.py +0 -0
  263. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/throttle.py +0 -0
  264. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/timeouts.py +0 -0
  265. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/url.py +0 -0
  266. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_util/version.py +0 -0
  267. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/notify.py +0 -0
  268. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/schema.py +0 -0
  269. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/server.py +0 -0
  270. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/view.py +0 -0
  271. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/.gitignore +0 -0
  272. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/.prettierignore +0 -0
  273. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/.tool-versions +0 -0
  274. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/README.md +0 -0
  275. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/assets/favicon.svg +0 -0
  276. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/index.html +0 -0
  277. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/eslint.config.mjs +0 -0
  278. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/favicon.svg +0 -0
  279. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/index.html +0 -0
  280. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/jsconfig.json +0 -0
  281. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/log-schema.json +0 -0
  282. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/package.json +0 -0
  283. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/postcss.config.cjs +0 -0
  284. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/Register.mjs +0 -0
  285. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/Types.mjs +0 -0
  286. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-browser.mjs +0 -0
  287. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-http.mjs +0 -0
  288. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-shared.mjs +0 -0
  289. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-vscode.mjs +0 -0
  290. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/client-api.mjs +0 -0
  291. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/index.mjs +0 -0
  292. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/jsonrpc.mjs +0 -0
  293. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Colors.mjs +0 -0
  294. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Fonts.mjs +0 -0
  295. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Icons.mjs +0 -0
  296. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Styles.mjs +0 -0
  297. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/AnsiDisplay.css +0 -0
  298. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/AnsiDisplay.mjs +0 -0
  299. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/AppErrorBoundary.mjs +0 -0
  300. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Browser.mjs +0 -0
  301. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Card.mjs +0 -0
  302. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ChatView.mjs +0 -0
  303. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/CopyButton.mjs +0 -0
  304. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Dialog.mjs +0 -0
  305. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/DownloadButton.mjs +0 -0
  306. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/DownloadPanel.mjs +0 -0
  307. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/EmptyPanel.mjs +0 -0
  308. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ErrorPanel.mjs +0 -0
  309. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ExpandablePanel.mjs +0 -0
  310. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/FindBand.mjs +0 -0
  311. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/LabeledValue.mjs +0 -0
  312. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/LargeModal.mjs +0 -0
  313. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MarkdownDiv.mjs +0 -0
  314. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MessageBand.mjs +0 -0
  315. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MetaDataGrid.mjs +0 -0
  316. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MetaDataView.mjs +0 -0
  317. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MorePopOver.mjs +0 -0
  318. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/NavPills.mjs +0 -0
  319. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ProgressBar.mjs +0 -0
  320. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/RenderedContent/ChatMessageRenderer.mjs +0 -0
  321. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/RenderedContent/RenderedContent.mjs +0 -0
  322. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/RenderedContent/Types.mjs +0 -0
  323. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/TabSet.mjs +0 -0
  324. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ToolButton.mjs +0 -0
  325. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/VirtualList.mjs +0 -0
  326. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ansi-output.js +0 -0
  327. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/constants.mjs +0 -0
  328. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/index.js +0 -0
  329. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/json/JsonTab.mjs +0 -0
  330. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log/remoteLogFile.mjs +0 -0
  331. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log-reader/Log-Reader.mjs +0 -0
  332. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log-reader/Native-Log-Reader.mjs +0 -0
  333. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log-reader/Open-AI-Log-Reader.mjs +0 -0
  334. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/navbar/SecondaryBar.mjs +0 -0
  335. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/plan/PlanCard.mjs +0 -0
  336. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleDialog.mjs +0 -0
  337. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleError.mjs +0 -0
  338. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleLimit.mjs +0 -0
  339. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleScoreView.mjs +0 -0
  340. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleScores.mjs +0 -0
  341. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleTranscript.mjs +0 -0
  342. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SamplesDescriptor.mjs +0 -0
  343. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SamplesTab.mjs +0 -0
  344. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SamplesTools.mjs +0 -0
  345. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/EpochFilter.mjs +0 -0
  346. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/SampleFilter.mjs +0 -0
  347. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/SelectScorer.mjs +0 -0
  348. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/SortFilter.mjs +0 -0
  349. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/filters.mjs +0 -0
  350. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ApprovalEventView.mjs +0 -0
  351. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ErrorEventView.mjs +0 -0
  352. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/EventPanel.mjs +0 -0
  353. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/EventRow.mjs +0 -0
  354. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/EventSection.mjs +0 -0
  355. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/InfoEventView.mjs +0 -0
  356. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/InputEventView.mjs +0 -0
  357. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/LoggerEventView.mjs +0 -0
  358. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ModelEventView.mjs +0 -0
  359. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/SampleInitEventView.mjs +0 -0
  360. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/SampleLimitEventView.mjs +0 -0
  361. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ScoreEventView.mjs +0 -0
  362. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/StepEventView.mjs +0 -0
  363. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.mjs +0 -0
  364. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptState.mjs +0 -0
  365. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptView.mjs +0 -0
  366. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/Types.mjs +0 -0
  367. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/state/StateDiffView.mjs +0 -0
  368. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventRenderers.mjs +0 -0
  369. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventView.mjs +0 -0
  370. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/sidebar/Sidebar.mjs +0 -0
  371. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/types/jsondiffpatch.d.ts +0 -0
  372. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/types/log.d.ts +0 -0
  373. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/types/prism.d.ts +0 -0
  374. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/usage/ModelTokenTable.mjs +0 -0
  375. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/usage/UsageCard.mjs +0 -0
  376. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Base64.mjs +0 -0
  377. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Format.mjs +0 -0
  378. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Git.mjs +0 -0
  379. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Html.mjs +0 -0
  380. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Json.mjs +0 -0
  381. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Path.mjs +0 -0
  382. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Print.mjs +0 -0
  383. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Type.mjs +0 -0
  384. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/attachments.mjs +0 -0
  385. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/debugging.mjs +0 -0
  386. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/http.mjs +0 -0
  387. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/queue.mjs +0 -0
  388. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/remoteZipFile.mjs +0 -0
  389. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/sync.mjs +0 -0
  390. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/vscode.mjs +0 -0
  391. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/workspace/TaskErrorPanel.mjs +0 -0
  392. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/workspace/WorkSpace.mjs +0 -0
  393. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/tsconfig.json +0 -0
  394. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/vite.config.js +0 -0
  395. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/yarn.lock +0 -0
  396. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/__init__.py +0 -0
  397. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_apply.py +0 -0
  398. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_approval.py +0 -0
  399. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_approver.py +0 -0
  400. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_auto.py +0 -0
  401. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_call.py +0 -0
  402. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/approver.py +0 -0
  403. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/console.py +0 -0
  404. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/manager.py +0 -0
  405. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/panel.py +0 -0
  406. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/util.py +0 -0
  407. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_policy.py +0 -0
  408. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/approval/_registry.py +0 -0
  409. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/__init__.py +0 -0
  410. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_dataset.py +0 -0
  411. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/bias_detection.jsonl +0 -0
  412. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/biology_qa.jsonl +0 -0
  413. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/popularity.jsonl +0 -0
  414. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/security_guide.jsonl +0 -0
  415. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/theory_of_mind.jsonl +0 -0
  416. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/csv.py +0 -0
  417. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/example.py +0 -0
  418. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/file.py +0 -0
  419. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/hf.py +0 -0
  420. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/json.py +0 -0
  421. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/util.py +0 -0
  422. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_util.py +0 -0
  423. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/__init__.py +0 -0
  424. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_bundle.py +0 -0
  425. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_condense.py +0 -0
  426. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_convert.py +0 -0
  427. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_file.py +0 -0
  428. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_message.py +0 -0
  429. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/__init__.py +0 -0
  430. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/create.py +0 -0
  431. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/file.py +0 -0
  432. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/json.py +0 -0
  433. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/recorder.py +0 -0
  434. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_retry.py +0 -0
  435. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_samples.py +0 -0
  436. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/log/_transcript.py +0 -0
  437. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/__init__.py +0 -0
  438. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_cache.py +0 -0
  439. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_chat_message.py +0 -0
  440. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_image.py +0 -0
  441. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_model_call.py +0 -0
  442. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_model_output.py +0 -0
  443. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/anthropic.py +0 -0
  444. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/cloudflare.py +0 -0
  445. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/google.py +0 -0
  446. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/grok.py +0 -0
  447. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/groq.py +0 -0
  448. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/llama_cpp_python.py +0 -0
  449. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/mistral.py +0 -0
  450. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/mockllm.py +0 -0
  451. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/ollama.py +0 -0
  452. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/openai_o1.py +0 -0
  453. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/together.py +0 -0
  454. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/__init__.py +0 -0
  455. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/chatapi.py +0 -0
  456. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/hf_handler.py +0 -0
  457. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/llama31.py +0 -0
  458. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/util.py +0 -0
  459. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/vertex.py +0 -0
  460. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/model/_registry.py +0 -0
  461. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/py.typed +0 -0
  462. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/__init__.py +0 -0
  463. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_answer.py +0 -0
  464. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_choice.py +0 -0
  465. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_classification.py +0 -0
  466. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_common.py +0 -0
  467. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_match.py +0 -0
  468. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metric.py +0 -0
  469. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/__init__.py +0 -0
  470. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/accuracy.py +0 -0
  471. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/mean.py +0 -0
  472. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/std.py +0 -0
  473. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_model.py +0 -0
  474. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_multi.py +0 -0
  475. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_pattern.py +0 -0
  476. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/__init__.py +0 -0
  477. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/reducer.py +0 -0
  478. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/registry.py +0 -0
  479. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/types.py +0 -0
  480. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_score.py +0 -0
  481. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_scorer.py +0 -0
  482. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_target.py +0 -0
  483. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/__init__.py +0 -0
  484. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_chain.py +0 -0
  485. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_critique.py +0 -0
  486. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_fork.py +0 -0
  487. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_multiple_choice.py +0 -0
  488. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_plan.py +0 -0
  489. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_prompt.py +0 -0
  490. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_solver.py +0 -0
  491. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_task_state.py +0 -0
  492. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_transcript.py +0 -0
  493. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_use_tools.py +0 -0
  494. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/solver/_util.py +0 -0
  495. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/__init__.py +0 -0
  496. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool.py +0 -0
  497. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_call.py +0 -0
  498. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_choice.py +0 -0
  499. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_def.py +0 -0
  500. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_description.py +0 -0
  501. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_info.py +0 -0
  502. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_params.py +0 -0
  503. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_with.py +0 -0
  504. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_execute.py +0 -0
  505. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/__init__.py +0 -0
  506. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/Dockerfile +0 -0
  507. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/README.md +0 -0
  508. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/accessibility_node.py +0 -0
  509. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/dm_env_servicer.py +0 -0
  510. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/images/usage_diagram.png +0 -0
  511. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/mock_environment.py +0 -0
  512. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/playwright_crawler.py +0 -0
  513. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_accessibility_node.py +0 -0
  514. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_dm_env_servicer.py +0 -0
  515. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_playwright_crawler.py +0 -0
  516. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_web_environment.py +0 -0
  517. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client.py +0 -0
  518. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client_new_session.py +0 -0
  519. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_environment.py +0 -0
  520. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_server.py +0 -0
  521. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_web_browser.py +0 -0
  522. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_search.py +0 -0
  523. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/__init__.py +0 -0
  524. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_concurrency.py +0 -0
  525. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_console.py +0 -0
  526. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_panel.py +0 -0
  527. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_resource.py +0 -0
  528. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/__init__.py +0 -0
  529. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/cleanup.py +0 -0
  530. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/compose.py +0 -0
  531. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/internal.py +0 -0
  532. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/prereqs.py +0 -0
  533. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/registry.py +0 -0
  534. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/self_check.py +0 -0
  535. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/service.py +0 -0
  536. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_store.py +0 -0
  537. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_subprocess.py +0 -0
  538. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_subtask.py +0 -0
  539. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai/util/_trace.py +0 -0
  540. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/dependency_links.txt +0 -0
  541. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/entry_points.txt +0 -0
  542. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/top_level.txt +0 -0
  543. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/approval/approve.yaml +0 -0
  544. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/approval/escalate.yaml +0 -0
  545. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/approval/modify.yaml +0 -0
  546. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/approval/reject.yaml +0 -0
  547. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/approval/terminate.yaml +0 -0
  548. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/approval/test_approval.py +0 -0
  549. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/conftest.py +0 -0
  550. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/dataset/test_dataset/dataset.jsonl +0 -0
  551. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/dataset/test_dataset/images/ballons.png +0 -0
  552. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/dataset/test_dataset/images.jsonl +0 -0
  553. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples-md.csv +0 -0
  554. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples-md.json +0 -0
  555. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples-md.jsonl +0 -0
  556. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples.csv +0 -0
  557. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples.json +0 -0
  558. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples.jsonl +0 -0
  559. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/dataset/test_dataset.py +0 -0
  560. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_formats.json +0 -0
  561. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_images.json +0 -0
  562. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_images_tc.json +0 -0
  563. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_invalid.txt +0 -0
  564. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_length_stop_reason.txt +0 -0
  565. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_streaming.eval +0 -0
  566. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_valid.txt +0 -0
  567. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_version_3.txt +0 -0
  568. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_with_nan.txt +0 -0
  569. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_eval_log.py +0 -0
  570. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_list_logs/2024-11-05T13-31-45-05-00_input-task_8zXjbRzCWrL9GXiXo2vus9.json +0 -0
  571. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_list_logs/2024-11-05T13-32-37-05-00_input-task_hxs4q9azL3ySGkjJirypKZ.eval +0 -0
  572. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_list_logs/custom.eval +0 -0
  573. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_list_logs/ignore.json +0 -0
  574. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_list_logs.py +0 -0
  575. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_log_attachments.py +0 -0
  576. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_log_formats.py +0 -0
  577. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_log_level.py +0 -0
  578. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_log_streaming.py +0 -0
  579. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/log/test_log_tags.py +0 -0
  580. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_anthropic.py +0 -0
  581. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_azureai.py +0 -0
  582. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_cloudflare.py +0 -0
  583. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_google.py +0 -0
  584. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_grok.py +0 -0
  585. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_groq.py +0 -0
  586. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_hf.py +0 -0
  587. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_llama_cpp_python.py +0 -0
  588. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_openai.py +0 -0
  589. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_openai_o1.py +0 -0
  590. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_vertex.py +0 -0
  591. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/providers/test_vllm.py +0 -0
  592. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/test_api_key.py +0 -0
  593. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/test_collapse_assistant_message.py +0 -0
  594. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/test_collapse_user_message.py +0 -0
  595. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/test_disable.py +0 -0
  596. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/test_logprobs.py +0 -0
  597. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/test_mock_model_llm.py +0 -0
  598. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/test_num_choices.py +0 -0
  599. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/test_parse_tool_call.py +0 -0
  600. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/model/test_stop_reason.py +0 -0
  601. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/scorer/test_answer.py +0 -0
  602. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/scorer/test_choice.py +0 -0
  603. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/scorer/test_classification.py +0 -0
  604. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/scorer/test_match.py +0 -0
  605. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/scorer/test_model_graded.py +0 -0
  606. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/scorer/test_multiscorer.py +0 -0
  607. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/scorer/test_pattern.py +0 -0
  608. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/scorer/test_reducers.py +0 -0
  609. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/scorer/test_scorer.py +0 -0
  610. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/scorer/test_value_to_float.py +0 -0
  611. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/solver/test_basic_agent.py +0 -0
  612. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/solver/test_chain.py +0 -0
  613. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/solver/test_fork.py +0 -0
  614. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/solver/test_multiple_choice.py +0 -0
  615. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/solver/test_prompt.py +0 -0
  616. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/solver/test_solver.py +0 -0
  617. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/solver/test_solver_decorator.py +0 -0
  618. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/solver/test_solver_spec.py +0 -0
  619. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/solver/test_store.py +0 -0
  620. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/solver/test_subtask.py +0 -0
  621. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/solver/test_transcript.py +0 -0
  622. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_eval.py +0 -0
  623. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_eval_config/model.yaml +0 -0
  624. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_eval_config/solver.yaml +0 -0
  625. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_eval_config/task.yaml +0 -0
  626. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_eval_config.py +0 -0
  627. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_eval_set/2024-08-29T15-11-17+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
  628. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_eval_set/2024-08-29T15-11-18+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
  629. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_eval_set.py +0 -0
  630. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_examples.py +0 -0
  631. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_extensions.py +0 -0
  632. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_fail_on_error.py +0 -0
  633. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_helpers/__init__.py +0 -0
  634. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_helpers/tasks.py +0 -0
  635. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_helpers/tool_call_utils.py +0 -0
  636. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_helpers/tools.py +0 -0
  637. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_helpers/utils.py +0 -0
  638. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_list_task.py +0 -0
  639. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_log_dir/example_task/example_task.py +0 -0
  640. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_log_dir/test_log_dir.py +0 -0
  641. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_package/.gitignore +0 -0
  642. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_package/inspect_package/__init__.py +0 -0
  643. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_package/inspect_package/_registry.py +0 -0
  644. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_package/inspect_package/approvers/renamer.py +0 -0
  645. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_package/inspect_package/modelapi/custom.py +0 -0
  646. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_package/inspect_package/py.typed +0 -0
  647. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_package/inspect_package/sandboxenv/podman.py +0 -0
  648. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_package/inspect_package/score/scorer.py +0 -0
  649. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_package/inspect_package/solvers/cot.py +0 -0
  650. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_package/pyproject.toml +0 -0
  651. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_retry.py +0 -0
  652. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_run_dir/task1/task1.py +0 -0
  653. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_run_dir/task2/task2.py +0 -0
  654. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_run_dir.py +0 -0
  655. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_sample_limits.py +0 -0
  656. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_attr.py +0 -0
  657. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/__init__.py +0 -0
  658. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/attribs.ipynb +0 -0
  659. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/multiple.py +0 -0
  660. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/_decoy/testit.py +0 -0
  661. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/_decoy2.py +0 -0
  662. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/bar.py +0 -0
  663. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/foo.py +0 -0
  664. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/recurse/.folder3/epsilon.py +0 -0
  665. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder1/_decoy.py +0 -0
  666. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder1/theta.py +0 -0
  667. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder2/.folder3/epsilon.py +0 -0
  668. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder2/another.py +0 -0
  669. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder2/first.py +0 -0
  670. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/docker-compose-context/Dockerfile +0 -0
  671. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/docker-compose-context-alpine/Dockerfile +0 -0
  672. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_bash_tool.py +0 -0
  673. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_max_exec_output.py +0 -0
  674. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_max_tool_output.py +0 -0
  675. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_python_tool.py +0 -0
  676. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_sandbox_compose.yaml +0 -0
  677. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_sandbox_compose_alpine.yaml +0 -0
  678. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_sandbox_docker_and_local.py +0 -0
  679. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_sandbox_dockerfile.py +0 -0
  680. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_sandbox_tool_eval.py +0 -0
  681. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_tool_def.py +0 -0
  682. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_tool_parse.py +0 -0
  683. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_tool_types.py +0 -0
  684. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_tool_view.py +0 -0
  685. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_tool_with.py +0 -0
  686. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_tools.py +0 -0
  687. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_use_tools.py +0 -0
  688. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_web_browser.py +0 -0
  689. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/tools/test_web_browser_compose.yaml +0 -0
  690. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/sandbox/docker_compose_multiple_services/docker-compose.yaml +0 -0
  691. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/sandbox/sandbox_setup.sh +0 -0
  692. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/sandbox/test_docker_compose_multiple_services.py +0 -0
  693. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/sandbox/test_sandbox_service.py +0 -0
  694. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/sandbox/test_sandbox_setup.py +0 -0
  695. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/test_file.py +0 -0
  696. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/test_images/images.jsonl +0 -0
  697. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/test_images.py +0 -0
  698. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/test_package.py +0 -0
  699. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/test_registry.py +0 -0
  700. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/test_str_to_float.py +0 -0
  701. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/util/test_subprocess.py +0 -0
  702. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tests/view/test_bundle.py +0 -0
  703. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/.eslintrc.json +0 -0
  704. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/.gitignore +0 -0
  705. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/.vscode/extensions.json +0 -0
  706. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/.vscode/launch.json +0 -0
  707. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/.vscode/settings.json +0 -0
  708. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/.vscode/tasks.json +0 -0
  709. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/.vscode-test.mjs +0 -0
  710. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/.vscodeignore +0 -0
  711. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/.yarnrc +0 -0
  712. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/LICENSE +0 -0
  713. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/README.md +0 -0
  714. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/assets/icon/eval-treeview.svg +0 -0
  715. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/assets/icon/eval.svg +0 -0
  716. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/assets/logo/inspect.png +0 -0
  717. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/assets/logo/inspect.svg +0 -0
  718. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/assets/templates/task.py.template +0 -0
  719. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/assets/www/codicon/codicon.css +0 -0
  720. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/assets/www/codicon/codicon.ttf +0 -0
  721. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/assets/www/view/view-overrides.css +0 -0
  722. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/@types/hooks.d.ts +0 -0
  723. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/@types/log.d.ts +0 -0
  724. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/components/document.ts +0 -0
  725. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/components/error.ts +0 -0
  726. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/components/focus.ts +0 -0
  727. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/components/notebook.ts +0 -0
  728. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/components/symbol.ts +0 -0
  729. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/components/task.ts +0 -0
  730. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/components/templates.ts +0 -0
  731. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/components/webview.ts +0 -0
  732. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/appdirs.ts +0 -0
  733. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/command.ts +0 -0
  734. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/dispose.ts +0 -0
  735. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/env.ts +0 -0
  736. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/file.ts +0 -0
  737. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/git.ts +0 -0
  738. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/jsonrpc.ts +0 -0
  739. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/log.ts +0 -0
  740. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/nonce.ts +0 -0
  741. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/path.ts +0 -0
  742. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/port.ts +0 -0
  743. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/process.ts +0 -0
  744. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/python/code.ts +0 -0
  745. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/python/env.ts +0 -0
  746. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/python/exec.ts +0 -0
  747. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/python/index.ts +0 -0
  748. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/python/interpreter.ts +0 -0
  749. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/random.ts +0 -0
  750. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/string.ts +0 -0
  751. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/text.ts +0 -0
  752. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/uri.ts +0 -0
  753. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/vscode/association.ts +0 -0
  754. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/wait.ts +0 -0
  755. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/core/workspace.ts +0 -0
  756. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/hooks/hooks.ts +0 -0
  757. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/hooks/index.ts +0 -0
  758. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/hooks/preview.ts +0 -0
  759. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/inspect/index.ts +0 -0
  760. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/inspect/logs.ts +0 -0
  761. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/inspect/props.ts +0 -0
  762. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/inspect/version.ts +0 -0
  763. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/active-task/active-task-command.ts +0 -0
  764. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/active-task/active-task-provider.ts +0 -0
  765. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/activity-bar-provider.ts +0 -0
  766. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/env-config-provider.ts +0 -0
  767. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-directory-selector.ts +0 -0
  768. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-data.ts +0 -0
  769. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-mru.ts +0 -0
  770. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-provider.ts +0 -0
  771. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing.ts +0 -0
  772. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-config-commands.ts +0 -0
  773. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-config-provider.ts +0 -0
  774. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-outline-commands.ts +0 -0
  775. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-outline-provider.ts +0 -0
  776. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.css +0 -0
  777. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.ts +0 -0
  778. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.css +0 -0
  779. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.ts +0 -0
  780. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/vscode-controls.css +0 -0
  781. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/webview-utils.ts +0 -0
  782. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/codelens/codelens-provider.ts +0 -0
  783. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-commands.ts +0 -0
  784. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-constants.ts +0 -0
  785. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-eval-commands.ts +0 -0
  786. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-eval.ts +0 -0
  787. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-logs-watcher.ts +0 -0
  788. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-manager.ts +0 -0
  789. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-view-server.ts +0 -0
  790. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/lognotify.ts +0 -0
  791. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/commands.ts +0 -0
  792. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-editor.ts +0 -0
  793. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-link-provider.ts +0 -0
  794. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-state.ts +0 -0
  795. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-view.ts +0 -0
  796. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview.ts +0 -0
  797. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/openlog.ts +0 -0
  798. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/protocol-handler.ts +0 -0
  799. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/settings/inspect-settings.ts +0 -0
  800. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/settings/user-settings.ts +0 -0
  801. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/statusbar.ts +0 -0
  802. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-env-commands.ts +0 -0
  803. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-env-provider.ts +0 -0
  804. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-init.ts +0 -0
  805. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-state-provider.ts +0 -0
  806. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-task-provider.ts +0 -0
  807. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/src/test/extension.test.ts +0 -0
  808. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/.gitignore +0 -0
  809. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/package.json +0 -0
  810. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/rollup.config.js +0 -0
  811. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/src/index.ts +0 -0
  812. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/src/jsonrpc.ts +0 -0
  813. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/yarn.lock +0 -0
  814. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/tsconfig.json +0 -0
  815. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/webpack.config.js +0 -0
  816. {inspect_ai-0.3.51 → inspect_ai-0.3.53}/tools/vscode/yarn.lock +0 -0
@@ -5,7 +5,7 @@ default_language_version:
5
5
  python: python3.11
6
6
  repos:
7
7
  - repo: https://github.com/astral-sh/ruff-pre-commit
8
- rev: v0.8.2
8
+ rev: v0.8.3
9
9
  hooks:
10
10
  # Run the linter.
11
11
  - id: ruff
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.3.53 (20 December 2024)
4
+
5
+ - OpenAI: Support for o1 including native tool calling and `reasoning_effort` generation option.
6
+ - Task API: Introduce `setup` step that always runs even if `solver` is replaced.
7
+ - Bedrock: Support for tool calling on Nova models.
8
+ - Bedrock: Support for custom `model_args` passed through to `session.Client`.
9
+ - Bedrock: Support for `jpeg` images.
10
+ - Bedrock: Correct max_tokens for llama3-8b, llama3-70b models on Bedrock.
11
+ - Inspect View: Various improvements to appearance of tool calls in transcript.
12
+ - Task display: Ensure that widths of progress elements are kept consistant across tasks.
13
+ - Sandboxes: New `max_sandboxes` option for (per-provider) maximum number of running sandboxes.
14
+ - Sandboxes: Remove use of aiofiles to mitigate potential for threading deadlocks.
15
+ - Concurrency: Do not use `max_tasks` as a lower bound for `max_samples`.
16
+ - Log recorder: Always re-open log buffer for `eval` format logs.
17
+ - Bugfix: Proper handling of text find for eval raw JSON display
18
+ - Bugfix: Correct handling for `--sample-id` integer comparisons.
19
+ - Bugfix: Proper removal of model_args with falsey values (explicit check for `None`)
20
+ - Bugfix: Properly handle custom metrics that return dictionaries or lists
21
+ - Bugfix: Proper sample count display when retrying an evaluation
22
+ - Bugfix: Fix inability to define and run tasks in a notebook.
23
+
24
+ ## v0.3.52 (13 December 2024)
25
+
26
+ - Eval: `--sample-id` option for evaluating specific sample id(s).
27
+ - Bedrock: Detect and report HTTP rate limit errors.
28
+ - Azure AI: Add `emulate_tools` model arg to force tool emulation (emulation is enabled by default for Llama models).
29
+ - Basic Agent: Add `max_tool_output` parameter to override default max tool output from generate config.
30
+ - Inspect View: Correct display of sample ID for single sample tasks.
31
+ - Trace: Show custom tool views in `--trace` mode.
32
+ - Bugfix: Support for dynamic metric names in realtime scoring display.
33
+
3
34
  ## v0.3.51 (13 December 2024)
4
35
 
5
36
  - Bugfix: Task display fails to load when no scorers are defined for a task.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: inspect_ai
3
- Version: 0.3.51
3
+ Version: 0.3.53
4
4
  Summary: Framework for large language model evaluations
5
5
  Author: UK AI Safety Institute
6
6
  License: MIT License
@@ -20,7 +20,6 @@ Classifier: Operating System :: OS Independent
20
20
  Requires-Python: >=3.10
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
- Requires-Dist: aiofiles
24
23
  Requires-Dist: aiohttp>=3.9.0
25
24
  Requires-Dist: anyio>=4.4.0
26
25
  Requires-Dist: beautifulsoup4
@@ -68,10 +67,9 @@ Requires-Dist: pytest-asyncio; extra == "dev"
68
67
  Requires-Dist: pytest-cov; extra == "dev"
69
68
  Requires-Dist: pytest-dotenv; extra == "dev"
70
69
  Requires-Dist: pytest-xdist; extra == "dev"
71
- Requires-Dist: ruff==0.8.2; extra == "dev"
70
+ Requires-Dist: ruff==0.8.3; extra == "dev"
72
71
  Requires-Dist: textual-dev>=0.86.2; extra == "dev"
73
72
  Requires-Dist: types-PyYAML; extra == "dev"
74
- Requires-Dist: types-aiofiles; extra == "dev"
75
73
  Requires-Dist: types-beautifulsoup4; extra == "dev"
76
74
  Requires-Dist: types-aioboto3; extra == "dev"
77
75
  Requires-Dist: types-boto3; extra == "dev"
@@ -98,9 +98,6 @@ format:
98
98
  toc-depth: 3
99
99
  number-sections: false
100
100
  code-annotations: select
101
- gfm:
102
- output-ext: html.lmd
103
-
104
101
 
105
102
  execute:
106
103
  enabled: false
@@ -19,7 +19,7 @@ class SandboxEnvironment:
19
19
  PermissionError: If the user does not have
20
20
  permission to execute the command.
21
21
  OutputLimitExceededError: If an output stream
22
- exceeds the 1 MiB limit.
22
+ exceeds the 10 MiB limit.
23
23
  """
24
24
  ...
25
25
 
@@ -125,6 +125,10 @@ class PodmanSandboxEnvironment(SandboxEnvironment):
125
125
  def config_files(cls) -> list[str]:
126
126
  ...
127
127
 
128
+ @classmethod
129
+ def default_concurrency(cls) -> int | None:
130
+ ...
131
+
128
132
  @classmethod
129
133
  async def task_init(
130
134
  cls, task_name: str, config: SandboxEnvironmentConfigType | None
@@ -180,6 +184,7 @@ The class methods take care of various stages of initialisation, setup, and tear
180
184
  | Method | Lifecycle | Purpose |
181
185
  |-------------------|-------------------|----------------------------------|
182
186
  | `config_files()` | Called once to determine the names of 'default' config files for this provider (e.g. 'compose.yaml'). | |
187
+ | `default_concurrency()` | Called once to determine the default maximum number of sandboxes to run in parallel. Return `None` for no limit (the default behavior). | |
183
188
  | `task_init()` | Called once for each unique sandbox environment config before executing the tasks in an `eval()` run. | Expensive initialisation operations (e.g. pulling or building images) |
184
189
  | `sample_init()` | Called at the beginning of each `Sample`. | Create `SandboxEnvironment` instances for the sample. |
185
190
  | `sample_cleanup()` | Called at the end of each `Sample` | Cleanup `SandboxEnvironment` instances for the sample. |
@@ -187,6 +187,16 @@ $ export AZUREAI_BASE_URL=https://your-url-at.azure.com
187
187
  $ inspect eval --model azureai/llama-2-70b-chat-wnsnw
188
188
  ```
189
189
 
190
+ #### Tool Emulation
191
+
192
+ When using the `azureai` model provider, tool calling support can be 'emulated' for models that Azure AI has not yet implemented tool calling for. This occurs by default for Llama models. For other models, use the `emulate_tools` model arg to force tool emulation:
193
+
194
+ ```bash
195
+ inspect eval ctf.py -M emulate_tools=true
196
+ ```
197
+
198
+ You can also use this option to disable tool emulation for Llama models with `emulate_tools=false`.
199
+
190
200
  ### AWS Bedrock {#aws-bedrock}
191
201
 
192
202
  [AWS Bedrock](https://aws.amazon.com/bedrock/) provides hosting of models from Anthropic as well as a wide variety of other open models. Note that all models on AWS Bedrock require that you [request model access](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html) before using them in a deployment (in some cases access is granted immediately, in other cases it could one or more days).
@@ -122,13 +122,15 @@ This code will evaluate a total of 12 tasks (6 temperature variations against 2
122
122
 
123
123
  [Sandbox Environments](agents.qmd#sec-sandbox-environments) (e.g. Docker containers) often allocate resources on a per-sample basis, and also make use of the Inspect `subprocess()` function for executing commands within the environment.
124
124
 
125
- ### Max Samples
125
+ ### Max Sandboxes
126
126
 
127
- The `max_samples` option determines how many samples are executed in parallel (and in the case of Docker containers how many containers are run in parallel). By default, `max_samples` is set to `max_connections` so that the connection to the Model API can be fully utilised.
127
+ The `max_sandboxes` option determines how many sandboxes can be executed in parallel. Individual sandbox providers can establish their own default limits (for example, the Docker provider has a default of `2 * os.cpu_count()`). You can modify this option as required, but be aware that container runtimes have resource limits, and pushing up against and beyond them can lead to instability and failed evaluations.
128
128
 
129
- Since sandbox environments include additional expensive operations beyond calling models, you may want to increase `max_samples` to fully saturate both the Model API and container subprocesses used for tool execution. When running an evaluation you'll see an indicator of how many connections and how many subprocesses are currently active. If neither is at capacity then you will likely benefit from increasing `max_samples`.
129
+ When a `max_sandboxes` is applied, an indicator at the bottom of the task status screen will be shown:
130
130
 
131
- Note that setting `max_samples` to an arbitrarily high number does have some disadvantages: you will consume more memory (especially if using sandbox environments) as well as wait longer for completed samples to be logged (so could be subject to losing more work if your eval task fails).
131
+ ![](images/task-max-sandboxes.png)
132
+
133
+ Note that when `max_sandboxes` is applied this effectively creates a global `max_samples` limit that is equal to the `max_sandboxes`.
132
134
 
133
135
  ### Max Subprocesses
134
136
 
@@ -0,0 +1,23 @@
1
+ #!/bin/bash
2
+
3
+ files=("index" "tutorial" "workflow" "log-viewer" "vscode" "solvers" "tools" "agents" "agents-api" "scorers" "datasets" "models" "eval-sets" "errors-and-limits" "caching" "parallelism" "interactivity" "approval" "eval-logs" "extensions")
4
+
5
+
6
+ if [ "$QUARTO_PROJECT_RENDER_ALL" = "1" ]; then
7
+ llms_full="_site/llms-full.txt"
8
+ rm -f "${llms_full}"
9
+ mv _quarto.yml _quarto.yml.bak
10
+ for file in "${files[@]}"; do
11
+ echo "llms: ${file}.qmd"
12
+ quarto render "${file}.qmd" --to gfm --quiet --no-execute
13
+ output_file="${file}.md"
14
+ cat "${output_file}" >> "${llms_full}"
15
+ echo "" >> "${llms_full}"
16
+ mv $output_file "_site/${file}.html.md"
17
+ done
18
+ mv _quarto.yml.bak _quarto.yml
19
+ fi
20
+
21
+
22
+
23
+
@@ -100,7 +100,7 @@ If you do not explicitly handle errors, then Inspect provides some default error
100
100
 
101
101
  - `UnicodeDecodeError` — Occurs when the output from executing a process or reading a file is binary rather than text.
102
102
 
103
- - `OutputLimitExceededError` - Occurs when one or both of the output streams from `sandbox().exec()` exceed 1 MiB or when attempting to read a file over 100 MiB in size.
103
+ - `OutputLimitExceededError` - Occurs when one or both of the output streams from `sandbox().exec()` exceed 10 MiB or when attempting to read a file over 100 MiB in size.
104
104
 
105
105
  - `ToolError` — Special error thrown by tools to indicate they'd like to report an error to the model.
106
106
 
@@ -170,6 +170,10 @@ There are several other command line options you can pass to eval. Here are some
170
170
  # limit to 10 samples
171
171
  $ inspect eval theory.py --limit 10
172
172
 
173
+ # limit to specific sample id(s)
174
+ $ inspect eval theory.py --sample-id 10
175
+ $ insepct eval theory.py --sample_id 9,10
176
+
173
177
  # limit tokens
174
178
  $ inspect eval theory.py --max-tokens 128
175
179
 
@@ -129,10 +129,9 @@ dev = [
129
129
  "pytest-cov",
130
130
  "pytest-dotenv",
131
131
  "pytest-xdist",
132
- "ruff==0.8.2", # match version specified in .pre-commit-config.yaml
132
+ "ruff==0.8.3", # match version specified in .pre-commit-config.yaml
133
133
  "textual-dev>=0.86.2",
134
134
  "types-PyYAML",
135
- "types-aiofiles",
136
135
  "types-beautifulsoup4",
137
136
  "types-aioboto3",
138
137
  "types-boto3",
@@ -1,4 +1,3 @@
1
- aiofiles
2
1
  aiohttp>=3.9.0
3
2
  anyio>=4.4.0 # not directly required, pinned by Snyk to avoid a vulnerability
4
3
  beautifulsoup4
@@ -12,7 +12,7 @@ from inspect_ai._util.constants import (
12
12
  DEFAULT_MAX_RETRIES,
13
13
  )
14
14
  from inspect_ai._util.file import filesystem
15
- from inspect_ai._util.samples import parse_samples_limit
15
+ from inspect_ai._util.samples import parse_sample_id, parse_samples_limit
16
16
  from inspect_ai.log._file import log_file_info
17
17
  from inspect_ai.model import GenerateConfigArgs
18
18
  from inspect_ai.scorer._reducer import create_reducers
@@ -30,6 +30,7 @@ MAX_TASKS_HELP = "Maximum number of tasks to run in parallel (default is 1)"
30
30
  MAX_SUBPROCESSES_HELP = (
31
31
  "Maximum number of subprocesses to run in parallel (default is os.cpu_count())"
32
32
  )
33
+ MAX_SANDBOXES_HELP = "Maximum number of sandboxes (per-provider) to run in parallel."
33
34
  NO_SANDBOX_CLEANUP_HELP = "Do not cleanup sandbox environments after task completes"
34
35
  FAIL_ON_ERROR_HELP = "Threshold of sample errors to tolerage (by default, evals fail when any error occurs). Value between 0 to 1 to set a proportion; value greater than 1 to set a count."
35
36
  NO_LOG_SAMPLES_HELP = "Do not include samples in the log file."
@@ -144,6 +145,12 @@ def eval_options(func: Callable[..., Any]) -> Callable[..., click.Context]:
144
145
  help="Limit samples to evaluate e.g. 10 or 10-20",
145
146
  envvar="INSPECT_EVAL_LIMIT",
146
147
  )
148
+ @click.option(
149
+ "--sample-id",
150
+ type=str,
151
+ help="Evaluate specific sample(s) (comma separated list of ids)",
152
+ envvar="INSPECT_EVAL_SAMPLE_ID",
153
+ )
147
154
  @click.option(
148
155
  "--epochs",
149
156
  type=int,
@@ -186,6 +193,12 @@ def eval_options(func: Callable[..., Any]) -> Callable[..., click.Context]:
186
193
  help=MAX_SUBPROCESSES_HELP,
187
194
  envvar="INSPECT_EVAL_MAX_SUBPROCESSES",
188
195
  )
196
+ @click.option(
197
+ "--max-sandboxes",
198
+ type=int,
199
+ help=MAX_SANDBOXES_HELP,
200
+ envvar="INSPECT_EVAL_MAX_SANDBOXES",
201
+ )
189
202
  @click.option(
190
203
  "--message-limit",
191
204
  type=int,
@@ -355,6 +368,12 @@ def eval_options(func: Callable[..., Any]) -> Callable[..., click.Context]:
355
368
  help='Cache prompt prefix (Anthropic only). Defaults to "auto", which will enable caching for requests with tools.',
356
369
  envvar="INSPECT_EVAL_CACHE_PROMPT",
357
370
  )
371
+ @click.option(
372
+ "--reasoning-effort",
373
+ type=click.Choice(["low", "medium", "high"]),
374
+ help="Constrains effort on reasoning for reasoning models. Open AI o1 models only.",
375
+ envvar="INSPECT_EVAL_REASONING_EFFORT",
376
+ )
358
377
  @click.option(
359
378
  "--log-format",
360
379
  type=click.Choice(["eval", "json"], case_sensitive=False),
@@ -391,6 +410,7 @@ def eval_command(
391
410
  epochs: int | None,
392
411
  epochs_reducer: str | None,
393
412
  limit: str | None,
413
+ sample_id: str | None,
394
414
  max_retries: int | None,
395
415
  timeout: int | None,
396
416
  max_connections: int | None,
@@ -412,12 +432,14 @@ def eval_command(
412
432
  parallel_tool_calls: bool | None,
413
433
  max_tool_output: int | None,
414
434
  cache_prompt: str | None,
435
+ reasoning_effort: str | None,
415
436
  message_limit: int | None,
416
437
  token_limit: int | None,
417
438
  time_limit: int | None,
418
439
  max_samples: int | None,
419
440
  max_tasks: int | None,
420
441
  max_subprocesses: int | None,
442
+ max_sandboxes: int | None,
421
443
  fail_on_error: bool | float | None,
422
444
  no_fail_on_error: bool | None,
423
445
  no_log_samples: bool | None,
@@ -458,12 +480,14 @@ def eval_command(
458
480
  epochs=epochs,
459
481
  epochs_reducer=epochs_reducer,
460
482
  limit=limit,
483
+ sample_id=sample_id,
461
484
  message_limit=message_limit,
462
485
  token_limit=token_limit,
463
486
  time_limit=time_limit,
464
487
  max_samples=max_samples,
465
488
  max_tasks=max_tasks,
466
489
  max_subprocesses=max_subprocesses,
490
+ max_sandboxes=max_sandboxes,
467
491
  fail_on_error=fail_on_error,
468
492
  no_fail_on_error=no_fail_on_error,
469
493
  debug_errors=common["debug_errors"],
@@ -543,6 +567,7 @@ def eval_set_command(
543
567
  epochs: int | None,
544
568
  epochs_reducer: str | None,
545
569
  limit: str | None,
570
+ sample_id: str | None,
546
571
  max_retries: int | None,
547
572
  timeout: int | None,
548
573
  max_connections: int | None,
@@ -564,12 +589,14 @@ def eval_set_command(
564
589
  parallel_tool_calls: bool | None,
565
590
  max_tool_output: int | None,
566
591
  cache_prompt: str | None,
592
+ reasoning_effort: str | None,
567
593
  message_limit: int | None,
568
594
  token_limit: int | None,
569
595
  time_limit: int | None,
570
596
  max_samples: int | None,
571
597
  max_tasks: int | None,
572
598
  max_subprocesses: int | None,
599
+ max_sandboxes: int | None,
573
600
  fail_on_error: bool | float | None,
574
601
  no_fail_on_error: bool | None,
575
602
  no_log_samples: bool | None,
@@ -612,12 +639,14 @@ def eval_set_command(
612
639
  epochs=epochs,
613
640
  epochs_reducer=epochs_reducer,
614
641
  limit=limit,
642
+ sample_id=sample_id,
615
643
  message_limit=message_limit,
616
644
  token_limit=token_limit,
617
645
  time_limit=time_limit,
618
646
  max_samples=max_samples,
619
647
  max_tasks=max_tasks,
620
648
  max_subprocesses=max_subprocesses,
649
+ max_sandboxes=max_sandboxes,
621
650
  fail_on_error=fail_on_error,
622
651
  no_fail_on_error=no_fail_on_error,
623
652
  debug_errors=common["debug_errors"],
@@ -662,12 +691,14 @@ def eval_exec(
662
691
  epochs: int | None,
663
692
  epochs_reducer: str | None,
664
693
  limit: str | None,
694
+ sample_id: str | None,
665
695
  message_limit: int | None,
666
696
  token_limit: int | None,
667
697
  time_limit: int | None,
668
698
  max_samples: int | None,
669
699
  max_tasks: int | None,
670
700
  max_subprocesses: int | None,
701
+ max_sandboxes: int | None,
671
702
  fail_on_error: bool | float | None,
672
703
  no_fail_on_error: bool | None,
673
704
  debug_errors: bool | None,
@@ -699,8 +730,9 @@ def eval_exec(
699
730
  else None
700
731
  )
701
732
 
702
- # resolve range
733
+ # resolve range and sample id
703
734
  eval_limit = parse_samples_limit(limit)
735
+ eval_sample_id = parse_sample_id(sample_id)
704
736
 
705
737
  # resolve fail_on_error
706
738
  if no_fail_on_error is True:
@@ -734,6 +766,7 @@ def eval_exec(
734
766
  log_dir=log_dir,
735
767
  log_format=log_format,
736
768
  limit=eval_limit,
769
+ sample_id=eval_sample_id,
737
770
  epochs=eval_epochs,
738
771
  fail_on_error=fail_on_error,
739
772
  debug_errors=debug_errors,
@@ -743,6 +776,7 @@ def eval_exec(
743
776
  max_samples=max_samples,
744
777
  max_tasks=max_tasks,
745
778
  max_subprocesses=max_subprocesses,
779
+ max_sandboxes=max_sandboxes,
746
780
  log_samples=log_samples,
747
781
  log_images=log_images,
748
782
  log_buffer=log_buffer,
@@ -821,6 +855,12 @@ def parse_comma_separated(value: str | None) -> list[str] | None:
821
855
  help=MAX_SUBPROCESSES_HELP,
822
856
  envvar="INSPECT_EVAL_MAX_SUBPROCESSES",
823
857
  )
858
+ @click.option(
859
+ "--max-sandboxes",
860
+ type=int,
861
+ help=MAX_SANDBOXES_HELP,
862
+ envvar="INSPECT_EVAL_MAX_SANDBOXES",
863
+ )
824
864
  @click.option(
825
865
  "--no-sandbox-cleanup",
826
866
  type=bool,
@@ -891,6 +931,7 @@ def eval_retry_command(
891
931
  max_samples: int | None,
892
932
  max_tasks: int | None,
893
933
  max_subprocesses: int | None,
934
+ max_sandboxes: int | None,
894
935
  no_sandbox_cleanup: bool | None,
895
936
  trace: bool | None,
896
937
  fail_on_error: bool | float | None,
@@ -934,6 +975,7 @@ def eval_retry_command(
934
975
  max_samples=max_samples,
935
976
  max_tasks=max_tasks,
936
977
  max_subprocesses=max_subprocesses,
978
+ max_sandboxes=max_sandboxes,
937
979
  sandbox_cleanup=sandbox_cleanup,
938
980
  trace=trace,
939
981
  fail_on_error=fail_on_error,
@@ -24,6 +24,10 @@ def task_config(
24
24
  config_print.append(
25
25
  f"{name}: {','.join([approver['name'] for approver in value['approvers']])}"
26
26
  )
27
+ elif name == "sample_id":
28
+ value = value if isinstance(value, list) else [value]
29
+ value = [str(v) for v in value]
30
+ config_print.append(f"{name}: {','.join(value)}")
27
31
  elif name not in ["limit", "model"]:
28
32
  config_print.append(f"{name}: {value}")
29
33
  values = ", ".join(config_print)
@@ -112,7 +112,7 @@ def tasks_title(completed: int, total: int) -> str:
112
112
  def task_title(profile: TaskProfile, show_model: bool) -> str:
113
113
  eval_epochs = profile.eval_config.epochs or 1
114
114
  epochs = f" x {profile.eval_config.epochs}" if eval_epochs > 1 else ""
115
- samples = f"{profile.samples//eval_epochs:,}{epochs} sample{'s' if profile.samples > 1 else ''}"
115
+ samples = f"{profile.samples//eval_epochs:,}{epochs} sample{'s' if profile.samples != 1 else ''}"
116
116
  title = f"{registry_unqualified_name(profile.name)} ({samples})"
117
117
  if show_model:
118
118
  title = f"{title}: {profile.model}"
@@ -130,9 +130,15 @@ def progress_time(time: float) -> str:
130
130
  return f"{hours:2.0f}:{minutes:02.0f}:{seconds:02.0f}"
131
131
 
132
132
 
133
- def progress_count(complete: int, total: int) -> str:
134
- # Pad the display to keep it stable
133
+ def progress_count(complete: int, total: int, width: int | None = None) -> str:
134
+ # Pad the display to keep it stable as the
135
+ # complete metrics
135
136
  total_str = f"{total:,}"
136
137
  complete_str = f"{complete:,}"
137
138
  padding = max(0, len(total_str) - len(complete_str))
138
- return " " * padding + f"[{complete_str}/{total_str}]"
139
+ padded = " " * padding + f"[{complete_str}/{total_str}]"
140
+
141
+ # If a width has ben specified, pad up to this width as well
142
+ if width is not None:
143
+ padded = padded.rjust(width)
144
+ return padded
@@ -166,7 +166,7 @@ def task_interrupted(profile: TaskProfile, samples_completed: int) -> Renderable
166
166
  return message
167
167
 
168
168
 
169
- def task_metric(metrics: list[TaskDisplayMetric]) -> str:
169
+ def task_metric(metrics: list[TaskDisplayMetric], width: int | None = None) -> str:
170
170
  reducer_names: Set[str] = {
171
171
  metric.reducer for metric in metrics if metric.reducer is not None
172
172
  }
@@ -180,10 +180,14 @@ def task_metric(metrics: list[TaskDisplayMetric]) -> str:
180
180
  else:
181
181
  value = f"{metric.value:.2f}"
182
182
 
183
- if show_reducer:
184
- return f"{metric.name}/{metric.reducer}: {value}"
183
+ if show_reducer and metric.reducer is not None:
184
+ metric_str = f"{metric.name}/{metric.reducer}: {value}"
185
185
  else:
186
- return f"{metric.name}: {value}"
186
+ metric_str = f"{metric.name}: {value}"
187
+
188
+ if width is not None:
189
+ metric_str = metric_str.rjust(width)
190
+ return metric_str
187
191
 
188
192
 
189
193
  def task_metrics(scores: list[EvalScore]) -> str:
@@ -63,6 +63,9 @@ class TaskDetail(Widget):
63
63
  def update_metrics(self, metrics: list[TaskDisplayMetric]) -> None:
64
64
  # Group by reducer then scorer within reducers
65
65
  self.metrics = metrics
66
+
67
+ # clear the existing computed reducers
68
+ self.by_reducer = {}
66
69
  for metric in metrics:
67
70
  reducer_group = (
68
71
  self.by_reducer[metric.reducer]
@@ -117,6 +120,7 @@ class TaskDetail(Widget):
117
120
  for remove in to_remove:
118
121
  task_metric = self.existing_metrics[remove]
119
122
  task_metric.remove()
123
+ del self.existing_metrics[remove]
120
124
 
121
125
  # add or update widgets with metrics
122
126
  for reducer, scorers in self.by_reducer.items():
@@ -187,24 +191,52 @@ class TaskMetrics(Widget):
187
191
  self.grid: Grid = Grid()
188
192
  self.value_widgets: dict[str, Static] = {}
189
193
 
194
+ def grid_id(self) -> str:
195
+ return f"{self.id}-grid"
196
+
190
197
  def compose(self) -> ComposeResult:
191
- # Just yield a single DataTable widget
198
+ # Yield the title and base grid
192
199
  yield Center(self._title())
193
- with Grid():
194
- for metric in self.metrics:
195
- # Add the value static but keep it around
196
- # for future updates
197
- self.value_widgets[metric.name] = Static(
198
- self._metric_value(metric.value)
199
- )
200
-
201
- yield Static(metric.name)
202
- yield self.value_widgets[metric.name]
200
+ yield Grid(id=self.grid_id())
203
201
 
204
202
  def update(self, metrics: list[TaskMetric]) -> None:
203
+ self.metrics = metrics
204
+
205
+ # We assume that generally the initial metric names will
206
+ # always match future updates (so we can just update values in line)
207
+ # but if an unrecognized metric appears on the scene, just
208
+ # recompute the whole grid
209
+ need_recompute = False
205
210
  for metric in metrics:
206
- widget = self.value_widgets[metric.name]
207
- widget.update(content=f"{metric.value:,.3f}")
211
+ widget = self.value_widgets.get(metric.name)
212
+ if widget:
213
+ # Just update the values themselves
214
+ widget.update(content=f"{metric.value:,.3f}")
215
+ else:
216
+ # Don't have a widget for this, recompute the whole grid
217
+ need_recompute = True
218
+ break
219
+
220
+ if need_recompute:
221
+ self.recompute_grid()
222
+
223
+ def on_mount(self) -> None:
224
+ self.recompute_grid()
225
+
226
+ def recompute_grid(self) -> None:
227
+ if not self.is_mounted:
228
+ return
229
+
230
+ grid = self.query_one(f"#{self.grid_id()}")
231
+
232
+ grid.remove_children()
233
+ for metric in self.metrics:
234
+ # Add the value static but keep it around
235
+ # for future updates
236
+ self.value_widgets[metric.name] = Static(self._metric_value(metric.value))
237
+
238
+ grid.mount(Static(metric.name))
239
+ grid.mount(self.value_widgets[metric.name])
208
240
 
209
241
  def _title(self) -> Widget:
210
242
  if self.scorer is None: