inspect-ai 0.3.49__tar.gz → 0.3.51__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 (821) hide show
  1. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/.pre-commit-config.yaml +1 -1
  2. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/CHANGELOG.md +35 -1
  3. {inspect_ai-0.3.49/src/inspect_ai.egg-info → inspect_ai-0.3.51}/PKG-INFO +2 -2
  4. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/_quarto.yml +4 -0
  5. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/extensions.qmd +24 -5
  6. inspect_ai-0.3.51/docs/llms.txt +26 -0
  7. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/models.qmd +1 -1
  8. inspect_ai-0.3.51/docs/scripts/post-render.sh +13 -0
  9. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/solvers.qmd +3 -3
  10. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/workflow.qmd +2 -2
  11. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/approval/approval.py +1 -1
  12. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/pyproject.toml +1 -1
  13. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_cli/info.py +2 -2
  14. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_cli/log.py +2 -2
  15. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_cli/score.py +2 -2
  16. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/core/display.py +19 -0
  17. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/core/panel.py +37 -7
  18. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/core/progress.py +29 -2
  19. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/core/results.py +79 -40
  20. inspect_ai-0.3.51/src/inspect_ai/_display/core/textual.py +21 -0
  21. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/rich/display.py +28 -8
  22. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/textual/app.py +107 -1
  23. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/textual/display.py +1 -1
  24. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/textual/widgets/samples.py +132 -91
  25. inspect_ai-0.3.51/src/inspect_ai/_display/textual/widgets/task_detail.py +236 -0
  26. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/textual/widgets/tasks.py +74 -6
  27. inspect_ai-0.3.51/src/inspect_ai/_display/textual/widgets/toggle.py +32 -0
  28. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/context.py +2 -0
  29. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/eval.py +4 -3
  30. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/loader.py +1 -1
  31. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/run.py +35 -2
  32. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/log.py +13 -11
  33. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/results.py +12 -3
  34. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/run.py +139 -36
  35. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/sandbox.py +2 -1
  36. inspect_ai-0.3.51/src/inspect_ai/_util/_async.py +39 -0
  37. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/file.py +31 -4
  38. inspect_ai-0.3.51/src/inspect_ai/_util/html.py +3 -0
  39. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/logger.py +6 -5
  40. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/platform.py +5 -6
  41. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/registry.py +1 -1
  42. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/server.py +9 -9
  43. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/App.css +2 -2
  44. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/dist/assets/index.css +2 -2
  45. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/dist/assets/index.js +352 -294
  46. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/log-schema.json +13 -0
  47. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/package.json +1 -0
  48. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/MessageBand.mjs +1 -1
  49. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/Tools.mjs +16 -13
  50. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/SampleDisplay.mjs +1 -3
  51. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/SampleScoreView.mjs +52 -77
  52. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/SamplesDescriptor.mjs +38 -13
  53. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/ModelEventView.mjs +15 -2
  54. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventRenderers.mjs +4 -2
  55. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/types/log.d.ts +2 -0
  56. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/workspace/WorkSpace.mjs +2 -0
  57. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/yarn.lock +9 -4
  58. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/approval/__init__.py +1 -1
  59. inspect_ai-0.3.51/src/inspect_ai/approval/_human/approver.py +35 -0
  60. inspect_ai-0.3.51/src/inspect_ai/approval/_human/console.py +62 -0
  61. inspect_ai-0.3.51/src/inspect_ai/approval/_human/manager.py +108 -0
  62. inspect_ai-0.3.51/src/inspect_ai/approval/_human/panel.py +233 -0
  63. inspect_ai-0.3.51/src/inspect_ai/approval/_human/util.py +51 -0
  64. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_sources/hf.py +2 -2
  65. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_sources/util.py +1 -1
  66. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_file.py +106 -36
  67. inspect_ai-0.3.51/src/inspect_ai/log/_recorders/eval.py +512 -0
  68. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_recorders/file.py +9 -6
  69. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_recorders/json.py +35 -12
  70. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_recorders/recorder.py +15 -15
  71. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_samples.py +52 -0
  72. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_model.py +14 -0
  73. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_model_output.py +4 -0
  74. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/azureai.py +1 -1
  75. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/hf.py +106 -4
  76. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/util/__init__.py +2 -0
  77. inspect_ai-0.3.51/src/inspect_ai/model/_providers/util/hf_handler.py +200 -0
  78. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_common.py +1 -1
  79. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_plan.py +0 -8
  80. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_task_state.py +18 -1
  81. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_use_tools.py +9 -1
  82. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tool_def.py +2 -2
  83. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tool_info.py +14 -2
  84. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tool_params.py +2 -1
  85. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_execute.py +1 -1
  86. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_web_browser.py +6 -0
  87. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/__init__.py +5 -6
  88. inspect_ai-0.3.51/src/inspect_ai/util/_panel.py +91 -0
  89. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/__init__.py +2 -6
  90. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/context.py +4 -3
  91. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/docker/compose.py +12 -2
  92. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/docker/docker.py +19 -9
  93. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/docker/util.py +10 -2
  94. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/environment.py +47 -41
  95. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/local.py +15 -10
  96. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_subprocess.py +43 -3
  97. {inspect_ai-0.3.49 → inspect_ai-0.3.51/src/inspect_ai.egg-info}/PKG-INFO +2 -2
  98. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai.egg-info/SOURCES.txt +16 -4
  99. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai.egg-info/requires.txt +1 -1
  100. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_hf.py +2 -0
  101. inspect_ai-0.3.51/tests/scorer/test_match.py +40 -0
  102. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_extensions.py +29 -0
  103. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_package/inspect_package/sandboxenv/podman.py +17 -4
  104. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_run_dir/task2/task2.py +3 -1
  105. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_sample_limits.py +9 -2
  106. inspect_ai-0.3.51/tests/tools/test_max_exec_output.py +59 -0
  107. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_sandbox_dockerfile.py +13 -0
  108. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_tool_parse.py +1 -1
  109. inspect_ai-0.3.51/tests/tools/test_use_tools.py +65 -0
  110. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/sandbox/test_sandbox_service.py +3 -0
  111. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/CHANGELOG.md +13 -0
  112. inspect_ai-0.3.51/tools/vscode/assets/logo/inspect.png +0 -0
  113. inspect_ai-0.3.51/tools/vscode/assets/logo/inspect.svg +10 -0
  114. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/package.json +1 -1
  115. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/@types/log.d.ts +2 -0
  116. inspect_ai-0.3.51/tools/vscode/src/core/file.ts +15 -0
  117. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/extension.ts +5 -1
  118. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/inspect/index.ts +0 -1
  119. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/inspect/props.ts +4 -4
  120. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-provider.ts +1 -1
  121. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/task-outline-provider.ts +5 -4
  122. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.ts +1 -1
  123. inspect_ai-0.3.51/tools/vscode/src/providers/inspect/inspect-commands.ts +85 -0
  124. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/logview/logview-link-provider.ts +1 -1
  125. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/workspace/workspace-task-provider.ts +65 -11
  126. inspect_ai-0.3.49/src/inspect_ai/_util/_async.py +0 -10
  127. inspect_ai-0.3.49/src/inspect_ai/_view/www/node_modules/flatted/python/flatted.py +0 -149
  128. inspect_ai-0.3.49/src/inspect_ai/_view/www/node_modules/flatted/python/test.py +0 -63
  129. inspect_ai-0.3.49/src/inspect_ai/approval/_human.py +0 -123
  130. inspect_ai-0.3.49/src/inspect_ai/log/_recorders/eval.py +0 -444
  131. inspect_ai-0.3.49/tests/scorer/test_match.py +0 -13
  132. inspect_ai-0.3.49/tests/tools/test_use_tools.py +0 -44
  133. inspect_ai-0.3.49/tools/vscode/assets/logo/inspect.png +0 -0
  134. inspect_ai-0.3.49/tools/vscode/assets/logo/inspect.svg +0 -8
  135. inspect_ai-0.3.49/tools/vscode/src/inspect/list.ts +0 -26
  136. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/.github/dependabot.yml +0 -0
  137. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/.github/pull_request_template.md +0 -0
  138. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/.github/workflows/build.yml +0 -0
  139. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/.github/workflows/docs.yml +0 -0
  140. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/.github/workflows/log_viewer.yml +0 -0
  141. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/.github/workflows/pypi.yml +0 -0
  142. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/.github/workflows/vscode.yml +0 -0
  143. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/.gitignore +0 -0
  144. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/.vscode/extensions.json +0 -0
  145. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/.vscode/settings.json +0 -0
  146. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/CITATION.cff +0 -0
  147. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/LICENSE +0 -0
  148. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/Makefile +0 -0
  149. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/README.md +0 -0
  150. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/.gitignore +0 -0
  151. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/CNAME +0 -0
  152. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/_errors_and_retries.md +0 -0
  153. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/_sample-preservation.md +0 -0
  154. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/_sandboxenv-interface.md +0 -0
  155. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/_tools-annotations-required.md +0 -0
  156. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/_tools-scaffold.md +0 -0
  157. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/_trace.md +0 -0
  158. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/_variables.yml +0 -0
  159. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/agents-api.qmd +0 -0
  160. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/agents.qmd +0 -0
  161. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/approval.qmd +0 -0
  162. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/caching.qmd +0 -0
  163. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/datasets.qmd +0 -0
  164. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/errors-and-limits.qmd +0 -0
  165. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/eval-logs.qmd +0 -0
  166. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/eval-sets.qmd +0 -0
  167. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/examples/examples.bib +0 -0
  168. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/examples/examples.css +0 -0
  169. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/examples/examples.ejs +0 -0
  170. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/examples/examples.yml +0 -0
  171. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/examples/index.qmd +0 -0
  172. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/aisi-logo.png +0 -0
  173. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/eval-log.png +0 -0
  174. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-activity-bar.png +0 -0
  175. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-multiple-models.png +0 -0
  176. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-answers.png +0 -0
  177. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-filter.png +0 -0
  178. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-history.png +0 -0
  179. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-home.png +0 -0
  180. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-info.png +0 -0
  181. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-logging-console.png +0 -0
  182. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-logging.png +0 -0
  183. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-main.png +0 -0
  184. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-messages.png +0 -0
  185. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-metadata.png +0 -0
  186. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-scoring.png +0 -0
  187. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-sort.png +0 -0
  188. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-view-splash.png +0 -0
  189. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-vscode-config.png +0 -0
  190. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-vscode-install.png +0 -0
  191. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-vscode-logview.png +0 -0
  192. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-vscode-output-channel.png +0 -0
  193. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect-vscode-run-task.png +0 -0
  194. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/inspect.png +0 -0
  195. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/logs-drop-down.png +0 -0
  196. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/logs-open-button.png +0 -0
  197. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/logs.png +0 -0
  198. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/popularity.png +0 -0
  199. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/python-tool-view.png +0 -0
  200. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/rate-limit.png +0 -0
  201. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/running-theory.png +0 -0
  202. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/toolenv-no-cleanup.png +0 -0
  203. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/images/web-browser-tool-view.png +0 -0
  204. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/index.qmd +0 -0
  205. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/interactivity.qmd +0 -0
  206. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/log-viewer.qmd +0 -0
  207. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/parallelism.qmd +0 -0
  208. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/scorers.qmd +0 -0
  209. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/theme.scss +0 -0
  210. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/tools.qmd +0 -0
  211. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/tutorial.qmd +0 -0
  212. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/docs/vscode.qmd +0 -0
  213. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/approval/README.md +0 -0
  214. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/approval/approval.yaml +0 -0
  215. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/biology_qa.py +0 -0
  216. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/browser/browser.py +0 -0
  217. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/browser/compose.yaml +0 -0
  218. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/cache.py +0 -0
  219. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/evalset.py +0 -0
  220. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/hello_world.py +0 -0
  221. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/images/ballons.png +0 -0
  222. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/images/bike.png +0 -0
  223. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/images/images.jsonl +0 -0
  224. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/images/images.py +0 -0
  225. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/intervention/Dockerfile +0 -0
  226. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/intervention/README.md +0 -0
  227. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/intervention/compose.yaml +0 -0
  228. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/intervention/intervention.py +0 -0
  229. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/langchain/.env.example +0 -0
  230. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/langchain/.gitignore +0 -0
  231. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/langchain/README.md +0 -0
  232. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/langchain/inspect_langchain.py +0 -0
  233. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/langchain/requirements.txt +0 -0
  234. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/langchain/wikipedia.jsonl +0 -0
  235. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/langchain/wikipedia.py +0 -0
  236. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/popularity.py +0 -0
  237. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/security_guide.py +0 -0
  238. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/theory_of_mind.py +0 -0
  239. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/examples/tool_use.py +0 -0
  240. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/requirements.txt +0 -0
  241. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/setup.cfg +0 -0
  242. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/__init__.py +0 -0
  243. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/__main__.py +0 -0
  244. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_cli/cache.py +0 -0
  245. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_cli/common.py +0 -0
  246. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_cli/eval.py +0 -0
  247. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_cli/list.py +0 -0
  248. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_cli/main.py +0 -0
  249. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_cli/sandbox.py +0 -0
  250. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_cli/util.py +0 -0
  251. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_cli/view.py +0 -0
  252. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/__init__.py +0 -0
  253. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/core/active.py +0 -0
  254. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/core/config.py +0 -0
  255. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/core/footer.py +0 -0
  256. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/core/group.py +0 -0
  257. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/core/rich.py +0 -0
  258. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/rich/__init__.py +0 -0
  259. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/textual/app.tcss +0 -0
  260. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/textual/theme.py +0 -0
  261. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/textual/widgets/clock.py +0 -0
  262. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/textual/widgets/console.py +0 -0
  263. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/textual/widgets/footer.py +0 -0
  264. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/textual/widgets/titlebar.py +0 -0
  265. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_display/textual/widgets/transcript.py +0 -0
  266. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/evalset.py +0 -0
  267. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/list.py +0 -0
  268. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/registry.py +0 -0
  269. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/score.py +0 -0
  270. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/__init__.py +0 -0
  271. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/constants.py +0 -0
  272. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/epochs.py +0 -0
  273. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/error.py +0 -0
  274. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/generate.py +0 -0
  275. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/images.py +0 -0
  276. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/rundir.py +0 -0
  277. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/task.py +0 -0
  278. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_eval/task/util.py +0 -0
  279. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/appdirs.py +0 -0
  280. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/config.py +0 -0
  281. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/constants.py +0 -0
  282. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/content.py +0 -0
  283. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/datetime.py +0 -0
  284. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/decorator.py +0 -0
  285. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/deprecation.py +0 -0
  286. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/dev.py +0 -0
  287. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/dict.py +0 -0
  288. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/display.py +0 -0
  289. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/dotenv.py +0 -0
  290. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/entrypoints.py +0 -0
  291. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/environ.py +0 -0
  292. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/error.py +0 -0
  293. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/format.py +0 -0
  294. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/git.py +0 -0
  295. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/hash.py +0 -0
  296. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/hooks.py +0 -0
  297. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/http.py +0 -0
  298. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/images.py +0 -0
  299. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/json.py +0 -0
  300. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/list.py +0 -0
  301. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/notebook.py +0 -0
  302. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/package.py +0 -0
  303. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/path.py +0 -0
  304. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/pattern.py +0 -0
  305. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/retry.py +0 -0
  306. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/rich.py +0 -0
  307. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/samples.py +0 -0
  308. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/terminal.py +0 -0
  309. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/text.py +0 -0
  310. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/throttle.py +0 -0
  311. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/timeouts.py +0 -0
  312. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/transcript.py +0 -0
  313. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/url.py +0 -0
  314. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_util/version.py +0 -0
  315. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/notify.py +0 -0
  316. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/schema.py +0 -0
  317. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/view.py +0 -0
  318. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/.gitignore +0 -0
  319. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/.prettierignore +0 -0
  320. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/.tool-versions +0 -0
  321. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/README.md +0 -0
  322. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/dist/assets/favicon.svg +0 -0
  323. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/dist/index.html +0 -0
  324. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/eslint.config.mjs +0 -0
  325. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/favicon.svg +0 -0
  326. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/index.html +0 -0
  327. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/jsconfig.json +0 -0
  328. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/postcss.config.cjs +0 -0
  329. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/App.mjs +0 -0
  330. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/Register.mjs +0 -0
  331. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/Types.mjs +0 -0
  332. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/api/Types.mjs +0 -0
  333. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/api/api-browser.mjs +0 -0
  334. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/api/api-http.mjs +0 -0
  335. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/api/api-shared.mjs +0 -0
  336. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/api/api-vscode.mjs +0 -0
  337. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/api/client-api.mjs +0 -0
  338. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/api/index.mjs +0 -0
  339. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/api/jsonrpc.mjs +0 -0
  340. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/appearance/Colors.mjs +0 -0
  341. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/appearance/Fonts.mjs +0 -0
  342. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/appearance/Icons.mjs +0 -0
  343. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/appearance/Styles.mjs +0 -0
  344. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/AnsiDisplay.css +0 -0
  345. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/AnsiDisplay.mjs +0 -0
  346. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/AppErrorBoundary.mjs +0 -0
  347. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/Browser.mjs +0 -0
  348. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/Card.mjs +0 -0
  349. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/ChatView.mjs +0 -0
  350. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/CopyButton.mjs +0 -0
  351. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/Dialog.mjs +0 -0
  352. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/DownloadButton.mjs +0 -0
  353. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/DownloadPanel.mjs +0 -0
  354. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/EmptyPanel.mjs +0 -0
  355. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/ErrorPanel.mjs +0 -0
  356. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/ExpandablePanel.mjs +0 -0
  357. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/FindBand.mjs +0 -0
  358. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/JsonPanel.mjs +0 -0
  359. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/LabeledValue.mjs +0 -0
  360. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/LargeModal.mjs +0 -0
  361. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/MarkdownDiv.mjs +0 -0
  362. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/MessageContent.mjs +0 -0
  363. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/MetaDataGrid.mjs +0 -0
  364. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/MetaDataView.mjs +0 -0
  365. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/MorePopOver.mjs +0 -0
  366. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/NavPills.mjs +0 -0
  367. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/ProgressBar.mjs +0 -0
  368. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/RenderedContent/ChatMessageRenderer.mjs +0 -0
  369. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/RenderedContent/RenderedContent.mjs +0 -0
  370. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/RenderedContent/Types.mjs +0 -0
  371. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/TabSet.mjs +0 -0
  372. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/ToolButton.mjs +0 -0
  373. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/VirtualList.mjs +0 -0
  374. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/components/ansi-output.js +0 -0
  375. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/constants.mjs +0 -0
  376. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/index.js +0 -0
  377. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/json/JsonTab.mjs +0 -0
  378. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/log/remoteLogFile.mjs +0 -0
  379. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/log-reader/Log-Reader.mjs +0 -0
  380. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/log-reader/Native-Log-Reader.mjs +0 -0
  381. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/log-reader/Open-AI-Log-Reader.mjs +0 -0
  382. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/navbar/Navbar.mjs +0 -0
  383. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/navbar/SecondaryBar.mjs +0 -0
  384. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/plan/PlanCard.mjs +0 -0
  385. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/SampleDialog.mjs +0 -0
  386. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/SampleError.mjs +0 -0
  387. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/SampleLimit.mjs +0 -0
  388. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/SampleList.mjs +0 -0
  389. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/SampleScores.mjs +0 -0
  390. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/SampleTranscript.mjs +0 -0
  391. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/SamplesTab.mjs +0 -0
  392. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/SamplesTools.mjs +0 -0
  393. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/tools/EpochFilter.mjs +0 -0
  394. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/tools/SampleFilter.mjs +0 -0
  395. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/tools/SelectScorer.mjs +0 -0
  396. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/tools/SortFilter.mjs +0 -0
  397. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/tools/filters.mjs +0 -0
  398. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/ApprovalEventView.mjs +0 -0
  399. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/ErrorEventView.mjs +0 -0
  400. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/EventPanel.mjs +0 -0
  401. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/EventRow.mjs +0 -0
  402. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/EventSection.mjs +0 -0
  403. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/InfoEventView.mjs +0 -0
  404. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/InputEventView.mjs +0 -0
  405. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/LoggerEventView.mjs +0 -0
  406. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/SampleInitEventView.mjs +0 -0
  407. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/SampleLimitEventView.mjs +0 -0
  408. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/ScoreEventView.mjs +0 -0
  409. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/StepEventView.mjs +0 -0
  410. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.mjs +0 -0
  411. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/ToolEventView.mjs +0 -0
  412. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptState.mjs +0 -0
  413. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/TranscriptView.mjs +0 -0
  414. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/Types.mjs +0 -0
  415. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/state/StateDiffView.mjs +0 -0
  416. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/samples/transcript/state/StateEventView.mjs +0 -0
  417. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/sidebar/Sidebar.mjs +0 -0
  418. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/types/jsondiffpatch.d.ts +0 -0
  419. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/types/prism.d.ts +0 -0
  420. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/usage/ModelTokenTable.mjs +0 -0
  421. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/usage/UsageCard.mjs +0 -0
  422. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/Base64.mjs +0 -0
  423. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/Format.mjs +0 -0
  424. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/Git.mjs +0 -0
  425. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/Html.mjs +0 -0
  426. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/Json.mjs +0 -0
  427. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/Path.mjs +0 -0
  428. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/Print.mjs +0 -0
  429. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/Type.mjs +0 -0
  430. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/attachments.mjs +0 -0
  431. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/debugging.mjs +0 -0
  432. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/http.mjs +0 -0
  433. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/queue.mjs +0 -0
  434. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/remoteZipFile.mjs +0 -0
  435. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/sync.mjs +0 -0
  436. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/utils/vscode.mjs +0 -0
  437. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/src/workspace/TaskErrorPanel.mjs +0 -0
  438. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/tsconfig.json +0 -0
  439. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/_view/www/vite.config.js +0 -0
  440. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/approval/_apply.py +0 -0
  441. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/approval/_approval.py +0 -0
  442. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/approval/_approver.py +0 -0
  443. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/approval/_auto.py +0 -0
  444. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/approval/_call.py +0 -0
  445. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/approval/_policy.py +0 -0
  446. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/approval/_registry.py +0 -0
  447. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/__init__.py +0 -0
  448. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_dataset.py +0 -0
  449. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_examples/bias_detection.jsonl +0 -0
  450. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_examples/biology_qa.jsonl +0 -0
  451. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_examples/popularity.jsonl +0 -0
  452. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_examples/security_guide.jsonl +0 -0
  453. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_examples/theory_of_mind.jsonl +0 -0
  454. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_sources/csv.py +0 -0
  455. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_sources/example.py +0 -0
  456. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_sources/file.py +0 -0
  457. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_sources/json.py +0 -0
  458. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/dataset/_util.py +0 -0
  459. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/__init__.py +0 -0
  460. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_bundle.py +0 -0
  461. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_condense.py +0 -0
  462. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_convert.py +0 -0
  463. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_log.py +0 -0
  464. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_message.py +0 -0
  465. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_recorders/__init__.py +0 -0
  466. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_recorders/create.py +0 -0
  467. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_retry.py +0 -0
  468. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/log/_transcript.py +0 -0
  469. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/__init__.py +0 -0
  470. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_cache.py +0 -0
  471. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_call_tools.py +0 -0
  472. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_chat_message.py +0 -0
  473. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_generate_config.py +0 -0
  474. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_image.py +0 -0
  475. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_model_call.py +0 -0
  476. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/anthropic.py +0 -0
  477. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/bedrock.py +0 -0
  478. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/cloudflare.py +0 -0
  479. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/google.py +0 -0
  480. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/grok.py +0 -0
  481. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/groq.py +0 -0
  482. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/llama_cpp_python.py +0 -0
  483. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/mistral.py +0 -0
  484. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/mockllm.py +0 -0
  485. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/ollama.py +0 -0
  486. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/openai.py +0 -0
  487. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/openai_o1.py +0 -0
  488. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/providers.py +0 -0
  489. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/together.py +0 -0
  490. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/util/chatapi.py +0 -0
  491. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/util/llama31.py +0 -0
  492. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/util/util.py +0 -0
  493. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/vertex.py +0 -0
  494. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_providers/vllm.py +0 -0
  495. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_registry.py +0 -0
  496. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_render.py +0 -0
  497. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/model/_trace.py +0 -0
  498. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/py.typed +0 -0
  499. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/__init__.py +0 -0
  500. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_answer.py +0 -0
  501. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_choice.py +0 -0
  502. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_classification.py +0 -0
  503. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_match.py +0 -0
  504. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_metric.py +0 -0
  505. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_metrics/__init__.py +0 -0
  506. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_metrics/accuracy.py +0 -0
  507. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_metrics/mean.py +0 -0
  508. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_metrics/std.py +0 -0
  509. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_model.py +0 -0
  510. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_multi.py +0 -0
  511. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_pattern.py +0 -0
  512. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_reducer/__init__.py +0 -0
  513. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_reducer/reducer.py +0 -0
  514. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_reducer/registry.py +0 -0
  515. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_reducer/types.py +0 -0
  516. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_score.py +0 -0
  517. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_scorer.py +0 -0
  518. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/scorer/_target.py +0 -0
  519. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/__init__.py +0 -0
  520. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_basic_agent.py +0 -0
  521. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_chain.py +0 -0
  522. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_critique.py +0 -0
  523. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_fork.py +0 -0
  524. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_multiple_choice.py +0 -0
  525. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_prompt.py +0 -0
  526. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_solver.py +0 -0
  527. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_transcript.py +0 -0
  528. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/solver/_util.py +0 -0
  529. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/__init__.py +0 -0
  530. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tool.py +0 -0
  531. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tool_call.py +0 -0
  532. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tool_choice.py +0 -0
  533. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tool_description.py +0 -0
  534. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tool_with.py +0 -0
  535. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/__init__.py +0 -0
  536. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/Dockerfile +0 -0
  537. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/README.md +0 -0
  538. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/accessibility_node.py +0 -0
  539. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/dm_env_servicer.py +0 -0
  540. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/images/usage_diagram.png +0 -0
  541. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/mock_environment.py +0 -0
  542. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/playwright_crawler.py +0 -0
  543. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_accessibility_node.py +0 -0
  544. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_dm_env_servicer.py +0 -0
  545. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_playwright_crawler.py +0 -0
  546. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/test_web_environment.py +0 -0
  547. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client.py +0 -0
  548. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_client_new_session.py +0 -0
  549. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_environment.py +0 -0
  550. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_browser/_resources/web_server.py +0 -0
  551. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/tool/_tools/_web_search.py +0 -0
  552. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_concurrency.py +0 -0
  553. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_console.py +0 -0
  554. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_resource.py +0 -0
  555. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/docker/cleanup.py +0 -0
  556. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/docker/config.py +0 -0
  557. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/docker/internal.py +0 -0
  558. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/docker/prereqs.py +0 -0
  559. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/limits.py +0 -0
  560. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/registry.py +0 -0
  561. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/self_check.py +0 -0
  562. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_sandbox/service.py +0 -0
  563. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_store.py +0 -0
  564. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_subtask.py +0 -0
  565. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai/util/_trace.py +0 -0
  566. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai.egg-info/dependency_links.txt +0 -0
  567. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai.egg-info/entry_points.txt +0 -0
  568. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/src/inspect_ai.egg-info/top_level.txt +0 -0
  569. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/approval/approve.yaml +0 -0
  570. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/approval/escalate.yaml +0 -0
  571. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/approval/modify.yaml +0 -0
  572. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/approval/reject.yaml +0 -0
  573. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/approval/terminate.yaml +0 -0
  574. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/approval/test_approval.py +0 -0
  575. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/conftest.py +0 -0
  576. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/dataset/test_dataset/dataset.jsonl +0 -0
  577. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/dataset/test_dataset/images/ballons.png +0 -0
  578. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/dataset/test_dataset/images.jsonl +0 -0
  579. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/dataset/test_dataset/samples-md.csv +0 -0
  580. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/dataset/test_dataset/samples-md.json +0 -0
  581. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/dataset/test_dataset/samples-md.jsonl +0 -0
  582. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/dataset/test_dataset/samples.csv +0 -0
  583. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/dataset/test_dataset/samples.json +0 -0
  584. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/dataset/test_dataset/samples.jsonl +0 -0
  585. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/dataset/test_dataset.py +0 -0
  586. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_eval_log/log_formats.json +0 -0
  587. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_eval_log/log_images.json +0 -0
  588. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_eval_log/log_images_tc.json +0 -0
  589. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_eval_log/log_invalid.txt +0 -0
  590. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_eval_log/log_length_stop_reason.txt +0 -0
  591. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_eval_log/log_streaming.eval +0 -0
  592. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_eval_log/log_valid.txt +0 -0
  593. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_eval_log/log_version_3.txt +0 -0
  594. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_eval_log/log_with_nan.txt +0 -0
  595. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_eval_log.py +0 -0
  596. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_list_logs/2024-11-05T13-31-45-05-00_input-task_8zXjbRzCWrL9GXiXo2vus9.json +0 -0
  597. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_list_logs/2024-11-05T13-32-37-05-00_input-task_hxs4q9azL3ySGkjJirypKZ.eval +0 -0
  598. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_list_logs/custom.eval +0 -0
  599. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_list_logs/ignore.json +0 -0
  600. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_list_logs.py +0 -0
  601. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_log_attachments.py +0 -0
  602. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_log_formats.py +0 -0
  603. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_log_level.py +0 -0
  604. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_log_streaming.py +0 -0
  605. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/log/test_log_tags.py +0 -0
  606. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_anthropic.py +0 -0
  607. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_azureai.py +0 -0
  608. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_cloudflare.py +0 -0
  609. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_google.py +0 -0
  610. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_grok.py +0 -0
  611. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_groq.py +0 -0
  612. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_llama_cpp_python.py +0 -0
  613. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_openai.py +0 -0
  614. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_openai_o1.py +0 -0
  615. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_vertex.py +0 -0
  616. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/providers/test_vllm.py +0 -0
  617. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/test_api_key.py +0 -0
  618. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/test_collapse_assistant_message.py +0 -0
  619. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/test_collapse_user_message.py +0 -0
  620. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/test_disable.py +0 -0
  621. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/test_logprobs.py +0 -0
  622. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/test_mock_model_llm.py +0 -0
  623. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/test_num_choices.py +0 -0
  624. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/test_parse_tool_call.py +0 -0
  625. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/model/test_stop_reason.py +0 -0
  626. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/scorer/test_answer.py +0 -0
  627. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/scorer/test_choice.py +0 -0
  628. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/scorer/test_classification.py +0 -0
  629. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/scorer/test_metric.py +0 -0
  630. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/scorer/test_model_graded.py +0 -0
  631. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/scorer/test_multiscorer.py +0 -0
  632. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/scorer/test_pattern.py +0 -0
  633. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/scorer/test_reducers.py +0 -0
  634. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/scorer/test_scorer.py +0 -0
  635. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/scorer/test_value_to_float.py +0 -0
  636. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/solver/test_basic_agent.py +0 -0
  637. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/solver/test_chain.py +0 -0
  638. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/solver/test_fork.py +0 -0
  639. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/solver/test_multiple_choice.py +0 -0
  640. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/solver/test_prompt.py +0 -0
  641. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/solver/test_solver.py +0 -0
  642. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/solver/test_solver_decorator.py +0 -0
  643. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/solver/test_solver_spec.py +0 -0
  644. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/solver/test_store.py +0 -0
  645. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/solver/test_subtask.py +0 -0
  646. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/solver/test_transcript.py +0 -0
  647. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_eval.py +0 -0
  648. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_eval_config/model.yaml +0 -0
  649. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_eval_config/solver.yaml +0 -0
  650. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_eval_config/task.yaml +0 -0
  651. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_eval_config.py +0 -0
  652. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_eval_set/2024-08-29T15-11-17+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
  653. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_eval_set/2024-08-29T15-11-18+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
  654. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_eval_set.py +0 -0
  655. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_examples.py +0 -0
  656. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_fail_on_error.py +0 -0
  657. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_helpers/__init__.py +0 -0
  658. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_helpers/tasks.py +0 -0
  659. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_helpers/tool_call_utils.py +0 -0
  660. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_helpers/tools.py +0 -0
  661. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_helpers/utils.py +0 -0
  662. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_list_task.py +0 -0
  663. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_log_dir/example_task/example_task.py +0 -0
  664. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_log_dir/test_log_dir.py +0 -0
  665. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_package/.gitignore +0 -0
  666. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_package/inspect_package/__init__.py +0 -0
  667. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_package/inspect_package/_registry.py +0 -0
  668. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_package/inspect_package/approvers/renamer.py +0 -0
  669. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_package/inspect_package/modelapi/custom.py +0 -0
  670. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_package/inspect_package/py.typed +0 -0
  671. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_package/inspect_package/score/scorer.py +0 -0
  672. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_package/inspect_package/solvers/cot.py +0 -0
  673. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_package/pyproject.toml +0 -0
  674. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_retry.py +0 -0
  675. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_run_dir/task1/task1.py +0 -0
  676. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_run_dir.py +0 -0
  677. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_attr.py +0 -0
  678. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/__init__.py +0 -0
  679. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/attribs.ipynb +0 -0
  680. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/multiple.py +0 -0
  681. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/multiple_dir/_decoy/testit.py +0 -0
  682. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/multiple_dir/_decoy2.py +0 -0
  683. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/multiple_dir/bar.py +0 -0
  684. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/multiple_dir/foo.py +0 -0
  685. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/recurse/.folder3/epsilon.py +0 -0
  686. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/recurse/folder1/_decoy.py +0 -0
  687. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/recurse/folder1/theta.py +0 -0
  688. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/recurse/folder2/.folder3/epsilon.py +0 -0
  689. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/recurse/folder2/another.py +0 -0
  690. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/test_task_list/recurse/folder2/first.py +0 -0
  691. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/docker-compose-context/Dockerfile +0 -0
  692. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/docker-compose-context-alpine/Dockerfile +0 -0
  693. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_bash_tool.py +0 -0
  694. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_max_tool_output.py +0 -0
  695. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_python_tool.py +0 -0
  696. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_sandbox_compose.yaml +0 -0
  697. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_sandbox_compose_alpine.yaml +0 -0
  698. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_sandbox_docker_and_local.py +0 -0
  699. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_sandbox_tool_eval.py +0 -0
  700. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_tool_def.py +0 -0
  701. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_tool_types.py +0 -0
  702. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_tool_view.py +0 -0
  703. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_tool_with.py +0 -0
  704. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_tools.py +0 -0
  705. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_web_browser.py +0 -0
  706. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/tools/test_web_browser_compose.yaml +0 -0
  707. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/sandbox/docker_compose_multiple_services/docker-compose.yaml +0 -0
  708. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/sandbox/sandbox_setup.sh +0 -0
  709. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/sandbox/test_docker_compose_multiple_services.py +0 -0
  710. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/sandbox/test_sandbox_setup.py +0 -0
  711. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/test_file.py +0 -0
  712. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/test_images/images.jsonl +0 -0
  713. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/test_images.py +0 -0
  714. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/test_package.py +0 -0
  715. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/test_registry.py +0 -0
  716. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/test_str_to_float.py +0 -0
  717. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/util/test_subprocess.py +0 -0
  718. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tests/view/test_bundle.py +0 -0
  719. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/.eslintrc.json +0 -0
  720. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/.gitignore +0 -0
  721. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/.vscode/extensions.json +0 -0
  722. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/.vscode/launch.json +0 -0
  723. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/.vscode/settings.json +0 -0
  724. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/.vscode/tasks.json +0 -0
  725. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/.vscode-test.mjs +0 -0
  726. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/.vscodeignore +0 -0
  727. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/.yarnrc +0 -0
  728. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/LICENSE +0 -0
  729. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/README.md +0 -0
  730. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/assets/icon/eval-treeview.svg +0 -0
  731. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/assets/icon/eval.svg +0 -0
  732. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/assets/templates/task.py.template +0 -0
  733. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/assets/www/codicon/codicon.css +0 -0
  734. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/assets/www/codicon/codicon.ttf +0 -0
  735. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/assets/www/view/view-overrides.css +0 -0
  736. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/@types/hooks.d.ts +0 -0
  737. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/components/document.ts +0 -0
  738. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/components/error.ts +0 -0
  739. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/components/focus.ts +0 -0
  740. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/components/notebook.ts +0 -0
  741. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/components/symbol.ts +0 -0
  742. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/components/task.ts +0 -0
  743. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/components/templates.ts +0 -0
  744. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/components/webview.ts +0 -0
  745. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/appdirs.ts +0 -0
  746. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/command.ts +0 -0
  747. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/dispose.ts +0 -0
  748. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/env.ts +0 -0
  749. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/git.ts +0 -0
  750. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/jsonrpc.ts +0 -0
  751. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/log.ts +0 -0
  752. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/nonce.ts +0 -0
  753. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/path.ts +0 -0
  754. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/port.ts +0 -0
  755. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/process.ts +0 -0
  756. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/python/code.ts +0 -0
  757. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/python/env.ts +0 -0
  758. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/python/exec.ts +0 -0
  759. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/python/index.ts +0 -0
  760. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/python/interpreter.ts +0 -0
  761. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/random.ts +0 -0
  762. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/string.ts +0 -0
  763. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/text.ts +0 -0
  764. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/uri.ts +0 -0
  765. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/vscode/association.ts +0 -0
  766. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/wait.ts +0 -0
  767. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/core/workspace.ts +0 -0
  768. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/hooks/hooks.ts +0 -0
  769. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/hooks/index.ts +0 -0
  770. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/hooks/preview.ts +0 -0
  771. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/inspect/logs.ts +0 -0
  772. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/inspect/version.ts +0 -0
  773. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/active-task/active-task-command.ts +0 -0
  774. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/active-task/active-task-provider.ts +0 -0
  775. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/activity-bar-provider.ts +0 -0
  776. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/env-config-provider.ts +0 -0
  777. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/log-listing/log-directory-selector.ts +0 -0
  778. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-data.ts +0 -0
  779. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-mru.ts +0 -0
  780. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/log-listing/log-listing.ts +0 -0
  781. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/task-config-commands.ts +0 -0
  782. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/task-config-provider.ts +0 -0
  783. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/task-outline-commands.ts +0 -0
  784. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.css +0 -0
  785. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.css +0 -0
  786. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.ts +0 -0
  787. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/webview/vscode-controls.css +0 -0
  788. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/activity-bar/webview/webview-utils.ts +0 -0
  789. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/codelens/codelens-provider.ts +0 -0
  790. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/inspect/inspect-constants.ts +0 -0
  791. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/inspect/inspect-eval-commands.ts +0 -0
  792. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/inspect/inspect-eval.ts +0 -0
  793. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/inspect/inspect-logs-watcher.ts +0 -0
  794. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/inspect/inspect-manager.ts +0 -0
  795. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/inspect/inspect-view-server.ts +0 -0
  796. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/lognotify.ts +0 -0
  797. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/logview/commands.ts +0 -0
  798. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/logview/logview-editor.ts +0 -0
  799. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/logview/logview-panel.ts +0 -0
  800. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/logview/logview-state.ts +0 -0
  801. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/logview/logview-view.ts +0 -0
  802. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/logview/logview.ts +0 -0
  803. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/openlog.ts +0 -0
  804. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/protocol-handler.ts +0 -0
  805. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/settings/inspect-settings.ts +0 -0
  806. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/settings/user-settings.ts +0 -0
  807. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/statusbar.ts +0 -0
  808. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/workspace/workspace-env-commands.ts +0 -0
  809. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/workspace/workspace-env-provider.ts +0 -0
  810. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/workspace/workspace-init.ts +0 -0
  811. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/providers/workspace/workspace-state-provider.ts +0 -0
  812. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/src/test/extension.test.ts +0 -0
  813. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/tools/ts-to-mjs/.gitignore +0 -0
  814. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/tools/ts-to-mjs/package.json +0 -0
  815. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/tools/ts-to-mjs/rollup.config.js +0 -0
  816. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/tools/ts-to-mjs/src/index.ts +0 -0
  817. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/tools/ts-to-mjs/src/jsonrpc.ts +0 -0
  818. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/tools/ts-to-mjs/yarn.lock +0 -0
  819. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/tsconfig.json +0 -0
  820. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/webpack.config.js +0 -0
  821. {inspect_ai-0.3.49 → inspect_ai-0.3.51}/tools/vscode/yarn.lock +0 -0
@@ -5,7 +5,7 @@ default_language_version:
5
5
  python: python3.11
6
6
  repos:
7
7
  - repo: https://github.com/astral-sh/ruff-pre-commit
8
- rev: v0.8.1
8
+ rev: v0.8.2
9
9
  hooks:
10
10
  # Run the linter.
11
11
  - id: ruff
@@ -1,5 +1,40 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.3.51 (13 December 2024)
4
+
5
+ - Bugfix: Task display fails to load when no scorers are defined for a task.
6
+
7
+ ## v0.3.50 (12 December 2024)
8
+
9
+ - Tools: Improved typing/schema support (unions, optional params, enums).
10
+ - Tools: Added `append` argument to `use_tools()` for adding (rather than replacing) the currently available tools.
11
+ - Docker sandbox: Streamed reads of stderr/stdout (enabling us to enforce output limits for read_file and exec at the source).
12
+ - Sandbox API: Enable passing `BaseModel` types for sandbox `config` (formerly only a file path could be passed).
13
+ - Task display: Show all task scores in realtime (expand task progress to see scores).
14
+ - Task display: Show completed samples and align progress more closely to completed samples (as opposed to steps).
15
+ - Task display: Show sample messages/tokens used (plus limits if specified).
16
+ - Task display: Resolve issue where task display would lose mouse input after VS Code reload.
17
+ - Datasets: Validate that all IDs in datasets are unique (as several downstream problems occur w/ duplicate IDs).
18
+ - Inspect View: Fix issue with incorrectly displayed custom tool views.
19
+ - Human approval: Use fullcreen display (makes approval UI async and enables rapid processing of approvals via the `Enter` key).
20
+ - Added `input_panel()` API for adding custom panels to the fullscreen task display.
21
+ - Log recorder: Methods are now async which will improve performance for fsspec filesystems with async implementations (e.g. S3)
22
+ - Log recorder: Improve `.eval` log reading performance for remote filesystem (eaglery fetch log to local buffer).
23
+ - Add `token_usage` property to `TaskState` which has current total tokens used across all calls to `generate()` (same value that is used for enforcing token limits).
24
+ - Add `time` field to `ModelOutput` that records total time spent within call to ModelAPI `generate()`.
25
+ - Web browser: Remove base64 images from web page contents (prevent filling up model context with large images).
26
+ - Match scorer: If the target of a match isn’t numeric, ignore the numeric flag and instead use text matching (improved handling for percentages).
27
+ - Hugging Face: Support for native HF tool calling for Llama, Mistral, Qwen, and others if they conform to various standard schemas.
28
+ - Hugging Face: `tokenizer_call_args` dict to specify custom args during tokenization, such as `max_length` and `truncation`.
29
+ - Azure AI: Fix schema validation error that occurred when model API returns `None` for `content`.
30
+ - Display: Throttle updating of sample list based on number of samples.
31
+ - Display: Add explicit 'ctrl+c' keybinding (as textual now disables this by default).
32
+ - Bugfix: Correct rate limit error display when running in fullscreen mode.
33
+ - Bugfix: `hf_dataset` now explicitly requires the `split` argument (previously, it would crash when not specified).
34
+ - Bugfix: Prevent cascading textual error when an error occurs during task initialisation.
35
+ - Bugfix: Correctly restore sample summaries from log file after abend.
36
+ - Bugfix: Report errors that occur during task finalisation.
37
+
3
38
  ## v0.3.49 (03 December 2024)
4
39
 
5
40
  - Logging: Only call CreateBucket on Amazon S3 when the bucket does not already exist.
@@ -95,7 +130,6 @@
95
130
  - Add optional `tool_call_id` param to `ModelOutput.for_tool_call()`.
96
131
  - Support all JSON and CSV dataset arguments in `file_dataset()` function.
97
132
 
98
-
99
133
  ## v0.3.42 (23 October 2024)
100
134
 
101
135
  - [ToolDef](https://inspect.ai-safety-institute.org.uk/tools.html#sec-dynamic-tools) class for dynamically creating tool definitions.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: inspect_ai
3
- Version: 0.3.49
3
+ Version: 0.3.51
4
4
  Summary: Framework for large language model evaluations
5
5
  Author: UK AI Safety Institute
6
6
  License: MIT License
@@ -68,7 +68,7 @@ Requires-Dist: pytest-asyncio; extra == "dev"
68
68
  Requires-Dist: pytest-cov; extra == "dev"
69
69
  Requires-Dist: pytest-dotenv; extra == "dev"
70
70
  Requires-Dist: pytest-xdist; extra == "dev"
71
- Requires-Dist: ruff==0.8.1; extra == "dev"
71
+ Requires-Dist: ruff==0.8.2; extra == "dev"
72
72
  Requires-Dist: textual-dev>=0.86.2; extra == "dev"
73
73
  Requires-Dist: types-PyYAML; extra == "dev"
74
74
  Requires-Dist: types-aiofiles; extra == "dev"
@@ -2,6 +2,8 @@ project:
2
2
  type: website
3
3
  resources:
4
4
  - CNAME
5
+ - llms.txt
6
+ post-render: scripts/post-render.sh
5
7
 
6
8
  website:
7
9
  title: "Inspect"
@@ -96,6 +98,8 @@ format:
96
98
  toc-depth: 3
97
99
  number-sections: false
98
100
  code-annotations: select
101
+ gfm:
102
+ output-ext: html.lmd
99
103
 
100
104
 
101
105
  execute:
@@ -127,7 +127,7 @@ class PodmanSandboxEnvironment(SandboxEnvironment):
127
127
 
128
128
  @classmethod
129
129
  async def task_init(
130
- cls, task_name: str, config: str | None
130
+ cls, task_name: str, config: SandboxEnvironmentConfigType | None
131
131
  ) -> None:
132
132
  ...
133
133
 
@@ -135,7 +135,7 @@ class PodmanSandboxEnvironment(SandboxEnvironment):
135
135
  async def sample_init(
136
136
  cls,
137
137
  task_name: str,
138
- config: str | None,
138
+ config: SandboxEnvironmentConfigType | None,
139
139
  metadata: dict[str, str]
140
140
  ) -> dict[str, SandboxEnvironment]:
141
141
  ...
@@ -144,7 +144,7 @@ class PodmanSandboxEnvironment(SandboxEnvironment):
144
144
  async def sample_cleanup(
145
145
  cls,
146
146
  task_name: str,
147
- config: str | None,
147
+ config: SandboxEnvironmentConfigType | None,
148
148
  environments: dict[str, SandboxEnvironment],
149
149
  interrupted: bool,
150
150
  ) -> None:
@@ -152,7 +152,10 @@ class PodmanSandboxEnvironment(SandboxEnvironment):
152
152
 
153
153
  @classmethod
154
154
  async def task_cleanup(
155
- cls, task_name: str, config: str | None, cleanup: bool
155
+ cls,
156
+ task_name: str,
157
+ config: SandboxEnvironmentConfigType | None,
158
+ cleanup: bool,
156
159
  ) -> None:
157
160
  ...
158
161
 
@@ -253,6 +256,22 @@ Task(
253
256
  )
254
257
  ```
255
258
 
259
+ Specialised configuration types which derive from Pydantic's `BaseModel` can also be passed as the `config` argument to `SandboxEnvironmentSpec`. Note: they must be hashable (i.e. `frozen=True`).
260
+
261
+ ``` python
262
+ class PodmanSandboxEnvironmentConfig(BaseModel, frozen=True):
263
+ socket: str
264
+ runtime: str
265
+
266
+ Task(
267
+ ...,
268
+ sandbox=SandboxEnvironmentSpec(
269
+ "podman",
270
+ PodmanSandboxEnvironmentConfig(socket="/podman-socket", runtime="crun"),
271
+ )
272
+ )
273
+ ```
274
+
256
275
  ## Approvers {#sec-extensions-approvers}
257
276
 
258
277
  [Approvers](approval.qmd) enable you to create fine-grained policies for approving tool calls made by models. For example, the following are all supported:
@@ -399,4 +418,4 @@ myfs = "evaltools:MyFs"
399
418
  ```
400
419
  :::
401
420
 
402
- Once this package is installed, you'll be able to use `myfs://` with Inspect without any further registration.
421
+ Once this package is installed, you'll be able to use `myfs://` with Inspect without any further registration.
@@ -0,0 +1,26 @@
1
+ # Inspect AI
2
+
3
+ > Inspect AI is a Python framework for large language model evaluations created by the [UK AI Safety Institute](https://aisi.gov.uk). Inspect provides many built-in components, including facilities for prompt engineering, tool usage, multi-turn dialog, and model graded evaluations. Extensions to Inspect (e.g. to support new elicitation and scoring techniques) can be provided by other Python packages.
4
+
5
+ ## Docs
6
+
7
+ - [Tutorial](https://inspect.ai-safety-institute.org.uk/tutorial.html.md): Step-by-step walkthroughs of several basic examples of Inspect evaluations.
8
+ - [Workflow](https://inspect.ai-safety-institute.org.uk/workflow.html.md): Covers the mechanics of running evaluations, including how to create evals in both scripts and notebooks, specifying configuration and options, how to parameterise tasks for different scenarios, and how to work with eval log files.
9
+ - [Log Viewer](https://inspect.ai-safety-institute.org.uk/log-viewer.html.md): Goes into more depth on how to use Inspect View to develop and debug evaluations, including how to provide additional log metadata and how to integrate it with Python's standard logging module.
10
+ - [VS Code](https://inspect.ai-safety-institute.org.uk/vscode.html.md) Provides documentation on using the Inspect VS Code Extension to run, tune, debug, and visualise evaluations.
11
+ - [Solvers](https://inspect.ai-safety-institute.org.uk/solvers.html.md): Solvers are the heart of Inspect, and encompass prompt engineering and various other elicitation strategies. Here we cover using the built-in solvers and creating your own more sophisticated ones.
12
+ - [Tools](https://inspect.ai-safety-institute.org.uk/tools.html.md): Tools provide a means of extending the capabilities of models by registering Python functions for them to call. This section describes how to create custom tools and use them in evaluations.
13
+ - [Agents](https://inspect.ai-safety-institute.org.uk/agents.html.md): Agents combine planning, memory, and tool usage to pursue more complex, longer horizon tasks. This section describes how to build agent evaluations with Inspect.
14
+ - [Agents API](https://inspect.ai-safety-institute.org.uk/agents-api.html.md): This article describes advanced Inspect APIs available for creating evaluations with agents.
15
+ - [Scorers](https://inspect.ai-safety-institute.org.uk/scorers.html.md): Scorers evaluate the work of solvers and aggregate scores into metrics. Sophisticated evals often require custom scorers that use models to evaluate output. This section covers how to create them.
16
+ - [Datasets](https://inspect.ai-safety-institute.org.uk/datasets.html.md): Datasets provide samples to evaluation tasks. This section illustrates how to adapt various data sources for use with Inspect, as well as how to include multi-modal data (images, etc.) in your datasets.
17
+ - [Models](https://inspect.ai-safety-institute.org.uk/models.html.md): Models provide a uniform API for both evaluating a variety of large language models and using models within evaluations (e.g. for critique or grading).
18
+ - [Eval Sets](https://inspect.ai-safety-institute.org.uk/eval-sets.html.md): Covers Inspect's features for describing, running, and analysing larger sets of evaluation tasks.
19
+ - [Errors and Limits](https://inspect.ai-safety-institute.org.uk/errors-and-limits.html.md): This article covers various techniques for dealing with unexpected errors and setting limits on evaluation tasks and samples, including retrying failed evaluations, establishing a threshold of samples to tolerate errors for before failing an evaluation, and setting a maximum number of messages, tokens, or elapsed seconds in a sample before forcing the solver to give up.
20
+ - [Caching](https://inspect.ai-safety-institute.org.uk/caching.html.md): Caching enables you to cache model output to reduce the number of API calls made, saving both time and expense.
21
+ - [Parallelism](https://inspect.ai-safety-institute.org.uk/parallelism.html.md): Delves into how to obtain maximum performance for evaluations. Inspect uses a highly parallel async architecture---here we cover how to tune this parallelism (e.g to stay under API rate limits or to not overburden local compute) for optimal throughput.
22
+ - [Interactivity](https://inspect.ai-safety-institute.org.uk/interactivity.html.md): Covers various ways to introduce user interaction into the implementation of tasks (for example, confirming consequential actions or prompting the model dynamically based on the trajectory of the evaluation).
23
+ - [Approval](https://inspect.ai-safety-institute.org.uk/approval.html.md): Approvals enable you to create fine-grained policies for approving tool calls made by models.
24
+ - [Eval Logs](https://inspect.ai-safety-institute.org.uk/eval-logs.html.md): Explores how to get the most out of evaluation logs for developing, debugging, and analyzing evaluations.
25
+ - [Extensions](https://inspect.ai-safety-institute.org.uk/extensions.html.md) describes the various ways you can extend Inspect, including adding support for new Model APIs, tool execution environments, and storage platforms (for datasets, prompts, and logs).
26
+
@@ -46,7 +46,7 @@ To select a model for use in an evaluation task you specify it using a *model na
46
46
  | Ollama | `ollama/llama3` | [Ollama Models](https://ollama.com/library) |
47
47
  | llama-cpp-python | `llama-cpp-python/llama3` | [llama-cpp-python Models](https://llama-cpp-python.readthedocs.io/en/latest/#openai-compatible-web-server) |
48
48
  | TogetherAI | `together/google/gemma-7b-it` | [TogetherAI Models](https://docs.together.ai/docs/inference-models#chat-models) |
49
- | AWS Bedrock | `bedrock/meta.llama2-70b-chat-v1` | [AWS Bedrock Models](https://aws.amazon.com/bedrock/) |
49
+ | AWS Bedrock | `bedrock/meta.llama2-70b-chat-v1` | [AWS Bedrock Models](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html) |
50
50
  | Azure AI | `azureai/azure-deployment-name` | [Azure AI Models](https://ai.azure.com/explore/models) |
51
51
  | Vertex | `vertex/gemini-1.5-flash` | [Google Models](https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/inference#supported_models) |
52
52
  | Groq | `groq/mixtral-8x7b-32768` | [Groq Models](https://console.groq.com/docs/models) |
@@ -0,0 +1,13 @@
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
+ llms_full="_site/llms-full.txt"
6
+ rm -f "${llms_full}"
7
+ for file in "${files[@]}"; do
8
+ path="_site/${file}.html"
9
+ mv "${path}.lmd" "${path}.md"
10
+ cat "${path}.md" >> "${llms_full}"
11
+ echo "" >> "${llms_full}"
12
+ done
13
+
@@ -14,7 +14,7 @@ Solvers are the heart of Inspect evaluations and can serve a wide variety of pur
14
14
  5. Multi-turn dialog
15
15
  6. Running an agent scaffold
16
16
 
17
- Tasks have a single top-level solver that defines an execution plan. This solver could be implemented with arbitrary Python code (calling the model as required) or could consist of a set of other sovlers composed together. Solvers can therefore play two differnet roles:
17
+ Tasks have a single top-level solver that defines an execution plan. This solver could be implemented with arbitrary Python code (calling the model as required) or could consist of a set of other solvers composed together. Solvers can therefore play two differnet roles:
18
18
 
19
19
  1. _Composite_ specifications for task execution; and
20
20
 
@@ -65,7 +65,7 @@ def theory_of_mind():
65
65
 
66
66
  Composite solvers by no means need to be implemented using chains. While chains are frequently used in more straightforward knowledge and reasoning evaluations, fully custom solver functions are often used for multi-turn dialog and agent evaluations.
67
67
 
68
- This section covers mostly solvers as components (both built in and creating your own). The [Agents](agents.qmd) section describes fully custom sovlers in more depth.
68
+ This section covers mostly solvers as components (both built in and creating your own). The [Agents](agents.qmd) section describes fully custom solvers in more depth.
69
69
 
70
70
  ## Task States
71
71
 
@@ -463,4 +463,4 @@ Early termination might also occur if you specify the `message_limit` option and
463
463
  ``` python
464
464
  # could terminate early
465
465
  eval(my_task, message_limit = 10)
466
- ```
466
+ ```
@@ -22,7 +22,7 @@ from inspect_ai.solver import (
22
22
 
23
23
  DEFAULT_PROMPT="{prompt}"
24
24
 
25
- from tree_of_thought imoprt TREE_PROMPT, generate_tree
25
+ from tree_of_thought import TREE_PROMPT, generate_tree
26
26
 
27
27
  @solver
28
28
  def critique():
@@ -395,4 +395,4 @@ $ inspect eval security/jeopardy
395
395
  $ inspect eval security/attack_defense
396
396
  ```
397
397
 
398
- Inspect has lots of features aimed at running evaluation suites, including filtering tasks based on tags/metadata, recovering from partially completed suites (due to failed evals), and more. See the documentation on [Eval Sets](eval-sets.qmd) to learn more.
398
+ Inspect has lots of features aimed at running evaluation suites, including filtering tasks based on tags/metadata, recovering from partially completed suites (due to failed evals), and more. See the documentation on [Eval Sets](eval-sets.qmd) to learn more.
@@ -224,4 +224,4 @@ def python_allowlist(
224
224
 
225
225
  if __name__ == "__main__":
226
226
  approval = (Path(__file__).parent / "approval.yaml").as_posix()
227
- eval(approval_demo(), approval=approval, trace=True)
227
+ eval(approval_demo(), approval=approval)
@@ -129,7 +129,7 @@ dev = [
129
129
  "pytest-cov",
130
130
  "pytest-dotenv",
131
131
  "pytest-xdist",
132
- "ruff==0.8.1", # match version specified in .pre-commit-config.yaml
132
+ "ruff==0.8.2", # match version specified in .pre-commit-config.yaml
133
133
  "textual-dev>=0.86.2",
134
134
  "types-PyYAML",
135
135
  "types-aiofiles",
@@ -5,7 +5,7 @@ import click
5
5
  from inspect_ai import __version__
6
6
  from inspect_ai._util.constants import PKG_PATH
7
7
  from inspect_ai._view.server import resolve_header_only
8
- from inspect_ai.log._file import eval_log_json, read_eval_log
8
+ from inspect_ai.log._file import eval_log_json_str, read_eval_log
9
9
 
10
10
  from .log import headers, schema, types
11
11
 
@@ -46,7 +46,7 @@ def log(path: str, header_only: int) -> None:
46
46
  header_only = resolve_header_only(path, header_only)
47
47
 
48
48
  log = read_eval_log(path, header_only=header_only)
49
- print(eval_log_json(log))
49
+ print(eval_log_json_str(log))
50
50
 
51
51
 
52
52
  @info_command.command("log-file-headers", hidden=True)
@@ -14,7 +14,7 @@ from inspect_ai._util.constants import PKG_PATH
14
14
  from inspect_ai.log import list_eval_logs
15
15
  from inspect_ai.log._convert import convert_eval_logs
16
16
  from inspect_ai.log._file import (
17
- eval_log_json,
17
+ eval_log_json_str,
18
18
  read_eval_log,
19
19
  read_eval_log_headers,
20
20
  )
@@ -127,7 +127,7 @@ def list_command(
127
127
  def dump_command(path: str, header_only: bool) -> None:
128
128
  """Print log file contents as JSON."""
129
129
  log = read_eval_log(path, header_only=header_only)
130
- print(eval_log_json(log))
130
+ print(eval_log_json_str(log))
131
131
 
132
132
 
133
133
  @log_command.command("convert")
@@ -61,7 +61,7 @@ async def score(
61
61
 
62
62
  # read the eval log
63
63
  recorder = create_recorder_for_location(log_file, log_dir)
64
- eval_log = recorder.read_log(log_file)
64
+ eval_log = await recorder.read_log(log_file)
65
65
 
66
66
  # check that there are samples therein
67
67
  if eval_log.samples is None or len(eval_log.samples) == 0:
@@ -88,7 +88,7 @@ async def score(
88
88
  scored = f"{SCORED_SUFFIX}{ext}"
89
89
  if not overwrite and not log_file.endswith(scored):
90
90
  log_file = log_file.removesuffix(ext) + scored
91
- recorder.write_log(log_file, eval_log)
91
+ await recorder.write_log(log_file, eval_log)
92
92
 
93
93
  # print results
94
94
  display().print(f"\n{eval_log.eval.task}")
@@ -19,6 +19,8 @@ from rich.console import Console
19
19
  from inspect_ai.log import EvalConfig, EvalResults, EvalStats
20
20
  from inspect_ai.model import GenerateConfig, ModelName
21
21
 
22
+ from ...util._panel import InputPanel
23
+
22
24
 
23
25
  @runtime_checkable
24
26
  class Progress(Protocol):
@@ -81,6 +83,8 @@ class TaskWithResult:
81
83
 
82
84
  TR = TypeVar("TR")
83
85
 
86
+ TP = TypeVar("TP", bound=InputPanel)
87
+
84
88
 
85
89
  class TaskScreen(contextlib.AbstractContextManager["TaskScreen"]):
86
90
  def __exit__(self, *excinfo: Any) -> None:
@@ -95,12 +99,27 @@ class TaskScreen(contextlib.AbstractContextManager["TaskScreen"]):
95
99
  ) -> Iterator[Console]:
96
100
  yield rich.get_console()
97
101
 
102
+ async def input_panel(self, title: str, panel: type[TP]) -> TP:
103
+ raise NotImplementedError("input_panel not implemented by current display")
104
+
105
+
106
+ @dataclass
107
+ class TaskDisplayMetric:
108
+ scorer: str
109
+ name: str
110
+ value: float | int
111
+ reducer: str | None
112
+
98
113
 
99
114
  @runtime_checkable
100
115
  class TaskDisplay(Protocol):
101
116
  @contextlib.contextmanager
102
117
  def progress(self) -> Iterator[Progress]: ...
103
118
 
119
+ def sample_complete(self, complete: int, total: int) -> None: ...
120
+
121
+ def update_metrics(self, scores: list[TaskDisplayMetric]) -> None: ...
122
+
104
123
  def complete(self, result: TaskResult) -> None: ...
105
124
 
106
125
 
@@ -1,3 +1,5 @@
1
+ from typing import Tuple
2
+
1
3
  import rich
2
4
  from rich.console import RenderableType
3
5
  from rich.panel import Panel
@@ -16,6 +18,10 @@ def task_panel(
16
18
  profile: TaskProfile,
17
19
  show_model: bool,
18
20
  body: RenderableType,
21
+ subtitle: RenderableType
22
+ | str
23
+ | Tuple[RenderableType | str, RenderableType | str]
24
+ | None,
19
25
  footer: RenderableType | tuple[RenderableType, RenderableType] | None,
20
26
  log_location: str | None,
21
27
  ) -> Panel:
@@ -25,22 +31,39 @@ def task_panel(
25
31
  width = CONSOLE_DISPLAY_WIDTH if is_vscode_notebook(console) else None
26
32
  jupyter = console.is_jupyter
27
33
 
28
- # setup table
34
+ # root table
29
35
  table = Table.grid(expand=True)
30
36
  table.add_column()
31
- table.add_column(justify="right")
37
+
38
+ # setup table
39
+ if subtitle is not None:
40
+ subtitle_table = Table.grid(expand=True)
41
+ subtitle_table.add_column()
42
+ if isinstance(subtitle, tuple):
43
+ subtitle_table.add_column(justify="right")
44
+ subtitle_table.add_row(
45
+ to_renderable(subtitle[0]), to_renderable(subtitle[1], style=theme.meta)
46
+ )
47
+ else:
48
+ subtitle_table.add_row(to_renderable(subtitle))
49
+
50
+ table.add_row(subtitle_table)
32
51
 
33
52
  # main progress and task info
34
- targets = Text.from_markup(task_targets(profile), style=theme.meta)
35
- table.add_row(body, targets)
53
+ table.add_row()
54
+ table.add_row(body)
55
+ table.add_row()
36
56
 
37
57
  # footer if specified
38
58
  if footer:
39
- table.add_row()
59
+ footer_table = Table.grid(expand=True)
60
+ footer_table.add_column()
40
61
  if isinstance(footer, tuple):
41
- table.add_row(footer[0], footer[1])
62
+ footer_table.add_column(justify="right")
63
+ footer_table.add_row(footer[0], footer[1])
42
64
  else:
43
- table.add_row(footer)
65
+ footer_table.add_row(footer)
66
+ table.add_row(footer_table)
44
67
 
45
68
  # enclose in outer table for log link footer
46
69
  root = table
@@ -75,6 +98,13 @@ def task_panel(
75
98
  return panel
76
99
 
77
100
 
101
+ def to_renderable(item: RenderableType | str, style: str = "") -> RenderableType:
102
+ if isinstance(item, str):
103
+ return Text.from_markup(item, style=style)
104
+ else:
105
+ return item
106
+
107
+
78
108
  def tasks_title(completed: int, total: int) -> str:
79
109
  return f"{completed}/{total} tasks complete"
80
110
 
@@ -32,13 +32,20 @@ class RichProgress(Progress):
32
32
  model: str = "",
33
33
  status: Callable[[], str] | None = None,
34
34
  on_update: Callable[[], None] | None = None,
35
+ count: str = "",
36
+ score: str = "",
35
37
  ) -> None:
36
38
  self.total = total
37
39
  self.progress = progress
38
40
  self.status = status if status else lambda: ""
39
41
  self.on_update = on_update
40
42
  self.task_id = progress.add_task(
41
- description, total=PROGRESS_TOTAL, model=model, status=self.status()
43
+ description,
44
+ total=PROGRESS_TOTAL,
45
+ model=model,
46
+ status=self.status(),
47
+ count=count,
48
+ score=score,
42
49
  )
43
50
 
44
51
  @override
@@ -56,6 +63,16 @@ class RichProgress(Progress):
56
63
  task_id=self.task_id, completed=PROGRESS_TOTAL, status=self.status()
57
64
  )
58
65
 
66
+ def update_count(self, complete: int, total: int) -> None:
67
+ self.progress.update(
68
+ task_id=self.task_id, count=progress_count(complete, total), refresh=True
69
+ )
70
+ if self.on_update:
71
+ self.on_update()
72
+
73
+ def update_score(self, score: str) -> None:
74
+ self.progress.update(task_id=self.task_id, score=score)
75
+
59
76
 
60
77
  def rich_progress() -> RProgress:
61
78
  console = rich.get_console()
@@ -65,10 +82,12 @@ def rich_progress() -> RProgress:
65
82
  TextColumn("{task.fields[model]}"),
66
83
  BarColumn(bar_width=40 if is_vscode_notebook(console) else None),
67
84
  TaskProgressColumn(),
85
+ TextColumn("{task.fields[count]}"),
86
+ TextColumn("{task.fields[score]}"),
68
87
  TimeElapsedColumn(),
69
88
  transient=True,
70
89
  console=console,
71
- expand=not is_vscode_notebook(console),
90
+ expand=True,
72
91
  )
73
92
 
74
93
 
@@ -109,3 +128,11 @@ def progress_time(time: float) -> str:
109
128
  minutes, seconds = divmod(time, 60)
110
129
  hours, minutes = divmod(minutes, 60)
111
130
  return f"{hours:2.0f}:{minutes:02.0f}:{seconds:02.0f}"
131
+
132
+
133
+ def progress_count(complete: int, total: int) -> str:
134
+ # Pad the display to keep it stable
135
+ total_str = f"{total:,}"
136
+ complete_str = f"{complete:,}"
137
+ padding = max(0, len(total_str) - len(complete_str))
138
+ return " " * padding + f"[{complete_str}/{total_str}]"