inspect-ai 0.3.69__py3-none-any.whl → 0.3.71__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/_cli/eval.py +27 -9
- inspect_ai/_display/core/display.py +2 -0
- inspect_ai/_display/core/footer.py +13 -3
- inspect_ai/_display/plain/display.py +6 -2
- inspect_ai/_display/rich/display.py +19 -6
- inspect_ai/_display/textual/app.py +9 -3
- inspect_ai/_display/textual/display.py +4 -0
- inspect_ai/_display/textual/widgets/samples.py +4 -10
- inspect_ai/_display/textual/widgets/transcript.py +35 -18
- inspect_ai/_eval/eval.py +14 -2
- inspect_ai/_eval/evalset.py +6 -1
- inspect_ai/_eval/run.py +6 -0
- inspect_ai/_eval/task/run.py +49 -23
- inspect_ai/_eval/task/task.py +26 -3
- inspect_ai/_util/content.py +20 -1
- inspect_ai/_util/interrupt.py +6 -0
- inspect_ai/_util/logger.py +19 -0
- inspect_ai/_util/rich.py +7 -8
- inspect_ai/_util/text.py +13 -0
- inspect_ai/_util/transcript.py +20 -6
- inspect_ai/_util/working.py +50 -0
- inspect_ai/_view/www/App.css +6 -0
- inspect_ai/_view/www/dist/assets/index.css +171 -99
- inspect_ai/_view/www/dist/assets/index.js +5972 -2770
- inspect_ai/_view/www/eslint.config.mjs +24 -1
- inspect_ai/_view/www/log-schema.json +619 -21
- inspect_ai/_view/www/package.json +8 -3
- inspect_ai/_view/www/src/App.tsx +2 -2
- inspect_ai/_view/www/src/appearance/icons.ts +3 -1
- inspect_ai/_view/www/src/components/AnsiDisplay.tsx +4 -3
- inspect_ai/_view/www/src/components/Card.tsx +9 -8
- inspect_ai/_view/www/src/components/DownloadButton.tsx +2 -1
- inspect_ai/_view/www/src/components/EmptyPanel.tsx +2 -2
- inspect_ai/_view/www/src/components/ErrorPanel.tsx +4 -3
- inspect_ai/_view/www/src/components/ExpandablePanel.tsx +13 -5
- inspect_ai/_view/www/src/components/FindBand.tsx +3 -3
- inspect_ai/_view/www/src/components/HumanBaselineView.tsx +3 -3
- inspect_ai/_view/www/src/components/LabeledValue.tsx +5 -4
- inspect_ai/_view/www/src/components/LargeModal.tsx +18 -13
- inspect_ai/_view/www/src/components/{LightboxCarousel.css → LightboxCarousel.module.css} +22 -18
- inspect_ai/_view/www/src/components/LightboxCarousel.tsx +36 -27
- inspect_ai/_view/www/src/components/MessageBand.tsx +2 -1
- inspect_ai/_view/www/src/components/NavPills.tsx +9 -8
- inspect_ai/_view/www/src/components/ProgressBar.tsx +2 -1
- inspect_ai/_view/www/src/components/TabSet.tsx +21 -15
- inspect_ai/_view/www/src/index.tsx +2 -2
- inspect_ai/_view/www/src/metadata/MetaDataGrid.tsx +11 -9
- inspect_ai/_view/www/src/metadata/MetaDataView.tsx +3 -2
- inspect_ai/_view/www/src/metadata/MetadataGrid.module.css +1 -0
- inspect_ai/_view/www/src/metadata/RenderedContent.tsx +16 -1
- inspect_ai/_view/www/src/plan/DatasetDetailView.tsx +3 -2
- inspect_ai/_view/www/src/plan/DetailStep.tsx +2 -1
- inspect_ai/_view/www/src/plan/PlanCard.tsx +2 -5
- inspect_ai/_view/www/src/plan/PlanDetailView.tsx +6 -9
- inspect_ai/_view/www/src/plan/ScorerDetailView.tsx +2 -1
- inspect_ai/_view/www/src/plan/SolverDetailView.tsx +3 -3
- inspect_ai/_view/www/src/samples/InlineSampleDisplay.tsx +2 -2
- inspect_ai/_view/www/src/samples/SampleDialog.tsx +3 -3
- inspect_ai/_view/www/src/samples/SampleDisplay.module.css +9 -1
- inspect_ai/_view/www/src/samples/SampleDisplay.tsx +30 -3
- inspect_ai/_view/www/src/samples/SampleSummaryView.module.css +4 -0
- inspect_ai/_view/www/src/samples/SampleSummaryView.tsx +25 -4
- inspect_ai/_view/www/src/samples/SamplesTools.tsx +2 -1
- inspect_ai/_view/www/src/samples/chat/ChatMessage.tsx +3 -19
- inspect_ai/_view/www/src/samples/chat/ChatMessageRenderer.tsx +2 -1
- inspect_ai/_view/www/src/samples/chat/ChatMessageRow.tsx +2 -1
- inspect_ai/_view/www/src/samples/chat/ChatView.tsx +2 -1
- inspect_ai/_view/www/src/samples/chat/ChatViewVirtualList.tsx +22 -7
- inspect_ai/_view/www/src/samples/chat/MessageContent.tsx +35 -6
- inspect_ai/_view/www/src/samples/chat/MessageContents.tsx +2 -2
- inspect_ai/_view/www/src/samples/chat/messages.ts +15 -2
- inspect_ai/_view/www/src/samples/chat/tools/ToolCallView.tsx +13 -4
- inspect_ai/_view/www/src/samples/chat/tools/ToolInput.module.css +2 -2
- inspect_ai/_view/www/src/samples/chat/tools/ToolInput.tsx +18 -19
- inspect_ai/_view/www/src/samples/chat/tools/ToolOutput.module.css +1 -1
- inspect_ai/_view/www/src/samples/chat/tools/ToolOutput.tsx +4 -3
- inspect_ai/_view/www/src/samples/chat/tools/ToolTitle.tsx +2 -2
- inspect_ai/_view/www/src/samples/error/FlatSampleErrorView.tsx +2 -3
- inspect_ai/_view/www/src/samples/error/SampleErrorView.tsx +3 -2
- inspect_ai/_view/www/src/samples/list/SampleFooter.tsx +2 -1
- inspect_ai/_view/www/src/samples/list/SampleHeader.tsx +2 -1
- inspect_ai/_view/www/src/samples/list/SampleList.tsx +57 -45
- inspect_ai/_view/www/src/samples/list/SampleRow.tsx +2 -1
- inspect_ai/_view/www/src/samples/list/SampleSeparator.tsx +2 -1
- inspect_ai/_view/www/src/samples/sample-tools/EpochFilter.tsx +2 -2
- inspect_ai/_view/www/src/samples/sample-tools/SelectScorer.tsx +4 -3
- inspect_ai/_view/www/src/samples/sample-tools/SortFilter.tsx +2 -5
- inspect_ai/_view/www/src/samples/sample-tools/sample-filter/SampleFilter.tsx +2 -2
- inspect_ai/_view/www/src/samples/scores/SampleScoreView.tsx +2 -1
- inspect_ai/_view/www/src/samples/scores/SampleScores.tsx +2 -2
- inspect_ai/_view/www/src/samples/transcript/ApprovalEventView.tsx +2 -1
- inspect_ai/_view/www/src/samples/transcript/ErrorEventView.tsx +2 -1
- inspect_ai/_view/www/src/samples/transcript/InfoEventView.tsx +2 -1
- inspect_ai/_view/www/src/samples/transcript/InputEventView.tsx +2 -1
- inspect_ai/_view/www/src/samples/transcript/LoggerEventView.module.css +4 -0
- inspect_ai/_view/www/src/samples/transcript/LoggerEventView.tsx +12 -2
- inspect_ai/_view/www/src/samples/transcript/ModelEventView.module.css +1 -1
- inspect_ai/_view/www/src/samples/transcript/ModelEventView.tsx +25 -28
- inspect_ai/_view/www/src/samples/transcript/SampleInitEventView.tsx +2 -1
- inspect_ai/_view/www/src/samples/transcript/SampleLimitEventView.tsx +9 -4
- inspect_ai/_view/www/src/samples/transcript/SampleTranscript.tsx +2 -2
- inspect_ai/_view/www/src/samples/transcript/SandboxEventView.module.css +32 -0
- inspect_ai/_view/www/src/samples/transcript/SandboxEventView.tsx +153 -0
- inspect_ai/_view/www/src/samples/transcript/ScoreEventView.tsx +2 -2
- inspect_ai/_view/www/src/samples/transcript/StepEventView.tsx +12 -5
- inspect_ai/_view/www/src/samples/transcript/SubtaskEventView.tsx +18 -14
- inspect_ai/_view/www/src/samples/transcript/ToolEventView.tsx +5 -5
- inspect_ai/_view/www/src/samples/transcript/TranscriptView.tsx +53 -16
- inspect_ai/_view/www/src/samples/transcript/event/EventNav.tsx +2 -1
- inspect_ai/_view/www/src/samples/transcript/event/EventNavs.tsx +2 -1
- inspect_ai/_view/www/src/samples/transcript/event/EventPanel.tsx +6 -3
- inspect_ai/_view/www/src/samples/transcript/event/EventRow.tsx +3 -2
- inspect_ai/_view/www/src/samples/transcript/event/EventSection.tsx +2 -2
- inspect_ai/_view/www/src/samples/transcript/event/EventTimingPanel.module.css +28 -0
- inspect_ai/_view/www/src/samples/transcript/event/EventTimingPanel.tsx +115 -0
- inspect_ai/_view/www/src/samples/transcript/event/utils.ts +29 -0
- inspect_ai/_view/www/src/samples/transcript/state/StateDiffView.tsx +2 -1
- inspect_ai/_view/www/src/samples/transcript/state/StateEventRenderers.tsx +3 -3
- inspect_ai/_view/www/src/samples/transcript/state/StateEventView.tsx +11 -8
- inspect_ai/_view/www/src/samples/transcript/types.ts +3 -1
- inspect_ai/_view/www/src/types/log.d.ts +312 -137
- inspect_ai/_view/www/src/usage/ModelTokenTable.tsx +6 -10
- inspect_ai/_view/www/src/usage/ModelUsagePanel.module.css +4 -0
- inspect_ai/_view/www/src/usage/ModelUsagePanel.tsx +32 -9
- inspect_ai/_view/www/src/usage/TokenTable.tsx +4 -6
- inspect_ai/_view/www/src/usage/UsageCard.tsx +2 -1
- inspect_ai/_view/www/src/utils/format.ts +8 -5
- inspect_ai/_view/www/src/utils/json.ts +24 -0
- inspect_ai/_view/www/src/workspace/WorkSpace.tsx +6 -5
- inspect_ai/_view/www/src/workspace/WorkSpaceView.tsx +18 -8
- inspect_ai/_view/www/src/workspace/error/TaskErrorPanel.tsx +2 -1
- inspect_ai/_view/www/src/workspace/navbar/Navbar.tsx +2 -1
- inspect_ai/_view/www/src/workspace/navbar/PrimaryBar.tsx +3 -3
- inspect_ai/_view/www/src/workspace/navbar/ResultsPanel.tsx +4 -3
- inspect_ai/_view/www/src/workspace/navbar/SecondaryBar.tsx +5 -4
- inspect_ai/_view/www/src/workspace/navbar/StatusPanel.tsx +5 -8
- inspect_ai/_view/www/src/workspace/sidebar/EvalStatus.tsx +5 -4
- inspect_ai/_view/www/src/workspace/sidebar/LogDirectoryTitleView.tsx +2 -1
- inspect_ai/_view/www/src/workspace/sidebar/Sidebar.tsx +2 -1
- inspect_ai/_view/www/src/workspace/sidebar/SidebarLogEntry.tsx +2 -2
- inspect_ai/_view/www/src/workspace/sidebar/SidebarScoreView.tsx +2 -1
- inspect_ai/_view/www/src/workspace/sidebar/SidebarScoresView.tsx +2 -2
- inspect_ai/_view/www/src/workspace/tabs/InfoTab.tsx +2 -2
- inspect_ai/_view/www/src/workspace/tabs/JsonTab.tsx +2 -5
- inspect_ai/_view/www/src/workspace/tabs/SamplesTab.tsx +12 -11
- inspect_ai/_view/www/yarn.lock +241 -5
- inspect_ai/log/__init__.py +2 -0
- inspect_ai/log/_condense.py +4 -0
- inspect_ai/log/_log.py +72 -12
- inspect_ai/log/_recorders/eval.py +6 -1
- inspect_ai/log/_samples.py +5 -1
- inspect_ai/log/_transcript.py +89 -2
- inspect_ai/model/__init__.py +2 -0
- inspect_ai/model/_call_tools.py +8 -1
- inspect_ai/model/_chat_message.py +22 -7
- inspect_ai/model/_conversation.py +11 -9
- inspect_ai/model/_generate_config.py +25 -4
- inspect_ai/model/_model.py +164 -72
- inspect_ai/model/_model_call.py +10 -3
- inspect_ai/model/_model_output.py +3 -0
- inspect_ai/model/_openai.py +106 -40
- inspect_ai/model/_providers/anthropic.py +145 -26
- inspect_ai/model/_providers/bedrock.py +7 -0
- inspect_ai/model/_providers/cloudflare.py +20 -7
- inspect_ai/model/_providers/google.py +29 -8
- inspect_ai/model/_providers/groq.py +66 -27
- inspect_ai/model/_providers/hf.py +6 -0
- inspect_ai/model/_providers/mistral.py +78 -51
- inspect_ai/model/_providers/openai.py +66 -4
- inspect_ai/model/_providers/openai_o1.py +10 -0
- inspect_ai/model/_providers/providers.py +2 -2
- inspect_ai/model/_providers/util/tracker.py +92 -0
- inspect_ai/model/_providers/vllm.py +13 -5
- inspect_ai/model/_reasoning.py +15 -2
- inspect_ai/scorer/_model.py +23 -19
- inspect_ai/solver/_basic_agent.py +1 -3
- inspect_ai/solver/_bridge/patch.py +0 -2
- inspect_ai/solver/_human_agent/agent.py +14 -10
- inspect_ai/solver/_human_agent/commands/__init__.py +7 -3
- inspect_ai/solver/_human_agent/commands/submit.py +76 -30
- inspect_ai/solver/_limit.py +4 -4
- inspect_ai/solver/_plan.py +0 -3
- inspect_ai/solver/_task_state.py +7 -0
- inspect_ai/tool/__init__.py +2 -0
- inspect_ai/tool/_tool.py +3 -1
- inspect_ai/tool/_tools/_computer/_resources/tool/_run.py +1 -1
- inspect_ai/tool/_tools/_web_browser/_resources/.pylintrc +8 -0
- inspect_ai/tool/_tools/_web_browser/_resources/.vscode/launch.json +24 -0
- inspect_ai/tool/_tools/_web_browser/_resources/.vscode/settings.json +25 -0
- inspect_ai/tool/_tools/_web_browser/_resources/Dockerfile +5 -6
- inspect_ai/tool/_tools/_web_browser/_resources/README.md +10 -11
- inspect_ai/tool/_tools/_web_browser/_resources/accessibility_tree.py +71 -0
- inspect_ai/tool/_tools/_web_browser/_resources/accessibility_tree_node.py +323 -0
- inspect_ai/tool/_tools/_web_browser/_resources/cdp/__init__.py +5 -0
- inspect_ai/tool/_tools/_web_browser/_resources/cdp/a11y.py +279 -0
- inspect_ai/tool/_tools/_web_browser/_resources/cdp/dom.py +9 -0
- inspect_ai/tool/_tools/_web_browser/_resources/cdp/dom_snapshot.py +293 -0
- inspect_ai/tool/_tools/_web_browser/_resources/cdp/page.py +94 -0
- inspect_ai/tool/_tools/_web_browser/_resources/constants.py +2 -0
- inspect_ai/tool/_tools/_web_browser/_resources/images/usage_diagram.svg +2 -0
- inspect_ai/tool/_tools/_web_browser/_resources/playwright_browser.py +50 -0
- inspect_ai/tool/_tools/_web_browser/_resources/playwright_crawler.py +31 -359
- inspect_ai/tool/_tools/_web_browser/_resources/playwright_page_crawler.py +280 -0
- inspect_ai/tool/_tools/_web_browser/_resources/pyproject.toml +65 -0
- inspect_ai/tool/_tools/_web_browser/_resources/rectangle.py +64 -0
- inspect_ai/tool/_tools/_web_browser/_resources/rpc_client_helpers.py +146 -0
- inspect_ai/tool/_tools/_web_browser/_resources/scale_factor.py +64 -0
- inspect_ai/tool/_tools/_web_browser/_resources/test_accessibility_tree_node.py +180 -0
- inspect_ai/tool/_tools/_web_browser/_resources/test_playwright_crawler.py +15 -9
- inspect_ai/tool/_tools/_web_browser/_resources/test_rectangle.py +15 -0
- inspect_ai/tool/_tools/_web_browser/_resources/test_web_client.py +44 -0
- inspect_ai/tool/_tools/_web_browser/_resources/web_browser_rpc_types.py +39 -0
- inspect_ai/tool/_tools/_web_browser/_resources/web_client.py +198 -48
- inspect_ai/tool/_tools/_web_browser/_resources/web_client_new_session.py +26 -25
- inspect_ai/tool/_tools/_web_browser/_resources/web_server.py +178 -39
- inspect_ai/tool/_tools/_web_browser/_web_browser.py +38 -19
- inspect_ai/tool/_tools/_web_search.py +3 -3
- inspect_ai/util/__init__.py +2 -1
- inspect_ai/util/_concurrency.py +14 -8
- inspect_ai/util/_display.py +12 -0
- inspect_ai/util/_sandbox/context.py +15 -0
- inspect_ai/util/_sandbox/docker/docker.py +7 -5
- inspect_ai/util/_sandbox/environment.py +32 -1
- inspect_ai/util/_sandbox/events.py +183 -0
- inspect_ai/util/_sandbox/local.py +3 -3
- inspect_ai/util/_sandbox/self_check.py +131 -43
- inspect_ai/util/_subtask.py +11 -0
- {inspect_ai-0.3.69.dist-info → inspect_ai-0.3.71.dist-info}/METADATA +3 -3
- {inspect_ai-0.3.69.dist-info → inspect_ai-0.3.71.dist-info}/RECORD +233 -211
- {inspect_ai-0.3.69.dist-info → inspect_ai-0.3.71.dist-info}/WHEEL +1 -1
- inspect_ai/_view/www/src/components/VirtualList.module.css +0 -19
- inspect_ai/_view/www/src/components/VirtualList.tsx +0 -292
- inspect_ai/tool/_tools/_web_browser/_resources/accessibility_node.py +0 -312
- inspect_ai/tool/_tools/_web_browser/_resources/dm_env_servicer.py +0 -275
- inspect_ai/tool/_tools/_web_browser/_resources/images/usage_diagram.png +0 -0
- inspect_ai/tool/_tools/_web_browser/_resources/test_accessibility_node.py +0 -176
- inspect_ai/tool/_tools/_web_browser/_resources/test_dm_env_servicer.py +0 -135
- inspect_ai/tool/_tools/_web_browser/_resources/test_web_environment.py +0 -71
- inspect_ai/tool/_tools/_web_browser/_resources/web_environment.py +0 -184
- {inspect_ai-0.3.69.dist-info → inspect_ai-0.3.71.dist-info}/LICENSE +0 -0
- {inspect_ai-0.3.69.dist-info → inspect_ai-0.3.71.dist-info}/entry_points.txt +0 -0
- {inspect_ai-0.3.69.dist-info → inspect_ai-0.3.71.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,5 @@
|
|
1
1
|
import {
|
2
|
+
FC,
|
2
3
|
Fragment,
|
3
4
|
RefObject,
|
4
5
|
useCallback,
|
@@ -6,9 +7,9 @@ import {
|
|
6
7
|
useRef,
|
7
8
|
useState,
|
8
9
|
} from "react";
|
10
|
+
import { VirtuosoHandle } from "react-virtuoso";
|
9
11
|
import { SampleSummary } from "../../api/types.ts";
|
10
12
|
import { EmptyPanel } from "../../components/EmptyPanel.tsx";
|
11
|
-
import { VirtualListRef } from "../../components/VirtualList.tsx";
|
12
13
|
import { InlineSampleDisplay } from "../../samples/InlineSampleDisplay";
|
13
14
|
import { SampleDialog } from "../../samples/SampleDialog";
|
14
15
|
import { SamplesDescriptor } from "../../samples/descriptor/samplesDescriptor.tsx";
|
@@ -43,7 +44,7 @@ interface SamplesTabProps {
|
|
43
44
|
sampleTabScrollRef: RefObject<HTMLDivElement | null>;
|
44
45
|
}
|
45
46
|
|
46
|
-
export const SamplesTab:
|
47
|
+
export const SamplesTab: FC<SamplesTabProps> = ({
|
47
48
|
sample,
|
48
49
|
samples,
|
49
50
|
sampleMode,
|
@@ -65,7 +66,7 @@ export const SamplesTab: React.FC<SamplesTabProps> = ({
|
|
65
66
|
const [items, setItems] = useState<ListItem[]>([]);
|
66
67
|
const [sampleItems, setSampleItems] = useState<ListItem[]>([]);
|
67
68
|
|
68
|
-
const
|
69
|
+
const sampleListHandle = useRef<VirtuosoHandle | null>(null);
|
69
70
|
const sampleDialogRef = useRef<HTMLDivElement>(null);
|
70
71
|
|
71
72
|
// Shows the sample dialog
|
@@ -74,7 +75,7 @@ export const SamplesTab: React.FC<SamplesTabProps> = ({
|
|
74
75
|
setSelectedSampleIndex(index);
|
75
76
|
setShowingSampleDialog(true);
|
76
77
|
},
|
77
|
-
[
|
78
|
+
[setSelectedSampleIndex, setShowingSampleDialog],
|
78
79
|
);
|
79
80
|
|
80
81
|
useEffect(() => {
|
@@ -84,8 +85,8 @@ export const SamplesTab: React.FC<SamplesTabProps> = ({
|
|
84
85
|
}, 0);
|
85
86
|
} else {
|
86
87
|
setTimeout(() => {
|
87
|
-
if (
|
88
|
-
|
88
|
+
if (sampleListHandle.current) {
|
89
|
+
sampleListHandle.current.scrollToIndex(0);
|
89
90
|
}
|
90
91
|
}, 0);
|
91
92
|
}
|
@@ -128,11 +129,11 @@ export const SamplesTab: React.FC<SamplesTabProps> = ({
|
|
128
129
|
} else {
|
129
130
|
return -1;
|
130
131
|
}
|
131
|
-
}, [selectedSampleIndex,
|
132
|
+
}, [selectedSampleIndex, sampleItems.length]);
|
132
133
|
|
133
134
|
const previousSampleIndex = useCallback(() => {
|
134
135
|
return selectedSampleIndex > 0 ? selectedSampleIndex - 1 : -1;
|
135
|
-
}, [selectedSampleIndex
|
136
|
+
}, [selectedSampleIndex]);
|
136
137
|
|
137
138
|
// Manage the next / previous state the selected sample
|
138
139
|
const nextSample = useCallback(() => {
|
@@ -140,14 +141,14 @@ export const SamplesTab: React.FC<SamplesTabProps> = ({
|
|
140
141
|
if (sampleStatus !== "loading" && next > -1) {
|
141
142
|
setSelectedSampleIndex(next);
|
142
143
|
}
|
143
|
-
}, [
|
144
|
+
}, [nextSampleIndex, sampleStatus, setSelectedSampleIndex]);
|
144
145
|
|
145
146
|
const previousSample = useCallback(() => {
|
146
147
|
const prev = previousSampleIndex();
|
147
148
|
if (sampleStatus !== "loading" && prev > -1) {
|
148
149
|
setSelectedSampleIndex(prev);
|
149
150
|
}
|
150
|
-
}, [
|
151
|
+
}, [previousSampleIndex, sampleStatus, setSelectedSampleIndex]);
|
151
152
|
|
152
153
|
const title =
|
153
154
|
selectedSampleIndex > -1 && sampleItems.length > selectedSampleIndex
|
@@ -173,7 +174,7 @@ export const SamplesTab: React.FC<SamplesTabProps> = ({
|
|
173
174
|
) : undefined}
|
174
175
|
{sampleDescriptor && sampleMode === "many" ? (
|
175
176
|
<SampleList
|
176
|
-
|
177
|
+
listHandle={sampleListHandle}
|
177
178
|
items={items}
|
178
179
|
sampleDescriptor={sampleDescriptor}
|
179
180
|
selectedIndex={selectedSampleIndex}
|
inspect_ai/_view/www/yarn.lock
CHANGED
@@ -351,14 +351,14 @@
|
|
351
351
|
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c"
|
352
352
|
integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
|
353
353
|
|
354
|
-
"@eslint-community/eslint-utils@^4.2.0":
|
354
|
+
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
|
355
355
|
version "4.4.1"
|
356
356
|
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56"
|
357
357
|
integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
|
358
358
|
dependencies:
|
359
359
|
eslint-visitor-keys "^3.4.3"
|
360
360
|
|
361
|
-
"@eslint-community/regexpp@^4.12.1":
|
361
|
+
"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1":
|
362
362
|
version "4.12.1"
|
363
363
|
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
|
364
364
|
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
|
@@ -496,6 +496,27 @@
|
|
496
496
|
resolved "https://registry.yarnpkg.com/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz#775374306116d51c0c500b8c4face0f9a04752d8"
|
497
497
|
integrity sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==
|
498
498
|
|
499
|
+
"@nodelib/fs.scandir@2.1.5":
|
500
|
+
version "2.1.5"
|
501
|
+
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
|
502
|
+
integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
|
503
|
+
dependencies:
|
504
|
+
"@nodelib/fs.stat" "2.0.5"
|
505
|
+
run-parallel "^1.1.9"
|
506
|
+
|
507
|
+
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
|
508
|
+
version "2.0.5"
|
509
|
+
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
|
510
|
+
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
|
511
|
+
|
512
|
+
"@nodelib/fs.walk@^1.2.3":
|
513
|
+
version "1.2.8"
|
514
|
+
resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
|
515
|
+
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
|
516
|
+
dependencies:
|
517
|
+
"@nodelib/fs.scandir" "2.1.5"
|
518
|
+
fastq "^1.6.0"
|
519
|
+
|
499
520
|
"@popperjs/core@^2.11.8", "@popperjs/core@^2.9.2":
|
500
521
|
version "2.11.8"
|
501
522
|
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
|
@@ -712,6 +733,87 @@
|
|
712
733
|
dependencies:
|
713
734
|
"@types/estree" "*"
|
714
735
|
|
736
|
+
"@typescript-eslint/eslint-plugin@8.25.0":
|
737
|
+
version "8.25.0"
|
738
|
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.25.0.tgz#5e1d56f067e5808fa82d1b75bced82396e868a14"
|
739
|
+
integrity sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==
|
740
|
+
dependencies:
|
741
|
+
"@eslint-community/regexpp" "^4.10.0"
|
742
|
+
"@typescript-eslint/scope-manager" "8.25.0"
|
743
|
+
"@typescript-eslint/type-utils" "8.25.0"
|
744
|
+
"@typescript-eslint/utils" "8.25.0"
|
745
|
+
"@typescript-eslint/visitor-keys" "8.25.0"
|
746
|
+
graphemer "^1.4.0"
|
747
|
+
ignore "^5.3.1"
|
748
|
+
natural-compare "^1.4.0"
|
749
|
+
ts-api-utils "^2.0.1"
|
750
|
+
|
751
|
+
"@typescript-eslint/parser@8.25.0":
|
752
|
+
version "8.25.0"
|
753
|
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.25.0.tgz#58fb81c7b7a35184ba17583f3d7ac6c4f3d95be8"
|
754
|
+
integrity sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==
|
755
|
+
dependencies:
|
756
|
+
"@typescript-eslint/scope-manager" "8.25.0"
|
757
|
+
"@typescript-eslint/types" "8.25.0"
|
758
|
+
"@typescript-eslint/typescript-estree" "8.25.0"
|
759
|
+
"@typescript-eslint/visitor-keys" "8.25.0"
|
760
|
+
debug "^4.3.4"
|
761
|
+
|
762
|
+
"@typescript-eslint/scope-manager@8.25.0":
|
763
|
+
version "8.25.0"
|
764
|
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz#ac3805077aade898e98ca824294c998545597df3"
|
765
|
+
integrity sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==
|
766
|
+
dependencies:
|
767
|
+
"@typescript-eslint/types" "8.25.0"
|
768
|
+
"@typescript-eslint/visitor-keys" "8.25.0"
|
769
|
+
|
770
|
+
"@typescript-eslint/type-utils@8.25.0":
|
771
|
+
version "8.25.0"
|
772
|
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.25.0.tgz#ee0d2f67c80af5ae74b5d6f977e0f8ded0059677"
|
773
|
+
integrity sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==
|
774
|
+
dependencies:
|
775
|
+
"@typescript-eslint/typescript-estree" "8.25.0"
|
776
|
+
"@typescript-eslint/utils" "8.25.0"
|
777
|
+
debug "^4.3.4"
|
778
|
+
ts-api-utils "^2.0.1"
|
779
|
+
|
780
|
+
"@typescript-eslint/types@8.25.0":
|
781
|
+
version "8.25.0"
|
782
|
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.25.0.tgz#f91512c2f532b1d6a8826cadd0b0e5cd53cf97e0"
|
783
|
+
integrity sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==
|
784
|
+
|
785
|
+
"@typescript-eslint/typescript-estree@8.25.0":
|
786
|
+
version "8.25.0"
|
787
|
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz#d8409c63abddd4cf5b93c031b24b9edc1c7c1299"
|
788
|
+
integrity sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==
|
789
|
+
dependencies:
|
790
|
+
"@typescript-eslint/types" "8.25.0"
|
791
|
+
"@typescript-eslint/visitor-keys" "8.25.0"
|
792
|
+
debug "^4.3.4"
|
793
|
+
fast-glob "^3.3.2"
|
794
|
+
is-glob "^4.0.3"
|
795
|
+
minimatch "^9.0.4"
|
796
|
+
semver "^7.6.0"
|
797
|
+
ts-api-utils "^2.0.1"
|
798
|
+
|
799
|
+
"@typescript-eslint/utils@8.25.0":
|
800
|
+
version "8.25.0"
|
801
|
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.25.0.tgz#3ea2f9196a915ef4daa2c8eafd44adbd7d56d08a"
|
802
|
+
integrity sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==
|
803
|
+
dependencies:
|
804
|
+
"@eslint-community/eslint-utils" "^4.4.0"
|
805
|
+
"@typescript-eslint/scope-manager" "8.25.0"
|
806
|
+
"@typescript-eslint/types" "8.25.0"
|
807
|
+
"@typescript-eslint/typescript-estree" "8.25.0"
|
808
|
+
|
809
|
+
"@typescript-eslint/visitor-keys@8.25.0":
|
810
|
+
version "8.25.0"
|
811
|
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz#e8646324cd1793f96e02669cb717a05319403164"
|
812
|
+
integrity sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==
|
813
|
+
dependencies:
|
814
|
+
"@typescript-eslint/types" "8.25.0"
|
815
|
+
eslint-visitor-keys "^4.2.0"
|
816
|
+
|
715
817
|
"@vitejs/plugin-react@^4.3.4":
|
716
818
|
version "4.3.4"
|
717
819
|
resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz#c64be10b54c4640135a5b28a2432330e88ad7c20"
|
@@ -791,6 +893,20 @@ brace-expansion@^1.1.7:
|
|
791
893
|
balanced-match "^1.0.0"
|
792
894
|
concat-map "0.0.1"
|
793
895
|
|
896
|
+
brace-expansion@^2.0.1:
|
897
|
+
version "2.0.1"
|
898
|
+
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
|
899
|
+
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
|
900
|
+
dependencies:
|
901
|
+
balanced-match "^1.0.0"
|
902
|
+
|
903
|
+
braces@^3.0.3:
|
904
|
+
version "3.0.3"
|
905
|
+
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
|
906
|
+
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
|
907
|
+
dependencies:
|
908
|
+
fill-range "^7.1.1"
|
909
|
+
|
794
910
|
browserslist@^4.24.0:
|
795
911
|
version "4.24.4"
|
796
912
|
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b"
|
@@ -897,7 +1013,7 @@ cuint@^0.2.2:
|
|
897
1013
|
resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b"
|
898
1014
|
integrity sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==
|
899
1015
|
|
900
|
-
debug@^4.1.0, debug@^4.3.1, debug@^4.3.2:
|
1016
|
+
debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
|
901
1017
|
version "4.4.0"
|
902
1018
|
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
|
903
1019
|
integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
|
@@ -968,6 +1084,11 @@ escape-string-regexp@^4.0.0:
|
|
968
1084
|
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
|
969
1085
|
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
|
970
1086
|
|
1087
|
+
eslint-plugin-react-hooks@^5.1.0:
|
1088
|
+
version "5.1.0"
|
1089
|
+
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz#3d34e37d5770866c34b87d5b499f5f0b53bf0854"
|
1090
|
+
integrity sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==
|
1091
|
+
|
971
1092
|
eslint-scope@^8.2.0:
|
972
1093
|
version "8.2.0"
|
973
1094
|
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442"
|
@@ -1064,6 +1185,17 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
|
|
1064
1185
|
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
1065
1186
|
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
1066
1187
|
|
1188
|
+
fast-glob@^3.3.2:
|
1189
|
+
version "3.3.3"
|
1190
|
+
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
|
1191
|
+
integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
|
1192
|
+
dependencies:
|
1193
|
+
"@nodelib/fs.stat" "^2.0.2"
|
1194
|
+
"@nodelib/fs.walk" "^1.2.3"
|
1195
|
+
glob-parent "^5.1.2"
|
1196
|
+
merge2 "^1.3.0"
|
1197
|
+
micromatch "^4.0.8"
|
1198
|
+
|
1067
1199
|
fast-json-patch@^3.1.1:
|
1068
1200
|
version "3.1.1"
|
1069
1201
|
resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz#85064ea1b1ebf97a3f7ad01e23f9337e72c66947"
|
@@ -1079,6 +1211,13 @@ fast-levenshtein@^2.0.6:
|
|
1079
1211
|
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
1080
1212
|
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
|
1081
1213
|
|
1214
|
+
fastq@^1.6.0:
|
1215
|
+
version "1.19.1"
|
1216
|
+
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5"
|
1217
|
+
integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==
|
1218
|
+
dependencies:
|
1219
|
+
reusify "^1.0.4"
|
1220
|
+
|
1082
1221
|
fflate@^0.8.2:
|
1083
1222
|
version "0.8.2"
|
1084
1223
|
resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea"
|
@@ -1091,6 +1230,13 @@ file-entry-cache@^8.0.0:
|
|
1091
1230
|
dependencies:
|
1092
1231
|
flat-cache "^4.0.0"
|
1093
1232
|
|
1233
|
+
fill-range@^7.1.1:
|
1234
|
+
version "7.1.1"
|
1235
|
+
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
|
1236
|
+
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
|
1237
|
+
dependencies:
|
1238
|
+
to-regex-range "^5.0.1"
|
1239
|
+
|
1094
1240
|
filtrex@^3.1.0:
|
1095
1241
|
version "3.1.0"
|
1096
1242
|
resolved "https://registry.yarnpkg.com/filtrex/-/filtrex-3.1.0.tgz#5ec00994615ff10e5e09c89bb290c855cb408c21"
|
@@ -1127,6 +1273,13 @@ gensync@^1.0.0-beta.2:
|
|
1127
1273
|
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
1128
1274
|
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
1129
1275
|
|
1276
|
+
glob-parent@^5.1.2:
|
1277
|
+
version "5.1.2"
|
1278
|
+
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
1279
|
+
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
1280
|
+
dependencies:
|
1281
|
+
is-glob "^4.0.1"
|
1282
|
+
|
1130
1283
|
glob-parent@^6.0.2:
|
1131
1284
|
version "6.0.2"
|
1132
1285
|
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
|
@@ -1156,6 +1309,11 @@ good-listener@^1.2.2:
|
|
1156
1309
|
dependencies:
|
1157
1310
|
delegate "^3.1.2"
|
1158
1311
|
|
1312
|
+
graphemer@^1.4.0:
|
1313
|
+
version "1.4.0"
|
1314
|
+
resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
|
1315
|
+
integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
|
1316
|
+
|
1159
1317
|
has-flag@^4.0.0:
|
1160
1318
|
version "4.0.0"
|
1161
1319
|
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
@@ -1166,7 +1324,7 @@ htm@^3.1.1:
|
|
1166
1324
|
resolved "https://registry.yarnpkg.com/htm/-/htm-3.1.1.tgz#49266582be0dc66ed2235d5ea892307cc0c24b78"
|
1167
1325
|
integrity sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==
|
1168
1326
|
|
1169
|
-
ignore@^5.2.0:
|
1327
|
+
ignore@^5.2.0, ignore@^5.3.1:
|
1170
1328
|
version "5.3.2"
|
1171
1329
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
|
1172
1330
|
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
|
@@ -1189,13 +1347,18 @@ is-extglob@^2.1.1:
|
|
1189
1347
|
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
1190
1348
|
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
|
1191
1349
|
|
1192
|
-
is-glob@^4.0.0, is-glob@^4.0.3:
|
1350
|
+
is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
|
1193
1351
|
version "4.0.3"
|
1194
1352
|
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
|
1195
1353
|
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
|
1196
1354
|
dependencies:
|
1197
1355
|
is-extglob "^2.1.1"
|
1198
1356
|
|
1357
|
+
is-number@^7.0.0:
|
1358
|
+
version "7.0.0"
|
1359
|
+
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
1360
|
+
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
1361
|
+
|
1199
1362
|
isexe@^2.0.0:
|
1200
1363
|
version "2.0.0"
|
1201
1364
|
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
@@ -1317,6 +1480,19 @@ mdurl@^2.0.0:
|
|
1317
1480
|
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0"
|
1318
1481
|
integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==
|
1319
1482
|
|
1483
|
+
merge2@^1.3.0:
|
1484
|
+
version "1.4.1"
|
1485
|
+
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
1486
|
+
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
1487
|
+
|
1488
|
+
micromatch@^4.0.8:
|
1489
|
+
version "4.0.8"
|
1490
|
+
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
|
1491
|
+
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
|
1492
|
+
dependencies:
|
1493
|
+
braces "^3.0.3"
|
1494
|
+
picomatch "^2.3.1"
|
1495
|
+
|
1320
1496
|
mime@~2.5.2:
|
1321
1497
|
version "2.5.2"
|
1322
1498
|
resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
|
@@ -1329,6 +1505,13 @@ minimatch@^3.1.2:
|
|
1329
1505
|
dependencies:
|
1330
1506
|
brace-expansion "^1.1.7"
|
1331
1507
|
|
1508
|
+
minimatch@^9.0.4:
|
1509
|
+
version "9.0.5"
|
1510
|
+
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
|
1511
|
+
integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
|
1512
|
+
dependencies:
|
1513
|
+
brace-expansion "^2.0.1"
|
1514
|
+
|
1332
1515
|
minimatch@~3.0.4:
|
1333
1516
|
version "3.0.8"
|
1334
1517
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1"
|
@@ -1409,6 +1592,11 @@ picocolors@^1.0.0, picocolors@^1.1.1:
|
|
1409
1592
|
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
|
1410
1593
|
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
|
1411
1594
|
|
1595
|
+
picomatch@^2.3.1:
|
1596
|
+
version "2.3.1"
|
1597
|
+
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
1598
|
+
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
1599
|
+
|
1412
1600
|
postcss-url@^10.1.3:
|
1413
1601
|
version "10.1.3"
|
1414
1602
|
resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-10.1.3.tgz#54120cc910309e2475ec05c2cfa8f8a2deafdf1e"
|
@@ -1453,6 +1641,11 @@ punycode@^2.1.0:
|
|
1453
1641
|
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
|
1454
1642
|
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
|
1455
1643
|
|
1644
|
+
queue-microtask@^1.2.2:
|
1645
|
+
version "1.2.3"
|
1646
|
+
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
1647
|
+
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
1648
|
+
|
1456
1649
|
react-dom@^19.0.0:
|
1457
1650
|
version "19.0.0"
|
1458
1651
|
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.0.tgz#43446f1f01c65a4cd7f7588083e686a6726cfb57"
|
@@ -1465,6 +1658,11 @@ react-refresh@^0.14.2:
|
|
1465
1658
|
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9"
|
1466
1659
|
integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==
|
1467
1660
|
|
1661
|
+
react-virtuoso@^4.12.5:
|
1662
|
+
version "4.12.5"
|
1663
|
+
resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.12.5.tgz#cf92efc2527e56d6df1d4d63c6e4dd3fac5a4030"
|
1664
|
+
integrity sha512-YeCbRRsC9CLf0buD0Rct7WsDbzf+yBU1wGbo05/XjbcN2nJuhgh040m3y3+6HVogTZxEqVm45ac9Fpae4/MxRQ==
|
1665
|
+
|
1468
1666
|
react@^19.0.0:
|
1469
1667
|
version "19.0.0"
|
1470
1668
|
resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd"
|
@@ -1480,6 +1678,11 @@ resolve-from@^4.0.0:
|
|
1480
1678
|
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
|
1481
1679
|
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
|
1482
1680
|
|
1681
|
+
reusify@^1.0.4:
|
1682
|
+
version "1.1.0"
|
1683
|
+
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f"
|
1684
|
+
integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==
|
1685
|
+
|
1483
1686
|
rollup@^4.20.0:
|
1484
1687
|
version "4.31.0"
|
1485
1688
|
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.31.0.tgz#b84af969a0292cb047dce2c0ec5413a9457597a4"
|
@@ -1508,6 +1711,13 @@ rollup@^4.20.0:
|
|
1508
1711
|
"@rollup/rollup-win32-x64-msvc" "4.31.0"
|
1509
1712
|
fsevents "~2.3.2"
|
1510
1713
|
|
1714
|
+
run-parallel@^1.1.9:
|
1715
|
+
version "1.2.0"
|
1716
|
+
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
|
1717
|
+
integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
|
1718
|
+
dependencies:
|
1719
|
+
queue-microtask "^1.2.2"
|
1720
|
+
|
1511
1721
|
scheduler@^0.25.0:
|
1512
1722
|
version "0.25.0"
|
1513
1723
|
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015"
|
@@ -1523,6 +1733,11 @@ semver@^6.0.0, semver@^6.3.1:
|
|
1523
1733
|
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
|
1524
1734
|
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
1525
1735
|
|
1736
|
+
semver@^7.6.0:
|
1737
|
+
version "7.7.1"
|
1738
|
+
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f"
|
1739
|
+
integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
|
1740
|
+
|
1526
1741
|
seroval-plugins@^1.1.0:
|
1527
1742
|
version "1.2.0"
|
1528
1743
|
resolved "https://registry.yarnpkg.com/seroval-plugins/-/seroval-plugins-1.2.0.tgz#7fcf8537938e0446f843897172fc64f01322c33f"
|
@@ -1581,6 +1796,18 @@ tiny-emitter@^2.0.0:
|
|
1581
1796
|
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
|
1582
1797
|
integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
|
1583
1798
|
|
1799
|
+
to-regex-range@^5.0.1:
|
1800
|
+
version "5.0.1"
|
1801
|
+
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
1802
|
+
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
1803
|
+
dependencies:
|
1804
|
+
is-number "^7.0.0"
|
1805
|
+
|
1806
|
+
ts-api-utils@^2.0.1:
|
1807
|
+
version "2.0.1"
|
1808
|
+
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.0.1.tgz#660729385b625b939aaa58054f45c058f33f10cd"
|
1809
|
+
integrity sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==
|
1810
|
+
|
1584
1811
|
type-check@^0.4.0, type-check@~0.4.0:
|
1585
1812
|
version "0.4.0"
|
1586
1813
|
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
|
@@ -1588,6 +1815,15 @@ type-check@^0.4.0, type-check@~0.4.0:
|
|
1588
1815
|
dependencies:
|
1589
1816
|
prelude-ls "^1.2.1"
|
1590
1817
|
|
1818
|
+
typescript-eslint@^8.25.0:
|
1819
|
+
version "8.25.0"
|
1820
|
+
resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.25.0.tgz#73047c157cd70ee93cf2f9243f1599d21cf60239"
|
1821
|
+
integrity sha512-TxRdQQLH4g7JkoFlYG3caW5v1S6kEkz8rqt80iQJZUYPq1zD1Ra7HfQBJJ88ABRaMvHAXnwRvRB4V+6sQ9xN5Q==
|
1822
|
+
dependencies:
|
1823
|
+
"@typescript-eslint/eslint-plugin" "8.25.0"
|
1824
|
+
"@typescript-eslint/parser" "8.25.0"
|
1825
|
+
"@typescript-eslint/utils" "8.25.0"
|
1826
|
+
|
1591
1827
|
typescript@^5.7.3:
|
1592
1828
|
version "5.7.3"
|
1593
1829
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.3.tgz#919b44a7dbb8583a9b856d162be24a54bf80073e"
|
inspect_ai/log/__init__.py
CHANGED
@@ -41,6 +41,7 @@ from ._transcript import (
|
|
41
41
|
ModelEvent,
|
42
42
|
SampleInitEvent,
|
43
43
|
SampleLimitEvent,
|
44
|
+
SandboxEvent,
|
44
45
|
ScoreEvent,
|
45
46
|
StateEvent,
|
46
47
|
StepEvent,
|
@@ -82,6 +83,7 @@ __all__ = [
|
|
82
83
|
"ModelEvent",
|
83
84
|
"SampleInitEvent",
|
84
85
|
"SampleLimitEvent",
|
86
|
+
"SandboxEvent",
|
85
87
|
"ScoreEvent",
|
86
88
|
"StateEvent",
|
87
89
|
"StepEvent",
|
inspect_ai/log/_condense.py
CHANGED
@@ -10,6 +10,7 @@ from inspect_ai._util.content import (
|
|
10
10
|
Content,
|
11
11
|
ContentAudio,
|
12
12
|
ContentImage,
|
13
|
+
ContentReasoning,
|
13
14
|
ContentText,
|
14
15
|
ContentVideo,
|
15
16
|
)
|
@@ -217,6 +218,7 @@ def walk_model_call(
|
|
217
218
|
return ModelCall(
|
218
219
|
request=walk_json_dict(call.request, content_fn),
|
219
220
|
response=walk_json_dict(call.response, content_fn),
|
221
|
+
time=call.time,
|
220
222
|
)
|
221
223
|
else:
|
222
224
|
return None
|
@@ -314,3 +316,5 @@ def walk_content(content: Content, content_fn: Callable[[str], str]) -> Content:
|
|
314
316
|
return content.model_copy(update=dict(audio=content_fn(content.audio)))
|
315
317
|
elif isinstance(content, ContentVideo):
|
316
318
|
return content.model_copy(update=dict(video=content_fn(content.video)))
|
319
|
+
elif isinstance(content, ContentReasoning):
|
320
|
+
return content.model_copy(update=dict(reasoning=content_fn(content.reasoning)))
|
inspect_ai/log/_log.py
CHANGED
@@ -4,7 +4,7 @@ import sys
|
|
4
4
|
import traceback
|
5
5
|
from logging import getLogger
|
6
6
|
from types import TracebackType
|
7
|
-
from typing import Any, Literal, Type, TypedDict
|
7
|
+
from typing import Any, Literal, Tuple, Type, TypedDict
|
8
8
|
|
9
9
|
import click
|
10
10
|
import tenacity
|
@@ -86,13 +86,16 @@ class EvalConfig(BaseModel):
|
|
86
86
|
"""
|
87
87
|
|
88
88
|
message_limit: int | None = Field(default=None)
|
89
|
-
"""Maximum messages to allow
|
89
|
+
"""Maximum messages to allow per sample."""
|
90
90
|
|
91
91
|
token_limit: int | None = Field(default=None)
|
92
|
-
"""Maximum tokens
|
92
|
+
"""Maximum tokens usage per sample."""
|
93
93
|
|
94
94
|
time_limit: int | None = Field(default=None)
|
95
|
-
"""Maximum
|
95
|
+
"""Maximum clock time per sample."""
|
96
|
+
|
97
|
+
working_limit: int | None = Field(default=None)
|
98
|
+
"""Meximum working time per sample."""
|
96
99
|
|
97
100
|
max_samples: int | None = Field(default=None)
|
98
101
|
"""Maximum number of samples to run in parallel."""
|
@@ -141,7 +144,9 @@ class EvalConfig(BaseModel):
|
|
141
144
|
class EvalSampleLimit(BaseModel):
|
142
145
|
"""Limit encontered by sample."""
|
143
146
|
|
144
|
-
type: Literal[
|
147
|
+
type: Literal[
|
148
|
+
"context", "time", "working", "message", "token", "operator", "custom"
|
149
|
+
]
|
145
150
|
"""The type of limit"""
|
146
151
|
|
147
152
|
limit: int
|
@@ -218,6 +223,15 @@ class EvalSample(BaseModel):
|
|
218
223
|
model_usage: dict[str, ModelUsage] = Field(default_factory=dict)
|
219
224
|
"""Model token usage for sample."""
|
220
225
|
|
226
|
+
total_time: float | None = Field(default=None)
|
227
|
+
"""Total time that the sample was running."""
|
228
|
+
|
229
|
+
working_time: float | None = Field(default=None)
|
230
|
+
"""Time spent working (model generation, sandbox calls, etc.)"""
|
231
|
+
|
232
|
+
uuid: str | None = Field(default=None)
|
233
|
+
"""Globally unique identifier for sample run (exists for samples created in Inspect >= 0.3.70)"""
|
234
|
+
|
221
235
|
error: EvalError | None = Field(default=None)
|
222
236
|
"""Error that halted sample."""
|
223
237
|
|
@@ -601,14 +615,15 @@ def eval_error(
|
|
601
615
|
exc_traceback: TracebackType | None,
|
602
616
|
) -> EvalError:
|
603
617
|
# get text traceback
|
604
|
-
traceback_text =
|
605
|
-
traceback.format_exception(exc_type, exc_value, exc_traceback)
|
606
|
-
)
|
618
|
+
traceback_text, truncated = truncate_traceback(exc_type, exc_value, exc_traceback)
|
607
619
|
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
620
|
+
if not truncated:
|
621
|
+
with open(os.devnull, "w") as f:
|
622
|
+
console = Console(record=True, file=f, legacy_windows=True)
|
623
|
+
console.print(rich_traceback(exc_type, exc_value, exc_traceback))
|
624
|
+
traceback_ansi = console.export_text(styles=True)
|
625
|
+
else:
|
626
|
+
traceback_ansi = traceback_text
|
612
627
|
|
613
628
|
# return error
|
614
629
|
return EvalError(
|
@@ -632,6 +647,51 @@ def rich_traceback(
|
|
632
647
|
return rich_tb
|
633
648
|
|
634
649
|
|
650
|
+
def truncate_traceback(
|
651
|
+
exc_type: Type[Any],
|
652
|
+
exc_value: BaseException,
|
653
|
+
exc_traceback: TracebackType | None,
|
654
|
+
max_length: int = 1048576, # 1MB
|
655
|
+
) -> Tuple[str, bool]:
|
656
|
+
tb_list = traceback.format_exception(exc_type, exc_value, exc_traceback)
|
657
|
+
|
658
|
+
# Keep the front and back of the traceback
|
659
|
+
header = tb_list[0]
|
660
|
+
error_msg = tb_list[-1]
|
661
|
+
|
662
|
+
# Join the middle parts (stack frames)
|
663
|
+
frames = "".join(tb_list[1:-1])
|
664
|
+
|
665
|
+
# It all fits, use it as is
|
666
|
+
full_tb = header + frames + error_msg
|
667
|
+
if len(full_tb) <= max_length:
|
668
|
+
return full_tb, False
|
669
|
+
|
670
|
+
ellipsis = "\n...\n"
|
671
|
+
|
672
|
+
# Minimum header size
|
673
|
+
header_size = min(len(header), 1024)
|
674
|
+
|
675
|
+
# Minimum frames size
|
676
|
+
frames_size = min(len(frames), 1024)
|
677
|
+
|
678
|
+
# Remaining space for error message
|
679
|
+
error_msg_size = max(0, max_length - header_size - frames_size)
|
680
|
+
|
681
|
+
def truncate_middle(text: str, size: int) -> str:
|
682
|
+
if len(text) <= size:
|
683
|
+
return text
|
684
|
+
half = (size - len(ellipsis)) // 2
|
685
|
+
return f"{text[:half]}{ellipsis}{text[-half:]}"
|
686
|
+
|
687
|
+
# Truncate each part as needed
|
688
|
+
truncated_header = truncate_middle(header, header_size)
|
689
|
+
truncated_frames = truncate_middle(frames, frames_size)
|
690
|
+
truncated_error = truncate_middle(error_msg, error_msg_size)
|
691
|
+
|
692
|
+
return truncated_header + truncated_frames + truncated_error, True
|
693
|
+
|
694
|
+
|
635
695
|
class EvalStats(BaseModel):
|
636
696
|
"""Timing and usage statistics."""
|
637
697
|
|