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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (816) hide show
  1. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/CHANGELOG.md +21 -0
  2. {inspect_ai-0.3.52/src/inspect_ai.egg-info → inspect_ai-0.3.53}/PKG-INFO +1 -3
  3. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_quarto.yml +0 -3
  4. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_sandboxenv-interface.md +1 -1
  5. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/extensions.qmd +5 -0
  6. inspect_ai-0.3.53/docs/images/task-max-sandboxes.png +0 -0
  7. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/parallelism.qmd +6 -4
  8. inspect_ai-0.3.53/docs/scripts/post-render.sh +23 -0
  9. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/tools.qmd +1 -1
  10. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/pyproject.toml +0 -1
  11. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/requirements.txt +0 -1
  12. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/eval.py +29 -0
  13. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/progress.py +9 -3
  14. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/results.py +8 -4
  15. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/task_detail.py +3 -0
  16. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/tasks.py +86 -5
  17. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/eval.py +16 -0
  18. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/evalset.py +4 -0
  19. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/registry.py +2 -2
  20. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/results.py +22 -4
  21. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/run.py +14 -10
  22. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/sandbox.py +72 -43
  23. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/task.py +4 -0
  24. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/util.py +2 -0
  25. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/App.css +13 -0
  26. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/assets/index.css +13 -0
  27. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/assets/index.js +80 -43
  28. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/App.mjs +31 -6
  29. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/Types.mjs +6 -0
  30. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/JsonPanel.mjs +11 -17
  31. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MessageContent.mjs +9 -2
  32. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Tools.mjs +46 -18
  33. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/navbar/Navbar.mjs +12 -0
  34. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleList.mjs +2 -2
  35. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ToolEventView.mjs +2 -2
  36. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_log.py +3 -0
  37. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/eval.py +8 -7
  38. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_generate_config.py +6 -0
  39. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/azureai.py +1 -1
  40. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/bedrock.py +17 -1
  41. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/hf.py +1 -1
  42. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/openai.py +32 -8
  43. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/providers.py +1 -1
  44. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/vllm.py +1 -1
  45. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/context.py +1 -2
  46. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/config.py +8 -10
  47. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/docker.py +9 -5
  48. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/util.py +3 -3
  49. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/environment.py +7 -2
  50. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/limits.py +1 -1
  51. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/local.py +8 -9
  52. {inspect_ai-0.3.52 → inspect_ai-0.3.53/src/inspect_ai.egg-info}/PKG-INFO +1 -3
  53. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/SOURCES.txt +2 -0
  54. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/requires.txt +0 -2
  55. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_metric.py +80 -0
  56. inspect_ai-0.3.53/tests/solver/test_setup.py +21 -0
  57. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/CHANGELOG.md +9 -1
  58. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/package.json +1 -1
  59. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/extension.ts +1 -0
  60. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-panel.ts +1 -1
  61. inspect_ai-0.3.52/docs/scripts/post-render.sh +0 -13
  62. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/dependabot.yml +0 -0
  63. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/pull_request_template.md +0 -0
  64. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/workflows/build.yml +0 -0
  65. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/workflows/docs.yml +0 -0
  66. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/workflows/log_viewer.yml +0 -0
  67. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/workflows/pypi.yml +0 -0
  68. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.github/workflows/vscode.yml +0 -0
  69. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.gitignore +0 -0
  70. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.pre-commit-config.yaml +0 -0
  71. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.vscode/extensions.json +0 -0
  72. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/.vscode/settings.json +0 -0
  73. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/CITATION.cff +0 -0
  74. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/LICENSE +0 -0
  75. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/Makefile +0 -0
  76. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/README.md +0 -0
  77. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/.gitignore +0 -0
  78. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/CNAME +0 -0
  79. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_errors_and_retries.md +0 -0
  80. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_sample-preservation.md +0 -0
  81. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_tools-annotations-required.md +0 -0
  82. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_tools-scaffold.md +0 -0
  83. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_trace.md +0 -0
  84. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/_variables.yml +0 -0
  85. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/agents-api.qmd +0 -0
  86. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/agents.qmd +0 -0
  87. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/approval.qmd +0 -0
  88. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/caching.qmd +0 -0
  89. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/datasets.qmd +0 -0
  90. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/errors-and-limits.qmd +0 -0
  91. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/eval-logs.qmd +0 -0
  92. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/eval-sets.qmd +0 -0
  93. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/examples/examples.bib +0 -0
  94. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/examples/examples.css +0 -0
  95. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/examples/examples.ejs +0 -0
  96. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/examples/examples.yml +0 -0
  97. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/examples/index.qmd +0 -0
  98. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/aisi-logo.png +0 -0
  99. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/eval-log.png +0 -0
  100. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-activity-bar.png +0 -0
  101. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-multiple-models.png +0 -0
  102. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-answers.png +0 -0
  103. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-filter.png +0 -0
  104. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-history.png +0 -0
  105. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-home.png +0 -0
  106. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-info.png +0 -0
  107. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-logging-console.png +0 -0
  108. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-logging.png +0 -0
  109. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-main.png +0 -0
  110. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-messages.png +0 -0
  111. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-metadata.png +0 -0
  112. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-scoring.png +0 -0
  113. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-sort.png +0 -0
  114. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-view-splash.png +0 -0
  115. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-vscode-config.png +0 -0
  116. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-vscode-install.png +0 -0
  117. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-vscode-logview.png +0 -0
  118. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-vscode-output-channel.png +0 -0
  119. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect-vscode-run-task.png +0 -0
  120. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/inspect.png +0 -0
  121. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/logs-drop-down.png +0 -0
  122. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/logs-open-button.png +0 -0
  123. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/logs.png +0 -0
  124. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/popularity.png +0 -0
  125. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/python-tool-view.png +0 -0
  126. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/rate-limit.png +0 -0
  127. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/running-theory.png +0 -0
  128. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/toolenv-no-cleanup.png +0 -0
  129. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/images/web-browser-tool-view.png +0 -0
  130. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/index.qmd +0 -0
  131. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/interactivity.qmd +0 -0
  132. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/llms.txt +0 -0
  133. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/log-viewer.qmd +0 -0
  134. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/models.qmd +0 -0
  135. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/scorers.qmd +0 -0
  136. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/solvers.qmd +0 -0
  137. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/theme.scss +0 -0
  138. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/tutorial.qmd +0 -0
  139. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/vscode.qmd +0 -0
  140. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/docs/workflow.qmd +0 -0
  141. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/approval/README.md +0 -0
  142. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/approval/approval.py +0 -0
  143. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/approval/approval.yaml +0 -0
  144. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/biology_qa.py +0 -0
  145. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/browser/browser.py +0 -0
  146. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/browser/compose.yaml +0 -0
  147. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/cache.py +0 -0
  148. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/evalset.py +0 -0
  149. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/hello_world.py +0 -0
  150. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/images/ballons.png +0 -0
  151. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/images/bike.png +0 -0
  152. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/images/images.jsonl +0 -0
  153. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/images/images.py +0 -0
  154. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/intervention/Dockerfile +0 -0
  155. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/intervention/README.md +0 -0
  156. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/intervention/compose.yaml +0 -0
  157. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/intervention/intervention.py +0 -0
  158. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/.env.example +0 -0
  159. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/.gitignore +0 -0
  160. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/README.md +0 -0
  161. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/inspect_langchain.py +0 -0
  162. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/requirements.txt +0 -0
  163. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/wikipedia.jsonl +0 -0
  164. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/langchain/wikipedia.py +0 -0
  165. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/popularity.py +0 -0
  166. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/security_guide.py +0 -0
  167. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/theory_of_mind.py +0 -0
  168. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/examples/tool_use.py +0 -0
  169. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/setup.cfg +0 -0
  170. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/__init__.py +0 -0
  171. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/__main__.py +0 -0
  172. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/cache.py +0 -0
  173. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/common.py +0 -0
  174. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/info.py +0 -0
  175. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/list.py +0 -0
  176. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/log.py +0 -0
  177. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/main.py +0 -0
  178. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/sandbox.py +0 -0
  179. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/score.py +0 -0
  180. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/util.py +0 -0
  181. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_cli/view.py +0 -0
  182. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/__init__.py +0 -0
  183. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/active.py +0 -0
  184. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/config.py +0 -0
  185. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/display.py +0 -0
  186. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/footer.py +0 -0
  187. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/group.py +0 -0
  188. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/panel.py +0 -0
  189. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/rich.py +0 -0
  190. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/core/textual.py +0 -0
  191. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/rich/__init__.py +0 -0
  192. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/rich/display.py +0 -0
  193. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/app.py +0 -0
  194. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/app.tcss +0 -0
  195. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/display.py +0 -0
  196. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/theme.py +0 -0
  197. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/clock.py +0 -0
  198. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/console.py +0 -0
  199. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/footer.py +0 -0
  200. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/samples.py +0 -0
  201. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/titlebar.py +0 -0
  202. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/toggle.py +0 -0
  203. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_display/textual/widgets/transcript.py +0 -0
  204. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/context.py +0 -0
  205. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/list.py +0 -0
  206. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/loader.py +0 -0
  207. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/run.py +0 -0
  208. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/score.py +0 -0
  209. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/__init__.py +0 -0
  210. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/constants.py +0 -0
  211. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/epochs.py +0 -0
  212. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/error.py +0 -0
  213. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/generate.py +0 -0
  214. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/images.py +0 -0
  215. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/log.py +0 -0
  216. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_eval/task/rundir.py +0 -0
  217. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/_async.py +0 -0
  218. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/appdirs.py +0 -0
  219. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/config.py +0 -0
  220. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/constants.py +0 -0
  221. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/content.py +0 -0
  222. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/datetime.py +0 -0
  223. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/decorator.py +0 -0
  224. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/deprecation.py +0 -0
  225. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/dev.py +0 -0
  226. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/dict.py +0 -0
  227. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/display.py +0 -0
  228. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/dotenv.py +0 -0
  229. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/entrypoints.py +0 -0
  230. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/environ.py +0 -0
  231. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/error.py +0 -0
  232. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/file.py +0 -0
  233. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/format.py +0 -0
  234. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/git.py +0 -0
  235. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/hash.py +0 -0
  236. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/hooks.py +0 -0
  237. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/html.py +0 -0
  238. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/http.py +0 -0
  239. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/images.py +0 -0
  240. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/json.py +0 -0
  241. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/list.py +0 -0
  242. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/logger.py +0 -0
  243. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/notebook.py +0 -0
  244. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/package.py +0 -0
  245. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/path.py +0 -0
  246. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/pattern.py +0 -0
  247. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/platform.py +0 -0
  248. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/registry.py +0 -0
  249. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/retry.py +0 -0
  250. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/rich.py +0 -0
  251. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/samples.py +0 -0
  252. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/terminal.py +0 -0
  253. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/text.py +0 -0
  254. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/throttle.py +0 -0
  255. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/timeouts.py +0 -0
  256. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/transcript.py +0 -0
  257. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/url.py +0 -0
  258. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_util/version.py +0 -0
  259. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/notify.py +0 -0
  260. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/schema.py +0 -0
  261. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/server.py +0 -0
  262. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/view.py +0 -0
  263. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/.gitignore +0 -0
  264. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/.prettierignore +0 -0
  265. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/.tool-versions +0 -0
  266. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/README.md +0 -0
  267. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/assets/favicon.svg +0 -0
  268. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/dist/index.html +0 -0
  269. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/eslint.config.mjs +0 -0
  270. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/favicon.svg +0 -0
  271. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/index.html +0 -0
  272. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/jsconfig.json +0 -0
  273. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/log-schema.json +0 -0
  274. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/package.json +0 -0
  275. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/postcss.config.cjs +0 -0
  276. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/Register.mjs +0 -0
  277. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/Types.mjs +0 -0
  278. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-browser.mjs +0 -0
  279. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-http.mjs +0 -0
  280. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-shared.mjs +0 -0
  281. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/api-vscode.mjs +0 -0
  282. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/client-api.mjs +0 -0
  283. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/index.mjs +0 -0
  284. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/api/jsonrpc.mjs +0 -0
  285. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Colors.mjs +0 -0
  286. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Fonts.mjs +0 -0
  287. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Icons.mjs +0 -0
  288. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/appearance/Styles.mjs +0 -0
  289. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/AnsiDisplay.css +0 -0
  290. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/AnsiDisplay.mjs +0 -0
  291. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/AppErrorBoundary.mjs +0 -0
  292. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Browser.mjs +0 -0
  293. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Card.mjs +0 -0
  294. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ChatView.mjs +0 -0
  295. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/CopyButton.mjs +0 -0
  296. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/Dialog.mjs +0 -0
  297. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/DownloadButton.mjs +0 -0
  298. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/DownloadPanel.mjs +0 -0
  299. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/EmptyPanel.mjs +0 -0
  300. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ErrorPanel.mjs +0 -0
  301. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ExpandablePanel.mjs +0 -0
  302. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/FindBand.mjs +0 -0
  303. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/LabeledValue.mjs +0 -0
  304. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/LargeModal.mjs +0 -0
  305. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MarkdownDiv.mjs +0 -0
  306. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MessageBand.mjs +0 -0
  307. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MetaDataGrid.mjs +0 -0
  308. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MetaDataView.mjs +0 -0
  309. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/MorePopOver.mjs +0 -0
  310. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/NavPills.mjs +0 -0
  311. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ProgressBar.mjs +0 -0
  312. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/RenderedContent/ChatMessageRenderer.mjs +0 -0
  313. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/RenderedContent/RenderedContent.mjs +0 -0
  314. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/RenderedContent/Types.mjs +0 -0
  315. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/TabSet.mjs +0 -0
  316. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ToolButton.mjs +0 -0
  317. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/VirtualList.mjs +0 -0
  318. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/components/ansi-output.js +0 -0
  319. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/constants.mjs +0 -0
  320. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/index.js +0 -0
  321. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/json/JsonTab.mjs +0 -0
  322. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log/remoteLogFile.mjs +0 -0
  323. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log-reader/Log-Reader.mjs +0 -0
  324. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log-reader/Native-Log-Reader.mjs +0 -0
  325. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/log-reader/Open-AI-Log-Reader.mjs +0 -0
  326. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/navbar/SecondaryBar.mjs +0 -0
  327. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/plan/PlanCard.mjs +0 -0
  328. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleDialog.mjs +0 -0
  329. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleDisplay.mjs +0 -0
  330. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleError.mjs +0 -0
  331. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleLimit.mjs +0 -0
  332. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleScoreView.mjs +0 -0
  333. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleScores.mjs +0 -0
  334. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SampleTranscript.mjs +0 -0
  335. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SamplesDescriptor.mjs +0 -0
  336. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SamplesTab.mjs +0 -0
  337. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/SamplesTools.mjs +0 -0
  338. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/EpochFilter.mjs +0 -0
  339. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/SampleFilter.mjs +0 -0
  340. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/SelectScorer.mjs +0 -0
  341. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/SortFilter.mjs +0 -0
  342. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/tools/filters.mjs +0 -0
  343. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ApprovalEventView.mjs +0 -0
  344. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ErrorEventView.mjs +0 -0
  345. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/EventPanel.mjs +0 -0
  346. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/EventRow.mjs +0 -0
  347. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/EventSection.mjs +0 -0
  348. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/InfoEventView.mjs +0 -0
  349. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/InputEventView.mjs +0 -0
  350. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/LoggerEventView.mjs +0 -0
  351. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ModelEventView.mjs +0 -0
  352. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/SampleInitEventView.mjs +0 -0
  353. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/SampleLimitEventView.mjs +0 -0
  354. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/ScoreEventView.mjs +0 -0
  355. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/StepEventView.mjs +0 -0
  356. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.mjs +0 -0
  357. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptState.mjs +0 -0
  358. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptView.mjs +0 -0
  359. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/Types.mjs +0 -0
  360. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/state/StateDiffView.mjs +0 -0
  361. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventRenderers.mjs +0 -0
  362. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventView.mjs +0 -0
  363. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/sidebar/Sidebar.mjs +0 -0
  364. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/types/jsondiffpatch.d.ts +0 -0
  365. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/types/log.d.ts +0 -0
  366. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/types/prism.d.ts +0 -0
  367. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/usage/ModelTokenTable.mjs +0 -0
  368. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/usage/UsageCard.mjs +0 -0
  369. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Base64.mjs +0 -0
  370. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Format.mjs +0 -0
  371. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Git.mjs +0 -0
  372. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Html.mjs +0 -0
  373. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Json.mjs +0 -0
  374. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Path.mjs +0 -0
  375. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Print.mjs +0 -0
  376. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/Type.mjs +0 -0
  377. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/attachments.mjs +0 -0
  378. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/debugging.mjs +0 -0
  379. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/http.mjs +0 -0
  380. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/queue.mjs +0 -0
  381. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/remoteZipFile.mjs +0 -0
  382. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/sync.mjs +0 -0
  383. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/utils/vscode.mjs +0 -0
  384. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/workspace/TaskErrorPanel.mjs +0 -0
  385. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/src/workspace/WorkSpace.mjs +0 -0
  386. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/tsconfig.json +0 -0
  387. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/vite.config.js +0 -0
  388. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/_view/www/yarn.lock +0 -0
  389. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/__init__.py +0 -0
  390. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_apply.py +0 -0
  391. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_approval.py +0 -0
  392. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_approver.py +0 -0
  393. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_auto.py +0 -0
  394. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_call.py +0 -0
  395. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/approver.py +0 -0
  396. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/console.py +0 -0
  397. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/manager.py +0 -0
  398. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/panel.py +0 -0
  399. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_human/util.py +0 -0
  400. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_policy.py +0 -0
  401. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/approval/_registry.py +0 -0
  402. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/__init__.py +0 -0
  403. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_dataset.py +0 -0
  404. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/bias_detection.jsonl +0 -0
  405. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/biology_qa.jsonl +0 -0
  406. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/popularity.jsonl +0 -0
  407. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/security_guide.jsonl +0 -0
  408. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_examples/theory_of_mind.jsonl +0 -0
  409. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/csv.py +0 -0
  410. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/example.py +0 -0
  411. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/file.py +0 -0
  412. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/hf.py +0 -0
  413. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/json.py +0 -0
  414. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_sources/util.py +0 -0
  415. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/dataset/_util.py +0 -0
  416. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/__init__.py +0 -0
  417. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_bundle.py +0 -0
  418. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_condense.py +0 -0
  419. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_convert.py +0 -0
  420. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_file.py +0 -0
  421. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_message.py +0 -0
  422. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/__init__.py +0 -0
  423. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/create.py +0 -0
  424. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/file.py +0 -0
  425. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/json.py +0 -0
  426. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_recorders/recorder.py +0 -0
  427. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_retry.py +0 -0
  428. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_samples.py +0 -0
  429. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/log/_transcript.py +0 -0
  430. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/__init__.py +0 -0
  431. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_cache.py +0 -0
  432. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_call_tools.py +0 -0
  433. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_chat_message.py +0 -0
  434. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_image.py +0 -0
  435. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_model.py +0 -0
  436. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_model_call.py +0 -0
  437. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_model_output.py +0 -0
  438. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/anthropic.py +0 -0
  439. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/cloudflare.py +0 -0
  440. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/google.py +0 -0
  441. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/grok.py +0 -0
  442. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/groq.py +0 -0
  443. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/llama_cpp_python.py +0 -0
  444. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/mistral.py +0 -0
  445. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/mockllm.py +0 -0
  446. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/ollama.py +0 -0
  447. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/openai_o1.py +0 -0
  448. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/together.py +0 -0
  449. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/__init__.py +0 -0
  450. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/chatapi.py +0 -0
  451. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/hf_handler.py +0 -0
  452. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/llama31.py +0 -0
  453. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/util/util.py +0 -0
  454. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_providers/vertex.py +0 -0
  455. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_registry.py +0 -0
  456. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_render.py +0 -0
  457. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/model/_trace.py +0 -0
  458. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/py.typed +0 -0
  459. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/__init__.py +0 -0
  460. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_answer.py +0 -0
  461. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_choice.py +0 -0
  462. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_classification.py +0 -0
  463. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_common.py +0 -0
  464. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_match.py +0 -0
  465. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metric.py +0 -0
  466. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/__init__.py +0 -0
  467. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/accuracy.py +0 -0
  468. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/mean.py +0 -0
  469. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_metrics/std.py +0 -0
  470. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_model.py +0 -0
  471. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_multi.py +0 -0
  472. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_pattern.py +0 -0
  473. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/__init__.py +0 -0
  474. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/reducer.py +0 -0
  475. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/registry.py +0 -0
  476. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_reducer/types.py +0 -0
  477. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_score.py +0 -0
  478. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_scorer.py +0 -0
  479. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/scorer/_target.py +0 -0
  480. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/__init__.py +0 -0
  481. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_basic_agent.py +0 -0
  482. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_chain.py +0 -0
  483. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_critique.py +0 -0
  484. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_fork.py +0 -0
  485. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_multiple_choice.py +0 -0
  486. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_plan.py +0 -0
  487. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_prompt.py +0 -0
  488. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_solver.py +0 -0
  489. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_task_state.py +0 -0
  490. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_transcript.py +0 -0
  491. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_use_tools.py +0 -0
  492. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/solver/_util.py +0 -0
  493. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/__init__.py +0 -0
  494. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool.py +0 -0
  495. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_call.py +0 -0
  496. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_choice.py +0 -0
  497. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_def.py +0 -0
  498. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_description.py +0 -0
  499. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_info.py +0 -0
  500. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_params.py +0 -0
  501. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_transcript.py +0 -0
  502. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tool_with.py +0 -0
  503. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_execute.py +0 -0
  504. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/__init__.py +0 -0
  505. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/Dockerfile +0 -0
  506. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/README.md +0 -0
  507. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/accessibility_node.py +0 -0
  508. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/dm_env_servicer.py +0 -0
  509. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/images/usage_diagram.png +0 -0
  510. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/mock_environment.py +0 -0
  511. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/playwright_crawler.py +0 -0
  512. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_accessibility_node.py +0 -0
  513. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_dm_env_servicer.py +0 -0
  514. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_playwright_crawler.py +0 -0
  515. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_web_environment.py +0 -0
  516. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client.py +0 -0
  517. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client_new_session.py +0 -0
  518. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_environment.py +0 -0
  519. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_server.py +0 -0
  520. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_browser/_web_browser.py +0 -0
  521. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/tool/_tools/_web_search.py +0 -0
  522. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/__init__.py +0 -0
  523. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_concurrency.py +0 -0
  524. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_console.py +0 -0
  525. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_panel.py +0 -0
  526. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_resource.py +0 -0
  527. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/__init__.py +0 -0
  528. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/cleanup.py +0 -0
  529. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/compose.py +0 -0
  530. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/internal.py +0 -0
  531. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/docker/prereqs.py +0 -0
  532. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/registry.py +0 -0
  533. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/self_check.py +0 -0
  534. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_sandbox/service.py +0 -0
  535. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_store.py +0 -0
  536. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_subprocess.py +0 -0
  537. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_subtask.py +0 -0
  538. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai/util/_trace.py +0 -0
  539. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/dependency_links.txt +0 -0
  540. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/entry_points.txt +0 -0
  541. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/src/inspect_ai.egg-info/top_level.txt +0 -0
  542. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/approve.yaml +0 -0
  543. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/escalate.yaml +0 -0
  544. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/modify.yaml +0 -0
  545. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/reject.yaml +0 -0
  546. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/terminate.yaml +0 -0
  547. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/approval/test_approval.py +0 -0
  548. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/conftest.py +0 -0
  549. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/dataset.jsonl +0 -0
  550. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/images/ballons.png +0 -0
  551. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/images.jsonl +0 -0
  552. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples-md.csv +0 -0
  553. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples-md.json +0 -0
  554. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples-md.jsonl +0 -0
  555. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples.csv +0 -0
  556. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples.json +0 -0
  557. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset/samples.jsonl +0 -0
  558. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/dataset/test_dataset.py +0 -0
  559. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_formats.json +0 -0
  560. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_images.json +0 -0
  561. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_images_tc.json +0 -0
  562. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_invalid.txt +0 -0
  563. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_length_stop_reason.txt +0 -0
  564. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_streaming.eval +0 -0
  565. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_valid.txt +0 -0
  566. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_version_3.txt +0 -0
  567. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log/log_with_nan.txt +0 -0
  568. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_eval_log.py +0 -0
  569. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_list_logs/2024-11-05T13-31-45-05-00_input-task_8zXjbRzCWrL9GXiXo2vus9.json +0 -0
  570. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_list_logs/2024-11-05T13-32-37-05-00_input-task_hxs4q9azL3ySGkjJirypKZ.eval +0 -0
  571. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_list_logs/custom.eval +0 -0
  572. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_list_logs/ignore.json +0 -0
  573. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_list_logs.py +0 -0
  574. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_log_attachments.py +0 -0
  575. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_log_formats.py +0 -0
  576. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_log_level.py +0 -0
  577. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_log_streaming.py +0 -0
  578. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/log/test_log_tags.py +0 -0
  579. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_anthropic.py +0 -0
  580. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_azureai.py +0 -0
  581. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_cloudflare.py +0 -0
  582. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_google.py +0 -0
  583. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_grok.py +0 -0
  584. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_groq.py +0 -0
  585. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_hf.py +0 -0
  586. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_llama_cpp_python.py +0 -0
  587. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_openai.py +0 -0
  588. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_openai_o1.py +0 -0
  589. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_vertex.py +0 -0
  590. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/providers/test_vllm.py +0 -0
  591. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_api_key.py +0 -0
  592. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_collapse_assistant_message.py +0 -0
  593. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_collapse_user_message.py +0 -0
  594. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_disable.py +0 -0
  595. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_logprobs.py +0 -0
  596. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_mock_model_llm.py +0 -0
  597. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_num_choices.py +0 -0
  598. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_parse_tool_call.py +0 -0
  599. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/model/test_stop_reason.py +0 -0
  600. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_answer.py +0 -0
  601. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_choice.py +0 -0
  602. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_classification.py +0 -0
  603. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_match.py +0 -0
  604. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_model_graded.py +0 -0
  605. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_multiscorer.py +0 -0
  606. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_pattern.py +0 -0
  607. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_reducers.py +0 -0
  608. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_scorer.py +0 -0
  609. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/scorer/test_value_to_float.py +0 -0
  610. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_basic_agent.py +0 -0
  611. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_chain.py +0 -0
  612. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_fork.py +0 -0
  613. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_multiple_choice.py +0 -0
  614. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_prompt.py +0 -0
  615. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_solver.py +0 -0
  616. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_solver_decorator.py +0 -0
  617. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_solver_spec.py +0 -0
  618. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_store.py +0 -0
  619. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_subtask.py +0 -0
  620. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/solver/test_transcript.py +0 -0
  621. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval.py +0 -0
  622. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_config/model.yaml +0 -0
  623. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_config/solver.yaml +0 -0
  624. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_config/task.yaml +0 -0
  625. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_config.py +0 -0
  626. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_set/2024-08-29T15-11-17+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
  627. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_set/2024-08-29T15-11-18+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
  628. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_eval_set.py +0 -0
  629. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_examples.py +0 -0
  630. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_extensions.py +0 -0
  631. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_fail_on_error.py +0 -0
  632. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_helpers/__init__.py +0 -0
  633. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_helpers/tasks.py +0 -0
  634. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_helpers/tool_call_utils.py +0 -0
  635. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_helpers/tools.py +0 -0
  636. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_helpers/utils.py +0 -0
  637. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_list_task.py +0 -0
  638. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_log_dir/example_task/example_task.py +0 -0
  639. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_log_dir/test_log_dir.py +0 -0
  640. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/.gitignore +0 -0
  641. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/__init__.py +0 -0
  642. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/_registry.py +0 -0
  643. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/approvers/renamer.py +0 -0
  644. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/modelapi/custom.py +0 -0
  645. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/py.typed +0 -0
  646. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/sandboxenv/podman.py +0 -0
  647. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/score/scorer.py +0 -0
  648. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/inspect_package/solvers/cot.py +0 -0
  649. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_package/pyproject.toml +0 -0
  650. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_retry.py +0 -0
  651. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_run_dir/task1/task1.py +0 -0
  652. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_run_dir/task2/task2.py +0 -0
  653. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_run_dir.py +0 -0
  654. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_sample_id.py +0 -0
  655. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_sample_limits.py +0 -0
  656. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_attr.py +0 -0
  657. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/__init__.py +0 -0
  658. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/attribs.ipynb +0 -0
  659. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/multiple.py +0 -0
  660. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/_decoy/testit.py +0 -0
  661. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/_decoy2.py +0 -0
  662. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/bar.py +0 -0
  663. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/multiple_dir/foo.py +0 -0
  664. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/.folder3/epsilon.py +0 -0
  665. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder1/_decoy.py +0 -0
  666. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder1/theta.py +0 -0
  667. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder2/.folder3/epsilon.py +0 -0
  668. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder2/another.py +0 -0
  669. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/test_task_list/recurse/folder2/first.py +0 -0
  670. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/docker-compose-context/Dockerfile +0 -0
  671. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/docker-compose-context-alpine/Dockerfile +0 -0
  672. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_bash_tool.py +0 -0
  673. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_max_exec_output.py +0 -0
  674. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_max_tool_output.py +0 -0
  675. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_python_tool.py +0 -0
  676. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_sandbox_compose.yaml +0 -0
  677. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_sandbox_compose_alpine.yaml +0 -0
  678. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_sandbox_docker_and_local.py +0 -0
  679. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_sandbox_dockerfile.py +0 -0
  680. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_sandbox_tool_eval.py +0 -0
  681. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tool_def.py +0 -0
  682. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tool_parse.py +0 -0
  683. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tool_types.py +0 -0
  684. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tool_view.py +0 -0
  685. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tool_with.py +0 -0
  686. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_tools.py +0 -0
  687. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_use_tools.py +0 -0
  688. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_web_browser.py +0 -0
  689. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/tools/test_web_browser_compose.yaml +0 -0
  690. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/sandbox/docker_compose_multiple_services/docker-compose.yaml +0 -0
  691. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/sandbox/sandbox_setup.sh +0 -0
  692. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/sandbox/test_docker_compose_multiple_services.py +0 -0
  693. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/sandbox/test_sandbox_service.py +0 -0
  694. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/sandbox/test_sandbox_setup.py +0 -0
  695. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_file.py +0 -0
  696. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_images/images.jsonl +0 -0
  697. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_images.py +0 -0
  698. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_package.py +0 -0
  699. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_registry.py +0 -0
  700. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_str_to_float.py +0 -0
  701. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/util/test_subprocess.py +0 -0
  702. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tests/view/test_bundle.py +0 -0
  703. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.eslintrc.json +0 -0
  704. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.gitignore +0 -0
  705. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscode/extensions.json +0 -0
  706. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscode/launch.json +0 -0
  707. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscode/settings.json +0 -0
  708. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscode/tasks.json +0 -0
  709. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscode-test.mjs +0 -0
  710. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.vscodeignore +0 -0
  711. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/.yarnrc +0 -0
  712. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/LICENSE +0 -0
  713. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/README.md +0 -0
  714. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/icon/eval-treeview.svg +0 -0
  715. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/icon/eval.svg +0 -0
  716. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/logo/inspect.png +0 -0
  717. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/logo/inspect.svg +0 -0
  718. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/templates/task.py.template +0 -0
  719. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/www/codicon/codicon.css +0 -0
  720. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/www/codicon/codicon.ttf +0 -0
  721. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/assets/www/view/view-overrides.css +0 -0
  722. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/@types/hooks.d.ts +0 -0
  723. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/@types/log.d.ts +0 -0
  724. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/document.ts +0 -0
  725. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/error.ts +0 -0
  726. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/focus.ts +0 -0
  727. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/notebook.ts +0 -0
  728. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/symbol.ts +0 -0
  729. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/task.ts +0 -0
  730. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/templates.ts +0 -0
  731. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/components/webview.ts +0 -0
  732. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/appdirs.ts +0 -0
  733. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/command.ts +0 -0
  734. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/dispose.ts +0 -0
  735. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/env.ts +0 -0
  736. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/file.ts +0 -0
  737. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/git.ts +0 -0
  738. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/jsonrpc.ts +0 -0
  739. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/log.ts +0 -0
  740. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/nonce.ts +0 -0
  741. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/path.ts +0 -0
  742. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/port.ts +0 -0
  743. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/process.ts +0 -0
  744. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/python/code.ts +0 -0
  745. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/python/env.ts +0 -0
  746. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/python/exec.ts +0 -0
  747. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/python/index.ts +0 -0
  748. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/python/interpreter.ts +0 -0
  749. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/random.ts +0 -0
  750. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/string.ts +0 -0
  751. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/text.ts +0 -0
  752. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/uri.ts +0 -0
  753. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/vscode/association.ts +0 -0
  754. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/wait.ts +0 -0
  755. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/core/workspace.ts +0 -0
  756. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/hooks/hooks.ts +0 -0
  757. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/hooks/index.ts +0 -0
  758. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/hooks/preview.ts +0 -0
  759. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/inspect/index.ts +0 -0
  760. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/inspect/logs.ts +0 -0
  761. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/inspect/props.ts +0 -0
  762. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/inspect/version.ts +0 -0
  763. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/active-task/active-task-command.ts +0 -0
  764. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/active-task/active-task-provider.ts +0 -0
  765. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/activity-bar-provider.ts +0 -0
  766. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/env-config-provider.ts +0 -0
  767. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-directory-selector.ts +0 -0
  768. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-data.ts +0 -0
  769. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-mru.ts +0 -0
  770. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-provider.ts +0 -0
  771. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/log-listing/log-listing.ts +0 -0
  772. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-config-commands.ts +0 -0
  773. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-config-provider.ts +0 -0
  774. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-outline-commands.ts +0 -0
  775. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/task-outline-provider.ts +0 -0
  776. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.css +0 -0
  777. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.ts +0 -0
  778. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.css +0 -0
  779. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.ts +0 -0
  780. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/vscode-controls.css +0 -0
  781. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/activity-bar/webview/webview-utils.ts +0 -0
  782. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/codelens/codelens-provider.ts +0 -0
  783. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-commands.ts +0 -0
  784. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-constants.ts +0 -0
  785. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-eval-commands.ts +0 -0
  786. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-eval.ts +0 -0
  787. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-logs-watcher.ts +0 -0
  788. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-manager.ts +0 -0
  789. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/inspect/inspect-view-server.ts +0 -0
  790. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/lognotify.ts +0 -0
  791. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/commands.ts +0 -0
  792. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-editor.ts +0 -0
  793. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-link-provider.ts +0 -0
  794. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-state.ts +0 -0
  795. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview-view.ts +0 -0
  796. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/logview/logview.ts +0 -0
  797. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/openlog.ts +0 -0
  798. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/protocol-handler.ts +0 -0
  799. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/settings/inspect-settings.ts +0 -0
  800. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/settings/user-settings.ts +0 -0
  801. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/statusbar.ts +0 -0
  802. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-env-commands.ts +0 -0
  803. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-env-provider.ts +0 -0
  804. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-init.ts +0 -0
  805. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-state-provider.ts +0 -0
  806. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/providers/workspace/workspace-task-provider.ts +0 -0
  807. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/src/test/extension.test.ts +0 -0
  808. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/.gitignore +0 -0
  809. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/package.json +0 -0
  810. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/rollup.config.js +0 -0
  811. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/src/index.ts +0 -0
  812. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/src/jsonrpc.ts +0 -0
  813. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tools/ts-to-mjs/yarn.lock +0 -0
  814. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/tsconfig.json +0 -0
  815. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/webpack.config.js +0 -0
  816. {inspect_ai-0.3.52 → inspect_ai-0.3.53}/tools/vscode/yarn.lock +0 -0
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.3.53 (20 December 2024)
4
+
5
+ - OpenAI: Support for o1 including native tool calling and `reasoning_effort` generation option.
6
+ - Task API: Introduce `setup` step that always runs even if `solver` is replaced.
7
+ - Bedrock: Support for tool calling on Nova models.
8
+ - Bedrock: Support for custom `model_args` passed through to `session.Client`.
9
+ - Bedrock: Support for `jpeg` images.
10
+ - Bedrock: Correct max_tokens for llama3-8b, llama3-70b models on Bedrock.
11
+ - Inspect View: Various improvements to appearance of tool calls in transcript.
12
+ - Task display: Ensure that widths of progress elements are kept consistant across tasks.
13
+ - Sandboxes: New `max_sandboxes` option for (per-provider) maximum number of running sandboxes.
14
+ - Sandboxes: Remove use of aiofiles to mitigate potential for threading deadlocks.
15
+ - Concurrency: Do not use `max_tasks` as a lower bound for `max_samples`.
16
+ - Log recorder: Always re-open log buffer for `eval` format logs.
17
+ - Bugfix: Proper handling of text find for eval raw JSON display
18
+ - Bugfix: Correct handling for `--sample-id` integer comparisons.
19
+ - Bugfix: Proper removal of model_args with falsey values (explicit check for `None`)
20
+ - Bugfix: Properly handle custom metrics that return dictionaries or lists
21
+ - Bugfix: Proper sample count display when retrying an evaluation
22
+ - Bugfix: Fix inability to define and run tasks in a notebook.
23
+
3
24
  ## v0.3.52 (13 December 2024)
4
25
 
5
26
  - Eval: `--sample-id` option for evaluating specific sample id(s).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: inspect_ai
3
- Version: 0.3.52
3
+ Version: 0.3.53
4
4
  Summary: Framework for large language model evaluations
5
5
  Author: UK AI Safety Institute
6
6
  License: MIT License
@@ -20,7 +20,6 @@ Classifier: Operating System :: OS Independent
20
20
  Requires-Python: >=3.10
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
- Requires-Dist: aiofiles
24
23
  Requires-Dist: aiohttp>=3.9.0
25
24
  Requires-Dist: anyio>=4.4.0
26
25
  Requires-Dist: beautifulsoup4
@@ -71,7 +70,6 @@ Requires-Dist: pytest-xdist; extra == "dev"
71
70
  Requires-Dist: ruff==0.8.3; extra == "dev"
72
71
  Requires-Dist: textual-dev>=0.86.2; extra == "dev"
73
72
  Requires-Dist: types-PyYAML; extra == "dev"
74
- Requires-Dist: types-aiofiles; extra == "dev"
75
73
  Requires-Dist: types-beautifulsoup4; extra == "dev"
76
74
  Requires-Dist: types-aioboto3; extra == "dev"
77
75
  Requires-Dist: types-boto3; extra == "dev"
@@ -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. |
@@ -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
 
@@ -132,7 +132,6 @@ dev = [
132
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
@@ -30,6 +30,7 @@ MAX_TASKS_HELP = "Maximum number of tasks to run in parallel (default is 1)"
30
30
  MAX_SUBPROCESSES_HELP = (
31
31
  "Maximum number of subprocesses to run in parallel (default is os.cpu_count())"
32
32
  )
33
+ MAX_SANDBOXES_HELP = "Maximum number of sandboxes (per-provider) to run in parallel."
33
34
  NO_SANDBOX_CLEANUP_HELP = "Do not cleanup sandbox environments after task completes"
34
35
  FAIL_ON_ERROR_HELP = "Threshold of sample errors to tolerage (by default, evals fail when any error occurs). Value between 0 to 1 to set a proportion; value greater than 1 to set a count."
35
36
  NO_LOG_SAMPLES_HELP = "Do not include samples in the log file."
@@ -192,6 +193,12 @@ def eval_options(func: Callable[..., Any]) -> Callable[..., click.Context]:
192
193
  help=MAX_SUBPROCESSES_HELP,
193
194
  envvar="INSPECT_EVAL_MAX_SUBPROCESSES",
194
195
  )
196
+ @click.option(
197
+ "--max-sandboxes",
198
+ type=int,
199
+ help=MAX_SANDBOXES_HELP,
200
+ envvar="INSPECT_EVAL_MAX_SANDBOXES",
201
+ )
195
202
  @click.option(
196
203
  "--message-limit",
197
204
  type=int,
@@ -361,6 +368,12 @@ def eval_options(func: Callable[..., Any]) -> Callable[..., click.Context]:
361
368
  help='Cache prompt prefix (Anthropic only). Defaults to "auto", which will enable caching for requests with tools.',
362
369
  envvar="INSPECT_EVAL_CACHE_PROMPT",
363
370
  )
371
+ @click.option(
372
+ "--reasoning-effort",
373
+ type=click.Choice(["low", "medium", "high"]),
374
+ help="Constrains effort on reasoning for reasoning models. Open AI o1 models only.",
375
+ envvar="INSPECT_EVAL_REASONING_EFFORT",
376
+ )
364
377
  @click.option(
365
378
  "--log-format",
366
379
  type=click.Choice(["eval", "json"], case_sensitive=False),
@@ -419,12 +432,14 @@ def eval_command(
419
432
  parallel_tool_calls: bool | None,
420
433
  max_tool_output: int | None,
421
434
  cache_prompt: str | None,
435
+ reasoning_effort: str | None,
422
436
  message_limit: int | None,
423
437
  token_limit: int | None,
424
438
  time_limit: int | None,
425
439
  max_samples: int | None,
426
440
  max_tasks: int | None,
427
441
  max_subprocesses: int | None,
442
+ max_sandboxes: int | None,
428
443
  fail_on_error: bool | float | None,
429
444
  no_fail_on_error: bool | None,
430
445
  no_log_samples: bool | None,
@@ -472,6 +487,7 @@ def eval_command(
472
487
  max_samples=max_samples,
473
488
  max_tasks=max_tasks,
474
489
  max_subprocesses=max_subprocesses,
490
+ max_sandboxes=max_sandboxes,
475
491
  fail_on_error=fail_on_error,
476
492
  no_fail_on_error=no_fail_on_error,
477
493
  debug_errors=common["debug_errors"],
@@ -573,12 +589,14 @@ def eval_set_command(
573
589
  parallel_tool_calls: bool | None,
574
590
  max_tool_output: int | None,
575
591
  cache_prompt: str | None,
592
+ reasoning_effort: str | None,
576
593
  message_limit: int | None,
577
594
  token_limit: int | None,
578
595
  time_limit: int | None,
579
596
  max_samples: int | None,
580
597
  max_tasks: int | None,
581
598
  max_subprocesses: int | None,
599
+ max_sandboxes: int | None,
582
600
  fail_on_error: bool | float | None,
583
601
  no_fail_on_error: bool | None,
584
602
  no_log_samples: bool | None,
@@ -628,6 +646,7 @@ def eval_set_command(
628
646
  max_samples=max_samples,
629
647
  max_tasks=max_tasks,
630
648
  max_subprocesses=max_subprocesses,
649
+ max_sandboxes=max_sandboxes,
631
650
  fail_on_error=fail_on_error,
632
651
  no_fail_on_error=no_fail_on_error,
633
652
  debug_errors=common["debug_errors"],
@@ -679,6 +698,7 @@ def eval_exec(
679
698
  max_samples: int | None,
680
699
  max_tasks: int | None,
681
700
  max_subprocesses: int | None,
701
+ max_sandboxes: int | None,
682
702
  fail_on_error: bool | float | None,
683
703
  no_fail_on_error: bool | None,
684
704
  debug_errors: bool | None,
@@ -756,6 +776,7 @@ def eval_exec(
756
776
  max_samples=max_samples,
757
777
  max_tasks=max_tasks,
758
778
  max_subprocesses=max_subprocesses,
779
+ max_sandboxes=max_sandboxes,
759
780
  log_samples=log_samples,
760
781
  log_images=log_images,
761
782
  log_buffer=log_buffer,
@@ -834,6 +855,12 @@ def parse_comma_separated(value: str | None) -> list[str] | None:
834
855
  help=MAX_SUBPROCESSES_HELP,
835
856
  envvar="INSPECT_EVAL_MAX_SUBPROCESSES",
836
857
  )
858
+ @click.option(
859
+ "--max-sandboxes",
860
+ type=int,
861
+ help=MAX_SANDBOXES_HELP,
862
+ envvar="INSPECT_EVAL_MAX_SANDBOXES",
863
+ )
837
864
  @click.option(
838
865
  "--no-sandbox-cleanup",
839
866
  type=bool,
@@ -904,6 +931,7 @@ def eval_retry_command(
904
931
  max_samples: int | None,
905
932
  max_tasks: int | None,
906
933
  max_subprocesses: int | None,
934
+ max_sandboxes: int | None,
907
935
  no_sandbox_cleanup: bool | None,
908
936
  trace: bool | None,
909
937
  fail_on_error: bool | float | None,
@@ -947,6 +975,7 @@ def eval_retry_command(
947
975
  max_samples=max_samples,
948
976
  max_tasks=max_tasks,
949
977
  max_subprocesses=max_subprocesses,
978
+ max_sandboxes=max_sandboxes,
950
979
  sandbox_cleanup=sandbox_cleanup,
951
980
  trace=trace,
952
981
  fail_on_error=fail_on_error,
@@ -130,9 +130,15 @@ def progress_time(time: float) -> str:
130
130
  return f"{hours:2.0f}:{minutes:02.0f}:{seconds:02.0f}"
131
131
 
132
132
 
133
- def progress_count(complete: int, total: int) -> str:
134
- # Pad the display to keep it stable
133
+ def progress_count(complete: int, total: int, width: int | None = None) -> str:
134
+ # Pad the display to keep it stable as the
135
+ # complete metrics
135
136
  total_str = f"{total:,}"
136
137
  complete_str = f"{complete:,}"
137
138
  padding = max(0, len(total_str) - len(complete_str))
138
- 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:
@@ -224,6 +224,9 @@ class TaskMetrics(Widget):
224
224
  self.recompute_grid()
225
225
 
226
226
  def recompute_grid(self) -> None:
227
+ if not self.is_mounted:
228
+ return
229
+
227
230
  grid = self.query_one(f"#{self.grid_id()}")
228
231
 
229
232
  grid.remove_children()
@@ -36,6 +36,9 @@ from ...core.progress import (
36
36
  progress_model_name,
37
37
  )
38
38
 
39
+ MAX_METRIC_WIDTH = 25
40
+ MAX_COUNT_WIDTH = 15
41
+
39
42
 
40
43
  class TasksView(Container):
41
44
  DEFAULT_CSS = """
@@ -68,6 +71,7 @@ class TasksView(Container):
68
71
  super().__init__()
69
72
  self.description_width = MAX_DESCRIPTION_WIDTH
70
73
  self.model_name_width = MAX_MODEL_NAME_WIDTH
74
+ self.sample_count_width = 0
71
75
 
72
76
  def init_tasks(self, tasks: list[TaskSpec]) -> None:
73
77
  # clear existing tasks
@@ -80,15 +84,41 @@ class TasksView(Container):
80
84
  self.model_name_width = min(
81
85
  max([len(str(task.model)) for task in tasks]), MAX_MODEL_NAME_WIDTH
82
86
  )
87
+ self.update_progress_widths()
83
88
 
84
89
  def add_task(self, task: TaskWithResult) -> TaskDisplay:
90
+ self.update_count_width(task.profile.samples)
85
91
  task_display = TaskProgressView(
86
- task, self.description_width, self.model_name_width
92
+ task, self.description_width, self.model_name_width, self.sample_count_width
87
93
  )
88
94
  self.tasks.mount(task_display)
89
95
  self.tasks.scroll_to_widget(task_display)
96
+ self.update_progress_widths()
97
+
90
98
  return task_display
91
99
 
100
+ def update_count_width(self, samples: int) -> None:
101
+ sample_count_str = progress_count(samples, samples, self.sample_count_width)
102
+ self.sample_count_width = min(
103
+ max(self.sample_count_width, len(sample_count_str)), MAX_COUNT_WIDTH
104
+ )
105
+
106
+ def update_progress_widths(self) -> None:
107
+ progress_views = self.tasks.query_children(TaskProgressView)
108
+ metrics_size = 0
109
+ for progress_view in progress_views:
110
+ metrics_size = max(
111
+ metrics_size,
112
+ progress_view.metrics_width
113
+ if progress_view.metrics_width is not None
114
+ else 0,
115
+ )
116
+ metrics_size = min(metrics_size, MAX_METRIC_WIDTH)
117
+
118
+ for progress_view in progress_views:
119
+ progress_view.update_metrics_width(metrics_size)
120
+ progress_view.update_count_width(self.sample_count_width)
121
+
92
122
  def compose(self) -> ComposeResult:
93
123
  yield Static(id="tasks-config")
94
124
  yield Static(id="tasks-targets")
@@ -139,13 +169,18 @@ class TaskProgressView(Widget):
139
169
  """
140
170
 
141
171
  def __init__(
142
- self, task: TaskWithResult, description_width: int, model_name_width: int
172
+ self,
173
+ task: TaskWithResult,
174
+ description_width: int,
175
+ model_name_width: int,
176
+ sample_count_width: int,
143
177
  ) -> None:
144
178
  super().__init__()
145
179
  self.t = task
146
180
 
147
181
  self.description_width = description_width
148
182
  self.model_name_width = model_name_width
183
+
149
184
  self.progress_bar = ProgressBar(total=task.profile.steps, show_eta=False)
150
185
  self.count_display = Static()
151
186
  self.metrics_display = Static(id="task-metrics")
@@ -154,6 +189,14 @@ class TaskProgressView(Widget):
154
189
  self.toggle = Toggle()
155
190
  self.task_detail = TaskDetail(id="task-detail", classes="hidden")
156
191
 
192
+ self.sample_count_width: int = sample_count_width
193
+
194
+ metrics: reactive[list[TaskDisplayMetric] | None] = reactive(None)
195
+ metrics_width: reactive[int | None] = reactive(None)
196
+ sample_count_width: reactive[int] = reactive(0)
197
+ samples_complete: reactive[int] = reactive(0)
198
+ samples_total: reactive[int] = reactive(0)
199
+
157
200
  def compose(self) -> ComposeResult:
158
201
  yield self.toggle
159
202
  yield TaskStatusIcon()
@@ -191,13 +234,51 @@ class TaskProgressView(Widget):
191
234
  self.task_progress.complete()
192
235
 
193
236
  def sample_complete(self, complete: int, total: int) -> None:
194
- self.count_display.update(progress_count(complete, total))
237
+ self.samples_complete = complete
238
+ self.samples_total = total
195
239
 
196
240
  def update_metrics(self, metrics: list[TaskDisplayMetric]) -> None:
197
- if len(metrics) > 0:
198
- self.metrics_display.update(task_metric(metrics))
241
+ self.metrics = metrics
242
+
243
+ def update_metrics_width(self, width: int) -> None:
244
+ self.metrics_width = width
245
+
246
+ def update_count_width(self, width: int) -> None:
247
+ self.sample_count_width = width
248
+
249
+ def _watch_sample_count_width(self, width: int) -> None:
250
+ self.refresh_count()
251
+
252
+ def _watch_samples_complete(self, complete: int) -> None:
253
+ self.refresh_count()
254
+
255
+ def _watch_samples_total(self, total: int) -> None:
256
+ self.refresh_count()
257
+
258
+ def _watch_metrics_width(self, width: int) -> None:
259
+ self.update_metrics_label()
260
+
261
+ def _watch_metrics(self, metrics: list[TaskDisplayMetric] | None) -> None:
262
+ if metrics is not None and len(metrics) > 0:
263
+ # update label
264
+ self.update_metrics_label()
265
+
266
+ # update details
199
267
  self.task_detail.update_metrics(metrics)
200
268
 
269
+ def refresh_count(self) -> None:
270
+ progress_label = progress_count(
271
+ self.samples_complete, self.samples_total, self.sample_count_width
272
+ )
273
+ self.count_display.update(progress_label)
274
+
275
+ def update_metrics_label(self) -> None:
276
+ # compute the label (with a min size)
277
+ if self.metrics is not None:
278
+ metric_label = task_metric(self.metrics, self.metrics_width)
279
+ self.metrics_width = len(metric_label)
280
+ self.metrics_display.update(metric_label)
281
+
201
282
 
202
283
  class TaskStatusIcon(Static):
203
284
  result: reactive[TaskResult | None] = reactive(None)
@@ -71,6 +71,7 @@ def eval(
71
71
  max_samples: int | None = None,
72
72
  max_tasks: int | None = None,
73
73
  max_subprocesses: int | None = None,
74
+ max_sandboxes: int | None = None,
74
75
  log_samples: bool | None = None,
75
76
  log_images: bool | None = None,
76
77
  log_buffer: int | None = None,
@@ -129,6 +130,8 @@ def eval(
129
130
  (default is 1)
130
131
  max_subprocesses (int | None): Maximum number of subprocesses to
131
132
  run in parallel (default is os.cpu_count())
133
+ max_sandboxes (int | None): Maximum number of sandboxes (per-provider)
134
+ to run in parallel.
132
135
  log_samples: (bool | None): Log detailed samples and scores (defaults to True)
133
136
  log_images: (bool | None): Log base64 encoded version of images,
134
137
  even if specified as a filename or URL (defaults to False)
@@ -175,6 +178,7 @@ def eval(
175
178
  max_samples=max_samples,
176
179
  max_tasks=max_tasks,
177
180
  max_subprocesses=max_subprocesses,
181
+ max_sandboxes=max_sandboxes,
178
182
  log_samples=log_samples,
179
183
  log_images=log_images,
180
184
  log_buffer=log_buffer,
@@ -211,6 +215,7 @@ async def eval_async(
211
215
  max_samples: int | None = None,
212
216
  max_tasks: int | None = None,
213
217
  max_subprocesses: int | None = None,
218
+ max_sandboxes: int | None = None,
214
219
  log_samples: bool | None = None,
215
220
  log_images: bool | None = None,
216
221
  log_buffer: int | None = None,
@@ -268,6 +273,8 @@ async def eval_async(
268
273
  (default is 1)
269
274
  max_subprocesses (int | None): Maximum number of subprocesses to
270
275
  run in parallel (default is os.cpu_count())
276
+ max_sandboxes (int | None): Maximum number of sandboxes (per-provider)
277
+ to run in parallel.
271
278
  log_samples: (bool | None): Log detailed samples and scores (defaults to True)
272
279
  log_images: (bool | None): Log base64 encoded version of images,
273
280
  even if specified as a filename or URL (defaults to False)
@@ -368,6 +375,7 @@ async def eval_async(
368
375
  max_samples=max_samples,
369
376
  max_tasks=max_tasks,
370
377
  max_subprocesses=max_subprocesses,
378
+ max_sandboxes=max_sandboxes,
371
379
  sandbox_cleanup=sandbox_cleanup,
372
380
  log_samples=log_samples,
373
381
  log_images=log_images,
@@ -450,6 +458,7 @@ def eval_retry(
450
458
  max_samples: int | None = None,
451
459
  max_tasks: int | None = None,
452
460
  max_subprocesses: int | None = None,
461
+ max_sandboxes: int | None = None,
453
462
  sandbox_cleanup: bool | None = None,
454
463
  trace: bool | None = None,
455
464
  fail_on_error: bool | float | None = None,
@@ -480,6 +489,8 @@ def eval_retry(
480
489
  (default is 1)
481
490
  max_subprocesses (int | None): Maximum number of subprocesses to
482
491
  run in parallel (default is os.cpu_count())
492
+ max_sandboxes (int | None): Maximum number of sandboxes (per-provider)
493
+ to run in parallel.
483
494
  sandbox_cleanup (bool | None): Cleanup sandbox environments after task completes
484
495
  (defaults to True)
485
496
  trace (bool | None): Trace message interactions with evaluated model to terminal.
@@ -522,6 +533,7 @@ def eval_retry(
522
533
  max_samples=max_samples,
523
534
  max_tasks=max_tasks,
524
535
  max_subprocesses=max_subprocesses,
536
+ max_sandboxes=max_sandboxes,
525
537
  sandbox_cleanup=sandbox_cleanup,
526
538
  fail_on_error=fail_on_error,
527
539
  debug_errors=debug_errors,
@@ -545,6 +557,7 @@ async def eval_retry_async(
545
557
  max_samples: int | None = None,
546
558
  max_tasks: int | None = None,
547
559
  max_subprocesses: int | None = None,
560
+ max_sandboxes: int | None = None,
548
561
  sandbox_cleanup: bool | None = None,
549
562
  fail_on_error: bool | float | None = None,
550
563
  debug_errors: bool | None = None,
@@ -574,6 +587,7 @@ async def eval_retry_async(
574
587
  (default is 1)
575
588
  max_subprocesses (int): Maximum number of subprocesses to
576
589
  run in parallel (default is os.cpu_count())
590
+ max_sandboxes (int): Maximum number of sandboxes (per-provider) to run in parallel.
577
591
  sandbox_cleanup (bool | None): Cleanup sandbox environments after task completes
578
592
  (defaults to True)
579
593
  fail_on_error (bool | float | None): `True` to fail on first sample error
@@ -665,6 +679,7 @@ async def eval_retry_async(
665
679
  max_samples = max_samples or eval_log.eval.config.max_samples
666
680
  max_tasks = max_tasks or eval_log.eval.config.max_tasks
667
681
  max_subprocesses = max_subprocesses or eval_log.eval.config.max_subprocesses
682
+ max_sandboxes = max_sandboxes or eval_log.eval.config.max_sandboxes
668
683
  sandbox_cleanup = (
669
684
  sandbox_cleanup
670
685
  if sandbox_cleanup is not None
@@ -720,6 +735,7 @@ async def eval_retry_async(
720
735
  max_samples=max_samples,
721
736
  max_tasks=max_tasks,
722
737
  max_subprocesses=max_subprocesses,
738
+ max_sandboxes=max_sandboxes,
723
739
  log_samples=log_samples,
724
740
  log_images=log_images,
725
741
  log_buffer=log_buffer,
@@ -75,6 +75,7 @@ def eval_set(
75
75
  max_samples: int | None = None,
76
76
  max_tasks: int | None = None,
77
77
  max_subprocesses: int | None = None,
78
+ max_sandboxes: int | None = None,
78
79
  log_samples: bool | None = None,
79
80
  log_images: bool | None = None,
80
81
  log_buffer: int | None = None,
@@ -144,6 +145,8 @@ def eval_set(
144
145
  (default is 1)
145
146
  max_subprocesses (int | None): Maximum number of subprocesses to
146
147
  run in parallel (default is os.cpu_count())
148
+ max_sandboxes (int | None): Maximum number of sandboxes (per-provider)
149
+ to run in parallel.
147
150
  log_samples: (bool | None): Log detailed samples and scores (defaults to True)
148
151
  log_images: (bool | None): Log base64 encoded version of images,
149
152
  even if specified as a filename or URL (defaults to False)
@@ -193,6 +196,7 @@ def eval_set(
193
196
  max_samples=max_samples,
194
197
  max_tasks=max_tasks,
195
198
  max_subprocesses=max_subprocesses,
199
+ max_sandboxes=max_sandboxes,
196
200
  log_samples=log_samples,
197
201
  log_images=log_images,
198
202
  log_buffer=log_buffer,
@@ -146,8 +146,8 @@ def task(*args: Any, name: str | None = None, **attribs: Any) -> Any:
146
146
  # module import, so set its task file and run dir
147
147
  if get_installed_package_name(task_type) is None:
148
148
  module = inspect.getmodule(task_type)
149
- if module and module.__file__:
150
- file = Path(module.__file__)
149
+ if module and hasattr(module, "__file__"):
150
+ file = Path(getattr(module, "__file__"))
151
151
  setattr(task_instance, TASK_FILE_ATTR, file.as_posix())
152
152
  setattr(task_instance, TASK_RUN_DIR_ATTR, file.parent.as_posix())
153
153