inspect-ai 0.3.104__py3-none-any.whl → 0.3.105__py3-none-any.whl

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 (38) hide show
  1. inspect_ai/_eval/evalset.py +1 -1
  2. inspect_ai/_eval/task/run.py +64 -38
  3. inspect_ai/_view/server.py +17 -0
  4. inspect_ai/_view/www/dist/assets/index.css +33 -29
  5. inspect_ai/_view/www/dist/assets/index.js +559 -247
  6. inspect_ai/_view/www/src/app/samples/chat/ChatMessage.module.css +4 -0
  7. inspect_ai/_view/www/src/app/samples/chat/ChatMessage.tsx +17 -0
  8. inspect_ai/_view/www/src/app/samples/sample-tools/filters.ts +26 -0
  9. inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/SampleFilter.tsx +14 -3
  10. inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/completions.ts +359 -7
  11. inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/language.ts +6 -0
  12. inspect_ai/_view/www/src/app/samples/transcript/outline/OutlineRow.tsx +1 -1
  13. inspect_ai/_view/www/src/client/api/api-browser.ts +25 -0
  14. inspect_ai/_view/www/src/client/api/api-http.ts +3 -0
  15. inspect_ai/_view/www/src/client/api/api-vscode.ts +6 -0
  16. inspect_ai/_view/www/src/client/api/client-api.ts +3 -0
  17. inspect_ai/_view/www/src/client/api/jsonrpc.ts +1 -0
  18. inspect_ai/_view/www/src/client/api/types.ts +3 -0
  19. inspect_ai/_view/www/src/state/samplePolling.ts +17 -1
  20. inspect_ai/agent/_handoff.py +5 -2
  21. inspect_ai/agent/_react.py +5 -5
  22. inspect_ai/dataset/_dataset.py +1 -1
  23. inspect_ai/log/_samples.py +5 -0
  24. inspect_ai/model/_call_tools.py +4 -4
  25. inspect_ai/model/_providers/anthropic.py +23 -2
  26. inspect_ai/model/_providers/google.py +5 -1
  27. inspect_ai/util/__init__.py +8 -0
  28. inspect_ai/util/_background.py +64 -0
  29. inspect_ai/util/_limit.py +72 -5
  30. inspect_ai/util/_sandbox/__init__.py +2 -0
  31. inspect_ai/util/_sandbox/service.py +28 -7
  32. inspect_ai/util/_subprocess.py +51 -38
  33. {inspect_ai-0.3.104.dist-info → inspect_ai-0.3.105.dist-info}/METADATA +1 -1
  34. {inspect_ai-0.3.104.dist-info → inspect_ai-0.3.105.dist-info}/RECORD +38 -37
  35. {inspect_ai-0.3.104.dist-info → inspect_ai-0.3.105.dist-info}/WHEEL +0 -0
  36. {inspect_ai-0.3.104.dist-info → inspect_ai-0.3.105.dist-info}/entry_points.txt +0 -0
  37. {inspect_ai-0.3.104.dist-info → inspect_ai-0.3.105.dist-info}/licenses/LICENSE +0 -0
  38. {inspect_ai-0.3.104.dist-info → inspect_ai-0.3.105.dist-info}/top_level.txt +0 -0
@@ -2,16 +2,15 @@ import functools
2
2
  import io
3
3
  import os
4
4
  import shlex
5
- from contextlib import aclosing
6
5
  from contextvars import ContextVar
7
6
  from dataclasses import dataclass
8
7
  from logging import getLogger
9
8
  from pathlib import Path
10
9
  from subprocess import DEVNULL, PIPE
11
- from typing import AsyncGenerator, Generic, Literal, TypeVar, Union, cast, overload
10
+ from typing import Generic, Literal, TypeVar, Union, overload
12
11
 
13
12
  import anyio
14
- from anyio import open_process
13
+ from anyio import ClosedResourceError, create_task_group, open_process
15
14
  from anyio.abc import ByteReceiveStream, Process
16
15
 
17
16
  from inspect_ai._util._async import tg_collect
@@ -114,9 +113,7 @@ async def subprocess(
114
113
  else None
115
114
  )
116
115
 
117
- async def run_command() -> AsyncGenerator[
118
- Union[Process, ExecResult[str], ExecResult[bytes]], None
119
- ]:
116
+ async def run_command() -> Union[ExecResult[str], ExecResult[bytes]]:
120
117
  process = await open_process(
121
118
  args,
122
119
  stdin=PIPE if input else DEVNULL,
@@ -126,9 +123,6 @@ async def subprocess(
126
123
  env={**os.environ, **env},
127
124
  )
128
125
  try:
129
- # yield the process so the caller has a handle to it
130
- yield process
131
-
132
126
  # write to stdin (convert input to bytes)
133
127
  if process.stdin and input:
134
128
  await process.stdin.send(input)
@@ -161,19 +155,23 @@ async def subprocess(
161
155
  returncode = await process.wait()
162
156
  success = returncode == 0
163
157
  if text:
164
- yield ExecResult[str](
158
+ return ExecResult[str](
165
159
  success=success,
166
160
  returncode=returncode,
167
161
  stdout=stdout.decode() if capture_output else "",
168
162
  stderr=stderr.decode() if capture_output else "",
169
163
  )
170
164
  else:
171
- yield ExecResult[bytes](
165
+ return ExecResult[bytes](
172
166
  success=success,
173
167
  returncode=returncode,
174
168
  stdout=stdout if capture_output else bytes(),
175
169
  stderr=stderr if capture_output else bytes(),
176
170
  )
171
+ # Handle cancellation before aclose() is called to avoid deadlock.
172
+ except anyio.get_cancelled_exc_class():
173
+ await gracefully_terminate_cancelled_subprocess(process)
174
+ raise
177
175
  finally:
178
176
  try:
179
177
  await process.aclose()
@@ -186,33 +184,13 @@ async def subprocess(
186
184
 
187
185
  # wrapper for run command that implements timeout
188
186
  async def run_command_timeout() -> Union[ExecResult[str], ExecResult[bytes]]:
189
- # run the command and capture the process handle
190
- async with aclosing(run_command()) as rc:
191
- proc = cast(Process, await anext(rc))
192
-
193
- # await result wrapped in timeout handler if requested
194
- if timeout is not None:
195
- try:
196
- with anyio.fail_after(timeout):
197
- result = await anext(rc)
198
- return cast(Union[ExecResult[str], ExecResult[bytes]], result)
199
- except TimeoutError:
200
- # terminate timed out process -- try for graceful termination
201
- # then be more forceful if requied
202
- with anyio.CancelScope(shield=True):
203
- try:
204
- proc.terminate()
205
- await anyio.sleep(2)
206
- if proc.returncode is None:
207
- proc.kill()
208
- except Exception:
209
- pass
210
- raise
211
-
212
- # await result without timeout
213
- else:
214
- result = await anext(rc)
215
- return cast(Union[ExecResult[str], ExecResult[bytes]], result)
187
+ # wrap in timeout handler if requested
188
+ if timeout is not None:
189
+ with anyio.fail_after(timeout):
190
+ # run_command() handles terminating the process if it is cancelled.
191
+ return await run_command()
192
+ else:
193
+ return await run_command()
216
194
 
217
195
  # run command
218
196
  async with concurrency("subprocesses", max_subprocesses_context_var.get()):
@@ -233,6 +211,41 @@ def default_max_subprocesses() -> int:
233
211
  return cpus if cpus else 1
234
212
 
235
213
 
214
+ async def gracefully_terminate_cancelled_subprocess(process: Process) -> None:
215
+ with anyio.CancelScope(shield=True):
216
+ try:
217
+ # Terminate timed out process -- try for graceful termination then kill if
218
+ # required.
219
+ process.terminate()
220
+ await anyio.sleep(2)
221
+ if process.returncode is None:
222
+ process.kill()
223
+ # With anyio's asyncio backend, process.aclose() calls process.wait() which
224
+ # can deadlock if the process generates so much output that it blocks
225
+ # waiting for the OS pipe buffer to accept more data. See
226
+ # https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.Process.wait
227
+ # Therefore, we need to ensure that the process's stdout and stderr streams
228
+ # are drained before we call process.wait() in aclose().
229
+ async with create_task_group() as tg:
230
+ tg.start_soon(drain_stream, process.stdout)
231
+ tg.start_soon(drain_stream, process.stderr)
232
+ # Wait for the process to exit. Will be called again by aclose().
233
+ await process.wait()
234
+ # The process may have already exited, in which case we can ignore the error.
235
+ except ProcessLookupError:
236
+ pass
237
+
238
+
239
+ async def drain_stream(stream: ByteReceiveStream | None) -> None:
240
+ if stream is None:
241
+ return
242
+ try:
243
+ async for _ in stream:
244
+ pass
245
+ except ClosedResourceError:
246
+ pass
247
+
248
+
236
249
  max_subprocesses_context_var = ContextVar[int](
237
250
  "max_subprocesses", default=default_max_subprocesses()
238
251
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: inspect_ai
3
- Version: 0.3.104
3
+ Version: 0.3.105
4
4
  Summary: Framework for large language model evaluations
5
5
  Author: UK AI Security Institute
6
6
  License: MIT License
@@ -48,7 +48,7 @@ inspect_ai/_display/textual/widgets/vscode.py,sha256=SAIPO8VOkT_CFIfnCP_XxKixojd
48
48
  inspect_ai/_eval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
49
  inspect_ai/_eval/context.py,sha256=mdYinWG2lcYkWLieT42suzUDyaQBVHosbaWTKA6Uu48,1407
50
50
  inspect_ai/_eval/eval.py,sha256=7Izm4s64OIn8dZ2oQQF4fX_jneCODAWJ9Kzd0NRBIPk,44168
51
- inspect_ai/_eval/evalset.py,sha256=Smd0JiAMRFmbn4dXB8vYp-3KZRO6eYhECUE8satXTBw,25105
51
+ inspect_ai/_eval/evalset.py,sha256=cGLAX6qnMMi-LTenLtu47wv0JJTjAvFLbE6zKfZbfTg,25112
52
52
  inspect_ai/_eval/list.py,sha256=VbZ-2EI6MqrXvCN7VTz21TQSoU5K5_Q0hqhxmj5A_m0,3744
53
53
  inspect_ai/_eval/loader.py,sha256=dafv4TlQDqdvzPyrQrBsNiCzhvqjwmcVQzweX-AL1os,24805
54
54
  inspect_ai/_eval/registry.py,sha256=IMyF_Ru11DrqjFe1yZJvghQcJSfssQ08wQqTt_F38Ag,5570
@@ -63,7 +63,7 @@ inspect_ai/_eval/task/images.py,sha256=nTzHizlyuPYumPH7gAOBSrNkTwTbAmZ7tKdzN7d_R
63
63
  inspect_ai/_eval/task/log.py,sha256=-9SRwJBINudIEVcsIyFEUY9ZSt2dC4hHN9NEuw0x9OU,12008
64
64
  inspect_ai/_eval/task/resolved.py,sha256=LBVHEeq9N1fkRObmA2pnDE_l_EuH6n2Dg8-c8yCGT5U,1007
65
65
  inspect_ai/_eval/task/results.py,sha256=x4weYRK2XGowfBG3f2msOeZQ_pxh230HTlw6kps33jw,17925
66
- inspect_ai/_eval/task/run.py,sha256=5aaEk7QTzeKri9QMuEJIis3XEga0m2aOe5huhIWKL10,39127
66
+ inspect_ai/_eval/task/run.py,sha256=CHEA25h-UdZmbfQ9o568hiahyna_voGvANMns4u9tW4,40244
67
67
  inspect_ai/_eval/task/sandbox.py,sha256=x9GU-o2LtJQtdZjdmwRtAMJ5Mzd_te6hrm-DjiZB60g,7737
68
68
  inspect_ai/_eval/task/task.py,sha256=EVdOKgC8UYadlTebkfnXtWawV0BQeGGEBzmlGTRbAfI,16314
69
69
  inspect_ai/_eval/task/tasks.py,sha256=8fy5k070KgjYwaZQ_Nk6_r-38VTU6HB-qh7ixc4JzKI,727
@@ -128,7 +128,7 @@ inspect_ai/_util/working.py,sha256=mJSexhxAA-OvYGZPMH6lVjnn_QC1aWm5lbdoUWRYEBo,8
128
128
  inspect_ai/_view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
129
  inspect_ai/_view/notify.py,sha256=w79p_o6mnL8NYKd7QgibnUdDGnUELfQO8fhhkjq7n4o,1433
130
130
  inspect_ai/_view/schema.py,sha256=I1ih8jgM3d6t6lbLGgRgw2Lo5WMkZV-b8LWFM-OmBak,1658
131
- inspect_ai/_view/server.py,sha256=xVg_1rb-8W_rm60gNzX-2dpJXaKjupgiuol1TXHSIfM,17641
131
+ inspect_ai/_view/server.py,sha256=Du7lUXn44qIL1b-fJnUAHVwrx7eAaY-hBGPAa06kgFc,18161
132
132
  inspect_ai/_view/view.py,sha256=7FkmirqOMpej-7YUG2rmPvpfVjzJzFZbTt_MtgXYpnU,3607
133
133
  inspect_ai/_view/www/.gitignore,sha256=Qyau1UN5uAQB8cwjhokiMEMgJtQCReq-6ohBVCXV8ZQ,52
134
134
  inspect_ai/_view/www/.prettierignore,sha256=SiJfow55o33Kh0KB2BJGQsjgyHNURdtmI097aY6kJzc,85
@@ -152,8 +152,8 @@ inspect_ai/_view/www/.vscode/extensions.json,sha256=E73RWLzcoyeluE_ijGxaNSOK9xC0
152
152
  inspect_ai/_view/www/.vscode/settings.json,sha256=g5hrVnMaYxM06JpiJD2EuE2xjcbF6xNAtL2fuKgG1-8,200
153
153
  inspect_ai/_view/www/dist/index.html,sha256=gpdu6SR-SOH9EWx15cCWHzujMZujnZR5tRlEfROJg2A,997
154
154
  inspect_ai/_view/www/dist/assets/favicon.svg,sha256=b9AHYZaO2zBzeKH6G4PwXZMGGW_UxY0omKHam-c9MAs,1508
155
- inspect_ai/_view/www/dist/assets/index.css,sha256=VoHnHLiZB1oGo-5RF_NTk4ZOZ7XSsBjFD4i2JZyT2BU,2378141
156
- inspect_ai/_view/www/dist/assets/index.js,sha256=7F3oEIoDuiZhobU0f8WGKDimADnjsOXpFg4myTx8cYs,3538331
155
+ inspect_ai/_view/www/dist/assets/index.css,sha256=FJroagFAzsVsGrRFXiA26pTSdlKTUJSAAOn94c6gVZI,2378191
156
+ inspect_ai/_view/www/dist/assets/index.js,sha256=jfWOhyScMp6eIzbSKZY9IZFQ6xfS7w-ASiyXd0yTHeM,3549950
157
157
  inspect_ai/_view/www/node_modules/flatted/python/flatted.py,sha256=UYburBDqkySaTfSpntPCUJRxiBGcplusJM7ECX8FEgA,3860
158
158
  inspect_ai/_view/www/node_modules/katex/src/fonts/generate_fonts.py,sha256=BqZzWU-n22LypRvQ6sV7Uvkv853QJa3rz543de0V9hI,1559
159
159
  inspect_ai/_view/www/node_modules/katex/src/metrics/extract_tfms.py,sha256=kuCyCirv4JZeZgBOBIge_OPi627676DS6DJ4vo5_Yi4,3329
@@ -251,8 +251,8 @@ inspect_ai/_view/www/src/app/samples/SampleSummaryView.tsx,sha256=Gkcr9H37vcwpBn
251
251
  inspect_ai/_view/www/src/app/samples/SamplesTools.tsx,sha256=Cwhr4aCne2p4k281QQxuO5ujNRTanc0z12AVG3iBfAQ,1767
252
252
  inspect_ai/_view/www/src/app/samples/sampleDataAdapter.ts,sha256=mdZ4DQSbvvOjCESq8guFzfBBbbytyRUdwn6KA08Eks0,936
253
253
  inspect_ai/_view/www/src/app/samples/sampleLimit.ts,sha256=GLfSpwF3-zpCJa-4lQteztd9F7L6yUud_Fs-cTeXyQs,608
254
- inspect_ai/_view/www/src/app/samples/chat/ChatMessage.module.css,sha256=zR-0x7peWlA6IZ0VsBVMpR3TkxtyQASdd6fDL0fdrPk,506
255
- inspect_ai/_view/www/src/app/samples/chat/ChatMessage.tsx,sha256=VtNYabQhl6ITxHvYOlHf5bh0FVLxvTa1C7YQ-zrRkl0,2232
254
+ inspect_ai/_view/www/src/app/samples/chat/ChatMessage.module.css,sha256=HkDgq_KEw0ZRBHRzV8mbN1RPhlBXOwW1OcuAOjxj1dE,546
255
+ inspect_ai/_view/www/src/app/samples/chat/ChatMessage.tsx,sha256=H1pRDNYJ0oNAdPB9hwN5na9VAcI59hHtLEn4ShdBX88,2780
256
256
  inspect_ai/_view/www/src/app/samples/chat/ChatMessageRenderer.tsx,sha256=DPRsu5sgDvJIJ5tirqFkoxBPacPYc4Ooy3-7qJRaPKo,1505
257
257
  inspect_ai/_view/www/src/app/samples/chat/ChatMessageRow.module.css,sha256=SmA8NLCidpd3Kk4HZvhr1ttA2hmuIk7we3ob5qokxIw,274
258
258
  inspect_ai/_view/www/src/app/samples/chat/ChatMessageRow.tsx,sha256=9A77goO1FGtXtwIoWkNynGaMcEsPCsqBhHhs4ktvyDk,2250
@@ -315,11 +315,11 @@ inspect_ai/_view/www/src/app/samples/sample-tools/SelectScorer.module.css,sha256
315
315
  inspect_ai/_view/www/src/app/samples/sample-tools/SelectScorer.tsx,sha256=7nzO1WKH6-jTfdePc-QB98uKmBmKX9Twu1sK5nzoZEo,4371
316
316
  inspect_ai/_view/www/src/app/samples/sample-tools/SortFilter.module.css,sha256=7uNUEoHtsNxN6P5WFZQvoEzd55n9rsgmfhWCicFh1_c,106
317
317
  inspect_ai/_view/www/src/app/samples/sample-tools/SortFilter.tsx,sha256=qZ-Vuuiq_TZA9A3ugH41HTo-Ugy6xSlXmrJuqHn-_w4,4637
318
- inspect_ai/_view/www/src/app/samples/sample-tools/filters.ts,sha256=d1KF71MpxNJT6PIDpo6531qHhhSkwGod-dYLnBAe4qI,9701
318
+ inspect_ai/_view/www/src/app/samples/sample-tools/filters.ts,sha256=s8O2WXf2WTpD0qB2-tyaGWVb9LKKmagwE7l4JpWMYU4,10636
319
319
  inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/SampleFilter.module.css,sha256=PPdynh09MuEz0BMhHSximTj_BLNNAEQQQB8TH4amd3A,199
320
- inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/SampleFilter.tsx,sha256=1gkYHBcLdu7pKetIizL_DkEaG6xeiPbZr6qGCDibzBE,8017
321
- inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/completions.ts,sha256=uzobauwUIqveheRH4Y8uWOsnFbE6VvTBwn2jtMNE0ZA,10943
322
- inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/language.ts,sha256=V08BhYgujiYoyd2aK9VrUhTU4SKrZRvFXDEcnwn5wE8,964
320
+ inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/SampleFilter.tsx,sha256=pHe7FOYb7dilDLorl1M_eh7JCNYFVpjH3OuVk6xuUyY,8416
321
+ inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/completions.ts,sha256=sW1Tk_x4WNG1UqrijL3ijfLPSzVJaHHKoTgySt3mHcQ,21026
322
+ inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/language.ts,sha256=dhLtC_73CjXiNTLtfkr-JBXeunCpyTJZwZH7aO7Sy58,1253
323
323
  inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/tokenize.ts,sha256=tD45vb1d-8XSV0RmGbdJijk92KuC555ksBsVD43uxCA,2802
324
324
  inspect_ai/_view/www/src/app/samples/scores/SampleScores.module.css,sha256=jhwzLYwYRzEFhGqFZUYpzHOG3yDDY33rH14-ECgC9TQ,96
325
325
  inspect_ai/_view/www/src/app/samples/scores/SampleScores.tsx,sha256=U8bYNmgW51aid6FrBemPeGOhmTg2Z59FKeBHcPgTDvE,586
@@ -371,7 +371,7 @@ inspect_ai/_view/www/src/app/samples/transcript/event/EventTimingPanel.module.cs
371
371
  inspect_ai/_view/www/src/app/samples/transcript/event/EventTimingPanel.tsx,sha256=MLsmFru7o37ymoZZdFkt2jhS9t4pzYFCLLaqshd4v_A,2746
372
372
  inspect_ai/_view/www/src/app/samples/transcript/event/utils.ts,sha256=fFnt2DSCymWFdbzdf1P7r5nA6r472pNlCzQlUThkX_Q,766
373
373
  inspect_ai/_view/www/src/app/samples/transcript/outline/OutlineRow.module.css,sha256=aeOYelj5_F2cyN7z72VZuhEVrLV9iCPXWP-w7AOl9Mk,598
374
- inspect_ai/_view/www/src/app/samples/transcript/outline/OutlineRow.tsx,sha256=_Y--C8bxjfcEWrZN3RdgreOIvbiSMLjYe83XIHcGoNY,6132
374
+ inspect_ai/_view/www/src/app/samples/transcript/outline/OutlineRow.tsx,sha256=yMW6mgvF-9Yr6AILSUfcKOPvb9sYOTerLctEWFTtiSo,6131
375
375
  inspect_ai/_view/www/src/app/samples/transcript/outline/TranscriptOutline.module.css,sha256=SXBox9F9srdAG14qhXm8VWKoH2sQE6uGm2mNvhXh-oQ,146
376
376
  inspect_ai/_view/www/src/app/samples/transcript/outline/TranscriptOutline.tsx,sha256=ufbASbpZGENEia0m87UhxUNsJsJ7WbdQK9zV-BVcdYs,7715
377
377
  inspect_ai/_view/www/src/app/samples/transcript/outline/tree-visitors.ts,sha256=rsdu7RjayZt-XcmwG4m600TChJwFQPsEJvz34dpyv-U,4792
@@ -403,14 +403,14 @@ inspect_ai/_view/www/src/app/usage/TokenTable.module.css,sha256=VkwYeWCKK3frYZpa
403
403
  inspect_ai/_view/www/src/app/usage/TokenTable.tsx,sha256=Gvn8_v1XDyRVV6w5JvcopgskRuawIyHYFuA4MxKVTBg,1844
404
404
  inspect_ai/_view/www/src/app/usage/UsageCard.module.css,sha256=YehyCCKrQKXYWJb7JkqMjyBofG0-b5vFDXsApqEITSs,266
405
405
  inspect_ai/_view/www/src/app/usage/UsageCard.tsx,sha256=KLwfynSoXTh1ROsO_DNIpF0VL5VXdvS0gp2vNZs94iw,793
406
- inspect_ai/_view/www/src/client/api/api-browser.ts,sha256=-yLP4xo2oezAKf4VdrLkDpOGVbBY2wDH6ArPaN2xtEI,7262
407
- inspect_ai/_view/www/src/client/api/api-http.ts,sha256=p6tfSOvC-3jIZs-lsf2ZidswPjAXbR1K3gV_8WukNO0,6272
406
+ inspect_ai/_view/www/src/client/api/api-browser.ts,sha256=bhikhdadKa5va4H9b_S5o8YCEKa4JDHlj8FY0U_J1YA,7825
407
+ inspect_ai/_view/www/src/client/api/api-http.ts,sha256=kyO7Tpiskv3X9Gt3b9uqLxWGItfs3pypmQabf4P4OnY,6408
408
408
  inspect_ai/_view/www/src/client/api/api-shared.ts,sha256=F0qCU97BN8p4DjsdK62hwoRSlcJUahCY--WyacbMRz0,1524
409
- inspect_ai/_view/www/src/client/api/api-vscode.ts,sha256=JO2W68UAmKJ3uZrHn6Z7wBBERaZIfHZX-Bc-Rqz4wF4,3970
410
- inspect_ai/_view/www/src/client/api/client-api.ts,sha256=8h5horKcLIcvwOi5v-kl8k30LUDRpuMUdYY8u7kno5c,9660
409
+ inspect_ai/_view/www/src/client/api/api-vscode.ts,sha256=DeW4TyrMcmXZ88CpJDbiuyKHFe_Ki1ktPsPB0jNZA5A,4150
410
+ inspect_ai/_view/www/src/client/api/client-api.ts,sha256=YWmpiJKFHwBczz4zJ4b826-hbyVafuxny-TlP7c34_8,9774
411
411
  inspect_ai/_view/www/src/client/api/index.ts,sha256=LkMZu6xHkcgd-YQT9iipbgjOtKnWQ9GxN88MDJhNDmc,1771
412
- inspect_ai/_view/www/src/client/api/jsonrpc.ts,sha256=pmkI50pwaLhQYDu5Pt_X1wR-Ik-RzqYNdhn_ayshEDA,5784
413
- inspect_ai/_view/www/src/client/api/types.ts,sha256=HScgAJgxf5BhyKIts5yGeIpk4OvXQv26HCpfGk6jGvs,5302
412
+ inspect_ai/_view/www/src/client/api/jsonrpc.ts,sha256=pv3NCYsh4WFbKXTNmT63iDgdmhngpA57ML0pEuvH_S0,5832
413
+ inspect_ai/_view/www/src/client/api/types.ts,sha256=c15vohyFvWfM6koqTwh7ipcVTMVIIY0geZK_JD2MvUE,5475
414
414
  inspect_ai/_view/www/src/client/remote/remoteLogFile.ts,sha256=RnU5BerxbLVPavOrZlXI69rNu-eSrl6PepfpP8x-Ru8,6160
415
415
  inspect_ai/_view/www/src/client/remote/remoteZipFile.ts,sha256=0WfRV-PjCRGK4Mv6GKB62HIBFPcTKgruiDEK-LX5svI,13007
416
416
  inspect_ai/_view/www/src/client/storage/index.ts,sha256=7al8eAsanynNAWazurfZmkenZquWUHtfsKc5CqjERwE,986
@@ -475,7 +475,7 @@ inspect_ai/_view/www/src/state/logPolling.ts,sha256=hn32ICGS0GnnDmoxbRnGOK7695_k
475
475
  inspect_ai/_view/www/src/state/logSlice.ts,sha256=kmq_6U8ZB-fvqIOZfOky_pL4IOzorpohQXFEQwrWi4Q,6551
476
476
  inspect_ai/_view/www/src/state/logsPolling.ts,sha256=PSOcqLpx4-Ohgz5v1WEG4iIsGtrxrYcq01vml-xNQe4,2988
477
477
  inspect_ai/_view/www/src/state/logsSlice.ts,sha256=j2wWMcx35VRCBrLwYMKsDguexYMfSvh0gZEx4IREJrA,5582
478
- inspect_ai/_view/www/src/state/samplePolling.ts,sha256=JFJZI05U3wMLMTB1gCpP3melqqoiejoR5naO4uqm6mE,9425
478
+ inspect_ai/_view/www/src/state/samplePolling.ts,sha256=fBsNbEOfHMxnPUVQFjYRoCbGa-mjqmyu4zDfCfgzZVw,9728
479
479
  inspect_ai/_view/www/src/state/sampleSlice.ts,sha256=6L0mnIJycnMEc4LDecvbe95yvl_h7Cf85KAy1gv9ZXI,9671
480
480
  inspect_ai/_view/www/src/state/sampleUtils.ts,sha256=cIGExXuYSzG-U6Pcac9ekF1818ShvkRzRKEY_nfqmvg,754
481
481
  inspect_ai/_view/www/src/state/scoring.ts,sha256=TW4BNhRD1n8rYshrcOMPE27uFSCW_0XbkUJWbMlsH8U,2122
@@ -518,8 +518,8 @@ inspect_ai/agent/_agent.py,sha256=ovgzc64lfLnT8wq_xAyiHVfegfJVgktGc3fWJLceVms,89
518
518
  inspect_ai/agent/_as_solver.py,sha256=glOKzItIPsveWDGlk2igLfFDOix_NlEkAtyQ6YsWB2Q,2976
519
519
  inspect_ai/agent/_as_tool.py,sha256=-NGZUFAEimvSpog0UmNtYDMlbbuKaWnIgwNnMd_fffM,4912
520
520
  inspect_ai/agent/_filter.py,sha256=qnT0HbT4edpDi0MwXY3Q3It2pzNRkTRXZDOqfCwMY6M,1234
521
- inspect_ai/agent/_handoff.py,sha256=98a8CMER_rlWhNmbTK-Rcgg6_uM3w9ODwo6OmV-CWOY,3777
522
- inspect_ai/agent/_react.py,sha256=QxMVLGXBMEddRJubsgaEF8F6B9rFnc50rgO68_nByXo,19018
521
+ inspect_ai/agent/_handoff.py,sha256=fonoLtC9CxCt7Ya_EbhHU-1indqVpOaTJ2b8-9BoM_k,3848
522
+ inspect_ai/agent/_react.py,sha256=n59jkPQG97lHlEPhurluOVhkpnbqjMeBKrFdtA7pKxE,19061
523
523
  inspect_ai/agent/_run.py,sha256=wXAE26-w0W1Brn5KTEQH5Esl_ZrwH37Po18yX-EZQsI,3171
524
524
  inspect_ai/agent/_types.py,sha256=UeXBI_p8VVgEeMqenJjFRfyAWqWBKugUvVS2eJoIIUw,4560
525
525
  inspect_ai/agent/_bridge/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -580,7 +580,7 @@ inspect_ai/approval/_human/manager.py,sha256=Igae35VS99TejSWUShNwFuVnmhwByK30H84
580
580
  inspect_ai/approval/_human/panel.py,sha256=UaO309bn7zMDV1I5GJcrZThhU8c8D4gOW7bwPRPPdkc,7672
581
581
  inspect_ai/approval/_human/util.py,sha256=DPxpA9_pzeoQyHpGtRE3hx8sGV7MyrlElCBvsh1FNgA,1996
582
582
  inspect_ai/dataset/__init__.py,sha256=4uTSHpN_ccdtbZulUMDetSSP-dXRkFGYsa2FzA5mLEw,534
583
- inspect_ai/dataset/_dataset.py,sha256=CrDsUaoyJg5ijApVPxQgCiZRbkO-QA6xgv39q3LzQRc,11936
583
+ inspect_ai/dataset/_dataset.py,sha256=FmKmSppKlxY1-DedilUCjrAExdNAkdz17lm54sUiXpY,11948
584
584
  inspect_ai/dataset/_util.py,sha256=0sPupAhfMS7Cm5aQWEIt5ULjAv9E7PdLqdeBb4mqE60,8720
585
585
  inspect_ai/dataset/_examples/bias_detection.jsonl,sha256=ufXUZMjsJhY2_lJ9j_iJ6w0fiuyw7TQmJeMFoOqKYzM,20756
586
586
  inspect_ai/dataset/_examples/biology_qa.jsonl,sha256=Hfkr8XRT2x6Cgjd-zKbWGfFD-ZEfi566FqLX4w9USKs,2009
@@ -603,7 +603,7 @@ inspect_ai/log/_log.py,sha256=EViZsKBEh6RmtOy6FtzKy59p7qdXNzkBfiQ1pKo4Z_c,30251
603
603
  inspect_ai/log/_message.py,sha256=QofM_JZF_x3k_5ta1uQzoN_VnMoUhXFnqWurIn9FXOY,1999
604
604
  inspect_ai/log/_model.py,sha256=8tEhFZc1tBFgA6A_spXTqTBdvbzZP5t7ul7DiloHRWk,1698
605
605
  inspect_ai/log/_retry.py,sha256=e7a2hjl3Ncl8b8sU7CsDpvK8DV0b1uSRLeokRX1mt34,2109
606
- inspect_ai/log/_samples.py,sha256=7ul6qvivKO7QjoA2-d3gMDVjQ17ojQE2rrVZL1CoeEM,4820
606
+ inspect_ai/log/_samples.py,sha256=9NCu1RSMBjswkFkc4gy9A00qfqBQi7CrUaNi9duEld4,4930
607
607
  inspect_ai/log/_transcript.py,sha256=l902I3WDDCcw424xkHToMxy1HEUaBBaId8LJdXila5E,16937
608
608
  inspect_ai/log/_tree.py,sha256=C817m_7-66ThyCX5K4nVA7AzYOgLXWlKMdTQ-ueNA-U,3232
609
609
  inspect_ai/log/_util.py,sha256=0IYnqqmDtL73BcRFU9TLlUemQf3OUh343SN-0r_MLfI,1750
@@ -621,7 +621,7 @@ inspect_ai/log/_recorders/buffer/filestore.py,sha256=0RYD7VR61XoM9Gx8wpqQ8utNqGb
621
621
  inspect_ai/log/_recorders/buffer/types.py,sha256=1cyKA_vrXCh2Q560qDSwLSgR7Mx45R2g4-8c76PontE,2054
622
622
  inspect_ai/model/__init__.py,sha256=FlD6GS5kpn9v4xUEInK9xEMhHbOtIP5QQzDoQuqZzgM,2796
623
623
  inspect_ai/model/_cache.py,sha256=Bl6WS9b1kJRVsGK0h7Fd1-mDAbrlxvNXMPK30P3aMuM,13736
624
- inspect_ai/model/_call_tools.py,sha256=pF5C4dYwh34TePWKntRGCdLkxZx8nWgzN_QpJxX4rL8,30790
624
+ inspect_ai/model/_call_tools.py,sha256=zCTaLDISbqGgf2VEDU2yLVlPGOvM2PeMpTAG0hdtTZ0,30809
625
625
  inspect_ai/model/_chat_message.py,sha256=IDy3bPr9vbO35PgnycDNfyXiryrnCaCoGKhBAhj18y0,7515
626
626
  inspect_ai/model/_conversation.py,sha256=J4zxb8mJdcpV5zLEDYS-ikQckONeaUZrqNReLLruUOE,374
627
627
  inspect_ai/model/_display.py,sha256=0wb9tV4PItvwgUpqpxLCL60oWlg4lT1nVA6GKJV3rcU,3090
@@ -639,11 +639,11 @@ inspect_ai/model/_providers/_anthropic_citations.py,sha256=8Wub6F8vvup0-e-BKV3wc
639
639
  inspect_ai/model/_providers/_google_citations.py,sha256=KtqQdvUrWV1lGYfD7aLOIwUbIqZbVJDCoX-uCMHBZz8,3573
640
640
  inspect_ai/model/_providers/_openai_computer_use.py,sha256=vbKkYLhqNuX16zuWfg5MaGp9H8URrPcLhKQ1pDsZtPo,5943
641
641
  inspect_ai/model/_providers/_openai_web_search.py,sha256=tKxoRHc8gHIt8kgIdp6eM_Ak62inGRTxdUe1JNJV0b8,1195
642
- inspect_ai/model/_providers/anthropic.py,sha256=Ijc_yDWzBm7ccFZj5wm9NdZWOFhKe-moHGhgVmyMSZw,41299
642
+ inspect_ai/model/_providers/anthropic.py,sha256=Dzu_5nWH4Xx1XklARkjCP0jkIvt8Nf5SDmzgblPGsf4,42201
643
643
  inspect_ai/model/_providers/azureai.py,sha256=KzgPYtUMsqEZZTHWYWYLnnRd6wh4qqlqqZL2JwvraLs,16738
644
644
  inspect_ai/model/_providers/bedrock.py,sha256=G252v6gUXtT56M4JaLLY7tEw2AJVQFucjeFgv0okhgo,23999
645
645
  inspect_ai/model/_providers/cloudflare.py,sha256=9yHfA5qbKWjzOfOzCJ_u8CZsH_U7AolAWLxvLBXKrhM,2375
646
- inspect_ai/model/_providers/google.py,sha256=3K4RhECrEPaCC5i6DE5tGWd5QiE9kcXhlTr4NxUHUU4,35665
646
+ inspect_ai/model/_providers/google.py,sha256=6omSismcBEFH_2lVhOhLF5A3ceMpuZiARxWD91n2R6E,35748
647
647
  inspect_ai/model/_providers/grok.py,sha256=iAPXmZMR7VWPq6EIwRsoUJr_TR6b5kTt-Fkba1pogGQ,1267
648
648
  inspect_ai/model/_providers/groq.py,sha256=q9o4sy0uUyLQbSThB-MMTmSc5AtKmb6GJfgHBpf5amM,12262
649
649
  inspect_ai/model/_providers/hf.py,sha256=jyXi4qyq2hdsp1waB2ON5m8f9mpE2h1GFD7Tu_phCEo,19115
@@ -747,25 +747,26 @@ inspect_ai/tool/_tools/_web_search/_google.py,sha256=CD1ckTpw4prwkancWz6_aTWwGZ4
747
747
  inspect_ai/tool/_tools/_web_search/_tavily.py,sha256=4i9lqhWTgT_cD-cocDQjW-eJhRZZ6pjzlFfKYe1rfdg,3053
748
748
  inspect_ai/tool/_tools/_web_search/_web_search.py,sha256=12xJq8eA90JDLq3S4HMZ_2Umu29xHd15wcap0KoVeRo,11033
749
749
  inspect_ai/tool/_tools/_web_search/_web_search_provider.py,sha256=SvbQd7l2wqz5cAdNk9zrXX8NqOoWd-FEtF-6zyLA7MA,208
750
- inspect_ai/util/__init__.py,sha256=0I3QhMx_ma5p611qabqoGrQ96X1CQbP9HFbHOn8jgog,2105
750
+ inspect_ai/util/__init__.py,sha256=pYCxgPSDHdN9S2UtYhL8l_oUkiVFInQ_-waSFrD09x8,2281
751
751
  inspect_ai/util/_anyio.py,sha256=ImV_Q9oJ0XT0Fy6qa68OHpCzcUbfxptbHAjYWre-m2U,1541
752
+ inspect_ai/util/_background.py,sha256=9W1h87f9lH_uCaaYG_FjSfJOYpFtMF-5UuBeAsXljpo,1559
752
753
  inspect_ai/util/_collect.py,sha256=--eYTBln__H0DVx_xKd2Rc6buz4gFuNkMccrA6nmqU0,1456
753
754
  inspect_ai/util/_concurrency.py,sha256=mmXAfizGQggMIeppcMNxtnfcOeFDz0SU2S1ICKTWDLo,2962
754
755
  inspect_ai/util/_console.py,sha256=V1XkIoKcNZo0SgRUOv15zJAWz6-zV6267hC4Oldj8oY,1237
755
756
  inspect_ai/util/_conversation.py,sha256=KzqvKfj1tB14cgARZjYyIVG2EpuE-EZKqLGAPIXv1Xs,784
756
757
  inspect_ai/util/_display.py,sha256=Co-5U0ei98GLYPbwWqMoimWNmIIL8lv3D8oTSuT9DiA,2448
757
758
  inspect_ai/util/_json.py,sha256=X6J1JKuxteP76mHaU3qDrFDYWizWt5xNjm65ag72_2E,6952
758
- inspect_ai/util/_limit.py,sha256=-x1UQ-H3Dq3BZYQwTI99FWVquqF0CwPAzamYrnNrApE,21095
759
+ inspect_ai/util/_limit.py,sha256=LlBjt1uhK59TeUnoeYxeIany3HQDvSylBnhB8JW7buA,22736
759
760
  inspect_ai/util/_limited_conversation.py,sha256=rfM45soaVmtGrYTaUk_ibZxTe8rbP5bzGlIWJCYBWM8,1997
760
761
  inspect_ai/util/_panel.py,sha256=MdZxOt0F01ddn_NsRfwn0es6UjQasK1_EKIQ6jtQyG8,3124
761
762
  inspect_ai/util/_resource.py,sha256=X280aW_7VCkVTGk812tuU5qnZlGM5Qt1-kANr-DaGOs,3389
762
763
  inspect_ai/util/_span.py,sha256=y1GOS8h-e9fujDyTJTWOaQIsey8Ldhu8osN-fYiAdlE,1680
763
764
  inspect_ai/util/_store.py,sha256=QemJe2M-RK6zSFNcd07_92XFjvNtWKgHzBr5eT3KF1I,3786
764
765
  inspect_ai/util/_store_model.py,sha256=PVXh0_Rtemu5WNLTs2bcnZnKFGj2pT_np-1dBnkldr8,5125
765
- inspect_ai/util/_subprocess.py,sha256=2VfqlWMVw4ebpKxj52motdxrIooU3JKP_Uno8KcK-B4,8014
766
+ inspect_ai/util/_subprocess.py,sha256=H536zfPCFJPYyVjKoenDLpBfCj6YT6xufihrmUC8omw,8684
766
767
  inspect_ai/util/_subtask.py,sha256=gj108R8mnSSJsXALYpuHf7Z6qA4TRfKtwj1y68og6Wc,5065
767
768
  inspect_ai/util/_throttle.py,sha256=JczSG_y0v60m4gQCt28uw_WPjJTbHuq8gWcxY3-vFsc,855
768
- inspect_ai/util/_sandbox/__init__.py,sha256=N3mly5_zTOVBVkDzJyPQWYm3-KMbR3_nupYXIDWLtKo,914
769
+ inspect_ai/util/_sandbox/__init__.py,sha256=C8saQ-TPCGxBEdGqWF0PFwdH2JkGnNemx-sJ4gRQAjA,974
769
770
  inspect_ai/util/_sandbox/context.py,sha256=CS-JS9lTDwaNclMXaT0ilaU-aIuHtV6HaV7_2-myZlM,10025
770
771
  inspect_ai/util/_sandbox/environment.py,sha256=yxQAKJqXHzifoo1v_gRRizEmMTLDl1KtUAcT50VAjDI,14578
771
772
  inspect_ai/util/_sandbox/events.py,sha256=NJ724uZnjxOHBdkrNkecEl2DMQ4q0PLOH1QCJOHllXw,5463
@@ -773,7 +774,7 @@ inspect_ai/util/_sandbox/limits.py,sha256=K-GjKfSugOq8KP0wW_oF6qFrXsOnMV0C88QUWk
773
774
  inspect_ai/util/_sandbox/local.py,sha256=A_6kvAqoU483cKetKI5r-8fggM2uThFZeOY5Tz2_K0o,3538
774
775
  inspect_ai/util/_sandbox/registry.py,sha256=mQwWwqzaCXF1FZ2fcVujpp3WMA35GWnh1w43SoIJAVM,2145
775
776
  inspect_ai/util/_sandbox/self_check.py,sha256=iYdAzb_ufMgA0yDQQJ3v5RcKCFTkayp-nqO-A8DFhfI,23915
776
- inspect_ai/util/_sandbox/service.py,sha256=pAZ9UI4Qx-BYzEL78_-vsaZuzwxBDaesBLhezX9RdEM,11952
777
+ inspect_ai/util/_sandbox/service.py,sha256=pOQ-HU2m6rjtZE1tBDX9Wpy4IeIfBVyxoBNYGbgEjx4,12451
777
778
  inspect_ai/util/_sandbox/docker/cleanup.py,sha256=pGYzgCviZqbrFcM1AASIHWCrYE1pS_g4OamcVWKrkMM,5257
778
779
  inspect_ai/util/_sandbox/docker/compose.py,sha256=r7BtNv5JGJsL8IwQmW_DFSN7JFMRAjneC7WBtGkIagM,12292
779
780
  inspect_ai/util/_sandbox/docker/config.py,sha256=5-YsouGJGxNXw8xNEZi1o4H0EaqaTLKoQhwYT2Iczb4,2925
@@ -782,9 +783,9 @@ inspect_ai/util/_sandbox/docker/internal.py,sha256=c8X8TLrBPOvsfnq5TkMlb_bzTALyc
782
783
  inspect_ai/util/_sandbox/docker/prereqs.py,sha256=0j6_OauBBnVlpBleADcZavIAAQZy4WewVjbRn9c0stg,3355
783
784
  inspect_ai/util/_sandbox/docker/service.py,sha256=hhHIWH1VDFLwehdGd19aUBD_VKfDO3GCPxpw1HSwVQk,2437
784
785
  inspect_ai/util/_sandbox/docker/util.py,sha256=EeInihCNXgUWxaqZ4dNOJd719kXL2_jr63QCoXn68vA,3154
785
- inspect_ai-0.3.104.dist-info/licenses/LICENSE,sha256=xZPCr8gTiFIerrA_DRpLAbw-UUftnLFsHxKeW-NTtq8,1081
786
- inspect_ai-0.3.104.dist-info/METADATA,sha256=auCJH5R_X47PfQbHlel0TfPEpOLbEiaB3ttn676ETJE,5467
787
- inspect_ai-0.3.104.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
788
- inspect_ai-0.3.104.dist-info/entry_points.txt,sha256=WGGLmzTzDWLzYfiyovSY6oEKuf-gqzSDNOb5V-hk3fM,54
789
- inspect_ai-0.3.104.dist-info/top_level.txt,sha256=Tp3za30CHXJEKLk8xLe9qGsW4pBzJpEIOMHOHNCXiVo,11
790
- inspect_ai-0.3.104.dist-info/RECORD,,
786
+ inspect_ai-0.3.105.dist-info/licenses/LICENSE,sha256=xZPCr8gTiFIerrA_DRpLAbw-UUftnLFsHxKeW-NTtq8,1081
787
+ inspect_ai-0.3.105.dist-info/METADATA,sha256=RTZ7JYgPfnTt7hQOBIE6SWp9DI98mCKdzObp-MeIyYc,5467
788
+ inspect_ai-0.3.105.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
789
+ inspect_ai-0.3.105.dist-info/entry_points.txt,sha256=WGGLmzTzDWLzYfiyovSY6oEKuf-gqzSDNOb5V-hk3fM,54
790
+ inspect_ai-0.3.105.dist-info/top_level.txt,sha256=Tp3za30CHXJEKLk8xLe9qGsW4pBzJpEIOMHOHNCXiVo,11
791
+ inspect_ai-0.3.105.dist-info/RECORD,,