inspect-ai 0.3.108__py3-none-any.whl → 0.3.110__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/_eval/task/log.py +1 -1
- inspect_ai/_eval/task/run.py +7 -3
- inspect_ai/_util/dateutil.py +40 -0
- inspect_ai/_view/schema.py +11 -0
- inspect_ai/_view/www/CLAUDE.md +1 -1
- inspect_ai/_view/www/dist/assets/index.css +2068 -1796
- inspect_ai/_view/www/dist/assets/index.js +7951 -3643
- inspect_ai/_view/www/package.json +3 -2
- inspect_ai/_view/www/src/@types/log.d.ts +5 -5
- inspect_ai/_view/www/src/app/App.css +71 -4
- inspect_ai/_view/www/src/app/App.tsx +7 -0
- inspect_ai/_view/www/src/app/appearance/icons.ts +18 -2
- inspect_ai/_view/www/src/app/content/RenderedContent.tsx +7 -9
- inspect_ai/_view/www/src/app/log-list/LogItem.ts +18 -0
- inspect_ai/_view/www/src/app/log-list/LogListFooter.module.css +55 -0
- inspect_ai/_view/www/src/app/log-list/LogListFooter.tsx +67 -0
- inspect_ai/_view/www/src/app/log-list/LogPager.module.css +29 -0
- inspect_ai/_view/www/src/app/log-list/LogPager.tsx +134 -0
- inspect_ai/_view/www/src/app/log-list/LogsFilterInput.module.css +5 -0
- inspect_ai/_view/www/src/app/log-list/LogsFilterInput.tsx +31 -0
- inspect_ai/_view/www/src/app/log-list/LogsPanel.module.css +12 -0
- inspect_ai/_view/www/src/app/log-list/LogsPanel.tsx +178 -0
- inspect_ai/_view/www/src/app/log-list/grid/LogListGrid.module.css +115 -0
- inspect_ai/_view/www/src/app/log-list/grid/LogListGrid.tsx +304 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/CompletedDate.module.css +6 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/CompletedDate.tsx +64 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/EmptyCell.module.css +3 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/EmptyCell.tsx +7 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/FileName.module.css +20 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/FileName.tsx +52 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/Icon.module.css +11 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/Icon.tsx +35 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/Model.module.css +6 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/Model.tsx +34 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/Score.module.css +6 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/Score.tsx +61 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/Status.module.css +15 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/Status.tsx +95 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/Task.module.css +20 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/Task.tsx +50 -0
- inspect_ai/_view/www/src/app/log-list/grid/columns/columns.ts +27 -0
- inspect_ai/_view/www/src/app/log-view/LogView.tsx +2 -5
- inspect_ai/_view/www/src/app/log-view/LogViewContainer.tsx +4 -30
- inspect_ai/_view/www/src/app/log-view/LogViewLayout.tsx +5 -30
- inspect_ai/_view/www/src/app/log-view/tabs/TaskTab.tsx +4 -7
- inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/PrimaryBar.module.css +2 -0
- inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/PrimaryBar.tsx +3 -31
- inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/ResultsPanel.tsx +7 -57
- inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/ScoreGrid.tsx +2 -2
- inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/SecondaryBar.tsx +7 -1
- inspect_ai/_view/www/src/app/log-view/{navbar/Navbar.tsx → title-view/TitleView.tsx} +3 -6
- inspect_ai/_view/www/src/app/navbar/Navbar.module.css +57 -0
- inspect_ai/_view/www/src/app/navbar/Navbar.tsx +117 -0
- inspect_ai/_view/www/src/app/navbar/useBreadcrumbTruncation.ts +128 -0
- inspect_ai/_view/www/src/app/plan/DatasetDetailView.tsx +3 -3
- inspect_ai/_view/www/src/app/plan/DetailStep.tsx +6 -6
- inspect_ai/_view/www/src/app/plan/PlanDetailView.module.css +1 -0
- inspect_ai/_view/www/src/app/plan/ScorerDetailView.tsx +1 -1
- inspect_ai/_view/www/src/app/routing/AppRouter.tsx +28 -4
- inspect_ai/_view/www/src/app/routing/RouteDispatcher.tsx +28 -0
- inspect_ai/_view/www/src/app/routing/sampleNavigation.ts +76 -7
- inspect_ai/_view/www/src/app/routing/url.ts +193 -20
- inspect_ai/_view/www/src/app/samples/SampleDisplay.tsx +3 -17
- inspect_ai/_view/www/src/app/samples/descriptor/score/ScoreDescriptor.tsx +1 -1
- inspect_ai/_view/www/src/app/samples/transcript/SubtaskEventView.tsx +2 -2
- inspect_ai/_view/www/src/app/samples/transcript/TranscriptPanel.tsx +2 -2
- inspect_ai/_view/www/src/app/samples/transcript/outline/tree-visitors.ts +5 -0
- inspect_ai/_view/www/src/app/samples/transcript/transform/treeify.ts +26 -10
- inspect_ai/_view/www/src/app/types.ts +21 -1
- inspect_ai/_view/www/src/client/api/api-http.ts +2 -1
- inspect_ai/_view/www/src/client/api/api-shared.ts +0 -32
- inspect_ai/_view/www/src/client/api/client-api.ts +1 -1
- inspect_ai/_view/www/src/client/remote/remoteLogFile.ts +38 -6
- inspect_ai/_view/www/src/components/TextInput.module.css +45 -0
- inspect_ai/_view/www/src/components/TextInput.tsx +52 -0
- inspect_ai/_view/www/src/constants.ts +18 -0
- inspect_ai/_view/www/src/img/inspect-16.svg +10 -0
- inspect_ai/_view/www/src/img/inspect-back.svg +5 -0
- inspect_ai/_view/www/src/img/inspect-file.svg +26 -0
- inspect_ai/_view/www/src/img/inspect-forward.svg +7 -0
- inspect_ai/_view/www/src/img/inspect-home.svg +18 -0
- inspect_ai/_view/www/src/scoring/metrics.ts +75 -0
- inspect_ai/_view/www/src/scoring/scores.ts +19 -0
- inspect_ai/_view/www/src/scoring/types.ts +11 -0
- inspect_ai/_view/www/src/state/appSlice.ts +27 -7
- inspect_ai/_view/www/src/state/clientEvents.ts +73 -0
- inspect_ai/_view/www/src/state/clientEventsService.ts +105 -0
- inspect_ai/_view/www/src/state/hooks.ts +118 -1
- inspect_ai/_view/www/src/state/log.ts +19 -0
- inspect_ai/_view/www/src/state/logPolling.ts +3 -1
- inspect_ai/_view/www/src/state/logSlice.ts +9 -0
- inspect_ai/_view/www/src/state/logsSlice.ts +157 -15
- inspect_ai/_view/www/src/state/samplePolling.ts +4 -2
- inspect_ai/_view/www/src/tests/utils/path.test.ts +3 -3
- inspect_ai/_view/www/src/utils/evallog.ts +31 -0
- inspect_ai/_view/www/src/utils/path.ts +28 -0
- inspect_ai/_view/www/src/utils/uri.ts +49 -0
- inspect_ai/_view/www/yarn.lock +54 -17
- inspect_ai/analysis/beta/_dataframe/util.py +106 -10
- inspect_ai/log/_recorders/buffer/database.py +55 -16
- inspect_ai/model/_model.py +1 -1
- inspect_ai/model/_providers/providers.py +2 -2
- inspect_ai/model/_providers/vertex.py +3 -0
- inspect_ai/tool/_mcp/_mcp.py +6 -1
- inspect_ai/tool/_mcp/sampling.py +8 -1
- inspect_ai/tool/_tools/_bash_session.py +3 -6
- inspect_ai/tool/_tools/_web_browser/_web_browser.py +3 -8
- inspect_ai/util/_anyio.py +12 -3
- {inspect_ai-0.3.108.dist-info → inspect_ai-0.3.110.dist-info}/METADATA +2 -2
- {inspect_ai-0.3.108.dist-info → inspect_ai-0.3.110.dist-info}/RECORD +124 -94
- inspect_ai/_util/datetime.py +0 -10
- inspect_ai/_view/www/src/app/content/MetaDataView.module.css +0 -35
- inspect_ai/_view/www/src/app/content/MetaDataView.tsx +0 -101
- inspect_ai/_view/www/src/app/log-view/utils.ts +0 -34
- inspect_ai/_view/www/src/app/sidebar/EvalStatus.module.css +0 -15
- inspect_ai/_view/www/src/app/sidebar/EvalStatus.tsx +0 -72
- inspect_ai/_view/www/src/app/sidebar/LogDirectoryTitleView.module.css +0 -16
- inspect_ai/_view/www/src/app/sidebar/LogDirectoryTitleView.tsx +0 -70
- inspect_ai/_view/www/src/app/sidebar/Sidebar.module.css +0 -77
- inspect_ai/_view/www/src/app/sidebar/Sidebar.tsx +0 -119
- inspect_ai/_view/www/src/app/sidebar/SidebarLogEntry.module.css +0 -29
- inspect_ai/_view/www/src/app/sidebar/SidebarLogEntry.tsx +0 -96
- inspect_ai/_view/www/src/app/sidebar/SidebarScoreView.module.css +0 -23
- inspect_ai/_view/www/src/app/sidebar/SidebarScoreView.tsx +0 -44
- inspect_ai/_view/www/src/app/sidebar/SidebarScoresView.module.css +0 -35
- inspect_ai/_view/www/src/app/sidebar/SidebarScoresView.tsx +0 -63
- inspect_ai/_view/www/src/state/logsPolling.ts +0 -118
- /inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/ModelRolesView.module.css +0 -0
- /inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/ModelRolesView.tsx +0 -0
- /inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/ResultsPanel.module.css +0 -0
- /inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/RunningStatusPanel.module.css +0 -0
- /inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/RunningStatusPanel.tsx +0 -0
- /inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/ScoreGrid.module.css +0 -0
- /inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/SecondaryBar.module.css +0 -0
- /inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/StatusPanel.module.css +0 -0
- /inspect_ai/_view/www/src/app/log-view/{navbar → title-view}/StatusPanel.tsx +0 -0
- /inspect_ai/_view/www/src/app/log-view/{navbar/Navbar.module.css → title-view/TitleView.module.css} +0 -0
- {inspect_ai-0.3.108.dist-info → inspect_ai-0.3.110.dist-info}/WHEEL +0 -0
- {inspect_ai-0.3.108.dist-info → inspect_ai-0.3.110.dist-info}/entry_points.txt +0 -0
- {inspect_ai-0.3.108.dist-info → inspect_ai-0.3.110.dist-info}/licenses/LICENSE +0 -0
- {inspect_ai-0.3.108.dist-info → inspect_ai-0.3.110.dist-info}/top_level.txt +0 -0
inspect_ai/_eval/task/log.py
CHANGED
@@ -6,7 +6,7 @@ from shortuuid import uuid
|
|
6
6
|
from inspect_ai._display.core.display import TaskDisplayMetric
|
7
7
|
from inspect_ai._eval.task.util import slice_dataset
|
8
8
|
from inspect_ai._util.constants import PKG_NAME
|
9
|
-
from inspect_ai._util.
|
9
|
+
from inspect_ai._util.dateutil import iso_now
|
10
10
|
from inspect_ai._util.git import git_context
|
11
11
|
from inspect_ai._util.path import cwd_relative_path
|
12
12
|
from inspect_ai._util.registry import (
|
inspect_ai/_eval/task/run.py
CHANGED
@@ -26,7 +26,7 @@ from inspect_ai._util.constants import (
|
|
26
26
|
DEFAULT_EPOCHS,
|
27
27
|
DEFAULT_MAX_CONNECTIONS,
|
28
28
|
)
|
29
|
-
from inspect_ai._util.
|
29
|
+
from inspect_ai._util.dateutil import iso_now
|
30
30
|
from inspect_ai._util.error import exception_message
|
31
31
|
from inspect_ai._util.exception import TerminateSampleError
|
32
32
|
from inspect_ai._util.hooks import send_telemetry
|
@@ -86,6 +86,7 @@ from inspect_ai.solver._chain import Chain, unroll
|
|
86
86
|
from inspect_ai.solver._fork import set_task_generate
|
87
87
|
from inspect_ai.solver._solver import Solver
|
88
88
|
from inspect_ai.solver._task_state import sample_state, set_sample_state, state_jsonable
|
89
|
+
from inspect_ai.util._anyio import inner_exception
|
89
90
|
from inspect_ai.util._limit import LimitExceededError
|
90
91
|
from inspect_ai.util._limit import time_limit as create_time_limit
|
91
92
|
from inspect_ai.util._limit import working_limit as create_working_limit
|
@@ -346,8 +347,11 @@ async def task_run(options: TaskRunOptions) -> EvalLog:
|
|
346
347
|
finally:
|
347
348
|
tg.cancel_scope.cancel()
|
348
349
|
|
349
|
-
|
350
|
-
|
350
|
+
try:
|
351
|
+
async with anyio.create_task_group() as tg:
|
352
|
+
tg.start_soon(run, tg)
|
353
|
+
except Exception as ex:
|
354
|
+
raise inner_exception(ex)
|
351
355
|
|
352
356
|
return result
|
353
357
|
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import datetime
|
2
|
+
from logging import getLogger
|
3
|
+
from pathlib import Path
|
4
|
+
from typing import Literal
|
5
|
+
|
6
|
+
|
7
|
+
def iso_now(
|
8
|
+
timespec: Literal[
|
9
|
+
"auto", "hours", "minutes", "seconds", "milliseconds", "microseconds"
|
10
|
+
] = "seconds",
|
11
|
+
) -> str:
|
12
|
+
return datetime.datetime.now().astimezone().isoformat(timespec=timespec)
|
13
|
+
|
14
|
+
|
15
|
+
logger = getLogger(__name__)
|
16
|
+
|
17
|
+
|
18
|
+
def is_file_older_than(
|
19
|
+
path: str | Path, delta: datetime.timedelta, *, default: bool
|
20
|
+
) -> bool:
|
21
|
+
"""Check if a file's modification time is older than a given time delta.
|
22
|
+
|
23
|
+
Args:
|
24
|
+
path: Path to the file to check
|
25
|
+
delta: Time delta to compare against
|
26
|
+
default: Value to return if file doesn't exist or isn't accessible
|
27
|
+
|
28
|
+
Returns:
|
29
|
+
True if file was last modified before (now - delta), False otherwise.
|
30
|
+
"""
|
31
|
+
try:
|
32
|
+
path = Path(path)
|
33
|
+
mtime = path.lstat().st_mtime
|
34
|
+
path_mtime = datetime.datetime.fromtimestamp(mtime, tz=datetime.timezone.utc)
|
35
|
+
cutoff_time = datetime.datetime.now(datetime.timezone.utc) - delta
|
36
|
+
return path_mtime < cutoff_time
|
37
|
+
# OSError is expected in cases where the file doesn't exist or
|
38
|
+
# for some reason isn't accessible (e.g. due to permissions)
|
39
|
+
except OSError:
|
40
|
+
return default
|
inspect_ai/_view/schema.py
CHANGED
@@ -8,6 +8,15 @@ from inspect_ai.log import EvalLog
|
|
8
8
|
|
9
9
|
WWW_DIR = os.path.abspath((Path(__file__).parent / "www").as_posix())
|
10
10
|
|
11
|
+
BANNER = """
|
12
|
+
/*
|
13
|
+
* This file is automatically generated by schema.py
|
14
|
+
* DO NOT MODIFY IT BY HAND.
|
15
|
+
* To regenerate, run: python -m ../schema.py from within the
|
16
|
+
* src/inspect_ai/_view/www directory.
|
17
|
+
*/
|
18
|
+
"""
|
19
|
+
|
11
20
|
|
12
21
|
def sync_view_schema() -> None:
|
13
22
|
"""Generate a JSON schema and Typescript types for EvalLog.
|
@@ -39,6 +48,8 @@ def sync_view_schema() -> None:
|
|
39
48
|
types_path,
|
40
49
|
"--additionalProperties",
|
41
50
|
"false",
|
51
|
+
"--bannerComment",
|
52
|
+
BANNER,
|
42
53
|
],
|
43
54
|
cwd=WWW_DIR,
|
44
55
|
check=True,
|
inspect_ai/_view/www/CLAUDE.md
CHANGED
@@ -12,4 +12,4 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
12
12
|
## Other Information
|
13
13
|
|
14
14
|
- The code in this project is typescript, learn more about the configuration by inspecting package.json.
|
15
|
-
- Respect existing code patterns when modifying files. Run linting before committing changes.
|
15
|
+
- Respect existing code patterns when modifying files. Run linting before committing changes.
|