inspect-ai 0.3.94__tar.gz → 0.3.96__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 (1416) hide show
  1. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.github/dependabot.yml +2 -0
  2. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/CHANGELOG.md +29 -1
  3. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/PKG-INFO +9 -2
  4. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_quarto.yml +5 -1
  5. inspect_ai-0.3.96/docs/dataframe.qmd +556 -0
  6. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/eval-logs.qmd +1 -1
  7. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/index.qmd +6 -1
  8. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/llms.txt +3 -0
  9. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/log-viewer.qmd +1 -1
  10. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/_sidebar.yml +61 -0
  11. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/filter/sidebar.py +1 -0
  12. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/index.qmd +1 -0
  13. inspect_ai-0.3.96/docs/reference/inspect_ai.analysis.qmd +53 -0
  14. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/scorers.qmd +1 -1
  15. inspect_ai-0.3.96/docs/scripts/post-render.sh +23 -0
  16. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/solvers.qmd +1 -0
  17. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/tasks.qmd +2 -2
  18. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/tools-standard.qmd +17 -7
  19. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/biology_qa.py +4 -1
  20. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/popularity.py +1 -1
  21. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/pyproject.toml +5 -0
  22. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/requirements.txt +3 -1
  23. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/loader.py +1 -1
  24. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/run.py +12 -6
  25. inspect_ai-0.3.96/src/inspect_ai/_util/exception.py +4 -0
  26. inspect_ai-0.3.96/src/inspect_ai/_util/hash.py +48 -0
  27. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/local_server.py +16 -0
  28. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/path.py +22 -0
  29. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/trace.py +1 -1
  30. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/working.py +4 -0
  31. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/dist/assets/index.css +9 -9
  32. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/dist/assets/index.js +117 -120
  33. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/package.json +1 -1
  34. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/SecondaryBar.tsx +2 -2
  35. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/SamplesTab.tsx +1 -4
  36. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/SamplesTools.tsx +3 -13
  37. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/SelectScorer.tsx +45 -48
  38. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/filters.ts +16 -15
  39. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/SampleFilter.tsx +47 -75
  40. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/completions.ts +9 -9
  41. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/types.ts +12 -2
  42. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/ExpandablePanel.module.css +1 -1
  43. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/ExpandablePanel.tsx +5 -5
  44. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/hooks.ts +19 -3
  45. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/logSlice.ts +23 -5
  46. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/yarn.lock +9 -9
  47. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_bridge/patch.py +1 -3
  48. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_types.py +1 -1
  49. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/__init__.py +67 -0
  50. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/columns.py +145 -0
  51. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/evals/columns.py +132 -0
  52. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/evals/extract.py +23 -0
  53. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/evals/table.py +177 -0
  54. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/events/columns.py +87 -0
  55. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/events/extract.py +26 -0
  56. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/events/table.py +100 -0
  57. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/extract.py +73 -0
  58. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/messages/columns.py +60 -0
  59. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/messages/extract.py +21 -0
  60. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/messages/table.py +79 -0
  61. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/progress.py +26 -0
  62. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/record.py +377 -0
  63. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/samples/columns.py +77 -0
  64. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/samples/extract.py +54 -0
  65. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/samples/table.py +370 -0
  66. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/util.py +160 -0
  67. inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/validate.py +171 -0
  68. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_file.py +10 -3
  69. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_log.py +21 -1
  70. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_call_tools.py +2 -1
  71. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_model.py +6 -4
  72. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_openai_responses.py +17 -18
  73. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/anthropic.py +30 -5
  74. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/providers.py +1 -1
  75. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_multiple_choice.py +4 -1
  76. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_task_state.py +8 -4
  77. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_mcp/_context.py +3 -5
  78. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_mcp/_sandbox.py +17 -14
  79. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_mcp/server.py +1 -1
  80. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tools/_think.py +1 -1
  81. inspect_ai-0.3.96/src/inspect_ai/tool/_tools/_web_search/__init__.py +3 -0
  82. inspect_ai-0.3.94/src/inspect_ai/tool/_tools/_web_search.py → inspect_ai-0.3.96/src/inspect_ai/tool/_tools/_web_search/_google.py +56 -103
  83. inspect_ai-0.3.96/src/inspect_ai/tool/_tools/_web_search/_tavily.py +77 -0
  84. inspect_ai-0.3.96/src/inspect_ai/tool/_tools/_web_search/_web_search.py +85 -0
  85. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/events.py +3 -2
  86. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai.egg-info/PKG-INFO +9 -2
  87. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai.egg-info/SOURCES.txt +39 -1
  88. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai.egg-info/requires.txt +8 -1
  89. inspect_ai-0.3.96/src/inspect_tool_support/src/inspect_tool_support/_util/__init__.py +0 -0
  90. inspect_ai-0.3.96/tests/analysis/test_df.py +102 -0
  91. inspect_ai-0.3.96/tests/analysis/test_expand.py +133 -0
  92. inspect_ai-0.3.96/tests/analysis/test_import.py +388 -0
  93. inspect_ai-0.3.96/tests/analysis/test_logs/2025-05-12T20-27-36-04-00_browser.json +3596 -0
  94. inspect_ai-0.3.96/tests/analysis/test_logs/2025-05-12T20-28-13-04-00_popularity.json +1330 -0
  95. inspect_ai-0.3.96/tests/analysis/test_logs/2025-05-12T20-28-26-04-00_security-guide.json +1794 -0
  96. inspect_ai-0.3.96/tests/analysis/test_validate.py +86 -0
  97. inspect_ai-0.3.96/tests/model/__init__.py +0 -0
  98. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_multiple_choice.py +7 -6
  99. inspect_ai-0.3.96/tests/test_helpers/__init__.py +0 -0
  100. inspect_ai-0.3.96/tests/test_package/inspect_package/py.typed +0 -0
  101. inspect_ai-0.3.96/tests/test_task_list/__init__.py +0 -0
  102. inspect_ai-0.3.96/tools/vscode/src/providers/activity-bar/webview/task-config-webview.css +0 -0
  103. inspect_ai-0.3.94/docs/scripts/post-render.sh +0 -23
  104. inspect_ai-0.3.94/src/inspect_ai/_util/hash.py +0 -9
  105. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.github/pull_request_template.md +0 -0
  106. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.github/workflows/build.yml +0 -0
  107. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.github/workflows/docker.yml +0 -0
  108. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.github/workflows/docs.yml +0 -0
  109. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.github/workflows/log_viewer.yml +0 -0
  110. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.github/workflows/pypi.yml +0 -0
  111. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.github/workflows/vscode.yml +0 -0
  112. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.gitignore +0 -0
  113. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.pre-commit-config.yaml +0 -0
  114. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.pylintrc +0 -0
  115. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.vscode/extensions.json +0 -0
  116. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.vscode/launch.json +0 -0
  117. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/.vscode/settings.json +0 -0
  118. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/CITATION.cff +0 -0
  119. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/CLAUDE.md +0 -0
  120. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/LICENSE +0 -0
  121. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/MANIFEST.in +0 -0
  122. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/Makefile +0 -0
  123. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/README.md +0 -0
  124. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/.gitignore +0 -0
  125. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/CNAME +0 -0
  126. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_container_limits.md +0 -0
  127. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_errors_and_retries.md +0 -0
  128. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_max_samples.md +0 -0
  129. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_message_limits.md +0 -0
  130. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_metadata_typing.md +0 -0
  131. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_model-providers.md +0 -0
  132. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_sample-preservation.md +0 -0
  133. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_sandbox-dockerfile.md +0 -0
  134. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_sandbox-image.md +0 -0
  135. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_sandboxenv-interface.md +0 -0
  136. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_setting_max_samples.md +0 -0
  137. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_shuffling-choices.md +0 -0
  138. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_store_typing.md +0 -0
  139. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_token_limits.md +0 -0
  140. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_tools-annotations-required.md +0 -0
  141. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_tools-basics.md +0 -0
  142. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_tools-configuration.md +0 -0
  143. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_tools-standard.md +0 -0
  144. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_variables.yml +0 -0
  145. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/_vscode-viewing-logs.md +0 -0
  146. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/agent-bridge.qmd +0 -0
  147. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/agent-custom.qmd +0 -0
  148. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/agents.qmd +0 -0
  149. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/approval.qmd +0 -0
  150. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/caching.qmd +0 -0
  151. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/datasets.qmd +0 -0
  152. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/errors-and-limits.qmd +0 -0
  153. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/eval-sets.qmd +0 -0
  154. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/evals/evals.css +0 -0
  155. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/evals/evals.ejs +0 -0
  156. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/evals/evals.yml +0 -0
  157. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/evals/import.py +0 -0
  158. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/evals/index.qmd +0 -0
  159. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/evals/listing.yml +0 -0
  160. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/extensions.qmd +0 -0
  161. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/human-agent.qmd +0 -0
  162. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/aisi-logo.svg +0 -0
  163. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/eval-log.png +0 -0
  164. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-activity-bar.png +0 -0
  165. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-human-agent-container.png +0 -0
  166. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-human-agent.png +0 -0
  167. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-multiple-models.png +0 -0
  168. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-terminal-transcript.png +0 -0
  169. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-answers.png +0 -0
  170. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-filter.png +0 -0
  171. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-history.png +0 -0
  172. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-home.png +0 -0
  173. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-info.png +0 -0
  174. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-log-link.png +0 -0
  175. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-logging-console.png +0 -0
  176. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-logging.png +0 -0
  177. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-main.png +0 -0
  178. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-messages.png +0 -0
  179. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-metadata.png +0 -0
  180. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-scoring.png +0 -0
  181. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-sort.png +0 -0
  182. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-view-splash.png +0 -0
  183. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-vscode-config.png +0 -0
  184. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-vscode-install.png +0 -0
  185. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-vscode-logview.png +0 -0
  186. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-vscode-output-channel.png +0 -0
  187. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect-vscode-run-task.png +0 -0
  188. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/inspect.png +0 -0
  189. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/logs-drop-down.png +0 -0
  190. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/logs-open-button.png +0 -0
  191. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/logs.png +0 -0
  192. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/popularity.png +0 -0
  193. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/python-tool-view.png +0 -0
  194. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/rate-limit.png +0 -0
  195. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/running-theory.png +0 -0
  196. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/task-max-sandboxes.png +0 -0
  197. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/toolenv-no-cleanup.png +0 -0
  198. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/vnc-port-info.png +0 -0
  199. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/vnc-view-only.png +0 -0
  200. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/images/web-browser-tool-view.png +0 -0
  201. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/interactivity.qmd +0 -0
  202. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/models.qmd +0 -0
  203. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/multi-agent.qmd +0 -0
  204. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/multimodal.qmd +0 -0
  205. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/options.qmd +0 -0
  206. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/parallelism.qmd +0 -0
  207. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/providers.qmd +0 -0
  208. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reasoning.qmd +0 -0
  209. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/.gitignore +0 -0
  210. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/_metadata.yml +0 -0
  211. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/filter/commands.py +0 -0
  212. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/filter/filter.py +0 -0
  213. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/filter/interlink.lua +0 -0
  214. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/filter/parse.py +0 -0
  215. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/filter/post.lua +0 -0
  216. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/filter/render.py +0 -0
  217. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_ai.agent.qmd +0 -0
  218. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_ai.approval.qmd +0 -0
  219. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_ai.dataset.qmd +0 -0
  220. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_ai.log.qmd +0 -0
  221. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_ai.model.qmd +0 -0
  222. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_ai.qmd +0 -0
  223. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_ai.scorer.qmd +0 -0
  224. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_ai.solver.qmd +0 -0
  225. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_ai.tool.qmd +0 -0
  226. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_ai.util.qmd +0 -0
  227. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_cache.qmd +0 -0
  228. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_eval-retry.qmd +0 -0
  229. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_eval-set.qmd +0 -0
  230. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_eval.qmd +0 -0
  231. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_info.qmd +0 -0
  232. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_list.qmd +0 -0
  233. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_log.qmd +0 -0
  234. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_sandbox.qmd +0 -0
  235. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_score.qmd +0 -0
  236. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_trace.qmd +0 -0
  237. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/reference/inspect_view.qmd +0 -0
  238. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/sandboxing.qmd +0 -0
  239. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/structured.qmd +0 -0
  240. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/theme.scss +0 -0
  241. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/tools-custom.qmd +0 -0
  242. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/tools-mcp.qmd +0 -0
  243. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/tools.qmd +0 -0
  244. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/tracing.qmd +0 -0
  245. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/tutorial.qmd +0 -0
  246. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/typing.qmd +0 -0
  247. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/docs/vscode.qmd +0 -0
  248. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/approval/README.md +0 -0
  249. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/approval/approval.py +0 -0
  250. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/approval/approval.yaml +0 -0
  251. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/bridge/autogen/README.md +0 -0
  252. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/bridge/autogen/agent.py +0 -0
  253. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/bridge/autogen/dataset.json +0 -0
  254. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/bridge/autogen/requirements.txt +0 -0
  255. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/bridge/autogen/task.py +0 -0
  256. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/bridge/langchain/README.md +0 -0
  257. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/bridge/langchain/agent.py +0 -0
  258. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/bridge/langchain/dataset.json +0 -0
  259. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/bridge/langchain/requirements.txt +0 -0
  260. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/bridge/langchain/task.py +0 -0
  261. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/browser/browser.py +0 -0
  262. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/browser/compose.yaml +0 -0
  263. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/cache.py +0 -0
  264. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/computer/compose.yaml +0 -0
  265. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/computer/computer.py +0 -0
  266. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/computer/moonWeight.ods +0 -0
  267. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/evalset.py +0 -0
  268. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/hello_world.py +0 -0
  269. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/human/Dockerfile +0 -0
  270. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/human/compose.yaml +0 -0
  271. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/human/human.py +0 -0
  272. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/images/ballons.png +0 -0
  273. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/images/bike.png +0 -0
  274. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/images/images.jsonl +0 -0
  275. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/images/images.py +0 -0
  276. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/intervention/README.md +0 -0
  277. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/intervention/computer/approval.yaml +0 -0
  278. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/intervention/computer/compose.yaml +0 -0
  279. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/intervention/intervention.py +0 -0
  280. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/intervention/multi_tool/compose.yaml +0 -0
  281. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/intervention/shell/Dockerfile +0 -0
  282. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/intervention/shell/compose.yaml +0 -0
  283. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/mcp_tools.py +0 -0
  284. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/prefill.py +0 -0
  285. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/scorer.py +0 -0
  286. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/security_guide.py +0 -0
  287. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/structured.py +0 -0
  288. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/surfer.py +0 -0
  289. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/theory_of_mind.py +0 -0
  290. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/examples/tool_use.py +0 -0
  291. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/setup.cfg +0 -0
  292. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/__init__.py +0 -0
  293. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/__main__.py +0 -0
  294. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/cache.py +0 -0
  295. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/common.py +0 -0
  296. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/eval.py +0 -0
  297. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/info.py +0 -0
  298. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/list.py +0 -0
  299. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/log.py +0 -0
  300. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/main.py +0 -0
  301. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/sandbox.py +0 -0
  302. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/score.py +0 -0
  303. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/trace.py +0 -0
  304. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/util.py +0 -0
  305. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_cli/view.py +0 -0
  306. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/__init__.py +0 -0
  307. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/core/active.py +0 -0
  308. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/core/config.py +0 -0
  309. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/core/display.py +0 -0
  310. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/core/footer.py +0 -0
  311. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/core/panel.py +0 -0
  312. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/core/progress.py +0 -0
  313. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/core/results.py +0 -0
  314. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/core/rich.py +0 -0
  315. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/core/textual.py +0 -0
  316. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/plain/__init__.py +0 -0
  317. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/plain/display.py +0 -0
  318. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/rich/__init__.py +0 -0
  319. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/rich/display.py +0 -0
  320. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/app.py +0 -0
  321. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/app.tcss +0 -0
  322. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/display.py +0 -0
  323. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/theme.py +0 -0
  324. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/clock.py +0 -0
  325. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/console.py +0 -0
  326. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/footer.py +0 -0
  327. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/port_mappings.py +0 -0
  328. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/samples.py +0 -0
  329. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/sandbox.py +0 -0
  330. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/task_detail.py +0 -0
  331. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/tasks.py +0 -0
  332. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/titlebar.py +0 -0
  333. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/toggle.py +0 -0
  334. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/transcript.py +0 -0
  335. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_display/textual/widgets/vscode.py +0 -0
  336. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/__init__.py +0 -0
  337. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/context.py +0 -0
  338. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/eval.py +0 -0
  339. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/evalset.py +0 -0
  340. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/list.py +0 -0
  341. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/registry.py +0 -0
  342. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/run.py +0 -0
  343. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/score.py +0 -0
  344. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/__init__.py +0 -0
  345. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/constants.py +0 -0
  346. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/epochs.py +0 -0
  347. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/error.py +0 -0
  348. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/generate.py +0 -0
  349. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/images.py +0 -0
  350. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/log.py +0 -0
  351. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/resolved.py +0 -0
  352. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/results.py +0 -0
  353. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/sandbox.py +0 -0
  354. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/task.py +0 -0
  355. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/tasks.py +0 -0
  356. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_eval/task/util.py +0 -0
  357. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/__init__.py +0 -0
  358. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/_async.py +0 -0
  359. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/ansi.py +0 -0
  360. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/answer.py +0 -0
  361. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/appdirs.py +0 -0
  362. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/config.py +0 -0
  363. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/constants.py +0 -0
  364. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/content.py +0 -0
  365. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/datetime.py +0 -0
  366. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/decorator.py +0 -0
  367. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/deprecation.py +0 -0
  368. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/dev.py +0 -0
  369. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/dict.py +0 -0
  370. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/dotenv.py +0 -0
  371. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/entrypoints.py +0 -0
  372. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/environ.py +0 -0
  373. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/error.py +0 -0
  374. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/file.py +0 -0
  375. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/format.py +0 -0
  376. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/future.py +0 -0
  377. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/git.py +0 -0
  378. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/hooks.py +0 -0
  379. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/html.py +0 -0
  380. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/http.py +0 -0
  381. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/httpx.py +0 -0
  382. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/images.py +0 -0
  383. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/interrupt.py +0 -0
  384. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/json.py +0 -0
  385. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/kvstore.py +0 -0
  386. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/list.py +0 -0
  387. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/logger.py +0 -0
  388. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/notebook.py +0 -0
  389. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/notgiven.py +0 -0
  390. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/package.py +0 -0
  391. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/pattern.py +0 -0
  392. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/platform.py +0 -0
  393. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/port_names.py +0 -0
  394. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/registry.py +0 -0
  395. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/retry.py +0 -0
  396. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/rich.py +0 -0
  397. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/samples.py +0 -0
  398. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/terminal.py +0 -0
  399. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/text.py +0 -0
  400. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/thread.py +0 -0
  401. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/throttle.py +0 -0
  402. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/transcript.py +0 -0
  403. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/url.py +0 -0
  404. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/version.py +0 -0
  405. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_util/vscode.py +0 -0
  406. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/notify.py +0 -0
  407. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/schema.py +0 -0
  408. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/server.py +0 -0
  409. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/view.py +0 -0
  410. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/.gitignore +0 -0
  411. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/.prettierignore +0 -0
  412. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/.prettierrc.js +0 -0
  413. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/.tool-versions +0 -0
  414. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/.vscode/extensions.json +0 -0
  415. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/.vscode/settings.json +0 -0
  416. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/README.md +0 -0
  417. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/babel.config.js +0 -0
  418. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/dist/assets/favicon.svg +0 -0
  419. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/dist/index.html +0 -0
  420. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/eslint.config.mjs +0 -0
  421. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/favicon.svg +0 -0
  422. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/index.html +0 -0
  423. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/jest.config.mjs +0 -0
  424. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/jsconfig.json +0 -0
  425. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/log-schema.json +0 -0
  426. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/postcss.config.cjs +0 -0
  427. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/@types/asciicinema-player.d.ts +0 -0
  428. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/@types/jsondiffpatch.d.ts +0 -0
  429. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/@types/log.d.ts +0 -0
  430. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/@types/markdown-it-katex.d.ts +0 -0
  431. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/@types/prism.d.ts +0 -0
  432. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/App.css +0 -0
  433. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/App.tsx +0 -0
  434. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/AppErrorBoundary.tsx +0 -0
  435. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/appearance/colors.ts +0 -0
  436. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/appearance/fonts.ts +0 -0
  437. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/appearance/icons.ts +0 -0
  438. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/appearance/styles.ts +0 -0
  439. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/content/MetaDataGrid.tsx +0 -0
  440. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/content/MetaDataView.module.css +0 -0
  441. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/content/MetaDataView.tsx +0 -0
  442. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/content/MetadataGrid.module.css +0 -0
  443. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/content/RenderedContent.module.css +0 -0
  444. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/content/RenderedContent.tsx +0 -0
  445. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/content/types.ts +0 -0
  446. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/LogView.module.css +0 -0
  447. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/LogView.tsx +0 -0
  448. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/LogViewContainer.tsx +0 -0
  449. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/LogViewLayout.tsx +0 -0
  450. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/error/TaskErrorPanel.module.css +0 -0
  451. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/error/TaskErrorPanel.tsx +0 -0
  452. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/ModelRolesView.module.css +0 -0
  453. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/ModelRolesView.tsx +0 -0
  454. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/Navbar.module.css +0 -0
  455. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/Navbar.tsx +0 -0
  456. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/PrimaryBar.module.css +0 -0
  457. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/PrimaryBar.tsx +0 -0
  458. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/ResultsPanel.module.css +0 -0
  459. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/ResultsPanel.tsx +0 -0
  460. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/RunningStatusPanel.module.css +0 -0
  461. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/RunningStatusPanel.tsx +0 -0
  462. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/ScoreGrid.module.css +0 -0
  463. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/ScoreGrid.tsx +0 -0
  464. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/SecondaryBar.module.css +0 -0
  465. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/StatusPanel.module.css +0 -0
  466. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/navbar/StatusPanel.tsx +0 -0
  467. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/InfoTab.module.css +0 -0
  468. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/InfoTab.tsx +0 -0
  469. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/JsonTab.module.css +0 -0
  470. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/JsonTab.tsx +0 -0
  471. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/ModelsTab.module.css +0 -0
  472. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/ModelsTab.tsx +0 -0
  473. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/RunningNoSamples.module.css +0 -0
  474. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/RunningNoSamples.tsx +0 -0
  475. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/TaskTab.module.css +0 -0
  476. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/TaskTab.tsx +0 -0
  477. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/grouping.ts +0 -0
  478. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/tabs/types.ts +0 -0
  479. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/types.ts +0 -0
  480. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/log-view/utils.ts +0 -0
  481. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/DatasetDetailView.module.css +0 -0
  482. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/DatasetDetailView.tsx +0 -0
  483. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/DetailStep.module.css +0 -0
  484. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/DetailStep.tsx +0 -0
  485. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/ModelCard.module.css +0 -0
  486. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/ModelCard.tsx +0 -0
  487. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/PlanCard.tsx +0 -0
  488. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/PlanDetailView.module.css +0 -0
  489. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/PlanDetailView.tsx +0 -0
  490. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/ScorerDetailView.module.css +0 -0
  491. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/ScorerDetailView.tsx +0 -0
  492. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/SolverDetailView.module.css +0 -0
  493. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/plan/SolverDetailView.tsx +0 -0
  494. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/routing/AppRouter.tsx +0 -0
  495. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/routing/navigationHooks.ts +0 -0
  496. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/routing/url.ts +0 -0
  497. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/InlineSampleDisplay.module.css +0 -0
  498. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/InlineSampleDisplay.tsx +0 -0
  499. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/SampleDialog.tsx +0 -0
  500. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/SampleDisplay.module.css +0 -0
  501. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/SampleDisplay.tsx +0 -0
  502. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/SampleSummaryView.module.css +0 -0
  503. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/SampleSummaryView.tsx +0 -0
  504. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/ChatMessage.module.css +0 -0
  505. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/ChatMessage.tsx +0 -0
  506. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/ChatMessageRenderer.tsx +0 -0
  507. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/ChatMessageRow.module.css +0 -0
  508. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/ChatMessageRow.tsx +0 -0
  509. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/ChatView.tsx +0 -0
  510. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/ChatViewVirtualList.module.css +0 -0
  511. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/ChatViewVirtualList.tsx +0 -0
  512. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/MessageContent.module.css +0 -0
  513. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/MessageContent.tsx +0 -0
  514. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/MessageContents.module.css +0 -0
  515. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/MessageContents.tsx +0 -0
  516. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/messages.ts +0 -0
  517. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/tools/ToolCallView.module.css +0 -0
  518. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/tools/ToolCallView.tsx +0 -0
  519. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/tools/ToolInput.module.css +0 -0
  520. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/tools/ToolInput.tsx +0 -0
  521. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/tools/ToolOutput.module.css +0 -0
  522. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/tools/ToolOutput.tsx +0 -0
  523. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/tools/ToolTitle.module.css +0 -0
  524. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/tools/ToolTitle.tsx +0 -0
  525. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/tools/tool.ts +0 -0
  526. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/chat/types.ts +0 -0
  527. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/samplesDescriptor.tsx +0 -0
  528. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/score/BooleanScoreDescriptor.module.css +0 -0
  529. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/score/BooleanScoreDescriptor.tsx +0 -0
  530. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/score/CategoricalScoreDescriptor.tsx +0 -0
  531. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/score/NumericScoreDescriptor.tsx +0 -0
  532. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/score/ObjectScoreDescriptor.module.css +0 -0
  533. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/score/ObjectScoreDescriptor.tsx +0 -0
  534. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/score/OtherScoreDescriptor.tsx +0 -0
  535. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/score/PassFailScoreDescriptor.module.css +0 -0
  536. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/score/PassFailScoreDescriptor.tsx +0 -0
  537. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/score/ScoreDescriptor.tsx +0 -0
  538. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/descriptor/types.ts +0 -0
  539. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/error/FlatSampleErrorView.module.css +0 -0
  540. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/error/FlatSampleErrorView.tsx +0 -0
  541. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/error/SampleErrorView.module.css +0 -0
  542. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/error/SampleErrorView.tsx +0 -0
  543. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/error/error.ts +0 -0
  544. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/list/SampleFooter.module.css +0 -0
  545. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/list/SampleFooter.tsx +0 -0
  546. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/list/SampleHeader.module.css +0 -0
  547. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/list/SampleHeader.tsx +0 -0
  548. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/list/SampleList.module.css +0 -0
  549. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/list/SampleList.tsx +0 -0
  550. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/list/SampleRow.module.css +0 -0
  551. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/list/SampleRow.tsx +0 -0
  552. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/list/SampleSeparator.module.css +0 -0
  553. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/list/SampleSeparator.tsx +0 -0
  554. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/EpochFilter.module.css +0 -0
  555. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/EpochFilter.tsx +0 -0
  556. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/SelectScorer.module.css +0 -0
  557. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/SortFilter.module.css +0 -0
  558. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/SortFilter.tsx +0 -0
  559. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/SampleFilter.module.css +0 -0
  560. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/language.ts +0 -0
  561. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/tokenize.ts +0 -0
  562. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sampleDataAdapter.ts +0 -0
  563. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/sampleLimit.ts +0 -0
  564. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/scores/SampleScores.module.css +0 -0
  565. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/scores/SampleScores.tsx +0 -0
  566. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/scores/SampleScoresGrid.module.css +0 -0
  567. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/scores/SampleScoresGrid.tsx +0 -0
  568. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/scores/SampleScoresView.module.css +0 -0
  569. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/scores/SampleScoresView.tsx +0 -0
  570. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/ApprovalEventView.tsx +0 -0
  571. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/ErrorEventView.tsx +0 -0
  572. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/InfoEventView.module.css +0 -0
  573. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/InfoEventView.tsx +0 -0
  574. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/InputEventView.tsx +0 -0
  575. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/LoggerEventView.module.css +0 -0
  576. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/LoggerEventView.tsx +0 -0
  577. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/ModelEventView.module.css +0 -0
  578. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/ModelEventView.tsx +0 -0
  579. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/SampleInitEventView.module.css +0 -0
  580. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/SampleInitEventView.tsx +0 -0
  581. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/SampleLimitEventView.tsx +0 -0
  582. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/SandboxEventView.module.css +0 -0
  583. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/SandboxEventView.tsx +0 -0
  584. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/ScoreEventView.module.css +0 -0
  585. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/ScoreEventView.tsx +0 -0
  586. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/SpanEventView.tsx +0 -0
  587. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/StepEventView.tsx +0 -0
  588. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/SubtaskEventView.module.css +0 -0
  589. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/SubtaskEventView.tsx +0 -0
  590. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/ToolEventView.module.css +0 -0
  591. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/ToolEventView.tsx +0 -0
  592. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/TranscriptView.module.css +0 -0
  593. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/TranscriptView.tsx +0 -0
  594. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/TranscriptVirtualListComponent.module.css +0 -0
  595. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/TranscriptVirtualListComponent.tsx +0 -0
  596. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventNav.module.css +0 -0
  597. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventNav.tsx +0 -0
  598. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventNavs.module.css +0 -0
  599. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventNavs.tsx +0 -0
  600. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventPanel.module.css +0 -0
  601. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventPanel.tsx +0 -0
  602. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventProgressPanel.module.css +0 -0
  603. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventProgressPanel.tsx +0 -0
  604. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventRow.module.css +0 -0
  605. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventRow.tsx +0 -0
  606. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventSection.module.css +0 -0
  607. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventSection.tsx +0 -0
  608. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventTimingPanel.module.css +0 -0
  609. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/EventTimingPanel.tsx +0 -0
  610. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/event/utils.ts +0 -0
  611. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/state/StateDiffView.tsx +0 -0
  612. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/state/StateEventRenderers.tsx +0 -0
  613. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/state/StateEventRenders.module.css +0 -0
  614. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/state/StateEventView.module.css +0 -0
  615. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/state/StateEventView.tsx +0 -0
  616. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/transform/fixups.ts +0 -0
  617. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/transform/treeify.ts +0 -0
  618. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/transform/utils.ts +0 -0
  619. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/samples/transcript/types.ts +0 -0
  620. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/EvalStatus.module.css +0 -0
  621. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/EvalStatus.tsx +0 -0
  622. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/LogDirectoryTitleView.module.css +0 -0
  623. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/LogDirectoryTitleView.tsx +0 -0
  624. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/Sidebar.module.css +0 -0
  625. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/Sidebar.tsx +0 -0
  626. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/SidebarLogEntry.module.css +0 -0
  627. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/SidebarLogEntry.tsx +0 -0
  628. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/SidebarScoreView.module.css +0 -0
  629. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/SidebarScoreView.tsx +0 -0
  630. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/SidebarScoresView.module.css +0 -0
  631. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/sidebar/SidebarScoresView.tsx +0 -0
  632. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/usage/ModelTokenTable.tsx +0 -0
  633. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/usage/ModelUsagePanel.module.css +0 -0
  634. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/usage/ModelUsagePanel.tsx +0 -0
  635. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/usage/TokenTable.module.css +0 -0
  636. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/usage/TokenTable.tsx +0 -0
  637. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/usage/UsageCard.module.css +0 -0
  638. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/app/usage/UsageCard.tsx +0 -0
  639. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/client/api/api-browser.ts +0 -0
  640. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/client/api/api-http.ts +0 -0
  641. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/client/api/api-shared.ts +0 -0
  642. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/client/api/api-vscode.ts +0 -0
  643. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/client/api/client-api.ts +0 -0
  644. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/client/api/index.ts +0 -0
  645. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/client/api/jsonrpc.ts +0 -0
  646. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/client/api/types.ts +0 -0
  647. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/client/remote/remoteLogFile.ts +0 -0
  648. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/client/remote/remoteZipFile.ts +0 -0
  649. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/client/storage/index.ts +0 -0
  650. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/AnsiDisplay.css +0 -0
  651. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/AnsiDisplay.tsx +0 -0
  652. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/AsciinemaPlayer.tsx +0 -0
  653. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/Card.css +0 -0
  654. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/Card.tsx +0 -0
  655. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/CopyButton.module.css +0 -0
  656. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/CopyButton.tsx +0 -0
  657. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/DownloadButton.css +0 -0
  658. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/DownloadButton.tsx +0 -0
  659. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/DownloadPanel.css +0 -0
  660. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/DownloadPanel.tsx +0 -0
  661. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/EmptyPanel.css +0 -0
  662. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/EmptyPanel.tsx +0 -0
  663. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/ErrorPanel.css +0 -0
  664. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/ErrorPanel.tsx +0 -0
  665. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/FindBand.css +0 -0
  666. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/FindBand.tsx +0 -0
  667. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/HumanBaselineView.css +0 -0
  668. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/HumanBaselineView.tsx +0 -0
  669. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/JsonPanel.css +0 -0
  670. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/JsonPanel.tsx +0 -0
  671. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/LabeledValue.css +0 -0
  672. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/LabeledValue.tsx +0 -0
  673. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/LargeModal.module.css +0 -0
  674. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/LargeModal.tsx +0 -0
  675. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/LightboxCarousel.module.css +0 -0
  676. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/LightboxCarousel.tsx +0 -0
  677. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/LinkButton.module.css +0 -0
  678. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/LinkButton.tsx +0 -0
  679. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/LiveVirtualList.module.css +0 -0
  680. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/LiveVirtualList.tsx +0 -0
  681. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/MarkdownDiv.css +0 -0
  682. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/MarkdownDiv.tsx +0 -0
  683. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/MessageBand.css +0 -0
  684. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/MessageBand.tsx +0 -0
  685. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/Modal.module.css +0 -0
  686. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/Modal.tsx +0 -0
  687. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/MorePopOver.css +0 -0
  688. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/MorePopOver.tsx +0 -0
  689. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/NavPills.module.css +0 -0
  690. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/NavPills.tsx +0 -0
  691. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/NoContentsPanel.module.css +0 -0
  692. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/NoContentsPanel.tsx +0 -0
  693. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/ProgressBar.module.css +0 -0
  694. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/ProgressBar.tsx +0 -0
  695. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/PulsingDots.module.css +0 -0
  696. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/PulsingDots.tsx +0 -0
  697. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/TabSet.module.css +0 -0
  698. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/TabSet.tsx +0 -0
  699. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/ToolButton.css +0 -0
  700. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/components/ToolButton.tsx +0 -0
  701. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/constants.ts +0 -0
  702. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/index.tsx +0 -0
  703. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/appSlice.ts +0 -0
  704. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/logPolling.ts +0 -0
  705. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/logsPolling.ts +0 -0
  706. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/logsSlice.ts +0 -0
  707. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/samplePolling.ts +0 -0
  708. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/sampleSlice.ts +0 -0
  709. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/sampleUtils.ts +0 -0
  710. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/scoring.ts +0 -0
  711. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/scrolling.ts +0 -0
  712. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/store.ts +0 -0
  713. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/store_filter.ts +0 -0
  714. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/state/utils.ts +0 -0
  715. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/tests/README.md +0 -0
  716. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/tests/__mocks__/fileMock.js +0 -0
  717. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/tests/__mocks__/styleMock.js +0 -0
  718. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/tests/setupTests.mjs +0 -0
  719. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/tests/utils/base64.test.ts +0 -0
  720. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/tests/utils/format.test.ts +0 -0
  721. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/tests/utils/path.test.ts +0 -0
  722. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/attachments.ts +0 -0
  723. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/base64.ts +0 -0
  724. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/browser.ts +0 -0
  725. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/debugging.ts +0 -0
  726. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/dom.ts +0 -0
  727. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/format.ts +0 -0
  728. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/git.ts +0 -0
  729. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/html.ts +0 -0
  730. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/http.ts +0 -0
  731. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/json-worker.ts +0 -0
  732. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/json.ts +0 -0
  733. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/logger.ts +0 -0
  734. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/numeric.ts +0 -0
  735. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/path.ts +0 -0
  736. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/polling.ts +0 -0
  737. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/print.ts +0 -0
  738. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/queue.ts +0 -0
  739. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/react.ts +0 -0
  740. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/sync.ts +0 -0
  741. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/type.ts +0 -0
  742. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/uri.ts +0 -0
  743. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/src/utils/vscode.ts +0 -0
  744. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/tsconfig.json +0 -0
  745. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/_view/www/vite.config.js +0 -0
  746. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/__init__.py +0 -0
  747. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_agent.py +0 -0
  748. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_as_solver.py +0 -0
  749. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_as_tool.py +0 -0
  750. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_bridge/__init__.py +0 -0
  751. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_bridge/bridge.py +0 -0
  752. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_filter.py +0 -0
  753. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_handoff.py +0 -0
  754. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/__init__.py +0 -0
  755. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/agent.py +0 -0
  756. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/commands/__init__.py +0 -0
  757. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/commands/clock.py +0 -0
  758. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/commands/command.py +0 -0
  759. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/commands/instructions.py +0 -0
  760. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/commands/note.py +0 -0
  761. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/commands/score.py +0 -0
  762. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/commands/status.py +0 -0
  763. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/commands/submit.py +0 -0
  764. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/install.py +0 -0
  765. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/panel.py +0 -0
  766. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/service.py +0 -0
  767. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/state.py +0 -0
  768. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_human/view.py +0 -0
  769. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_react.py +0 -0
  770. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/agent/_run.py +0 -0
  771. {inspect_ai-0.3.94/src/inspect_ai/approval/_human → inspect_ai-0.3.96/src/inspect_ai/analysis}/__init__.py +0 -0
  772. {inspect_ai-0.3.94/src/inspect_ai/dataset/_sources → inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe}/__init__.py +0 -0
  773. {inspect_ai-0.3.94/src/inspect_ai/tool/_tools → inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/evals}/__init__.py +0 -0
  774. {inspect_ai-0.3.94/src/inspect_tool_support/src/inspect_tool_support/_cli → inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/events}/__init__.py +0 -0
  775. {inspect_ai-0.3.94/src/inspect_tool_support/src/inspect_tool_support/_in_process_tools → inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/messages}/__init__.py +0 -0
  776. {inspect_ai-0.3.94/src/inspect_tool_support/src/inspect_tool_support/_in_process_tools/_text_editor → inspect_ai-0.3.96/src/inspect_ai/analysis/beta/_dataframe/samples}/__init__.py +0 -0
  777. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/__init__.py +0 -0
  778. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_apply.py +0 -0
  779. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_approval.py +0 -0
  780. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_approver.py +0 -0
  781. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_auto.py +0 -0
  782. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_call.py +0 -0
  783. {inspect_ai-0.3.94/src/inspect_tool_support/src/inspect_tool_support/_in_process_tools/_version → inspect_ai-0.3.96/src/inspect_ai/approval/_human}/__init__.py +0 -0
  784. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_human/approver.py +0 -0
  785. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_human/console.py +0 -0
  786. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_human/manager.py +0 -0
  787. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_human/panel.py +0 -0
  788. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_human/util.py +0 -0
  789. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_policy.py +0 -0
  790. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/approval/_registry.py +0 -0
  791. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/__init__.py +0 -0
  792. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_dataset.py +0 -0
  793. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_examples/bias_detection.jsonl +0 -0
  794. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_examples/biology_qa.jsonl +0 -0
  795. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_examples/popularity.jsonl +0 -0
  796. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_examples/security_guide.jsonl +0 -0
  797. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_examples/theory_of_mind.jsonl +0 -0
  798. {inspect_ai-0.3.94/src/inspect_tool_support/src/inspect_tool_support/_remote_tools → inspect_ai-0.3.96/src/inspect_ai/dataset/_sources}/__init__.py +0 -0
  799. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_sources/csv.py +0 -0
  800. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_sources/example.py +0 -0
  801. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_sources/file.py +0 -0
  802. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_sources/hf.py +0 -0
  803. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_sources/json.py +0 -0
  804. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_sources/util.py +0 -0
  805. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/dataset/_util.py +0 -0
  806. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/__init__.py +0 -0
  807. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_bundle.py +0 -0
  808. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_condense.py +0 -0
  809. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_convert.py +0 -0
  810. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_message.py +0 -0
  811. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_model.py +0 -0
  812. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/__init__.py +0 -0
  813. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/buffer/__init__.py +0 -0
  814. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/buffer/buffer.py +0 -0
  815. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/buffer/database.py +0 -0
  816. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/buffer/filestore.py +0 -0
  817. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/buffer/types.py +0 -0
  818. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/create.py +0 -0
  819. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/eval.py +0 -0
  820. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/file.py +0 -0
  821. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/json.py +0 -0
  822. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/recorder.py +0 -0
  823. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_recorders/types.py +0 -0
  824. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_retry.py +0 -0
  825. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_samples.py +0 -0
  826. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_transcript.py +0 -0
  827. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_tree.py +0 -0
  828. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/log/_util.py +0 -0
  829. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/__init__.py +0 -0
  830. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_cache.py +0 -0
  831. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_chat_message.py +0 -0
  832. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_conversation.py +0 -0
  833. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_display.py +0 -0
  834. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_generate_config.py +0 -0
  835. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_model_call.py +0 -0
  836. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_model_output.py +0 -0
  837. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_openai.py +0 -0
  838. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_openai_computer_use.py +0 -0
  839. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/azureai.py +0 -0
  840. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/bedrock.py +0 -0
  841. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/cloudflare.py +0 -0
  842. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/google.py +0 -0
  843. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/grok.py +0 -0
  844. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/groq.py +0 -0
  845. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/hf.py +0 -0
  846. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/llama_cpp_python.py +0 -0
  847. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/mistral.py +0 -0
  848. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/mockllm.py +0 -0
  849. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/none.py +0 -0
  850. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/ollama.py +0 -0
  851. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/openai.py +0 -0
  852. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/openai_compatible.py +0 -0
  853. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/openai_o1.py +0 -0
  854. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/openai_responses.py +0 -0
  855. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/openrouter.py +0 -0
  856. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/sglang.py +0 -0
  857. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/together.py +0 -0
  858. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/util/__init__.py +0 -0
  859. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/util/chatapi.py +0 -0
  860. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/util/hf_handler.py +0 -0
  861. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/util/hooks.py +0 -0
  862. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/util/llama31.py +0 -0
  863. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/util/util.py +0 -0
  864. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/vertex.py +0 -0
  865. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_providers/vllm.py +0 -0
  866. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_reasoning.py +0 -0
  867. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_registry.py +0 -0
  868. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_render.py +0 -0
  869. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/model/_trim.py +0 -0
  870. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/py.typed +0 -0
  871. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/__init__.py +0 -0
  872. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_answer.py +0 -0
  873. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_choice.py +0 -0
  874. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_classification.py +0 -0
  875. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_common.py +0 -0
  876. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_match.py +0 -0
  877. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_metric.py +0 -0
  878. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_metrics/__init__.py +0 -0
  879. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_metrics/accuracy.py +0 -0
  880. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_metrics/grouped.py +0 -0
  881. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_metrics/mean.py +0 -0
  882. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_metrics/std.py +0 -0
  883. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_model.py +0 -0
  884. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_multi.py +0 -0
  885. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_pattern.py +0 -0
  886. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_reducer/__init__.py +0 -0
  887. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_reducer/reducer.py +0 -0
  888. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_reducer/registry.py +0 -0
  889. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_reducer/types.py +0 -0
  890. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_score.py +0 -0
  891. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_scorer.py +0 -0
  892. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/scorer/_target.py +0 -0
  893. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/__init__.py +0 -0
  894. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_basic_agent.py +0 -0
  895. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_bridge.py +0 -0
  896. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_chain.py +0 -0
  897. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_critique.py +0 -0
  898. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_fork.py +0 -0
  899. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_human_agent.py +0 -0
  900. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_plan.py +0 -0
  901. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_prompt.py +0 -0
  902. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_run.py +0 -0
  903. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_solver.py +0 -0
  904. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_transcript.py +0 -0
  905. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_use_tools.py +0 -0
  906. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/solver/_util.py +0 -0
  907. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/__init__.py +0 -0
  908. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_json_rpc_helpers.py +0 -0
  909. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_mcp/__init__.py +0 -0
  910. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_mcp/_mcp.py +0 -0
  911. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_mcp/_types.py +0 -0
  912. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_mcp/connection.py +0 -0
  913. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_mcp/sampling.py +0 -0
  914. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_mcp/tools.py +0 -0
  915. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tool.py +0 -0
  916. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tool_call.py +0 -0
  917. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tool_choice.py +0 -0
  918. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tool_def.py +0 -0
  919. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tool_description.py +0 -0
  920. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tool_info.py +0 -0
  921. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tool_params.py +0 -0
  922. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tool_support_helpers.py +0 -0
  923. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tool_transcript.py +0 -0
  924. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tool_with.py +0 -0
  925. {inspect_ai-0.3.94/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_bash_session → inspect_ai-0.3.96/src/inspect_ai/tool/_tools}/__init__.py +0 -0
  926. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tools/_bash_session.py +0 -0
  927. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tools/_computer/__init__.py +0 -0
  928. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tools/_computer/_common.py +0 -0
  929. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tools/_computer/_computer.py +0 -0
  930. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tools/_execute.py +0 -0
  931. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tools/_text_editor.py +0 -0
  932. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tools/_web_browser/__init__.py +0 -0
  933. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tools/_web_browser/_back_compat.py +0 -0
  934. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/_tools/_web_browser/_web_browser.py +0 -0
  935. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/tool/beta.py +0 -0
  936. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/__init__.py +0 -0
  937. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_anyio.py +0 -0
  938. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_collect.py +0 -0
  939. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_concurrency.py +0 -0
  940. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_console.py +0 -0
  941. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_conversation.py +0 -0
  942. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_display.py +0 -0
  943. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_json.py +0 -0
  944. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_limit.py +0 -0
  945. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_limited_conversation.py +0 -0
  946. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_panel.py +0 -0
  947. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_resource.py +0 -0
  948. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/__init__.py +0 -0
  949. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/context.py +0 -0
  950. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/docker/cleanup.py +0 -0
  951. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/docker/compose.py +0 -0
  952. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/docker/config.py +0 -0
  953. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/docker/docker.py +0 -0
  954. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/docker/internal.py +0 -0
  955. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/docker/prereqs.py +0 -0
  956. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/docker/service.py +0 -0
  957. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/docker/util.py +0 -0
  958. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/environment.py +0 -0
  959. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/limits.py +0 -0
  960. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/local.py +0 -0
  961. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/registry.py +0 -0
  962. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/self_check.py +0 -0
  963. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_sandbox/service.py +0 -0
  964. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_span.py +0 -0
  965. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_store.py +0 -0
  966. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_store_model.py +0 -0
  967. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_subprocess.py +0 -0
  968. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_subtask.py +0 -0
  969. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai/util/_throttle.py +0 -0
  970. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai.egg-info/dependency_links.txt +0 -0
  971. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai.egg-info/entry_points.txt +0 -0
  972. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_ai.egg-info/top_level.txt +0 -0
  973. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/.bumpversion.cfg +0 -0
  974. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/.pylintrc +0 -0
  975. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/.vscode/launch.json +0 -0
  976. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/.vscode/settings.json +0 -0
  977. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/CHANGELOG.md +0 -0
  978. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/Dockerfile +0 -0
  979. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/Dockerfile.kali +0 -0
  980. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/Dockerfile.ubuntu +0 -0
  981. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/MANIFEST.in +0 -0
  982. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/README.md +0 -0
  983. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/cspell.json +0 -0
  984. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/kali-archive-keyring.gpg +0 -0
  985. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/make-release-commit +0 -0
  986. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/pyproject.toml +0 -0
  987. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/shared_tool_container_design.svg +0 -0
  988. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/__init__.py +0 -0
  989. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/__main__.py +0 -0
  990. {inspect_ai-0.3.94/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_mcp → inspect_ai-0.3.96/src/inspect_tool_support/src/inspect_tool_support/_cli}/__init__.py +0 -0
  991. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_cli/_post_install.py +0 -0
  992. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_cli/main.py +0 -0
  993. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_cli/server.py +0 -0
  994. {inspect_ai-0.3.94/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser → inspect_ai-0.3.96/src/inspect_tool_support/src/inspect_tool_support/_in_process_tools}/__init__.py +0 -0
  995. {inspect_ai-0.3.94/src/inspect_tool_support/src/inspect_tool_support/_util → inspect_ai-0.3.96/src/inspect_tool_support/src/inspect_tool_support/_in_process_tools/_text_editor}/__init__.py +0 -0
  996. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_in_process_tools/_text_editor/_run.py +0 -0
  997. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_in_process_tools/_text_editor/json_rpc_methods.py +0 -0
  998. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_in_process_tools/_text_editor/text_editor.py +0 -0
  999. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_in_process_tools/_text_editor/tool_types.py +0 -0
  1000. {inspect_ai-0.3.94/tests/model → inspect_ai-0.3.96/src/inspect_tool_support/src/inspect_tool_support/_in_process_tools/_version}/__init__.py +0 -0
  1001. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_in_process_tools/_version/json_rpc_methods.py +0 -0
  1002. {inspect_ai-0.3.94/tests/test_helpers → inspect_ai-0.3.96/src/inspect_tool_support/src/inspect_tool_support/_remote_tools}/__init__.py +0 -0
  1003. {inspect_ai-0.3.94/tests/test_task_list → inspect_ai-0.3.96/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_bash_session}/__init__.py +0 -0
  1004. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_bash_session/_controller.py +0 -0
  1005. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_bash_session/_process.py +0 -0
  1006. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_bash_session/_session.py +0 -0
  1007. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_bash_session/json_rpc_methods.py +0 -0
  1008. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_bash_session/tool_types.py +0 -0
  1009. /inspect_ai-0.3.94/tests/test_package/inspect_package/py.typed → /inspect_ai-0.3.96/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_mcp/__init__.py +0 -0
  1010. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_mcp/json_rpc_methods.py +0 -0
  1011. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_mcp/mcp_server_session.py +0 -0
  1012. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_mcp/tool_types.py +0 -0
  1013. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/README.md +0 -0
  1014. /inspect_ai-0.3.94/tools/vscode/src/providers/activity-bar/webview/task-config-webview.css → /inspect_ai-0.3.96/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/__init__.py +0 -0
  1015. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/accessibility_tree.py +0 -0
  1016. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/accessibility_tree_node.py +0 -0
  1017. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/cdp/__init__.py +0 -0
  1018. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/cdp/a11y.py +0 -0
  1019. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/cdp/dom.py +0 -0
  1020. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/cdp/dom_snapshot.py +0 -0
  1021. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/cdp/page.py +0 -0
  1022. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/constants.py +0 -0
  1023. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/controller.py +0 -0
  1024. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/images/usage_diagram.svg +0 -0
  1025. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/json_rpc_methods.py +0 -0
  1026. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/mock_environment.py +0 -0
  1027. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/playwright_browser.py +0 -0
  1028. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/playwright_crawler.py +0 -0
  1029. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/playwright_page_crawler.py +0 -0
  1030. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/rectangle.py +0 -0
  1031. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/scale_factor.py +0 -0
  1032. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/test_accessibility_tree_node.py +0 -0
  1033. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/test_playwright_crawler.py +0 -0
  1034. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/test_rectangle.py +0 -0
  1035. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/test_web_client.py +0 -0
  1036. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_remote_tools/_web_browser/tool_types.py +0 -0
  1037. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/async_decoded_stream_reader.py +0 -0
  1038. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/common_types.py +0 -0
  1039. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/constants.py +0 -0
  1040. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/debugging.py +0 -0
  1041. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/json_rpc_helpers.py +0 -0
  1042. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/load_tools.py +0 -0
  1043. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/pseudo_terminal.py +0 -0
  1044. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/semver.py +0 -0
  1045. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/session_controller.py +0 -0
  1046. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/test_async_decoded_stream_reader.py +0 -0
  1047. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/timeout_event.py +0 -0
  1048. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/src/inspect_tool_support/src/inspect_tool_support/_util/validation.py +0 -0
  1049. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/agent/_human/test_state.py +0 -0
  1050. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/agent/compose.human.yaml +0 -0
  1051. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/agent/compose.yaml +0 -0
  1052. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/agent/human.Dockerfile +0 -0
  1053. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/agent/test_agent_description.py +0 -0
  1054. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/agent/test_agent_docs.py +0 -0
  1055. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/agent/test_agent_execute.py +0 -0
  1056. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/agent/test_agent_handoff.py +0 -0
  1057. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/agent/test_agent_human.py +0 -0
  1058. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/agent/test_agent_react.py +0 -0
  1059. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/approval/approve.yaml +0 -0
  1060. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/approval/escalate.yaml +0 -0
  1061. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/approval/modify.yaml +0 -0
  1062. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/approval/reject.yaml +0 -0
  1063. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/approval/terminate.yaml +0 -0
  1064. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/approval/test_approval.py +0 -0
  1065. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/conftest.py +0 -0
  1066. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/dataset/test_dataset/dataset.jsonl +0 -0
  1067. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/dataset/test_dataset/images/ballons.png +0 -0
  1068. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/dataset/test_dataset/images.jsonl +0 -0
  1069. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/dataset/test_dataset/samples-md.csv +0 -0
  1070. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/dataset/test_dataset/samples-md.json +0 -0
  1071. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/dataset/test_dataset/samples-md.jsonl +0 -0
  1072. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/dataset/test_dataset/samples.csv +0 -0
  1073. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/dataset/test_dataset/samples.json +0 -0
  1074. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/dataset/test_dataset/samples.jsonl +0 -0
  1075. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/dataset/test_dataset.py +0 -0
  1076. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log/log_formats.eval +0 -0
  1077. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log/log_formats.json +0 -0
  1078. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log/log_images.json +0 -0
  1079. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log/log_images_tc.json +0 -0
  1080. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log/log_invalid.txt +0 -0
  1081. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log/log_length_stop_reason.txt +0 -0
  1082. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log/log_streaming.eval +0 -0
  1083. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log/log_tool_call_error.json +0 -0
  1084. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log/log_valid.txt +0 -0
  1085. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log/log_version_3.txt +0 -0
  1086. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log/log_with_nan.txt +0 -0
  1087. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_eval_log.py +0 -0
  1088. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_event_tree.py +0 -0
  1089. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_list_logs/2024-11-05T13-31-45-05-00_input-task_8zXjbRzCWrL9GXiXo2vus9.json +0 -0
  1090. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_list_logs/2024-11-05T13-32-37-05-00_input-task_hxs4q9azL3ySGkjJirypKZ.eval +0 -0
  1091. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_list_logs/custom.eval +0 -0
  1092. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_list_logs/ignore.json +0 -0
  1093. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_list_logs.py +0 -0
  1094. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_log_attachments.py +0 -0
  1095. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_log_eventdb.py +0 -0
  1096. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_log_eventdb_sync.py +0 -0
  1097. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_log_filename.py +0 -0
  1098. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_log_formats.py +0 -0
  1099. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_log_level.py +0 -0
  1100. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_log_message_id.py +0 -0
  1101. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_log_streaming.py +0 -0
  1102. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_log_summaries.py +0 -0
  1103. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/log/test_log_tags.py +0 -0
  1104. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/gatsby.txt +0 -0
  1105. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_anthropic.py +0 -0
  1106. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_azureai.py +0 -0
  1107. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_cloudflare.py +0 -0
  1108. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_google.py +0 -0
  1109. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_grok.py +0 -0
  1110. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_groq.py +0 -0
  1111. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_hf.py +0 -0
  1112. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_llama_cpp_python.py +0 -0
  1113. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_mistral.py +0 -0
  1114. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_openai.py +0 -0
  1115. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_openai_compatible.py +0 -0
  1116. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_openai_o1.py +0 -0
  1117. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_openai_responses.py +0 -0
  1118. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_vertex.py +0 -0
  1119. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/providers/test_vllm.py +0 -0
  1120. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_api_key.py +0 -0
  1121. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_cache.py +0 -0
  1122. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_collapse_assistant_message.py +0 -0
  1123. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_collapse_user_message.py +0 -0
  1124. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_disable.py +0 -0
  1125. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_generate_loop.py +0 -0
  1126. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_get_model.py +0 -0
  1127. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_is_rate_limit.py +0 -0
  1128. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_logprobs.py +0 -0
  1129. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_mock_model_llm.py +0 -0
  1130. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_model_length.py +0 -0
  1131. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_model_output.py +0 -0
  1132. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_model_roles.py +0 -0
  1133. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_no_model.py +0 -0
  1134. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_num_choices.py +0 -0
  1135. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_parse_tool_call.py +0 -0
  1136. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_reasoning_claude.py +0 -0
  1137. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_reasoning_content.py +0 -0
  1138. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_reasoning_google.py +0 -0
  1139. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_reasoning_grok.py +0 -0
  1140. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_reasoning_openai.py +0 -0
  1141. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_reasoning_parse.py +0 -0
  1142. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_stop_reason.py +0 -0
  1143. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_structured_output.py +0 -0
  1144. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_tool_result_images_as_user_message.py +0 -0
  1145. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/model/test_trim_messages.py +0 -0
  1146. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/logs/2025-02-11T15-17-00-05-00_popularity_dPiJifoWeEQBrfWsAopzWr.eval +0 -0
  1147. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/logs/2025-02-11T15-18-04-05-00_popularity_mj7khqpMM4GBCfVQozKgzB.eval +0 -0
  1148. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_answer.py +0 -0
  1149. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_choice.py +0 -0
  1150. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_classification.py +0 -0
  1151. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_match.py +0 -0
  1152. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_metric.py +0 -0
  1153. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_model_graded.py +0 -0
  1154. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_multiscorer.py +0 -0
  1155. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_pattern.py +0 -0
  1156. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_reducers.py +0 -0
  1157. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_scorer.py +0 -0
  1158. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_task_score.py +0 -0
  1159. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/scorer/test_value_to_float.py +0 -0
  1160. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_basic_agent.py +0 -0
  1161. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_bridge.py +0 -0
  1162. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_chain.py +0 -0
  1163. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_fork.py +0 -0
  1164. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_prompt.py +0 -0
  1165. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_score.py +0 -0
  1166. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_setup.py +0 -0
  1167. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_solver.py +0 -0
  1168. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_solver_decorator.py +0 -0
  1169. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_solver_spec.py +0 -0
  1170. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_store.py +0 -0
  1171. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_store_model.py +0 -0
  1172. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_subtask.py +0 -0
  1173. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/solver/test_transcript.py +0 -0
  1174. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_eval.py +0 -0
  1175. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_eval_config/model.yaml +0 -0
  1176. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_eval_config/solver.yaml +0 -0
  1177. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_eval_config/task.yaml +0 -0
  1178. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_eval_config.py +0 -0
  1179. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_eval_set/2024-08-29T15-11-17+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
  1180. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_eval_set/2024-08-29T15-11-18+00-00_popularity_5EAmX6wjMFqea6WY7XHzZp.json +0 -0
  1181. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_eval_set.py +0 -0
  1182. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_examples.py +0 -0
  1183. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_extensions.py +0 -0
  1184. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_fail_on_error.py +0 -0
  1185. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_helpers/file_runner.py +0 -0
  1186. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_helpers/limits.py +0 -0
  1187. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_helpers/tasks.py +0 -0
  1188. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_helpers/tool_call_utils.py +0 -0
  1189. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_helpers/tools.py +0 -0
  1190. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_helpers/utils.py +0 -0
  1191. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_list_task.py +0 -0
  1192. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_log_dir/example_task/example_task.py +0 -0
  1193. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_log_dir/test_log_dir.py +0 -0
  1194. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_metadata.py +0 -0
  1195. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_package/.gitignore +0 -0
  1196. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_package/inspect_package/__init__.py +0 -0
  1197. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_package/inspect_package/_registry.py +0 -0
  1198. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_package/inspect_package/approvers/renamer.py +0 -0
  1199. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_package/inspect_package/modelapi/custom.py +0 -0
  1200. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_package/inspect_package/sandboxenv/podman.py +0 -0
  1201. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_package/inspect_package/score/scorer.py +0 -0
  1202. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_package/inspect_package/solvers/cot.py +0 -0
  1203. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_package/pyproject.toml +0 -0
  1204. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_retry.py +0 -0
  1205. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_retry_on_error.py +0 -0
  1206. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_sample_id.py +0 -0
  1207. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_sample_limits.py +0 -0
  1208. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_attr.py +0 -0
  1209. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/attribs.ipynb +0 -0
  1210. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/multiple.py +0 -0
  1211. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/multiple_dir/_decoy/testit.py +0 -0
  1212. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/multiple_dir/_decoy2.py +0 -0
  1213. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/multiple_dir/bar.py +0 -0
  1214. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/multiple_dir/foo.py +0 -0
  1215. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/recurse/.folder3/epsilon.py +0 -0
  1216. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/recurse/folder1/_decoy.py +0 -0
  1217. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/recurse/folder1/theta.py +0 -0
  1218. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/recurse/folder2/.folder3/epsilon.py +0 -0
  1219. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/recurse/folder2/another.py +0 -0
  1220. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_list/recurse/folder2/first.py +0 -0
  1221. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_model.py +0 -0
  1222. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/test_task_with.py +0 -0
  1223. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/docker-compose-context/Dockerfile +0 -0
  1224. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/docker-compose-context-alpine/Dockerfile +0 -0
  1225. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/docker-mcp-server/Dockerfile +0 -0
  1226. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_bash_tool.py +0 -0
  1227. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_call_tools.py +0 -0
  1228. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_inspect_tool_support.py +0 -0
  1229. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_inspect_tool_support.yaml +0 -0
  1230. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_max_exec_output.py +0 -0
  1231. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_max_tool_output.py +0 -0
  1232. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_mcp_tools.py +0 -0
  1233. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_python_tool.py +0 -0
  1234. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_sandbox_compose.yaml +0 -0
  1235. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_sandbox_compose_alpine.yaml +0 -0
  1236. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_sandbox_docker_and_local.py +0 -0
  1237. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_sandbox_dockerfile.py +0 -0
  1238. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_sandbox_tool_eval.py +0 -0
  1239. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_think_tool.py +0 -0
  1240. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_tool_def.py +0 -0
  1241. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_tool_error.py +0 -0
  1242. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_tool_images.py +0 -0
  1243. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_tool_parse.py +0 -0
  1244. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_tool_source.py +0 -0
  1245. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_tool_truncate.py +0 -0
  1246. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_tool_types.py +0 -0
  1247. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_tool_view.py +0 -0
  1248. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_tool_with.py +0 -0
  1249. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_tools.py +0 -0
  1250. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_use_tools.py +0 -0
  1251. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/tools/test_web_browser.py +0 -0
  1252. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/Dockerfile +0 -0
  1253. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/Dockerfile.debug +0 -0
  1254. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/compose.dynamic-image.yaml +0 -0
  1255. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/compose.sandbox-service.yaml +0 -0
  1256. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/debug.Dockerfile +0 -0
  1257. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/docker_compose_multiple_services/docker-compose.yaml +0 -0
  1258. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/sandbox-service.Dockerfile +0 -0
  1259. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/sandbox_setup.sh +0 -0
  1260. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/sandbox_setup_error.sh +0 -0
  1261. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/sandbox_setup_symlink.sh +0 -0
  1262. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/test_docker_compose_multiple_services.py +0 -0
  1263. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/test_docker_dynamic_image.py +0 -0
  1264. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/test_docker_filenames.py +0 -0
  1265. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/test_docker_healthcheck.py +0 -0
  1266. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/test_multi_sandbox_context_management.py +0 -0
  1267. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/test_sandbox_service.py +0 -0
  1268. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/sandbox/test_sandbox_setup.py +0 -0
  1269. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_anyio.py +0 -0
  1270. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_display_counter.py +0 -0
  1271. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_file.py +0 -0
  1272. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_format_template.py +0 -0
  1273. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_images/images.jsonl +0 -0
  1274. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_images.py +0 -0
  1275. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_kvstore.py +0 -0
  1276. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_limit.py +0 -0
  1277. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_limit_message.py +0 -0
  1278. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_limit_token.py +0 -0
  1279. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_media/audio.jsonl +0 -0
  1280. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_media/sample.mp3 +0 -0
  1281. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_media/sample.wav +0 -0
  1282. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_media/video.jsonl +0 -0
  1283. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_media/video.mp4 +0 -0
  1284. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_media.py +0 -0
  1285. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_package.py +0 -0
  1286. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_registry.py +0 -0
  1287. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_str_to_float.py +0 -0
  1288. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_subprocess.py +0 -0
  1289. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/util/test_truncate.py +0 -0
  1290. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tests/view/test_bundle.py +0 -0
  1291. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/.gitignore +0 -0
  1292. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/.vscode/extensions.json +0 -0
  1293. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/.vscode/launch.json +0 -0
  1294. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/.vscode/settings.json +0 -0
  1295. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/.vscode/tasks.json +0 -0
  1296. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/.vscode-test.mjs +0 -0
  1297. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/.vscodeignore +0 -0
  1298. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/.yarnrc +0 -0
  1299. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/CHANGELOG.md +0 -0
  1300. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/LICENSE +0 -0
  1301. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/README.md +0 -0
  1302. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/assets/icon/eval-treeview-cancelled.svg +0 -0
  1303. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/assets/icon/eval-treeview-error.svg +0 -0
  1304. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/assets/icon/eval-treeview-started.svg +0 -0
  1305. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/assets/icon/eval-treeview.svg +0 -0
  1306. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/assets/icon/eval.svg +0 -0
  1307. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/assets/logo/inspect.png +0 -0
  1308. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/assets/logo/inspect.svg +0 -0
  1309. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/assets/templates/task.py.template +0 -0
  1310. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/assets/www/codicon/codicon.css +0 -0
  1311. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/assets/www/codicon/codicon.ttf +0 -0
  1312. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/assets/www/view/view-overrides.css +0 -0
  1313. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/eslint.config.mjs +0 -0
  1314. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/package.json +0 -0
  1315. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/@types/hooks.d.ts +0 -0
  1316. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/@types/log.d.ts +0 -0
  1317. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/components/document.ts +0 -0
  1318. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/components/error.ts +0 -0
  1319. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/components/focus.ts +0 -0
  1320. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/components/notebook.ts +0 -0
  1321. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/components/symbol.ts +0 -0
  1322. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/components/task.ts +0 -0
  1323. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/components/templates.ts +0 -0
  1324. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/components/webview.ts +0 -0
  1325. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/appdirs.ts +0 -0
  1326. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/command.ts +0 -0
  1327. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/dispose.ts +0 -0
  1328. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/env.ts +0 -0
  1329. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/file.ts +0 -0
  1330. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/git.ts +0 -0
  1331. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/jsonrpc.ts +0 -0
  1332. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/log.ts +0 -0
  1333. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/nonce.ts +0 -0
  1334. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/path.ts +0 -0
  1335. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/port.ts +0 -0
  1336. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/process.ts +0 -0
  1337. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/python/code.ts +0 -0
  1338. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/python/env.ts +0 -0
  1339. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/python/exec.ts +0 -0
  1340. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/python/index.ts +0 -0
  1341. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/python/interpreter.ts +0 -0
  1342. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/random.ts +0 -0
  1343. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/string.ts +0 -0
  1344. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/text.ts +0 -0
  1345. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/uri.ts +0 -0
  1346. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/vscode/association.ts +0 -0
  1347. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/wait.ts +0 -0
  1348. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/core/workspace.ts +0 -0
  1349. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/extension.ts +0 -0
  1350. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/hooks/hooks.ts +0 -0
  1351. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/hooks/index.ts +0 -0
  1352. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/hooks/preview.ts +0 -0
  1353. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/inspect/index.ts +0 -0
  1354. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/inspect/logs.ts +0 -0
  1355. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/inspect/props.ts +0 -0
  1356. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/inspect/version.ts +0 -0
  1357. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/active-task/active-task-command.ts +0 -0
  1358. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/active-task/active-task-provider.ts +0 -0
  1359. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/activity-bar-provider.ts +0 -0
  1360. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/env-config-provider.ts +0 -0
  1361. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/log-listing/log-directory-selector.ts +0 -0
  1362. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-data.ts +0 -0
  1363. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-mru.ts +0 -0
  1364. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-provider.ts +0 -0
  1365. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/log-listing/log-listing-server-queue.ts +0 -0
  1366. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/log-listing/log-listing.ts +0 -0
  1367. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/task-config-commands.ts +0 -0
  1368. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/task-config-provider.ts +0 -0
  1369. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/task-outline-commands.ts +0 -0
  1370. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/task-outline-provider.ts +0 -0
  1371. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.css +0 -0
  1372. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/webview/env-config-webview.ts +0 -0
  1373. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/webview/task-config-webview.ts +0 -0
  1374. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/webview/vscode-controls.css +0 -0
  1375. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/activity-bar/webview/webview-utils.ts +0 -0
  1376. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/codelens/codelens-provider.ts +0 -0
  1377. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/inspect/inspect-commands.ts +0 -0
  1378. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/inspect/inspect-constants.ts +0 -0
  1379. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/inspect/inspect-eval-commands.ts +0 -0
  1380. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/inspect/inspect-eval.ts +0 -0
  1381. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/inspect/inspect-logs-watcher.ts +0 -0
  1382. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/inspect/inspect-manager.ts +0 -0
  1383. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/inspect/inspect-view-server.ts +0 -0
  1384. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/lognotify.ts +0 -0
  1385. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/logview/commands.ts +0 -0
  1386. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/logview/log-file-selector.ts +0 -0
  1387. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/logview/logview-editor.ts +0 -0
  1388. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/logview/logview-link-provider.ts +0 -0
  1389. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/logview/logview-panel.ts +0 -0
  1390. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/logview/logview-state.ts +0 -0
  1391. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/logview/logview-view.ts +0 -0
  1392. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/logview/logview.ts +0 -0
  1393. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/openlog.ts +0 -0
  1394. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/protocol-handler.ts +0 -0
  1395. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/settings/inspect-settings.ts +0 -0
  1396. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/settings/user-settings.ts +0 -0
  1397. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/statusbar.ts +0 -0
  1398. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/workspace/workspace-env-commands.ts +0 -0
  1399. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/workspace/workspace-env-provider.ts +0 -0
  1400. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/workspace/workspace-state-provider.ts +0 -0
  1401. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/providers/workspace/workspace-task-provider.ts +0 -0
  1402. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/test/codelens-provider.test.ts +0 -0
  1403. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/test/extension.test.ts +0 -0
  1404. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/test/runTest.ts +0 -0
  1405. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/test/suite/codelens-provider.test.ts +0 -0
  1406. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/test/suite/extension.test.ts +0 -0
  1407. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/src/test/suite/index.ts +0 -0
  1408. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/tools/ts-to-mjs/.gitignore +0 -0
  1409. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/tools/ts-to-mjs/package.json +0 -0
  1410. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/tools/ts-to-mjs/rollup.config.js +0 -0
  1411. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/tools/ts-to-mjs/src/index.ts +0 -0
  1412. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/tools/ts-to-mjs/src/jsonrpc.ts +0 -0
  1413. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/tools/ts-to-mjs/yarn.lock +0 -0
  1414. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/tsconfig.json +0 -0
  1415. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/webpack.config.js +0 -0
  1416. {inspect_ai-0.3.94 → inspect_ai-0.3.96}/tools/vscode/yarn.lock +0 -0
@@ -20,3 +20,5 @@ updates:
20
20
  versions: [">=14.0.0"]
21
21
  - dependency-name: "fsspec"
22
22
  versions: [">=2024.12.0"]
23
+ - dependency-name: "click"
24
+ versions: [">=8.2.0"]
@@ -1,9 +1,37 @@
1
+ ## v0.3.96 (13 May 2025)
2
+
3
+ - Dataframes: `events_df()` function, improved message reading, log filtering, don't re-sort passed logs
4
+ - Model Context Protocol: Upgrade sandbox client to typing changes made in v1.8.0 of `mcp` package.
5
+ - vLLM/SGLang: Fix dynamic port binding for local server on Mac OS X.
6
+ - React Agent: Improve continue prompt to remind the model to include the answer in their call to `submit()`.
7
+
8
+ ## v0.3.95 (10 May 2025)
9
+
10
+ - [Dataframe](https://inspect.aisi.org.uk/dataframe.html) functions for reading dataframes from log files.
11
+ - Web Search: Added provider for [Tavily](https://inspect.aisi.org.uk/tools-standard.html#tavily-provider) Research API.
12
+ - Multiple Choice: `max_tokens` option to control tokens used for `generate()`.
13
+ - Don't enforce sample `working_limit` after solvers have completed executing (matching behavior of other sample limits).
14
+ - Only pass `user` parameter on to sandboxes if is not `None` (eases compatibility with older sandbox providers).
15
+ - Anthropic: Retry when `type` in the error message body is "overloaded_error".
16
+ - Agent Bridge: Compatibility with `request()` method in v1.78.0 of `openai` package (now the minimum required version).
17
+ - Model Context Protocol: Update to typing changes made in v1.8.0 of `mcp` package (now the minimum required version).
18
+ - TaskState: `input_text` and `user_prompt` properties now read the last rather than first user message.
19
+ - Inspect View: Properly display 'more' options when content is collapsed.
20
+ - Inspect View: Fix issue that prevented filtering of sample list when viewing a running evaluation.
21
+ - Inspect View: Fix selection of specific metrics within scorers when a scorer produces more than one metric.
22
+ - Ignore OSError that occurs while rotating trace files.
23
+ - Restore logging `metadata` from `TaskState` rather than from `Sample`.
24
+ - Bugfix: Restore ability of operator to terminate the current sample in tool call approval.
25
+ - Bugfix: Ensure that "init" span is exited in the same async context when sandbox connection errors occur.
26
+ - Bugfix: Protect against no `thought` argument being passed to `think()` tool.
27
+ - Bugfix: Correct handling of `text_editor()` tool for Claude Sonnet 3.5.
28
+
1
29
  ## v0.3.94 (06 May 2025)
2
30
 
3
31
  - [span()](https://inspect.aisi.org.uk/agent-custom.html#grouping-with-spans) function for grouping transcript events.
4
32
  - [collect()](https://inspect.aisi.org.uk/agent-custom.html#grouping-with-spans) function for enclosing parallel tasks in spans.
5
33
  - [Event tree](https://inspect.aisi.org.uk/reference/inspect_ai.log.html#event-tree) functions for organising transcript events into a tree of spans.
6
- - `inspect convert` now always fully re-writes log files even of the same format (so that e.g. sample summaries always exist in the converted logs).
34
+ - `inspect log convert` now always fully re-writes log files even of the same format (so that e.g. sample summaries always exist in the converted logs).
7
35
  - React agent: `answer_only` and `answer_delimiter` to control how submitted answers are reflected in the assistant message content.
8
36
  - Python tool: Execute using a bash login shell for consistency of Python versions across `bash()` and `python()` tools.
9
37
  - Task display: Realtime display of events that occur within tool calls and subtasks.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: inspect_ai
3
- Version: 0.3.94
3
+ Version: 0.3.96
4
4
  Summary: Framework for large language model evaluations
5
5
  Author: UK AI Security Institute
6
6
  License: MIT License
@@ -23,7 +23,7 @@ License-File: LICENSE
23
23
  Requires-Dist: aiohttp>=3.9.0
24
24
  Requires-Dist: anyio>=4.8.0
25
25
  Requires-Dist: beautifulsoup4
26
- Requires-Dist: click>=8.1.3
26
+ Requires-Dist: click<8.2.0,>=8.1.3
27
27
  Requires-Dist: debugpy
28
28
  Requires-Dist: docstring-parser>=0.16
29
29
  Requires-Dist: exceptiongroup>=1.0.2; python_version < "3.11"
@@ -32,6 +32,8 @@ Requires-Dist: httpx
32
32
  Requires-Dist: ijson>=3.2.0
33
33
  Requires-Dist: jsonlines>=3.0.0
34
34
  Requires-Dist: jsonpatch>=1.32
35
+ Requires-Dist: jsonpath-ng>=1.7.0
36
+ Requires-Dist: jsonref>=1.1.0
35
37
  Requires-Dist: jsonschema>3.1.1
36
38
  Requires-Dist: mmh3>3.1.0
37
39
  Requires-Dist: nest_asyncio
@@ -59,6 +61,7 @@ Requires-Dist: google-genai; extra == "dev"
59
61
  Requires-Dist: griffe; extra == "dev"
60
62
  Requires-Dist: groq; extra == "dev"
61
63
  Requires-Dist: ipython; extra == "dev"
64
+ Requires-Dist: jsonpath-ng; extra == "dev"
62
65
  Requires-Dist: markdown; extra == "dev"
63
66
  Requires-Dist: mcp; extra == "dev"
64
67
  Requires-Dist: mistralai; extra == "dev"
@@ -66,9 +69,11 @@ Requires-Dist: moto[server]; extra == "dev"
66
69
  Requires-Dist: mypy; extra == "dev"
67
70
  Requires-Dist: nbformat; extra == "dev"
68
71
  Requires-Dist: openai; extra == "dev"
72
+ Requires-Dist: pandas>=2.0.0; extra == "dev"
69
73
  Requires-Dist: panflute; extra == "dev"
70
74
  Requires-Dist: pip; extra == "dev"
71
75
  Requires-Dist: pre-commit; extra == "dev"
76
+ Requires-Dist: pyarrow>=10.0.1; extra == "dev"
72
77
  Requires-Dist: pylint; extra == "dev"
73
78
  Requires-Dist: pytest; extra == "dev"
74
79
  Requires-Dist: pytest-asyncio; extra == "dev"
@@ -78,6 +83,8 @@ Requires-Dist: pytest-xdist; extra == "dev"
78
83
  Requires-Dist: ruff==0.9.6; extra == "dev"
79
84
  Requires-Dist: textual-dev>=0.86.2; extra == "dev"
80
85
  Requires-Dist: trio; extra == "dev"
86
+ Requires-Dist: pandas-stubs; extra == "dev"
87
+ Requires-Dist: pyarrow-stubs; extra == "dev"
81
88
  Requires-Dist: types-Markdown; extra == "dev"
82
89
  Requires-Dist: types-PyYAML; extra == "dev"
83
90
  Requires-Dist: types-beautifulsoup4; extra == "dev"
@@ -97,9 +97,13 @@ website:
97
97
  - agent-bridge.qmd
98
98
  - human-agent.qmd
99
99
 
100
- - section: "Advanced"
100
+ - section: "Analysis"
101
101
  contents:
102
102
  - eval-logs.qmd
103
+ - dataframe.qmd
104
+
105
+ - section: "Advanced"
106
+ contents:
103
107
  - eval-sets.qmd
104
108
  - text: "Errors & Limits"
105
109
  href: errors-and-limits.qmd
@@ -0,0 +1,556 @@
1
+ ---
2
+ title: Log Dataframes
3
+ ---
4
+
5
+ ::: callout-note
6
+ Dataframe functions are currently in beta and are exported from the **inspect_ai.analysis.beta** module. The beta module will be preserved after final release so that code written against it now will continue to work after the beta.
7
+ :::
8
+
9
+ ## Overview {#overview}
10
+
11
+ ```{=html}
12
+ <style type="text/css">
13
+ table a {
14
+ white-space: nowrap;
15
+ }
16
+ #overview table a {
17
+ text-decoration: none;
18
+ font-family: monospace;
19
+ font-size: 0.95rem;
20
+ }
21
+ </style>
22
+ ```
23
+
24
+ Inspect eval logs have a hierarchical structure which is well suited to flexibly capturing all the elements of an evaluation. However, when analysing or visualising log data you will often want to transform logs into a [dataframe](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html). The **inspect_ai.analysis** module includes a variety of functions for extracting [Pandas](https://pandas.pydata.org/) dataframes from logs, including:
25
+
26
+ | Function | Description |
27
+ |---------------------------|---------------------------------------------|
28
+ | [evals_df()](#evals) | Evaluation level data (e.g. task, model, scores, etc.). One row per log file. |
29
+ | [samples_df()](#samples) | Sample level data (e.g. input, metadata, scores, errors, etc.) One row per sample, where each log file contains many samples. |
30
+ | [messages_df()](#messages) | Message level data (e.g. role, content, etc.). One row per message, where each sample contains many messages. |
31
+ | [events_df()](#events) | Event level data (type, timing, content, etc.). One row per event, where each sample contains many events. |
32
+
33
+ Each function extracts a default set of columns, however you can tailor column reading to work in whatever way you need for your analysis. Extracted dataframes can either be denormalized (e.g. if you want to immediately summarise or plot them) or normalised (e.g. if you are importing them into a SQL database).
34
+
35
+ Below we'll walk through a few examples, then after that provide more in-depth documentation on customising how dataframes are read for various scenarios.
36
+
37
+ ## Basics
38
+
39
+ ### Reading Data
40
+
41
+ Use the `evals_df()` function to read a dataframe containing a row for each log file (note that we import from `inspect_ai.analysis.beta` since the dataframe functions are currently in beta):
42
+
43
+ ``` python
44
+ # read logs from a given log directory
45
+ from inspect_ai.analysis.beta import evals_df
46
+ evals_df("logs")
47
+ ```
48
+
49
+ ``` default
50
+ <class 'pandas.core.frame.DataFrame'>
51
+ RangeIndex: 9 entries, 0 to 8
52
+ Columns: 51 entries, eval_id to score_model_graded_qa_stderr
53
+ ```
54
+
55
+ The default configuration for `evals_df()` reads a predefined set of columns. You can customise column reading in a variety of ways (covered below in [Columns](#columns)).
56
+
57
+ Use the `samples_df()` function to read a dataframe with a record for each sample across a set of log files. For example, here we read all of the samples in the "logs" directory:
58
+
59
+ ``` python
60
+ from inspect_ai.analysis.beta import samples_df
61
+
62
+ samples_df("logs")
63
+ ```
64
+
65
+ ``` default
66
+ <class 'pandas.core.frame.DataFrame'>
67
+ RangeIndex: 408 entries, 0 to 407
68
+ Columns: 13 entries, sample_id to retries
69
+ ```
70
+
71
+ By default, `sample_df()` reads all of the columns in the `EvalSampleSummary` data structure (12 columns), along with the `eval_id` for linking back to the parent eval log file.
72
+
73
+ ### Column Groups
74
+
75
+ When reading dataframes, there are a number of pre-built column groups you can use to read various subsets of columns. For example:
76
+
77
+ ``` python
78
+ from inspect_ai.analysis.beta import (
79
+ EvalInfo, EvalModel, EvalResults, evals_df
80
+ )
81
+
82
+ evals_df(
83
+ logs="logs",
84
+ columns=EvalInfo + EvalModel + EvalResults
85
+ )
86
+ ```
87
+
88
+ ``` default
89
+ <class 'pandas.core.frame.DataFrame'>
90
+ RangeIndex: 9 entries, 0 to 8
91
+ Columns: 23 entries, eval_id to score_headline_value
92
+ ```
93
+
94
+ This dataframe has 23 columns rather than the 51 we saw when using the default `evals_df()` congiruation, reflecting the explicit columns groups specified.
95
+
96
+ You can also use column groups to join columns for doing analysis or plotting. For example, here we include eval level data along with each sample:
97
+
98
+ ``` python
99
+ from inspect_ai.analysis.beta import (
100
+ EvalInfo, EvalModel, SampleSummary, samples_df
101
+ )
102
+
103
+ samples_df(
104
+ logs="logs",
105
+ columns=EvalInfo + EvalModel + SampleSummary
106
+ )
107
+ ```
108
+
109
+ ``` default
110
+ <class 'pandas.core.frame.DataFrame'>
111
+ RangeIndex: 408 entries, 0 to 407
112
+ Columns: 27 entries, sample_id to retries
113
+ ```
114
+
115
+ This dataframe has 27 columns rather than than the 13 we saw for the default `samples_df()` behavior, reflecting the additional eval level columns. You can create your own column groups and definitions to further customise reading (see [Columns](#columns) for details).
116
+
117
+ ### Filtering Logs
118
+
119
+ The above examples read all of the logs within a given directory. You can also use the `list_eval_logs()` function to filter the list of logs based on arbitrary criteria as well control whether log listings are recursive.
120
+
121
+ For example, here we read only log files with a `status` of "success":
122
+
123
+ ``` python
124
+ # read only successful logs from a given log directory
125
+ logs = list_eval_logs("logs", filter=lambda log: log.status == "success")
126
+ evals_df(logs)
127
+ ```
128
+
129
+ Here we read only logs with the task name "popularity":
130
+
131
+ ``` python
132
+ # read only logs with task name 'popularity'
133
+ def task_filter(log: EvalLog) -> bool:
134
+ return log.eval.task == "popularity"
135
+
136
+ logs = list_eval_logs("logs", filter=task_filter)
137
+ evals_df(logs)
138
+ ```
139
+
140
+ We can also choose to read a directory non-recursively:
141
+
142
+ ``` python
143
+ # read only the logs at the top level of 'logs'
144
+ logs = list_eval_logs("logs", recursive=False)
145
+ evals_df(logs)
146
+ ```
147
+
148
+ ### Databases
149
+
150
+ You can also read multiple dataframes and combine them into a relational database. Imported dataframes automatically include fields that can be used to join them (e.g. `eval_id` is in both the evals and samples tables).
151
+
152
+ For example, here we read eval and sample level data from a log directory and import both tables into a DuckDb database:
153
+
154
+ ``` python
155
+ import duckdb
156
+ from inspect_ai.analysis.beta import evals_df, samples_df
157
+
158
+ con = duckdb.connect()
159
+ con.register('evals', evals_df("logs"))
160
+ con.register('samples', samples_df("logs"))
161
+ ```
162
+
163
+ We can now execute a query to find all samples generated using the `google` provider:
164
+
165
+ ``` python
166
+ result = con.execute("""
167
+ SELECT *
168
+ FROM evals e
169
+ JOIN samples s ON e.eval_id = s.eval_id
170
+ WHERE e.model LIKE 'google/%'
171
+ """).fetchdf()
172
+ ```
173
+
174
+ ## Columns {#columns}
175
+
176
+ The examples above all use built-in column specifications (e.g. `EvalModel`, `EvalResults`, `SampleSummary`, etc.). These specifications exist as a convenient starting point but can be replaced fully or partially by your own custom definitions.
177
+
178
+ Column definitions specify how JSON data is mapped into dataframe columns, and are specified using subclasses of the `Column` class (e.g. `EvalColumn`, `SampleColumn`). For example, here is the definition of the built-in `EvalTask` column group:
179
+
180
+ ``` python
181
+ EvalTask: list[Column] = [
182
+ EvalColumn("task_name", path="eval.task", required=True),
183
+ EvalColumn("task_version", path="eval.task_version", required=True),
184
+ EvalColumn("task_file", path="eval.task_file"),
185
+ EvalColumn("task_attribs", path="eval.task_attribs"),
186
+ EvalColumn("task_arg_*", path="eval.task_args"),
187
+ EvalColumn("solver", path="eval.solver"),
188
+ EvalColumn("solver_args", path="eval.solver_args"),
189
+ EvalColumn("sandbox_type", path="eval.sandbox.type"),
190
+ EvalColumn("sandbox_config", path="eval.sandbox.config"),
191
+ ]
192
+ ```
193
+
194
+ Columns are defined with a `name`, a `path` (location within JSON to read their value from), and other options (e.g. `required`, `type`, etc.) . Column paths use [JSON Path](https://github.com/h2non/jsonpath-ng) expressions to indicate how they should be read from JSON.
195
+
196
+ Many fields within eval logs are optional, and path expressions will automatically resolve to `None` when they include a missing field (unless the `required=True` option is specified).
197
+
198
+ Here are are all of the options available for `Column` definitions:
199
+
200
+ #### Column Options
201
+
202
+ | Parameter | Type | Description |
203
+ |-------------------|-------------------|----------------------------------|
204
+ | `name` | `str` | Column name for dataframe. Can include wildcard characters (e.g. `task_arg_*`) for mapping dictionaries into multiple columns. |
205
+ | `path` | `str` \| `JSONPath` | Path into JSON to extract the column from (uses [JSON Path](https://github.com/h2non/jsonpath-ng) expressions). Subclasses also implement path handlers that take e.g. an `EvalLog` and return a value. |
206
+ | `required` | `bool` | Is the field required (i.e. should an error occur if it not found). |
207
+ | `default` | `JsonValue` | Default value to yield if the field or its parents are not found in JSON. |
208
+ | `type` | `Type[ColumnType]` | Validation check and directive to attempt to coerce the data into the specified `type`. Coercion from `str` to other types is done after interpreting the string using YAML (e.g. `"true"` -\> `True`). |
209
+ | `value` | `Callable[[JsonValue], JsonValue]` | Function used to transform the value read from JSON into a value for the dataframe (e.g. converting a `list` to a comma-separated `str`). |
210
+
211
+ Here are some examples that demonstrate the use of various options:
212
+
213
+ ``` python
214
+ # required field
215
+ EvalColumn("run_id", path="eval.run_id", required=True)
216
+
217
+ # coerce field from int to str
218
+ SampleColumn("id", path="id", required=True, type=str)
219
+
220
+ # split metadata dict into multiple columns
221
+ SampleColumn("metadata_*", path="metadata")
222
+
223
+ # transform list[str] to str
224
+ SampleColumn("target", path="target", value=list_as_str),
225
+ ```
226
+
227
+ #### Column Merging
228
+
229
+ If a column is name is repeated within a list of columns then the column definition encountered last is utilised. This makes it straightforward to override default column definitions. For example, here we override the behaviour of the default sample `metadata` columns (keeping it as JSON rather than splitting it into multiple columns):
230
+
231
+ ``` python
232
+ samples_df(
233
+ logs="logs",
234
+ columns=SampleSummary + [SampleColumn("metadata", path="metadata")]
235
+ )
236
+ ```
237
+
238
+ #### Strict Mode
239
+
240
+ By default, dataframes are read in `strict` mode, which means that if fields are missing or paths are invalid an error is raised and the import is aborted. You can optionally set `strict=False`, in which case importing will proceed and a tuple containing `pd.DataFrame` and a list of any errors encountered is returned. For example:
241
+
242
+ ``` python
243
+ from inspect_ai.analysis.beta import evals_df
244
+
245
+ evals, errors = evals_df("logs", strict=False)
246
+ if len(errors) > 0:
247
+ print(errors)
248
+ ```
249
+
250
+ ### Evals {#evals}
251
+
252
+ `EvalColumns` defines a default set of roughly 50 columns to read from the top level of an eval log. `EvalColumns` is in turn composed of several sets of column definitions that you can be used independently, these include:
253
+
254
+ | Type | Description |
255
+ |------------------------------------|------------------------------------|
256
+ | `EvalInfo` | Descriptive information (e.g. created, tags, metadata, git commit, etc.) |
257
+ | `EvalTask` | Task configuration (name, file, args, solver, etc.) |
258
+ | `EvalModel` | Model name, args, generation config, etc. |
259
+ | `EvalDataset` | Dataset name, location, sample ids, etc. |
260
+ | `EvalConfig` | Epochs, approval, sample limits, etc. |
261
+ | `EvalResults` | Status, errors, samples completed, headline metric. |
262
+ | `EvalScores` | All scores and metrics broken into separate columns. |
263
+
264
+ #### Multi-Columns
265
+
266
+ The `task_args` dictionary and eval scores data structure are both expanded into multiple columns by default:
267
+
268
+ ``` python
269
+ EvalColumn("task_arg_*", path="eval.task_args")
270
+ EvalColumn("score_*_*", path=eval_log_scores_dict)
271
+ ```
272
+
273
+ Note that scores are a two-level dictionary of `score_<scorer>_<metric>` and are extracted using a custom function. If you want to handle scores a different way you can build your own set of eval columns with a custom scores handler. For example, here we take a subset of eval columns along with our own custom handler (`custom_scores_fn`) for scores:
274
+
275
+ ``` python
276
+ evals_df(
277
+ logs="logs",
278
+ columns=(
279
+ EvalInfo
280
+ + EvalModel
281
+ + EvalResults
282
+ + ([EvalColumn("score_*_*", path=custom_scores_fn)])
283
+ )
284
+ )
285
+ ```
286
+
287
+ #### Custom Extraction
288
+
289
+ The example above demonstrates the use of custom extraction functions, which take an `EvalLog` and return a `JsonValue`.
290
+
291
+ For example, here is the default extraction function for the the dictionary of scores/metrics:
292
+
293
+ ``` python
294
+ def scores_dict(log: EvalLog) -> JsonValue:
295
+ if log.results is None:
296
+ return None
297
+
298
+ metrics: JsonValue = [
299
+ {
300
+ score.name: {
301
+ metric.name: metric.value for metric in score.metrics.values()
302
+ }
303
+ }
304
+ for score in log.results.scores
305
+ ]
306
+ return metrics
307
+ ```
308
+
309
+ Which is then used in the definition of the `EvalScores` column group as follows:
310
+
311
+ ``` python
312
+ EvalScores: list[Column] = [
313
+ EvalColumn("score_*_*", path=scores_dict),
314
+ ]
315
+ ```
316
+
317
+ ### Samples {#samples}
318
+
319
+ The `samples_df()` function can read from either sample summaries (`EvalSampleSummary`) or full sample records (`EvalSample`).
320
+
321
+ By default, the `SampleSummary` column group is used, which reads only from summaries, resulting in considerably higher performance than reading full samples.
322
+
323
+ ``` python
324
+ SampleSummary: list[Column] = [
325
+ SampleColumn("id", path="id", required=True, type=str),
326
+ SampleColumn("epoch", path="epoch", required=True),
327
+ SampleColumn("input", path=sample_input_as_str, required=True),
328
+ SampleColumn("target", path="target", required=True, value=list_as_str),
329
+ SampleColumn("metadata_*", path="metadata"),
330
+ SampleColumn("score_*", path="scores", value=score_values),
331
+ SampleColumn("model_usage", path="model_usage"),
332
+ SampleColumn("total_time", path="total_time"),
333
+ SampleColumn("working_time", path="total_time"),
334
+ SampleColumn("error", path="error"),
335
+ SampleColumn("limit", path="limit"),
336
+ SampleColumn("retries", path="retries"),
337
+ ]
338
+ ```
339
+
340
+ If you want to read all of the messages contained in a sample into a string column, use the `SampleMessages` column group. For example, here we read the summary field and the messages:
341
+
342
+ ``` python
343
+ from inspect_ai.analysis.beta import (
344
+ SampleMessages, SampleSummary, samples_df
345
+ )
346
+
347
+ samples_df(
348
+ logs="logs",
349
+ columns = SampleSummary + SampleMessages
350
+ )
351
+ ```
352
+
353
+ Note that reading `SampleMessages` requires reading full sample content, so will take considerably longer than reading only summaries.
354
+
355
+ When you create a samples data frame the `eval_id` of its parent evaluation is automatically included. You can additionally include other fields from the evals table, for example:
356
+
357
+ ``` python
358
+ samples_df(
359
+ logs="logs",
360
+ columns = EvalModel + SampleSummary + SampleMessages
361
+ )
362
+ ```
363
+
364
+ #### Multi-Columns
365
+
366
+ Note that the `metadata` and `score` columns are both dictionaries that are expanded into multiple columns:
367
+
368
+ ``` python
369
+ SampleColumn("metadata_*", path="metadata")
370
+ SampleColumn("score_*", path="scores", value=score_values)
371
+ ```
372
+
373
+ This might or might not be what you want for your data frame. To preserve them as JSON, remove the `_*`:
374
+
375
+ ``` python
376
+ SampleColumn("metadata", path="metadata")
377
+ SampleColumn("score", path="scores")
378
+ ```
379
+
380
+ You could also write a custom [extraction](#custom-extraction-1) handler to read them in some other way.
381
+
382
+ #### Full Samples
383
+
384
+ `SampleColumn` will automatically determine whether it is referencing a field that requires a full sample read (for example, `messages` or `store`). There are five fields in sample summaries that have reduced footprint in the summary (`input`, `metadata`, and `scores`, `error`, and `limit`). For these, fields specify `full=True` to force reading from the full sample record. For example:
385
+
386
+ ``` python
387
+ SampleColumn("limit_type", path="limit.type", full=True)
388
+ SampleColumn("limit_value", path="limit.limit", full=True)
389
+ ```
390
+
391
+ #### Custom Extraction {#custom-extraction-1}
392
+
393
+ As with `EvalColumn`, you can also extract data from a sample using a callback function passed as the `path`:
394
+
395
+ ``` python
396
+ def model_reasoning_tokens(summary: EvalSampleSummary) -> JsonValue:
397
+ ## extract reasoning tokens from summary.model_usage
398
+
399
+ SampleColumn("model_reasoning_tokens", path=model_reasoning_tokens)
400
+ ```
401
+
402
+ ::: {.callout-note appearance="simple"}
403
+ Sample summaries were enhanced in version 0.3.93 (May 1, 2025) to include the `metadata`, `model_usage`, `total_time`, `working_time`, and `retries` fields. If you need to read any of these values you can update older logs with the new fields by round-tripping them through `inspect log convert`. For example:
404
+
405
+ ``` bash
406
+ $ inspect log convert ./logs --to eval --output-dir ./logs-amended
407
+ ```
408
+ :::
409
+
410
+ ### Messages {#messages}
411
+
412
+ The `messages_df()` function enables reading message level data from a set of eval logs. Each row corresponds to a message, and includes a `sample_id` and `eval_id` for linking back to its parents.
413
+
414
+ The `messages_df()` function takes a `filter` parameter which can either be a list of `role` designations or a function that performs filtering. For example:
415
+
416
+ ``` python
417
+ assistant_messages = messages_df("logs", filter=["assistant"])
418
+ ```
419
+
420
+ #### Default Columns
421
+
422
+ The default `MessageColumns` includes `MessageContent` and `MessageToolCalls`:
423
+
424
+ ``` python
425
+ MessageContent: list[Column] = [
426
+ MessageColumn("role", path="role", required=True),
427
+ MessageColumn("content", path=message_text),
428
+ MessageColumn("source", path="source"),
429
+ ]
430
+
431
+ MessageToolCalls: list[Column] = [
432
+ MessageColumn("tool_calls", path=message_tool_calls),
433
+ MessageColumn("tool_call_id", path="tool_call_id"),
434
+ MessageColumn("tool_call_function", path="function"),
435
+ MessageColumn("tool_call_error", path="error.message"),
436
+ ]
437
+
438
+ MessageColumns: list[Column] = MessageContent + MessageToolCalls
439
+ ```
440
+
441
+ When you create a messages data frame the parent `sample_id` and `eval_id` are automatically included in each record. You can additionally include other fields from these tables, for example:
442
+
443
+ ``` python
444
+ messages = messages_df(
445
+ logs="logs",
446
+ columns=EvalModel + MessageColumns
447
+ )
448
+ ```
449
+
450
+ #### Custom Extraction
451
+
452
+ Two of the fields above are resolved using custom extraction functions (`content` and `tool_calls`). Here is the source code for those functions:
453
+
454
+ ``` python
455
+ def message_text(message: ChatMessage) -> str:
456
+ return message.text
457
+
458
+ def message_tool_calls(message: ChatMessage) -> str | None:
459
+ if isinstance(message, ChatMessageAssistant) and message.tool_calls is not None:
460
+ tool_calls = "\n".join(
461
+ [
462
+ format_function_call(
463
+ tool_call.function, tool_call.arguments, width=1000
464
+ )
465
+ for tool_call in message.tool_calls
466
+ ]
467
+ )
468
+ return tool_calls
469
+ else:
470
+ return None
471
+ ```
472
+
473
+ ### Events {#events}
474
+
475
+ The `events_df()` function enables reading event level data from a set of eval logs. Each row corresponds to an event, and includes a `sample_id` and `eval_id` for linking back to its parents.
476
+
477
+ Because events are so heterogeneous, there is no default `columns` specification for calls to `events_df()`. Rather, you can compose columns from the following pre-built groups:
478
+
479
+ | Type | Description |
480
+ |------------------------------------|------------------------------------|
481
+ | `EventInfo` | Event type and span id. |
482
+ | `EventTiming` | Start and end times (both clock time and working time) |
483
+ | `ModelEventColumns` | Read data from model events. |
484
+ | `ToolEventColumns` | Read data from tool events. |
485
+
486
+ The `events_df()` function also takes a `filter` parameter which can either be a list of event types or a function that performs filtering. For example, to read all model events:
487
+
488
+ ``` python
489
+ model_events = events_df(
490
+ logs="logs",
491
+ columns=EventTiming + ModelEventColumns,
492
+ filter=["model"]
493
+ )
494
+ ```
495
+
496
+ To read all tool events:
497
+
498
+ ``` python
499
+ model_events = events_df(
500
+ logs="logs",
501
+ columns=EvalModel + EventTiming + ToolEventColumns,
502
+ filter=["tool"]
503
+ )
504
+ ```
505
+
506
+ Note that for tool events we also include the `EvalModel` column group as model information is not directly embedded in tool events (whereas it is within model events).
507
+
508
+ ### Custom
509
+
510
+ You can create custom column types that extract data based on additional parameters. For example, imagine you want to write a set of extraction functions that are passed a `ReportConfig` and an `EvalLog` (the report configuration might specify scores to extract, normalisation constraints, etc.)
511
+
512
+ Here we define a new `ReportColumn` class that derives from `EvalColumn`:
513
+
514
+ ``` python
515
+ import functools
516
+ from typing import Callable
517
+ from pydantic import BaseModel, JsonValue
518
+
519
+ from inspect_ai.log import EvalLog
520
+ from inspect_ai.analysis.beta import EvalColumn
521
+
522
+ class ReportConfig(BaseModel):
523
+ # config fields
524
+ ...
525
+
526
+ class ReportColumn(EvalColumn):
527
+ def __init__(
528
+ self,
529
+ name: str,
530
+ config: ReportConfig,
531
+ extract: Callable[[ReportConfig, EvalLog], JsonValue],
532
+ *,
533
+ required: bool = False,
534
+ ) -> None:
535
+ super().__init__(
536
+ name=name,
537
+ path=functools.partial(extract, config),
538
+ required=required,
539
+ )
540
+ ```
541
+
542
+ The key here is using [functools.partial](https://www.geeksforgeeks.org/partial-functions-python/) to adapt the function that takes `config` and `log` into a function that takes `log` (which is what the `EvalColumn` class works with).
543
+
544
+ We can now create extraction functions that take a `ReportConfig` and an `EvalLog` and pass them to `ReportColumn`:
545
+
546
+ ``` python
547
+ # read dict scores from log according to config
548
+ def read_scores(config: ReportConfig, log: EvalLog) -> JsonValue:
549
+ ...
550
+
551
+ # config for a given report
552
+ config = ReportConfig(...)
553
+
554
+ # column that reads scores from log based on config
555
+ ReportColumn("score_*", config, read_scores)
556
+ ```
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: Eval Logs
2
+ title: Log Files
3
3
  ---
4
4
 
5
5
  ## Overview