inspect-ai 0.3.66__py3-none-any.whl → 0.3.68__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.
- inspect_ai/_display/core/config.py +1 -1
- inspect_ai/_display/core/panel.py +1 -2
- inspect_ai/_display/rich/display.py +2 -2
- inspect_ai/_display/textual/app.py +13 -5
- inspect_ai/_display/textual/widgets/footer.py +2 -2
- inspect_ai/_display/textual/widgets/sandbox.py +1 -1
- inspect_ai/_display/textual/widgets/task_detail.py +7 -5
- inspect_ai/_display/textual/widgets/tasks.py +8 -6
- inspect_ai/_display/textual/widgets/transcript.py +1 -1
- inspect_ai/_eval/task/run.py +5 -3
- inspect_ai/_eval/task/task.py +9 -1
- inspect_ai/_util/format.py +58 -0
- inspect_ai/_view/www/dist/assets/index.css +29 -9
- inspect_ai/_view/www/dist/assets/index.js +368 -304
- inspect_ai/_view/www/src/samples/error/FlatSampleErrorView.tsx +1 -1
- inspect_ai/_view/www/src/samples/sample-tools/filters.ts +41 -20
- inspect_ai/_view/www/src/samples/sample-tools/sample-filter/SampleFilter.tsx +2 -1
- inspect_ai/_view/www/src/samples/sample-tools/sample-filter/completions.ts +28 -6
- inspect_ai/_view/www/src/samples/sample-tools/sample-filter/language.ts +5 -0
- inspect_ai/_view/www/src/samples/transcript/LoggerEventView.tsx +1 -3
- inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.tsx +31 -16
- inspect_ai/_view/www/src/samples/transcript/TranscriptView.tsx +4 -1
- inspect_ai/_view/www/src/workspace/navbar/StatusPanel.module.css +1 -0
- inspect_ai/_view/www/src/workspace/navbar/StatusPanel.tsx +2 -2
- inspect_ai/model/_model.py +89 -2
- inspect_ai/model/_providers/anthropic.py +4 -0
- inspect_ai/model/_providers/azureai.py +5 -0
- inspect_ai/model/_providers/bedrock.py +5 -0
- inspect_ai/model/_providers/cloudflare.py +4 -0
- inspect_ai/model/_providers/goodfire.py +5 -0
- inspect_ai/model/_providers/google.py +16 -3
- inspect_ai/model/_providers/groq.py +4 -0
- inspect_ai/model/_providers/hf.py +7 -0
- inspect_ai/model/_providers/mistral.py +4 -0
- inspect_ai/model/_providers/openai.py +4 -0
- inspect_ai/model/_providers/vertex.py +5 -0
- inspect_ai/model/_providers/vllm.py +7 -0
- inspect_ai/solver/__init__.py +8 -1
- inspect_ai/solver/_human_agent/panel.py +11 -5
- inspect_ai/solver/_prompt.py +38 -5
- {inspect_ai-0.3.66.dist-info → inspect_ai-0.3.68.dist-info}/METADATA +3 -2
- {inspect_ai-0.3.66.dist-info → inspect_ai-0.3.68.dist-info}/RECORD +46 -48
- inspect_ai/_view/www/node_modules/flatted/python/flatted.py +0 -149
- inspect_ai/_view/www/node_modules/flatted/python/test.py +0 -63
- {inspect_ai-0.3.66.dist-info → inspect_ai-0.3.68.dist-info}/LICENSE +0 -0
- {inspect_ai-0.3.66.dist-info → inspect_ai-0.3.68.dist-info}/WHEEL +0 -0
- {inspect_ai-0.3.66.dist-info → inspect_ai-0.3.68.dist-info}/entry_points.txt +0 -0
- {inspect_ai-0.3.66.dist-info → inspect_ai-0.3.68.dist-info}/top_level.txt +0 -0
@@ -109,6 +109,11 @@ class VertexAPI(ModelAPI):
|
|
109
109
|
|
110
110
|
self.model = GenerativeModel(model_name)
|
111
111
|
|
112
|
+
@override
|
113
|
+
async def close(self) -> None:
|
114
|
+
# GenerativeModel uses a cached/shared client so there is no 'close'
|
115
|
+
pass
|
116
|
+
|
112
117
|
async def generate(
|
113
118
|
self,
|
114
119
|
input: list[ChatMessage],
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import asyncio
|
2
2
|
import functools
|
3
|
+
import gc
|
3
4
|
import os
|
4
5
|
from dataclasses import dataclass
|
5
6
|
from queue import Empty, Queue
|
@@ -131,6 +132,12 @@ class VLLMAPI(ModelAPI):
|
|
131
132
|
# we get the tokenizer so we can use it to apply the model's chat template later
|
132
133
|
self.tokenizer = self.model.get_tokenizer()
|
133
134
|
|
135
|
+
@override
|
136
|
+
async def close(self) -> None:
|
137
|
+
self.tokenizer = None
|
138
|
+
self.model = None
|
139
|
+
gc.collect()
|
140
|
+
|
134
141
|
def apply_chat_template(
|
135
142
|
self, messages: list[ChatMessage], tools: list[ToolInfo]
|
136
143
|
) -> str:
|
inspect_ai/solver/__init__.py
CHANGED
@@ -9,7 +9,13 @@ from ._human_agent.agent import human_agent
|
|
9
9
|
from ._limit import SampleLimitExceededError
|
10
10
|
from ._multiple_choice import MultipleChoiceTemplate, multiple_choice
|
11
11
|
from ._plan import Plan, plan
|
12
|
-
from ._prompt import
|
12
|
+
from ._prompt import (
|
13
|
+
assistant_message,
|
14
|
+
chain_of_thought,
|
15
|
+
prompt_template,
|
16
|
+
system_message,
|
17
|
+
user_message,
|
18
|
+
)
|
13
19
|
from ._solver import Generate, Solver, SolverSpec, generate, solver
|
14
20
|
from ._task_state import Choice, Choices, TaskState
|
15
21
|
from ._use_tools import use_tools
|
@@ -26,6 +32,7 @@ __all__ = [
|
|
26
32
|
"multiple_choice",
|
27
33
|
"system_message",
|
28
34
|
"user_message",
|
35
|
+
"assistant_message",
|
29
36
|
"self_critique",
|
30
37
|
"use_tools",
|
31
38
|
"plan",
|
@@ -83,7 +83,9 @@ class HumanAgentPanel(InputPanel):
|
|
83
83
|
with VerticalScroll(id=self.SANDBOX_VIEW_ID):
|
84
84
|
yield StatusBar()
|
85
85
|
yield Static(
|
86
|
-
id=self.SANDBOX_INSTRUCTIONS_ID,
|
86
|
+
id=self.SANDBOX_INSTRUCTIONS_ID,
|
87
|
+
classes=self.INSTRUCTIONS_CLASS,
|
88
|
+
markup=False,
|
87
89
|
)
|
88
90
|
with Horizontal(id=self.VSCODE_LINKS_ID):
|
89
91
|
yield Label("Login:", classes=self.LINK_LABEL_CLASS)
|
@@ -97,9 +99,11 @@ class HumanAgentPanel(InputPanel):
|
|
97
99
|
id=self.LOGIN_VSCODE_TERMINAL_ID,
|
98
100
|
)
|
99
101
|
yield Static(
|
100
|
-
id=self.COMMAND_INSTRUCTIONS_ID,
|
102
|
+
id=self.COMMAND_INSTRUCTIONS_ID,
|
103
|
+
classes=self.INSTRUCTIONS_CLASS,
|
104
|
+
markup=False,
|
101
105
|
)
|
102
|
-
yield Static(id=self.SANDBOX_COMMAND_ID)
|
106
|
+
yield Static(id=self.SANDBOX_COMMAND_ID, markup=False)
|
103
107
|
|
104
108
|
def watch_connection(self, connection: SandboxConnection | None) -> None:
|
105
109
|
if connection:
|
@@ -200,9 +204,11 @@ class StatusBar(Horizontal):
|
|
200
204
|
|
201
205
|
def compose(self) -> ComposeResult:
|
202
206
|
yield Label("Status:", classes=self.LABEL_CLASS)
|
203
|
-
yield Static(
|
207
|
+
yield Static(
|
208
|
+
"Running", id=self.STATUS_ID, classes=self.VALUE_CLASS, markup=False
|
209
|
+
)
|
204
210
|
yield Label(" Time:", classes=self.LABEL_CLASS)
|
205
|
-
yield Static("0:00:00", id=self.TIME_ID, classes=self.VALUE_CLASS)
|
211
|
+
yield Static("0:00:00", id=self.TIME_ID, classes=self.VALUE_CLASS, markup=False)
|
206
212
|
|
207
213
|
def watch_running(self, running: bool) -> None:
|
208
214
|
cast(Static, self.query_one(f"#{self.STATUS_ID}")).update(
|
inspect_ai/solver/_prompt.py
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
from typing import Any
|
2
2
|
|
3
3
|
from inspect_ai._util.dict import omit
|
4
|
-
from inspect_ai.
|
5
|
-
from inspect_ai.model._chat_message import
|
4
|
+
from inspect_ai._util.format import format_template
|
5
|
+
from inspect_ai.model._chat_message import (
|
6
|
+
ChatMessageAssistant,
|
7
|
+
ChatMessageSystem,
|
8
|
+
ChatMessageUser,
|
9
|
+
)
|
6
10
|
from inspect_ai.util import resource
|
7
11
|
|
8
12
|
from ._solver import Generate, Solver, solver
|
@@ -32,7 +36,7 @@ def prompt_template(template: str, **params: Any) -> Solver:
|
|
32
36
|
async def solve(state: TaskState, generate: Generate) -> TaskState:
|
33
37
|
prompt = state.user_prompt
|
34
38
|
kwargs = omit(state.metadata | state.store._data, ["prompt"]) | params
|
35
|
-
prompt.text = prompt_template
|
39
|
+
prompt.text = format_template(prompt_template, {"prompt": prompt.text} | kwargs)
|
36
40
|
return state
|
37
41
|
|
38
42
|
return solve
|
@@ -63,7 +67,7 @@ def system_message(template: str, **params: Any) -> Solver:
|
|
63
67
|
async def solve(state: TaskState, generate: Generate) -> TaskState:
|
64
68
|
kwargs = state.metadata | state.store._data | params
|
65
69
|
append_system_message(
|
66
|
-
state.messages, ChatMessageSystem(content=content
|
70
|
+
state.messages, ChatMessageSystem(content=format_template(content, kwargs))
|
67
71
|
)
|
68
72
|
return state
|
69
73
|
|
@@ -91,7 +95,36 @@ def user_message(template: str, **params: Any) -> Solver:
|
|
91
95
|
|
92
96
|
async def solve(state: TaskState, generate: Generate) -> TaskState:
|
93
97
|
kwargs = state.metadata | state.store._data | params
|
94
|
-
state.messages.append(ChatMessageUser(content=content
|
98
|
+
state.messages.append(ChatMessageUser(content=format_template(content, kwargs)))
|
99
|
+
return state
|
100
|
+
|
101
|
+
return solve
|
102
|
+
|
103
|
+
|
104
|
+
@solver
|
105
|
+
def assistant_message(template: str, **params: Any) -> Solver:
|
106
|
+
"""Solver which inserts an assistant message into the conversation.
|
107
|
+
|
108
|
+
Assistant message template containing any number of optional `params`.
|
109
|
+
for substitution using the `str.format()` method. All values
|
110
|
+
contained in sample `metadata` and `store` are also automatically
|
111
|
+
included in the `params`.
|
112
|
+
|
113
|
+
Args:
|
114
|
+
template: Template for assistant message.
|
115
|
+
**params: Parameters to fill into the template.
|
116
|
+
|
117
|
+
Returns:
|
118
|
+
A solver that inserts the parameterised assistant message.
|
119
|
+
"""
|
120
|
+
# read template
|
121
|
+
content = resource(template)
|
122
|
+
|
123
|
+
async def solve(state: TaskState, generate: Generate) -> TaskState:
|
124
|
+
kwargs = state.metadata | state.store._data | params
|
125
|
+
state.messages.append(
|
126
|
+
ChatMessageAssistant(content=format_template(content, kwargs))
|
127
|
+
)
|
95
128
|
return state
|
96
129
|
|
97
130
|
return solve
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: inspect_ai
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.68
|
4
4
|
Summary: Framework for large language model evaluations
|
5
5
|
Author: UK AI Security Institute
|
6
6
|
License: MIT License
|
@@ -45,7 +45,7 @@ Requires-Dist: s3fs>=2023
|
|
45
45
|
Requires-Dist: semver>=3.0.0
|
46
46
|
Requires-Dist: shortuuid
|
47
47
|
Requires-Dist: tenacity
|
48
|
-
Requires-Dist: textual
|
48
|
+
Requires-Dist: textual<=1.0.0,>=0.86.2
|
49
49
|
Requires-Dist: typing_extensions>=4.9.0
|
50
50
|
Requires-Dist: zipp>=3.19.1
|
51
51
|
Provides-Extra: dev
|
@@ -63,6 +63,7 @@ Requires-Dist: moto[server]; extra == "dev"
|
|
63
63
|
Requires-Dist: mypy; extra == "dev"
|
64
64
|
Requires-Dist: nbformat; extra == "dev"
|
65
65
|
Requires-Dist: openai; extra == "dev"
|
66
|
+
Requires-Dist: pip; extra == "dev"
|
66
67
|
Requires-Dist: pre-commit; extra == "dev"
|
67
68
|
Requires-Dist: pylint; extra == "dev"
|
68
69
|
Requires-Dist: pytest; extra == "dev"
|
@@ -15,11 +15,11 @@ inspect_ai/_cli/util.py,sha256=rOyKR5p08-04IwJdcjakNXD1Gm-dGFtzaTTx7hyArPE,1402
|
|
15
15
|
inspect_ai/_cli/view.py,sha256=QIL6QP0rJS5kcUzpIqKZMylx-zLAW2JXtjXoNjtxkHo,3113
|
16
16
|
inspect_ai/_display/__init__.py,sha256=t9Xj8FbxvdBNsalnr16U0r3jSTFX9w4yXcUJwb06_6k,405
|
17
17
|
inspect_ai/_display/core/active.py,sha256=6Z0-_6nduUp3UkGLbfYvrvgVVcnYdWLRkpvPOKZ_y5s,1259
|
18
|
-
inspect_ai/_display/core/config.py,sha256=
|
18
|
+
inspect_ai/_display/core/config.py,sha256=aUpPJ86w_vBT50b2yROnsU8rTEcK4445Ru4LFvcPkUM,2148
|
19
19
|
inspect_ai/_display/core/display.py,sha256=zgpNSU39pITyM_Xa41FsGIY5a4JtZbv7bDy7hjmJCM8,3057
|
20
20
|
inspect_ai/_display/core/footer.py,sha256=wMe4P-4Bhx4WV01dUW12o9-KBAoD2CSCvWZ-9_CMSNU,805
|
21
21
|
inspect_ai/_display/core/group.py,sha256=z8CIwQ-8Mm9adQ8JDuMjw94ih9GfymU5s-1qnbKoEPs,2871
|
22
|
-
inspect_ai/_display/core/panel.py,sha256=
|
22
|
+
inspect_ai/_display/core/panel.py,sha256=gyGYnsqHurUkUC51MyVuh3oGAtUEaFtyRwewOB6pDts,3828
|
23
23
|
inspect_ai/_display/core/progress.py,sha256=2dIRbpJGUx-Wz89ZABoACBGvJEGWJ3SDrFsuCrrpL7w,4198
|
24
24
|
inspect_ai/_display/core/results.py,sha256=aFLmG1Ij0fxYk2848QgQlesfMeRdHVEg_W9esmeL_S0,7355
|
25
25
|
inspect_ai/_display/core/rich.py,sha256=GPzc-0PWZVOPWxnjfQmNSK66uZXc3x8joz4ethgv_4M,2729
|
@@ -27,22 +27,22 @@ inspect_ai/_display/core/textual.py,sha256=kzMTt8ijrodwhDB5V50pP2IBhnUCusVbP86Ty
|
|
27
27
|
inspect_ai/_display/plain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
28
28
|
inspect_ai/_display/plain/display.py,sha256=fGITQj6w4-2A4zNMKFW32wdyVB5JpK-LsXMbFckzXTA,6743
|
29
29
|
inspect_ai/_display/rich/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
|
-
inspect_ai/_display/rich/display.py,sha256=
|
31
|
-
inspect_ai/_display/textual/app.py,sha256=
|
30
|
+
inspect_ai/_display/rich/display.py,sha256=aJiuaEL8aEdOvdkKWobhlDuMr2X2j1M_SiAezPd3k-A,10920
|
31
|
+
inspect_ai/_display/textual/app.py,sha256=PyDkwzyEHLjObvwB3PtPlP0CSU9L7frYb1eoQ5MhnR0,15991
|
32
32
|
inspect_ai/_display/textual/app.tcss,sha256=ymx47Y2fAbce4vPOrpeij1p9qwSipT7Dd6fSxCTknT8,249
|
33
33
|
inspect_ai/_display/textual/display.py,sha256=zTG8k67iT-xq1H8CVwtqZdvuo_O2hsgh4q4y8EKRkf8,2027
|
34
34
|
inspect_ai/_display/textual/theme.py,sha256=SVf2UhQVuEOzzNx1Pl2bqLrofw13ykQKAVnevUpJBYs,588
|
35
35
|
inspect_ai/_display/textual/widgets/clock.py,sha256=pxXQOtadf6qdNMLQh_D3bx3SIPoBGcKev_etZ69ZRUE,1614
|
36
36
|
inspect_ai/_display/textual/widgets/console.py,sha256=lp5lbT9erPjxE1NWzvuJ5Bj8mN2ZZSBTgKQWHinMKgA,1590
|
37
|
-
inspect_ai/_display/textual/widgets/footer.py,sha256=
|
37
|
+
inspect_ai/_display/textual/widgets/footer.py,sha256=_l9BgJWXX_vXO2qrSIkeUPZzniYHa0qXaiSiy6479Tg,1106
|
38
38
|
inspect_ai/_display/textual/widgets/port_mappings.py,sha256=mxQJGYeZh1aXNmW5z-Ukss7Zwul5qfH5CqtvTLl0BAU,2974
|
39
39
|
inspect_ai/_display/textual/widgets/samples.py,sha256=rBaBP__MbKEX18B00nQCiLrWO9MmtSn0arh-zL90c8I,18206
|
40
|
-
inspect_ai/_display/textual/widgets/sandbox.py,sha256=
|
41
|
-
inspect_ai/_display/textual/widgets/task_detail.py,sha256=
|
42
|
-
inspect_ai/_display/textual/widgets/tasks.py,sha256=
|
40
|
+
inspect_ai/_display/textual/widgets/sandbox.py,sha256=_Ivpba2oIxs_Lw2Pic7BRoHeVu9ibaGPFhiyfzbcc9E,1146
|
41
|
+
inspect_ai/_display/textual/widgets/task_detail.py,sha256=aaI626vbvieGbZtOKWmnaNWLivFMjnlDt4oqeTmKEZg,8389
|
42
|
+
inspect_ai/_display/textual/widgets/tasks.py,sha256=2cqYJ3PGn4F-riSdB3Fp1H5YCWQ-PVh7L8OrLCPSiso,11283
|
43
43
|
inspect_ai/_display/textual/widgets/titlebar.py,sha256=Gh_vnsco_1lStPb34TXM9MZJffjy83-1ekoRzUQF_6w,2144
|
44
44
|
inspect_ai/_display/textual/widgets/toggle.py,sha256=ToYs-S4n90yuxWcAW2OTg6AbRf0GhSz61XxfhE6XZ3Y,895
|
45
|
-
inspect_ai/_display/textual/widgets/transcript.py,sha256=
|
45
|
+
inspect_ai/_display/textual/widgets/transcript.py,sha256=KrDwl5SYMGyIFWvLQQ8Yh_-BAbKdZjxIWqkvPBb-KSI,11138
|
46
46
|
inspect_ai/_eval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
47
|
inspect_ai/_eval/context.py,sha256=WHXM4IdkPD2edp58qCUjzpFguPDM_RcoqTJdRGccdDE,1344
|
48
48
|
inspect_ai/_eval/eval.py,sha256=kAOFSMid3FJDXVuqRGPnORcx78nq6GqJDH_UF4ESgEA,36667
|
@@ -60,10 +60,10 @@ inspect_ai/_eval/task/generate.py,sha256=lm066fbZOX7o3NB57rbwwec-ZaIFE745fiuacPC
|
|
60
60
|
inspect_ai/_eval/task/images.py,sha256=Tg3I7d7ThCYP_Lf-H5JA7xH-sH2W-m1c1YfswDwplt4,3949
|
61
61
|
inspect_ai/_eval/task/log.py,sha256=N5FJ8cx_3Y0DFFqd6IgjPnsOWixx6Hvc-Dc_1WEVSeY,9617
|
62
62
|
inspect_ai/_eval/task/results.py,sha256=x4weYRK2XGowfBG3f2msOeZQ_pxh230HTlw6kps33jw,17925
|
63
|
-
inspect_ai/_eval/task/run.py,sha256=
|
63
|
+
inspect_ai/_eval/task/run.py,sha256=Rek-l7d6mVz1WCdp8VEpUl2e1jA4IaBqcdus5e1Zwjk,35563
|
64
64
|
inspect_ai/_eval/task/rundir.py,sha256=QXetLfqi1lRo-PcIuu7maQpVO57c2ebnsjfZk0lsAFk,2001
|
65
65
|
inspect_ai/_eval/task/sandbox.py,sha256=hNZnk3O80VQjAgy9YzUjjrGKOscSaOY7gZXMMz4tZvw,7183
|
66
|
-
inspect_ai/_eval/task/task.py,sha256=
|
66
|
+
inspect_ai/_eval/task/task.py,sha256=G4M38lvs3yjOWFX3w_q63CpB9R-AnGhjg9A_US7pI-k,14343
|
67
67
|
inspect_ai/_eval/task/util.py,sha256=NG7YzVaiSgiH8xYGT2LeeVfaz4GIhXgXZYnU2SeDCO8,1837
|
68
68
|
inspect_ai/_util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
69
69
|
inspect_ai/_util/_async.py,sha256=K5lVPKwl25JkLkcXfb0m3aZ-RJ4O3fog5HQm5EqbjM4,981
|
@@ -82,7 +82,7 @@ inspect_ai/_util/entrypoints.py,sha256=FnK32vIRvSFdH80l5H0o6oiJif837oeDrl5N10_P-
|
|
82
82
|
inspect_ai/_util/environ.py,sha256=lVaAvMyBIAPj4b64Zqhlz-ft35z7j-uPnvEesvL0c4g,618
|
83
83
|
inspect_ai/_util/error.py,sha256=NIYCkOXGMUF1_zSHpeTBKzBb79_llQZvvf0TGYHO57Y,2333
|
84
84
|
inspect_ai/_util/file.py,sha256=hvAqR1WSdZLHP_C8U8LHXmP82rfZBt9Pw9peHKg2fGs,12669
|
85
|
-
inspect_ai/_util/format.py,sha256=
|
85
|
+
inspect_ai/_util/format.py,sha256=4TQ1FE4-TDNlHcr0r6dfsjv84sV11C9ouTfi55W-yIs,3323
|
86
86
|
inspect_ai/_util/git.py,sha256=nHCtZMLjMyFjSC_9bksBXeFz4xqxZfY6lfXr_qg2n1E,760
|
87
87
|
inspect_ai/_util/hash.py,sha256=Kkfwqy-w5H30qEv6KBbDQDSdyLRQ1_FU2vwktP5aEuQ,314
|
88
88
|
inspect_ai/_util/hooks.py,sha256=8QnHCQQY_2XMYPkiPvixUgFY0E_niZvQhQDMI-eCdhM,4353
|
@@ -138,10 +138,8 @@ inspect_ai/_view/www/.vscode/extensions.json,sha256=E73RWLzcoyeluE_ijGxaNSOK9xC0
|
|
138
138
|
inspect_ai/_view/www/.vscode/settings.json,sha256=g5hrVnMaYxM06JpiJD2EuE2xjcbF6xNAtL2fuKgG1-8,200
|
139
139
|
inspect_ai/_view/www/dist/index.html,sha256=gpdu6SR-SOH9EWx15cCWHzujMZujnZR5tRlEfROJg2A,997
|
140
140
|
inspect_ai/_view/www/dist/assets/favicon.svg,sha256=b9AHYZaO2zBzeKH6G4PwXZMGGW_UxY0omKHam-c9MAs,1508
|
141
|
-
inspect_ai/_view/www/dist/assets/index.css,sha256=
|
142
|
-
inspect_ai/_view/www/dist/assets/index.js,sha256=
|
143
|
-
inspect_ai/_view/www/node_modules/flatted/python/flatted.py,sha256=ke8FuEflns-WlphCcQ9CC0qJqWqX3zEEuak74o6rgE8,3879
|
144
|
-
inspect_ai/_view/www/node_modules/flatted/python/test.py,sha256=uTOn6HJd7KeY_PTRvvufv60dmvON3KWp3nnqACj8IlA,2129
|
141
|
+
inspect_ai/_view/www/dist/assets/index.css,sha256=Igio8rHcaIaA6wnwH3bQhr10yXHD_K9idKsALnb-b7A,893895
|
142
|
+
inspect_ai/_view/www/dist/assets/index.js,sha256=74oJ-IiBQ1HnwzGQIlUweY18hYZBbNRhGVJsuyb3_Rc,2631819
|
145
143
|
inspect_ai/_view/www/src/App.tsx,sha256=EvpnQfpWugx4PJivUN8GSUo8RXI4sHAFiIfacVXZ1Z0,28854
|
146
144
|
inspect_ai/_view/www/src/AppErrorBoundary.tsx,sha256=RyhZWbIMZj1QeUOUUXh9hUFvq6LoDEoHuTY0giswmL0,1169
|
147
145
|
inspect_ai/_view/www/src/constants.ts,sha256=UIxGbDscs61CcOQLQiW6MsZAU1uupSYNVLGxx2pp14A,1169
|
@@ -267,7 +265,7 @@ inspect_ai/_view/www/src/samples/descriptor/score/PassFailScoreDescriptor.module
|
|
267
265
|
inspect_ai/_view/www/src/samples/descriptor/score/PassFailScoreDescriptor.tsx,sha256=oTVPJGvuyuYVeyCXUWxV2rtp5Q2sapfRSGzazZDPcog,2058
|
268
266
|
inspect_ai/_view/www/src/samples/descriptor/score/ScoreDescriptor.tsx,sha256=Tsw9vB0Cj4VnAajM5RIBbL0BCU2bRYxuuiCz8Ri-I1k,2711
|
269
267
|
inspect_ai/_view/www/src/samples/error/FlatSampleErrorView.module.css,sha256=fbvWr5uM_m3Vsiqs_KMZa2zoUOSDwf328jINqlOUaiA,447
|
270
|
-
inspect_ai/_view/www/src/samples/error/FlatSampleErrorView.tsx,sha256=
|
268
|
+
inspect_ai/_view/www/src/samples/error/FlatSampleErrorView.tsx,sha256=5-pFNvFqDZdRa5aeZJEj2VmpZgaJtFUYcLTFzNk6I4w,599
|
271
269
|
inspect_ai/_view/www/src/samples/error/SampleErrorView.module.css,sha256=OXmi3sjMLPWZvQXBT9OXB68nkJcackSiHbI5Q2dXAKM,313
|
272
270
|
inspect_ai/_view/www/src/samples/error/SampleErrorView.tsx,sha256=qyd4S5wYCUqRXgEv3aknn9sTpQhNEnM6zWlBC1_UEu0,775
|
273
271
|
inspect_ai/_view/www/src/samples/error/error.ts,sha256=_CVKTrACg18Xbhr7h_AL41RlMCmZ4V2IHLNMu1FtHIc,376
|
@@ -287,11 +285,11 @@ inspect_ai/_view/www/src/samples/sample-tools/SelectScorer.module.css,sha256=20R
|
|
287
285
|
inspect_ai/_view/www/src/samples/sample-tools/SelectScorer.tsx,sha256=RncIUfDhrWQOI2jxi2WGijgUaLkheiBnYLdjSInUd34,4300
|
288
286
|
inspect_ai/_view/www/src/samples/sample-tools/SortFilter.module.css,sha256=7uNUEoHtsNxN6P5WFZQvoEzd55n9rsgmfhWCicFh1_c,106
|
289
287
|
inspect_ai/_view/www/src/samples/sample-tools/SortFilter.tsx,sha256=AvK9wcE7O4-q5Z_G-YEsxAprI_tUuqBIgc_KyYCZNYY,4580
|
290
|
-
inspect_ai/_view/www/src/samples/sample-tools/filters.ts,sha256=
|
288
|
+
inspect_ai/_view/www/src/samples/sample-tools/filters.ts,sha256=5QiNwaZOuYSZKGOn0XeRYvWyLB7AM3lbMnDSkGfgpA4,9529
|
291
289
|
inspect_ai/_view/www/src/samples/sample-tools/sample-filter/SampleFilter.module.css,sha256=PPdynh09MuEz0BMhHSximTj_BLNNAEQQQB8TH4amd3A,199
|
292
|
-
inspect_ai/_view/www/src/samples/sample-tools/sample-filter/SampleFilter.tsx,sha256=
|
293
|
-
inspect_ai/_view/www/src/samples/sample-tools/sample-filter/completions.ts,sha256=
|
294
|
-
inspect_ai/_view/www/src/samples/sample-tools/sample-filter/language.ts,sha256=
|
290
|
+
inspect_ai/_view/www/src/samples/sample-tools/sample-filter/SampleFilter.tsx,sha256=3McvKSdLwzPrEFVe-XD9XvmHOEuWOaakdXNUlmUn76U,8326
|
291
|
+
inspect_ai/_view/www/src/samples/sample-tools/sample-filter/completions.ts,sha256=wGpWvlKoyl6xj5giVQwvn4p5pRbM2RRFjWrKQsTmCIE,10931
|
292
|
+
inspect_ai/_view/www/src/samples/sample-tools/sample-filter/language.ts,sha256=R4rI9o1T5IFhqLxeq3ivlCFjjP7dTuBZ3FwigDp1L5o,904
|
295
293
|
inspect_ai/_view/www/src/samples/sample-tools/sample-filter/tokenize.ts,sha256=tD45vb1d-8XSV0RmGbdJijk92KuC555ksBsVD43uxCA,2802
|
296
294
|
inspect_ai/_view/www/src/samples/scores/SampleScoreView.module.css,sha256=OJY2qo_1xj7Z4eaeKqxJc0tHDJppTYwfi7MM69U8feI,749
|
297
295
|
inspect_ai/_view/www/src/samples/scores/SampleScoreView.tsx,sha256=uOsYK5aLZ6E_5jFfu05LVMYCacGqEI3LblNcLckGTF4,4880
|
@@ -303,7 +301,7 @@ inspect_ai/_view/www/src/samples/transcript/InfoEventView.module.css,sha256=UDRm
|
|
303
301
|
inspect_ai/_view/www/src/samples/transcript/InfoEventView.tsx,sha256=U2Kfx8zB-toNo8nYUK6PWR0p4AIxVcVdgArXlhd6BHE,1590
|
304
302
|
inspect_ai/_view/www/src/samples/transcript/InputEventView.tsx,sha256=OBsut_y_u0HQhHs72OjeopezPiesxuGD_BuwrTWeU10,1323
|
305
303
|
inspect_ai/_view/www/src/samples/transcript/LoggerEventView.module.css,sha256=oMdWBmoTd9l9_9czUSjrIbxp1ycAgZVszBTjpgQWXf0,103
|
306
|
-
inspect_ai/_view/www/src/samples/transcript/LoggerEventView.tsx,sha256=
|
304
|
+
inspect_ai/_view/www/src/samples/transcript/LoggerEventView.tsx,sha256=m_LvLXD_MNtu8qhDdSK-wHPwQm98JwHxn2Q4TKhi308,959
|
307
305
|
inspect_ai/_view/www/src/samples/transcript/ModelEventView.module.css,sha256=vdBXWkBdX1RuAFCtve7_fx9ZpqSdXxnQLIfc-MSkyxg,575
|
308
306
|
inspect_ai/_view/www/src/samples/transcript/ModelEventView.tsx,sha256=BEop5JpqUOVYKL6g5886CPDgnRG9T-7vITEtie1UgQM,6022
|
309
307
|
inspect_ai/_view/www/src/samples/transcript/SampleInitEventView.module.css,sha256=kB4a3g7RveznFGsPmQajJRuNWRrpDyK2DgztvUMIYZQ,275
|
@@ -314,11 +312,11 @@ inspect_ai/_view/www/src/samples/transcript/ScoreEventView.module.css,sha256=YWH
|
|
314
312
|
inspect_ai/_view/www/src/samples/transcript/ScoreEventView.tsx,sha256=-GABQI9E8aRBssWjnZpH6YX2t49LxDHirmascWd6k1M,3086
|
315
313
|
inspect_ai/_view/www/src/samples/transcript/StepEventView.tsx,sha256=g6T-DE11CcX197uDOq7P9GYVWjbHoLbCkSEMFd7LVFc,4300
|
316
314
|
inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.module.css,sha256=L6u8qUl3_V9cYf36zT1NOvXEJ5dqoO5JlAgoioMguR8,274
|
317
|
-
inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.tsx,sha256=
|
315
|
+
inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.tsx,sha256=ZHMx3FfE-ey1EwTY5MS5Cs4U69CDBil1g5FDboDYGBs,4119
|
318
316
|
inspect_ai/_view/www/src/samples/transcript/ToolEventView.module.css,sha256=oCnF6MeppCK58OYVgJafv7WAZCRbKqfuTzOMROKgsTk,112
|
319
317
|
inspect_ai/_view/www/src/samples/transcript/ToolEventView.tsx,sha256=RG-fPaHjcgTCe5yRyjMRBmrENcBeN5QRR6VeIIpyODk,2619
|
320
318
|
inspect_ai/_view/www/src/samples/transcript/TranscriptView.module.css,sha256=zExatTZIn6UEC98D1uNGifN2EJhLF9RyvA0XQxNbwXA,663
|
321
|
-
inspect_ai/_view/www/src/samples/transcript/TranscriptView.tsx,sha256=
|
319
|
+
inspect_ai/_view/www/src/samples/transcript/TranscriptView.tsx,sha256=TelVbsN8waIyyImh7BxVfPXdCAQB0J-KWPvx_JZ0tqs,11074
|
322
320
|
inspect_ai/_view/www/src/samples/transcript/types.ts,sha256=Wh20fJ6gBS-1GjAfcfoypqu6-5ZVPG7IxSOFsUT5RZY,1018
|
323
321
|
inspect_ai/_view/www/src/samples/transcript/event/EventNav.module.css,sha256=EV1AcXtub8KD9Ao0iKi9eUc8OwZ2F3aSyWvOHY4PmqY,96
|
324
322
|
inspect_ai/_view/www/src/samples/transcript/event/EventNav.tsx,sha256=uZ0oMAScgZZtjxngIXPMQvnGvtCWNd182aaVywr8y4A,868
|
@@ -377,8 +375,8 @@ inspect_ai/_view/www/src/workspace/navbar/ResultsPanel.module.css,sha256=-nGcKCV
|
|
377
375
|
inspect_ai/_view/www/src/workspace/navbar/ResultsPanel.tsx,sha256=vxoJsuK84X5uLLsgsGLPIywUZYYRZkmPnU9wmXMcfKU,4574
|
378
376
|
inspect_ai/_view/www/src/workspace/navbar/SecondaryBar.module.css,sha256=c_nrfkns3HLqojutb9himHaKqGZlFQt375f81p6vWO4,353
|
379
377
|
inspect_ai/_view/www/src/workspace/navbar/SecondaryBar.tsx,sha256=lasEuHmHgS-O4yPhXPsyMR9jG4T8fM5x9NRLHX5bhpc,5090
|
380
|
-
inspect_ai/_view/www/src/workspace/navbar/StatusPanel.module.css,sha256=
|
381
|
-
inspect_ai/_view/www/src/workspace/navbar/StatusPanel.tsx,sha256=
|
378
|
+
inspect_ai/_view/www/src/workspace/navbar/StatusPanel.module.css,sha256=V8GzDeWpFOnEE0Lye02USjDg99cLQ98s6PtcUSTIGDI,314
|
379
|
+
inspect_ai/_view/www/src/workspace/navbar/StatusPanel.tsx,sha256=RLUq_5VvJ5L6lC8PY0w-CHe5dgx5Sq6bRu8quWhJ4YY,1308
|
382
380
|
inspect_ai/_view/www/src/workspace/sidebar/EvalStatus.module.css,sha256=c0PCUFyxsNhUJPsndc1kD7TLCUWcGlCcfSt4D_6wX0k,219
|
383
381
|
inspect_ai/_view/www/src/workspace/sidebar/EvalStatus.tsx,sha256=BAFNPWvy_bu6z6uJ-hZ87iGyTMXjLeCzjK_71E8sg-I,1731
|
384
382
|
inspect_ai/_view/www/src/workspace/sidebar/LogDirectoryTitleView.module.css,sha256=iEIfdsS4cJ2Q3duaxA9_xliaXeqrAf7G57J1CXlK70E,83
|
@@ -450,33 +448,33 @@ inspect_ai/model/_chat_message.py,sha256=Y0X1b1uaZhw0brSGfXVU7lADrXh2nR6iSWgBR_m
|
|
450
448
|
inspect_ai/model/_conversation.py,sha256=cd5ru6lD2xsfkdB9lfWYPbuvzdqjv9geOVFl2HXSad8,2163
|
451
449
|
inspect_ai/model/_generate_config.py,sha256=jKsb5qpiV4o2Wdkaez6EzSHhnUc3_j4dTZIOzV9P6Sc,8976
|
452
450
|
inspect_ai/model/_image.py,sha256=kpO2Bn_-c-dK80HuPOPH1eSNmcoc39kofwf4yTTiTFE,477
|
453
|
-
inspect_ai/model/_model.py,sha256=
|
451
|
+
inspect_ai/model/_model.py,sha256=7ByKcGdmrmpI3BZlNXXLVN-xjyGbaKObHDRS7ZJMBAw,42388
|
454
452
|
inspect_ai/model/_model_call.py,sha256=r6ObHZwm7jy1qX2qxvAP6iPV3BhdGThL-VH-QEawQhA,2017
|
455
453
|
inspect_ai/model/_model_output.py,sha256=QM2K4zVqUumfhAFzDkvxb60qT4DbCvPjqva0WfJ4gWU,7321
|
456
454
|
inspect_ai/model/_openai.py,sha256=Z17GAEU-Zraqy-wRcY3KGC34gN1YvRoy0hdYZpt-BjI,13948
|
457
455
|
inspect_ai/model/_reasoning.py,sha256=i1xUArctTefcvmwxcU4kK26PvgULYvvMn25P1GQJP08,440
|
458
456
|
inspect_ai/model/_registry.py,sha256=Cr2y32EqLnOqLbSWoXHVK4ivTTzCUhJuACxoTyPt8kY,2032
|
459
457
|
inspect_ai/model/_render.py,sha256=rWypNUjgrH4NGp0r-ESAze9gZz7lYNjheEP438vRYZE,922
|
460
|
-
inspect_ai/model/_providers/anthropic.py,sha256=
|
461
|
-
inspect_ai/model/_providers/azureai.py,sha256=
|
462
|
-
inspect_ai/model/_providers/bedrock.py,sha256=
|
463
|
-
inspect_ai/model/_providers/cloudflare.py,sha256=
|
464
|
-
inspect_ai/model/_providers/goodfire.py,sha256=
|
465
|
-
inspect_ai/model/_providers/google.py,sha256=
|
458
|
+
inspect_ai/model/_providers/anthropic.py,sha256=VLBSOSbjqv4hMBPVAy1PzQ7GBPVaWxB00SImZbTuPkk,25147
|
459
|
+
inspect_ai/model/_providers/azureai.py,sha256=L0aZrx-mcRLZWXmNQG2gEmGYVQ7QtLF-o7hvM9dbMeY,14162
|
460
|
+
inspect_ai/model/_providers/bedrock.py,sha256=bNQq5Z9w9fLq3SxOKFDuopuLWi0QTDcSE9ppzX51eX0,23482
|
461
|
+
inspect_ai/model/_providers/cloudflare.py,sha256=OOpU4EE97s7M6u_qk7uuCILSLU84DoCVrUNsa-qPbmA,4228
|
462
|
+
inspect_ai/model/_providers/goodfire.py,sha256=L5RHmpXcp7Se30hJUjK0jES8ckGhxOKDM5xYfOjBcIU,8811
|
463
|
+
inspect_ai/model/_providers/google.py,sha256=CVOWm5Q3n8AAIhCz-5sKJ1o-b1v3Vor5UvC8oRYGiU8,23750
|
466
464
|
inspect_ai/model/_providers/grok.py,sha256=dS88ueXiD-kHAFr0jCoTpTGLGa2VsUlB_TFP8L_2lBM,995
|
467
|
-
inspect_ai/model/_providers/groq.py,sha256=
|
468
|
-
inspect_ai/model/_providers/hf.py,sha256=
|
465
|
+
inspect_ai/model/_providers/groq.py,sha256=aVaWrGn6oqWopNuh8WfvbGux3P0tcRQg_uq8DdTJ2Ng,10042
|
466
|
+
inspect_ai/model/_providers/hf.py,sha256=KIHcfiRQ8XQEQBi7UzCIulZh1Ku5sCjWaa1EznGPHzU,17605
|
469
467
|
inspect_ai/model/_providers/llama_cpp_python.py,sha256=i2I56Damgb8VDhMuPxPca24fVhlajDHzxCTYFnT41uI,702
|
470
|
-
inspect_ai/model/_providers/mistral.py,sha256=
|
468
|
+
inspect_ai/model/_providers/mistral.py,sha256=afhEAfsR4QeBigrINU3Dgf5EZp5zNvkk4Ub-Z1SigcU,15329
|
471
469
|
inspect_ai/model/_providers/mockllm.py,sha256=gL9f-f5TOdE4a0GVENr3cOIIp2kv8zVXWPZ608rouGk,2440
|
472
470
|
inspect_ai/model/_providers/ollama.py,sha256=mBPSxaEkiH_RnlHKqOyFBlXObQhc2dfjL-rCKrea5u8,675
|
473
|
-
inspect_ai/model/_providers/openai.py,sha256=
|
471
|
+
inspect_ai/model/_providers/openai.py,sha256=kD3ypqlPnqA1YdF3zQWzpHOHkF_8OTGMmS86ZqarCjI,11731
|
474
472
|
inspect_ai/model/_providers/openai_o1.py,sha256=kiCzFYPBzUR-4U_AcQCoFpYRg-RUiWL6m2_XhK0JhW0,12262
|
475
473
|
inspect_ai/model/_providers/openrouter.py,sha256=5G8qS8xA7Gy4IGodEJd04xwjsN-O_as4oeU8DTsKB5s,2932
|
476
474
|
inspect_ai/model/_providers/providers.py,sha256=PlzYzv-muCSkmb8p04R0cNHS6DyUWPtB4c0hxW6sWUs,6407
|
477
475
|
inspect_ai/model/_providers/together.py,sha256=0KpFLKbnP_a_AH7VN18eLtlm7kGvJkBIura9drdc7BU,9483
|
478
|
-
inspect_ai/model/_providers/vertex.py,sha256
|
479
|
-
inspect_ai/model/_providers/vllm.py,sha256=
|
476
|
+
inspect_ai/model/_providers/vertex.py,sha256=-4ArhaW_H_KGj8P0HdmDtyKRwXdR3-UuZurI7lzO0tI,16531
|
477
|
+
inspect_ai/model/_providers/vllm.py,sha256=RGKMkY9nlScoVx0RTiUCl4usDBSughVsGJjPNQDPDaQ,14230
|
480
478
|
inspect_ai/model/_providers/util/__init__.py,sha256=zWqGXUZLcVBr001JpSe81_3QXnBcS7hdRtIpekIwjZ0,707
|
481
479
|
inspect_ai/model/_providers/util/chatapi.py,sha256=h8GePQ53VgPpn75QQJfoO5IMUMiTq3heMnjKC3vj13c,3659
|
482
480
|
inspect_ai/model/_providers/util/hf_handler.py,sha256=zUGLTlLSSRqvYv2odIbgEEkd4Fm_5LMxVFDWXm3D7Qk,7622
|
@@ -503,7 +501,7 @@ inspect_ai/scorer/_reducer/__init__.py,sha256=ntoSXbbBia6gN3Uk3tQFQ8lSt8IBSRvwM5
|
|
503
501
|
inspect_ai/scorer/_reducer/reducer.py,sha256=5EKER24GHJnodE24C_quRrmbWpL56AeEovoLe5W9XKA,11859
|
504
502
|
inspect_ai/scorer/_reducer/registry.py,sha256=aB1fyv8DTiwfnleGc7_zXnGI9krfmWyaXx-FJfA7zw4,5349
|
505
503
|
inspect_ai/scorer/_reducer/types.py,sha256=R4ALTh4fsjzSsHIKY3ItWylQiRyYAtdGnxCvisYlync,462
|
506
|
-
inspect_ai/solver/__init__.py,sha256=
|
504
|
+
inspect_ai/solver/__init__.py,sha256=4pbKoEoUSBrauhpMPO2hY43FDOJe0GTuVKpD5zchoQY,3509
|
507
505
|
inspect_ai/solver/_basic_agent.py,sha256=pYZq5MmXeRaFB-aRpNrdRrFaAPXrTY6etPtgmm0bXB0,10398
|
508
506
|
inspect_ai/solver/_chain.py,sha256=eAoxiALf8fvOujzjCWvqHDA7YpEaKC8s56AZxKWNLcs,2202
|
509
507
|
inspect_ai/solver/_critique.py,sha256=8GhB9OEsDCOqS6_cHAaTWNNeAimjV3JM_xXr8k1n3XQ,3457
|
@@ -511,7 +509,7 @@ inspect_ai/solver/_fork.py,sha256=XKBDwZXRiWkxK_uFtQs-RDJb9gbL6JvfOr_5LtAgS-4,28
|
|
511
509
|
inspect_ai/solver/_limit.py,sha256=zaZseJgjbJaBnGdXQHQ5MpU4tzgUyD8FzLvJMGDk3jA,1122
|
512
510
|
inspect_ai/solver/_multiple_choice.py,sha256=uYr3E6LA6Gv5ktqdmQJX6rYxbc6maTy3ZjyZXabdBug,11298
|
513
511
|
inspect_ai/solver/_plan.py,sha256=Dp1DDTtGe2iTo8CYWKqCOdfBFfTK_0wi2JzIr6qrikI,7042
|
514
|
-
inspect_ai/solver/_prompt.py,sha256=
|
512
|
+
inspect_ai/solver/_prompt.py,sha256=jqJ15ysz5_Wn5kadthsZDJWzSoFA7q3IMqSvYW475e8,4901
|
515
513
|
inspect_ai/solver/_solver.py,sha256=S3C82Ttan7hGz2yl1OAwjH_GxhwhJVXPnAkHV3OrEEI,9081
|
516
514
|
inspect_ai/solver/_task_state.py,sha256=qxcAUL4MUGUuu-SqF8fv2YbUVmZ9VzJTIfeiYl71iXA,16323
|
517
515
|
inspect_ai/solver/_transcript.py,sha256=gkH9CC5gYbz7ZzrFD0TkjtKYjWxQP5EthJOkq8NXDOc,1049
|
@@ -523,7 +521,7 @@ inspect_ai/solver/_bridge/patch.py,sha256=I2yR1omnaH_cdk5vqx-TavOFXPUbOY57fZUg6K
|
|
523
521
|
inspect_ai/solver/_human_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
524
522
|
inspect_ai/solver/_human_agent/agent.py,sha256=xasd9VaVN5BnQ1DgU6Xv5K1IPh1qvFUZCcHk_cc7Cxc,3183
|
525
523
|
inspect_ai/solver/_human_agent/install.py,sha256=_tp6MpJX6g3dBWp2l2shLfgSiVfAa38F_oRdmBZSPMg,6789
|
526
|
-
inspect_ai/solver/_human_agent/panel.py,sha256=
|
524
|
+
inspect_ai/solver/_human_agent/panel.py,sha256=PplPZx7Br6MXLhbNnbE-jetv26ne_f-zG8ZL2hUbSho,8240
|
527
525
|
inspect_ai/solver/_human_agent/service.py,sha256=hXe3LDb-1lQH_tAMNMWR20eCRYdg9TJYoUvZyHPZBgU,1430
|
528
526
|
inspect_ai/solver/_human_agent/state.py,sha256=Qqtxhr6nXwd6FQS4zfHFsMEsxmRL563E5MBMUaJd47E,1744
|
529
527
|
inspect_ai/solver/_human_agent/view.py,sha256=x8MHiEchUwKykpjerG126UDqiymOGPziTerfS0_H-Ts,760
|
@@ -619,9 +617,9 @@ inspect_ai/util/_sandbox/docker/internal.py,sha256=fATyk2pdtjSl-D0VPT4dmkXV-gOc5
|
|
619
617
|
inspect_ai/util/_sandbox/docker/prereqs.py,sha256=0j6_OauBBnVlpBleADcZavIAAQZy4WewVjbRn9c0stg,3355
|
620
618
|
inspect_ai/util/_sandbox/docker/service.py,sha256=hhHIWH1VDFLwehdGd19aUBD_VKfDO3GCPxpw1HSwVQk,2437
|
621
619
|
inspect_ai/util/_sandbox/docker/util.py,sha256=CuYrt9iyLjPSVDEs_oGTas8wAwMwQc_45dZa2g3E4cY,2847
|
622
|
-
inspect_ai-0.3.
|
623
|
-
inspect_ai-0.3.
|
624
|
-
inspect_ai-0.3.
|
625
|
-
inspect_ai-0.3.
|
626
|
-
inspect_ai-0.3.
|
627
|
-
inspect_ai-0.3.
|
620
|
+
inspect_ai-0.3.68.dist-info/LICENSE,sha256=xZPCr8gTiFIerrA_DRpLAbw-UUftnLFsHxKeW-NTtq8,1081
|
621
|
+
inspect_ai-0.3.68.dist-info/METADATA,sha256=HQ8Pd2TbpMviMgRkDDYOxIvF6KEJz1omDv_hP7g6E3o,4785
|
622
|
+
inspect_ai-0.3.68.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
623
|
+
inspect_ai-0.3.68.dist-info/entry_points.txt,sha256=WGGLmzTzDWLzYfiyovSY6oEKuf-gqzSDNOb5V-hk3fM,54
|
624
|
+
inspect_ai-0.3.68.dist-info/top_level.txt,sha256=Tp3za30CHXJEKLk8xLe9qGsW4pBzJpEIOMHOHNCXiVo,11
|
625
|
+
inspect_ai-0.3.68.dist-info/RECORD,,
|
@@ -1,149 +0,0 @@
|
|
1
|
-
# ISC License
|
2
|
-
#
|
3
|
-
# Copyright (c) 2018-2021, Andrea Giammarchi, @WebReflection
|
4
|
-
#
|
5
|
-
# Permission to use, copy, modify, and/or distribute this software for any
|
6
|
-
# purpose with or without fee is hereby granted, provided that the above
|
7
|
-
# copyright notice and this permission notice appear in all copies.
|
8
|
-
#
|
9
|
-
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
10
|
-
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
11
|
-
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
12
|
-
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
13
|
-
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
14
|
-
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
15
|
-
# PERFORMANCE OF THIS SOFTWARE.
|
16
|
-
|
17
|
-
import json as _json
|
18
|
-
|
19
|
-
class _Known:
|
20
|
-
def __init__(self):
|
21
|
-
self.key = []
|
22
|
-
self.value = []
|
23
|
-
|
24
|
-
class _String:
|
25
|
-
def __init__(self, value):
|
26
|
-
self.value = value
|
27
|
-
|
28
|
-
|
29
|
-
def _array_keys(value):
|
30
|
-
keys = []
|
31
|
-
i = 0
|
32
|
-
for _ in value:
|
33
|
-
keys.append(i)
|
34
|
-
i += 1
|
35
|
-
return keys
|
36
|
-
|
37
|
-
def _object_keys(value):
|
38
|
-
keys = []
|
39
|
-
for key in value:
|
40
|
-
keys.append(key)
|
41
|
-
return keys
|
42
|
-
|
43
|
-
def _is_array(value):
|
44
|
-
return isinstance(value, list) or isinstance(value, tuple)
|
45
|
-
|
46
|
-
def _is_object(value):
|
47
|
-
return isinstance(value, dict)
|
48
|
-
|
49
|
-
def _is_string(value):
|
50
|
-
return isinstance(value, str)
|
51
|
-
|
52
|
-
def _index(known, input, value):
|
53
|
-
input.append(value)
|
54
|
-
index = str(len(input) - 1)
|
55
|
-
known.key.append(value)
|
56
|
-
known.value.append(index)
|
57
|
-
return index
|
58
|
-
|
59
|
-
def _loop(keys, input, known, output):
|
60
|
-
for key in keys:
|
61
|
-
value = output[key]
|
62
|
-
if isinstance(value, _String):
|
63
|
-
_ref(key, input[int(value.value)], input, known, output)
|
64
|
-
|
65
|
-
return output
|
66
|
-
|
67
|
-
def _ref(key, value, input, known, output):
|
68
|
-
if _is_array(value) and not value in known:
|
69
|
-
known.append(value)
|
70
|
-
value = _loop(_array_keys(value), input, known, value)
|
71
|
-
elif _is_object(value) and not value in known:
|
72
|
-
known.append(value)
|
73
|
-
value = _loop(_object_keys(value), input, known, value)
|
74
|
-
|
75
|
-
output[key] = value
|
76
|
-
|
77
|
-
def _relate(known, input, value):
|
78
|
-
if _is_string(value) or _is_array(value) or _is_object(value):
|
79
|
-
try:
|
80
|
-
return known.value[known.key.index(value)]
|
81
|
-
except:
|
82
|
-
return _index(known, input, value)
|
83
|
-
|
84
|
-
return value
|
85
|
-
|
86
|
-
def _transform(known, input, value):
|
87
|
-
if _is_array(value):
|
88
|
-
output = []
|
89
|
-
for val in value:
|
90
|
-
output.append(_relate(known, input, val))
|
91
|
-
return output
|
92
|
-
|
93
|
-
if _is_object(value):
|
94
|
-
obj = {}
|
95
|
-
for key in value:
|
96
|
-
obj[key] = _relate(known, input, value[key])
|
97
|
-
return obj
|
98
|
-
|
99
|
-
return value
|
100
|
-
|
101
|
-
def _wrap(value):
|
102
|
-
if _is_string(value):
|
103
|
-
return _String(value)
|
104
|
-
|
105
|
-
if _is_array(value):
|
106
|
-
i = 0
|
107
|
-
for val in value:
|
108
|
-
value[i] = _wrap(val)
|
109
|
-
i += 1
|
110
|
-
|
111
|
-
elif _is_object(value):
|
112
|
-
for key in value:
|
113
|
-
value[key] = _wrap(value[key])
|
114
|
-
|
115
|
-
return value
|
116
|
-
|
117
|
-
def parse(value, *args, **kwargs):
|
118
|
-
json = _json.loads(value, *args, **kwargs)
|
119
|
-
wrapped = []
|
120
|
-
for value in json:
|
121
|
-
wrapped.append(_wrap(value))
|
122
|
-
|
123
|
-
input = []
|
124
|
-
for value in wrapped:
|
125
|
-
if isinstance(value, _String):
|
126
|
-
input.append(value.value)
|
127
|
-
else:
|
128
|
-
input.append(value)
|
129
|
-
|
130
|
-
value = input[0]
|
131
|
-
|
132
|
-
if _is_array(value):
|
133
|
-
return _loop(_array_keys(value), input, [value], value)
|
134
|
-
|
135
|
-
if _is_object(value):
|
136
|
-
return _loop(_object_keys(value), input, [value], value)
|
137
|
-
|
138
|
-
return value
|
139
|
-
|
140
|
-
|
141
|
-
def stringify(value, *args, **kwargs):
|
142
|
-
known = _Known()
|
143
|
-
input = []
|
144
|
-
output = []
|
145
|
-
i = int(_index(known, input, value))
|
146
|
-
while i < len(input):
|
147
|
-
output.append(_transform(known, input, input[i]))
|
148
|
-
i += 1
|
149
|
-
return _json.dumps(output, *args, **kwargs)
|