inspect-ai 0.3.94__py3-none-any.whl → 0.3.96__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/loader.py +1 -1
- inspect_ai/_eval/task/run.py +12 -6
- inspect_ai/_util/exception.py +4 -0
- inspect_ai/_util/hash.py +39 -0
- inspect_ai/_util/local_server.py +16 -0
- inspect_ai/_util/path.py +22 -0
- inspect_ai/_util/trace.py +1 -1
- inspect_ai/_util/working.py +4 -0
- inspect_ai/_view/www/dist/assets/index.css +9 -9
- inspect_ai/_view/www/dist/assets/index.js +117 -120
- inspect_ai/_view/www/package.json +1 -1
- inspect_ai/_view/www/src/app/log-view/navbar/SecondaryBar.tsx +2 -2
- inspect_ai/_view/www/src/app/log-view/tabs/SamplesTab.tsx +1 -4
- inspect_ai/_view/www/src/app/samples/SamplesTools.tsx +3 -13
- inspect_ai/_view/www/src/app/samples/sample-tools/SelectScorer.tsx +45 -48
- inspect_ai/_view/www/src/app/samples/sample-tools/filters.ts +16 -15
- inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/SampleFilter.tsx +47 -75
- inspect_ai/_view/www/src/app/samples/sample-tools/sample-filter/completions.ts +9 -9
- inspect_ai/_view/www/src/app/types.ts +12 -2
- inspect_ai/_view/www/src/components/ExpandablePanel.module.css +1 -1
- inspect_ai/_view/www/src/components/ExpandablePanel.tsx +5 -5
- inspect_ai/_view/www/src/state/hooks.ts +19 -3
- inspect_ai/_view/www/src/state/logSlice.ts +23 -5
- inspect_ai/_view/www/yarn.lock +9 -9
- inspect_ai/agent/_bridge/patch.py +1 -3
- inspect_ai/agent/_types.py +1 -1
- inspect_ai/analysis/__init__.py +0 -0
- inspect_ai/analysis/beta/__init__.py +67 -0
- inspect_ai/analysis/beta/_dataframe/__init__.py +0 -0
- inspect_ai/analysis/beta/_dataframe/columns.py +145 -0
- inspect_ai/analysis/beta/_dataframe/evals/__init__.py +0 -0
- inspect_ai/analysis/beta/_dataframe/evals/columns.py +132 -0
- inspect_ai/analysis/beta/_dataframe/evals/extract.py +23 -0
- inspect_ai/analysis/beta/_dataframe/evals/table.py +177 -0
- inspect_ai/analysis/beta/_dataframe/events/__init__.py +0 -0
- inspect_ai/analysis/beta/_dataframe/events/columns.py +87 -0
- inspect_ai/analysis/beta/_dataframe/events/extract.py +26 -0
- inspect_ai/analysis/beta/_dataframe/events/table.py +100 -0
- inspect_ai/analysis/beta/_dataframe/extract.py +73 -0
- inspect_ai/analysis/beta/_dataframe/messages/__init__.py +0 -0
- inspect_ai/analysis/beta/_dataframe/messages/columns.py +60 -0
- inspect_ai/analysis/beta/_dataframe/messages/extract.py +21 -0
- inspect_ai/analysis/beta/_dataframe/messages/table.py +79 -0
- inspect_ai/analysis/beta/_dataframe/progress.py +26 -0
- inspect_ai/analysis/beta/_dataframe/record.py +377 -0
- inspect_ai/analysis/beta/_dataframe/samples/__init__.py +0 -0
- inspect_ai/analysis/beta/_dataframe/samples/columns.py +77 -0
- inspect_ai/analysis/beta/_dataframe/samples/extract.py +54 -0
- inspect_ai/analysis/beta/_dataframe/samples/table.py +370 -0
- inspect_ai/analysis/beta/_dataframe/util.py +160 -0
- inspect_ai/analysis/beta/_dataframe/validate.py +171 -0
- inspect_ai/log/_file.py +10 -3
- inspect_ai/log/_log.py +21 -1
- inspect_ai/model/_call_tools.py +2 -1
- inspect_ai/model/_model.py +6 -4
- inspect_ai/model/_openai_responses.py +17 -18
- inspect_ai/model/_providers/anthropic.py +30 -5
- inspect_ai/model/_providers/providers.py +1 -1
- inspect_ai/solver/_multiple_choice.py +4 -1
- inspect_ai/solver/_task_state.py +8 -4
- inspect_ai/tool/_mcp/_context.py +3 -5
- inspect_ai/tool/_mcp/_sandbox.py +17 -14
- inspect_ai/tool/_mcp/server.py +1 -1
- inspect_ai/tool/_tools/_think.py +1 -1
- inspect_ai/tool/_tools/_web_search/__init__.py +3 -0
- inspect_ai/tool/_tools/{_web_search.py → _web_search/_google.py} +56 -103
- inspect_ai/tool/_tools/_web_search/_tavily.py +77 -0
- inspect_ai/tool/_tools/_web_search/_web_search.py +85 -0
- inspect_ai/util/_sandbox/events.py +3 -2
- {inspect_ai-0.3.94.dist-info → inspect_ai-0.3.96.dist-info}/METADATA +9 -2
- {inspect_ai-0.3.94.dist-info → inspect_ai-0.3.96.dist-info}/RECORD +75 -46
- {inspect_ai-0.3.94.dist-info → inspect_ai-0.3.96.dist-info}/WHEEL +1 -1
- {inspect_ai-0.3.94.dist-info → inspect_ai-0.3.96.dist-info}/entry_points.txt +0 -0
- {inspect_ai-0.3.94.dist-info → inspect_ai-0.3.96.dist-info}/licenses/LICENSE +0 -0
- {inspect_ai-0.3.94.dist-info → inspect_ai-0.3.96.dist-info}/top_level.txt +0 -0
@@ -23080,7 +23080,8 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
|
|
23080
23080
|
pendingSampleSummaries: void 0,
|
23081
23081
|
loadedLog: void 0,
|
23082
23082
|
// Filter state
|
23083
|
-
filter:
|
23083
|
+
filter: "",
|
23084
|
+
filterError: void 0,
|
23084
23085
|
epoch: "all",
|
23085
23086
|
sort: kDefaultSort,
|
23086
23087
|
score: void 0,
|
@@ -23115,6 +23116,14 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
|
|
23115
23116
|
setFilter: (filter) => set2((state) => {
|
23116
23117
|
state.log.filter = filter;
|
23117
23118
|
}),
|
23119
|
+
setFilterError: (error2) => set2((state) => {
|
23120
|
+
state.log.filterError = error2;
|
23121
|
+
}),
|
23122
|
+
clearFilterError: () => {
|
23123
|
+
set2((state) => {
|
23124
|
+
state.log.filterError = void 0;
|
23125
|
+
});
|
23126
|
+
},
|
23118
23127
|
setEpoch: (epoch) => set2((state) => {
|
23119
23128
|
state.log.epoch = epoch;
|
23120
23129
|
}),
|
@@ -23128,7 +23137,8 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
|
|
23128
23137
|
state.log.scores = scores2;
|
23129
23138
|
}),
|
23130
23139
|
resetFiltering: () => set2((state) => {
|
23131
|
-
state.log.filter =
|
23140
|
+
state.log.filter = "";
|
23141
|
+
state.log.filterError = void 0;
|
23132
23142
|
state.log.epoch = "all";
|
23133
23143
|
state.log.sort = kDefaultSort;
|
23134
23144
|
state.log.score = void 0;
|
@@ -24422,12 +24432,12 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
|
|
24422
24432
|
}, [callback]);
|
24423
24433
|
return elementRef;
|
24424
24434
|
};
|
24425
|
-
const expandableBordered = "
|
24426
|
-
const expandableCollapsed = "
|
24427
|
-
const moreToggle = "
|
24428
|
-
const bordered = "
|
24429
|
-
const moreToggleContainer = "
|
24430
|
-
const moreToggleButton = "
|
24435
|
+
const expandableBordered = "_expandableBordered_59eal_1";
|
24436
|
+
const expandableCollapsed = "_expandableCollapsed_59eal_13";
|
24437
|
+
const moreToggle = "_moreToggle_59eal_17";
|
24438
|
+
const bordered = "_bordered_59eal_24";
|
24439
|
+
const moreToggleContainer = "_moreToggleContainer_59eal_28";
|
24440
|
+
const moreToggleButton = "_moreToggleButton_59eal_39";
|
24431
24441
|
const styles$1j = {
|
24432
24442
|
expandableBordered,
|
24433
24443
|
expandableCollapsed,
|
@@ -24440,15 +24450,16 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
|
|
24440
24450
|
({ id, collapse, border, lines = 15, children: children2, className: className2 }) => {
|
24441
24451
|
const [collapsed, setCollapsed] = useCollapsedState(id, collapse);
|
24442
24452
|
const [showToggle, setShowToggle] = reactExports.useState(false);
|
24443
|
-
const
|
24453
|
+
const baseFontSizeRef = reactExports.useRef(0);
|
24444
24454
|
const checkOverflow = reactExports.useCallback(
|
24445
24455
|
(entry2) => {
|
24446
24456
|
const element = entry2.target;
|
24447
|
-
if (
|
24457
|
+
if (baseFontSizeRef.current === 0) {
|
24448
24458
|
const computedStyle = window.getComputedStyle(element);
|
24449
|
-
|
24459
|
+
const rootFontSize = parseFloat(computedStyle.fontSize);
|
24460
|
+
baseFontSizeRef.current = rootFontSize;
|
24450
24461
|
}
|
24451
|
-
const maxCollapsedHeight =
|
24462
|
+
const maxCollapsedHeight = baseFontSizeRef.current * lines;
|
24452
24463
|
const contentHeight = element.scrollHeight;
|
24453
24464
|
setShowToggle(contentHeight > maxCollapsedHeight);
|
24454
24465
|
},
|
@@ -41943,7 +41954,7 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
|
|
41943
41954
|
has_retries: sample2.retries !== void 0 && sample2.retries > 0
|
41944
41955
|
};
|
41945
41956
|
};
|
41946
|
-
const
|
41957
|
+
const sampleFilterItems = (evalDescriptor) => {
|
41947
41958
|
const items = [];
|
41948
41959
|
const bannedShortNames = bannedShortScoreNames(evalDescriptor.scores);
|
41949
41960
|
const valueToString = (value2) => typeof value2 === "string" ? `"${value2}"` : String(value2);
|
@@ -42090,7 +42101,8 @@ categories: ${categories.join(" ")}`;
|
|
42090
42101
|
}
|
42091
42102
|
};
|
42092
42103
|
const filterSamples = (evalDescriptor, samples, filterValue) => {
|
42093
|
-
|
42104
|
+
let error2 = void 0;
|
42105
|
+
let errorCount = 0;
|
42094
42106
|
const result2 = samples.filter((sample2) => {
|
42095
42107
|
if (filterValue) {
|
42096
42108
|
const { matches, error: sampleError } = filterExpression(
|
@@ -42099,12 +42111,15 @@ categories: ${categories.join(" ")}`;
|
|
42099
42111
|
filterValue
|
42100
42112
|
);
|
42101
42113
|
error2 || (error2 = sampleError);
|
42114
|
+
if (sampleError) {
|
42115
|
+
errorCount++;
|
42116
|
+
}
|
42102
42117
|
return matches;
|
42103
42118
|
} else {
|
42104
42119
|
return true;
|
42105
42120
|
}
|
42106
42121
|
});
|
42107
|
-
return { result: result2, error: error2 };
|
42122
|
+
return { result: result2, error: error2, allErrors: errorCount === samples.length };
|
42108
42123
|
};
|
42109
42124
|
const flex$1 = "_flex_1kye9_1";
|
42110
42125
|
const label$7 = "_label_1kye9_5";
|
@@ -42381,12 +42396,22 @@ categories: ${categories.join(" ")}`;
|
|
42381
42396
|
const evalDescriptor = useEvalDescriptor();
|
42382
42397
|
const sampleSummaries = useSampleSummaries();
|
42383
42398
|
const filter = useStore((state) => state.log.filter);
|
42399
|
+
const setFilterError = useStore((state) => state.logActions.setFilterError);
|
42400
|
+
const clearFilterError = useStore(
|
42401
|
+
(state) => state.logActions.clearFilterError
|
42402
|
+
);
|
42384
42403
|
const epoch = useStore((state) => state.log.epoch);
|
42385
42404
|
const sort = useStore((state) => state.log.sort);
|
42386
42405
|
const samplesDescriptor = useSampleDescriptor();
|
42387
42406
|
const score2 = useScore();
|
42388
42407
|
return reactExports.useMemo(() => {
|
42389
|
-
const
|
42408
|
+
const { result: result2, error: error2, allErrors } = evalDescriptor && filter ? filterSamples(evalDescriptor, sampleSummaries, filter) : { result: sampleSummaries, error: void 0, allErrors: false };
|
42409
|
+
if (error2 && allErrors) {
|
42410
|
+
setFilterError(error2);
|
42411
|
+
} else {
|
42412
|
+
clearFilterError();
|
42413
|
+
}
|
42414
|
+
const prefiltered = error2 === void 0 || !allErrors ? result2 : sampleSummaries;
|
42390
42415
|
const filtered = epoch && epoch !== "all" ? prefiltered.filter((sample2) => epoch === String(sample2.epoch)) : prefiltered;
|
42391
42416
|
const sorted = samplesDescriptor ? sortSamples(sort, filtered, samplesDescriptor, score2) : filtered;
|
42392
42417
|
return [...sorted];
|
@@ -42394,6 +42419,8 @@ categories: ${categories.join(" ")}`;
|
|
42394
42419
|
evalDescriptor,
|
42395
42420
|
sampleSummaries,
|
42396
42421
|
filter,
|
42422
|
+
setFilterError,
|
42423
|
+
clearFilterError,
|
42397
42424
|
epoch,
|
42398
42425
|
sort,
|
42399
42426
|
samplesDescriptor,
|
@@ -44311,7 +44338,7 @@ categories: ${categories.join(" ")}`;
|
|
44311
44338
|
if (!evalDescriptor) {
|
44312
44339
|
return null;
|
44313
44340
|
}
|
44314
|
-
const items =
|
44341
|
+
const items = sampleFilterItems(evalDescriptor);
|
44315
44342
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { position: "relative" }, children: Array.from(items).map((item2, index2, array) => /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
|
44316
44343
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { title: item2.tooltip, children: item2.canonicalName }),
|
44317
44344
|
index2 < array.length - 1 ? ", " : ""
|
@@ -81301,14 +81328,6 @@ Supported expressions:
|
|
81301
81328
|
overflow: "hidden"
|
81302
81329
|
}
|
81303
81330
|
});
|
81304
|
-
const getFilteringResult = (evalDescriptor, sampleSummaries, filterValue) => {
|
81305
|
-
const { result: result2, error: error2 } = filterSamples(
|
81306
|
-
evalDescriptor,
|
81307
|
-
sampleSummaries,
|
81308
|
-
filterValue
|
81309
|
-
);
|
81310
|
-
return { numSamples: result2.length, error: error2 };
|
81311
|
-
};
|
81312
81331
|
const ensureOneLine = (tr2) => {
|
81313
81332
|
const newDoc = tr2.newDoc.toString();
|
81314
81333
|
if (!newDoc.includes("\n")) return tr2;
|
@@ -81337,11 +81356,7 @@ Supported expressions:
|
|
81337
81356
|
}
|
81338
81357
|
];
|
81339
81358
|
};
|
81340
|
-
const SampleFilter = ({
|
81341
|
-
samples,
|
81342
|
-
scoreFilter,
|
81343
|
-
setScoreFilter
|
81344
|
-
}) => {
|
81359
|
+
const SampleFilter = () => {
|
81345
81360
|
const editorRef = reactExports.useRef(null);
|
81346
81361
|
const editorViewRef = reactExports.useRef(null);
|
81347
81362
|
const linterCompartment = reactExports.useRef(new Compartment());
|
@@ -81349,41 +81364,50 @@ Supported expressions:
|
|
81349
81364
|
const updateListenerCompartment = reactExports.useRef(new Compartment());
|
81350
81365
|
const evalDescriptor = useEvalDescriptor();
|
81351
81366
|
const filterItems = reactExports.useMemo(
|
81352
|
-
() => evalDescriptor ?
|
81367
|
+
() => evalDescriptor ? sampleFilterItems(evalDescriptor) : [],
|
81353
81368
|
[evalDescriptor]
|
81354
81369
|
);
|
81355
|
-
const
|
81356
|
-
const
|
81370
|
+
const filter = useStore((state) => state.log.filter);
|
81371
|
+
const filterError = useStore((state) => state.log.filterError);
|
81372
|
+
const setFilter = useStore((state) => state.logActions.setFilter);
|
81373
|
+
const handleFocus = reactExports.useCallback((event, view) => {
|
81357
81374
|
if (event.isTrusted && view.state.doc.toString() === "") {
|
81358
81375
|
setTimeout(() => startCompletion(view), 0);
|
81359
81376
|
}
|
81360
|
-
};
|
81361
|
-
const makeAutocompletion = (
|
81362
|
-
|
81363
|
-
|
81364
|
-
|
81365
|
-
|
81366
|
-
|
81367
|
-
|
81368
|
-
|
81369
|
-
|
81370
|
-
|
81371
|
-
|
81372
|
-
|
81373
|
-
|
81374
|
-
|
81375
|
-
|
81377
|
+
}, []);
|
81378
|
+
const makeAutocompletion = reactExports.useCallback(
|
81379
|
+
() => autocompletion({
|
81380
|
+
override: [(context) => getCompletions(context, filterItems)],
|
81381
|
+
activateOnCompletion: (c2) => c2.label.endsWith(" ")
|
81382
|
+
}),
|
81383
|
+
[]
|
81384
|
+
);
|
81385
|
+
const makeLinter = reactExports.useCallback(
|
81386
|
+
() => linter((view) => getLints(view, filterError)),
|
81387
|
+
[filterError]
|
81388
|
+
);
|
81389
|
+
const debounceSetFilter = reactExports.useCallback(
|
81390
|
+
debounce$1((value2) => {
|
81391
|
+
setFilter(value2);
|
81392
|
+
}, 200),
|
81393
|
+
[setFilter]
|
81394
|
+
);
|
81395
|
+
const makeUpdateListener = reactExports.useCallback(
|
81396
|
+
() => EditorView.updateListener.of((update) => {
|
81397
|
+
if (update.docChanged && evalDescriptor) {
|
81398
|
+
const newValue = update.state.doc.toString();
|
81399
|
+
debounceSetFilter(newValue);
|
81376
81400
|
}
|
81377
|
-
|
81378
|
-
|
81379
|
-
|
81401
|
+
}),
|
81402
|
+
[setFilter]
|
81403
|
+
);
|
81380
81404
|
reactExports.useEffect(() => {
|
81381
81405
|
var _a2;
|
81382
81406
|
(_a2 = editorViewRef.current) == null ? void 0 : _a2.destroy();
|
81383
81407
|
editorViewRef.current = new EditorView({
|
81384
81408
|
parent: editorRef.current ?? void 0,
|
81385
81409
|
state: EditorState.create({
|
81386
|
-
doc:
|
81410
|
+
doc: filter || "",
|
81387
81411
|
extensions: [
|
81388
81412
|
minimalSetup,
|
81389
81413
|
bracketMatching(),
|
@@ -81406,20 +81430,15 @@ Supported expressions:
|
|
81406
81430
|
reactExports.useEffect(() => {
|
81407
81431
|
if (!editorViewRef.current) return;
|
81408
81432
|
const currentValue = editorViewRef.current.state.doc.toString();
|
81409
|
-
if (
|
81410
|
-
if (evalDescriptor) {
|
81411
|
-
setFilteringResultInstant(
|
81412
|
-
getFilteringResult(evalDescriptor, samples, scoreFilter.value || "")
|
81413
|
-
);
|
81414
|
-
}
|
81433
|
+
if (filter === currentValue) return;
|
81415
81434
|
editorViewRef.current.dispatch({
|
81416
81435
|
changes: {
|
81417
81436
|
from: 0,
|
81418
81437
|
to: currentValue.length,
|
81419
|
-
insert:
|
81438
|
+
insert: filter || ""
|
81420
81439
|
}
|
81421
81440
|
});
|
81422
|
-
}, [
|
81441
|
+
}, [filter]);
|
81423
81442
|
reactExports.useEffect(() => {
|
81424
81443
|
var _a2;
|
81425
81444
|
(_a2 = editorViewRef.current) == null ? void 0 : _a2.dispatch({
|
@@ -81437,7 +81456,7 @@ Supported expressions:
|
|
81437
81456
|
(_a2 = editorViewRef.current) == null ? void 0 : _a2.dispatch({
|
81438
81457
|
effects: linterCompartment.current.reconfigure(makeLinter())
|
81439
81458
|
});
|
81440
|
-
}, [
|
81459
|
+
}, [filterError]);
|
81441
81460
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex" }, children: [
|
81442
81461
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
81443
81462
|
"span",
|
@@ -81456,10 +81475,7 @@ Supported expressions:
|
|
81456
81475
|
"div",
|
81457
81476
|
{
|
81458
81477
|
ref: editorRef,
|
81459
|
-
className: clsx(
|
81460
|
-
(filteringResultInstant == null ? void 0 : filteringResultInstant.error) && "filter-pending",
|
81461
|
-
styles$9.input
|
81462
|
-
)
|
81478
|
+
className: clsx(filterError && "filter-pending", styles$9.input)
|
81463
81479
|
}
|
81464
81480
|
),
|
81465
81481
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
@@ -81487,20 +81503,16 @@ Supported expressions:
|
|
81487
81503
|
score: score2,
|
81488
81504
|
setScore
|
81489
81505
|
}) => {
|
81490
|
-
const scorers =
|
81491
|
-
|
81492
|
-
|
81493
|
-
|
81494
|
-
|
81495
|
-
|
81496
|
-
|
81497
|
-
|
81498
|
-
|
81499
|
-
|
81500
|
-
setScore(scores2[index2]);
|
81501
|
-
},
|
81502
|
-
[setScore, scores2]
|
81503
|
-
);
|
81506
|
+
const scorers = reactExports.useMemo(() => {
|
81507
|
+
return scores2.reduce((accum, scorer2) => {
|
81508
|
+
if (!accum.find((sc) => {
|
81509
|
+
return scorer2.scorer === sc.scorer;
|
81510
|
+
})) {
|
81511
|
+
accum.push(scorer2);
|
81512
|
+
}
|
81513
|
+
return accum;
|
81514
|
+
}, []);
|
81515
|
+
}, [scores2]);
|
81504
81516
|
if (scorers.length === 1) {
|
81505
81517
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$8.flex, children: [
|
81506
81518
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
@@ -81520,8 +81532,8 @@ Supported expressions:
|
|
81520
81532
|
ScoreSelector,
|
81521
81533
|
{
|
81522
81534
|
scores: scores2,
|
81523
|
-
|
81524
|
-
|
81535
|
+
selectedScore: score2,
|
81536
|
+
setSelectedScore: setScore
|
81525
81537
|
}
|
81526
81538
|
)
|
81527
81539
|
] });
|
@@ -81548,8 +81560,8 @@ Supported expressions:
|
|
81548
81560
|
ScorerSelector,
|
81549
81561
|
{
|
81550
81562
|
scorers,
|
81551
|
-
|
81552
|
-
|
81563
|
+
selectedScore: score2,
|
81564
|
+
setSelectedScore: setScore
|
81553
81565
|
}
|
81554
81566
|
),
|
81555
81567
|
scorerScores.length > 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
@@ -81557,8 +81569,8 @@ Supported expressions:
|
|
81557
81569
|
{
|
81558
81570
|
className: clsx(styles$8.secondSel),
|
81559
81571
|
scores: scorerScores,
|
81560
|
-
|
81561
|
-
|
81572
|
+
selectedScore: score2,
|
81573
|
+
setSelectedScore: setScore
|
81562
81574
|
}
|
81563
81575
|
) : void 0
|
81564
81576
|
] });
|
@@ -81566,17 +81578,20 @@ Supported expressions:
|
|
81566
81578
|
};
|
81567
81579
|
const ScoreSelector = ({
|
81568
81580
|
scores: scores2,
|
81569
|
-
|
81570
|
-
|
81581
|
+
selectedScore,
|
81582
|
+
setSelectedScore,
|
81571
81583
|
className: className2
|
81572
81584
|
}) => {
|
81573
81585
|
const handleChange = reactExports.useCallback(
|
81574
81586
|
(e) => {
|
81575
81587
|
const sel = e.target;
|
81576
|
-
|
81588
|
+
setSelectedScore(scores2[sel.selectedIndex]);
|
81577
81589
|
},
|
81578
|
-
[
|
81590
|
+
[setSelectedScore, scores2]
|
81579
81591
|
);
|
81592
|
+
const index2 = scores2.findIndex((sc) => {
|
81593
|
+
return selectedScore && sc.name === selectedScore.name && sc.scorer === selectedScore.scorer;
|
81594
|
+
});
|
81580
81595
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
81581
81596
|
"select",
|
81582
81597
|
{
|
@@ -81587,7 +81602,7 @@ Supported expressions:
|
|
81587
81602
|
className2
|
81588
81603
|
),
|
81589
81604
|
"aria-label": ".select-scorer-label",
|
81590
|
-
value: scores2[
|
81605
|
+
value: scores2[index2].name,
|
81591
81606
|
onChange: handleChange,
|
81592
81607
|
children: scores2.map((score2) => {
|
81593
81608
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: score2.name, children: score2.name }, score2.name);
|
@@ -81597,22 +81612,25 @@ Supported expressions:
|
|
81597
81612
|
};
|
81598
81613
|
const ScorerSelector = ({
|
81599
81614
|
scorers,
|
81600
|
-
|
81601
|
-
|
81615
|
+
selectedScore,
|
81616
|
+
setSelectedScore
|
81602
81617
|
}) => {
|
81603
81618
|
const handleChange = reactExports.useCallback(
|
81604
81619
|
(e) => {
|
81605
81620
|
const sel = e.target;
|
81606
|
-
|
81621
|
+
setSelectedScore(scorers[sel.selectedIndex]);
|
81607
81622
|
},
|
81608
|
-
[
|
81623
|
+
[setSelectedScore, scorers]
|
81609
81624
|
);
|
81625
|
+
const index2 = scorers.findIndex((sc) => {
|
81626
|
+
return selectedScore && sc.scorer === selectedScore.scorer;
|
81627
|
+
});
|
81610
81628
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
81611
81629
|
"select",
|
81612
81630
|
{
|
81613
81631
|
className: clsx("form-select", "form-select-sm", "text-size-smaller"),
|
81614
81632
|
"aria-label": ".epoch-filter-label",
|
81615
|
-
value: scorers[
|
81633
|
+
value: scorers[index2].scorer,
|
81616
81634
|
onChange: handleChange,
|
81617
81635
|
children: scorers.map((scorer2) => {
|
81618
81636
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: scorer2.scorer, children: scorer2.scorer }, scorer2.scorer);
|
@@ -81620,16 +81638,8 @@ Supported expressions:
|
|
81620
81638
|
}
|
81621
81639
|
);
|
81622
81640
|
};
|
81623
|
-
const
|
81624
|
-
return score2 && sc.name === score2.name && sc.scorer === score2.scorer;
|
81625
|
-
});
|
81626
|
-
const scorerIndex = (scores2, score2) => scores2.findIndex((sc) => {
|
81627
|
-
return score2 && sc.scorer === score2.scorer;
|
81628
|
-
});
|
81629
|
-
const SampleTools = ({ samples }) => {
|
81641
|
+
const SampleTools = () => {
|
81630
81642
|
const selectedLogSummary = useStore((state) => state.log.selectedLogSummary);
|
81631
|
-
const filter = useStore((state) => state.log.filter);
|
81632
|
-
const setFilter = useStore((state) => state.logActions.setFilter);
|
81633
81643
|
const scores2 = useScores();
|
81634
81644
|
const score2 = useScore();
|
81635
81645
|
const setScore = useStore((state) => state.logActions.setScore);
|
@@ -81639,14 +81649,7 @@ Supported expressions:
|
|
81639
81649
|
const setSort = useStore((state) => state.logActions.setSort);
|
81640
81650
|
const epochs = (selectedLogSummary == null ? void 0 : selectedLogSummary.eval.config.epochs) || 1;
|
81641
81651
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
81642
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
81643
|
-
SampleFilter,
|
81644
|
-
{
|
81645
|
-
samples,
|
81646
|
-
scoreFilter: filter,
|
81647
|
-
setScoreFilter: setFilter
|
81648
|
-
}
|
81649
|
-
),
|
81652
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SampleFilter, {}),
|
81650
81653
|
(scores2 == null ? void 0 : scores2.length) > 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(SelectScorer, { scores: scores2, score: score2, setScore }) : void 0,
|
81651
81654
|
epochs > 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(EpochFilter, { epoch, setEpoch, epochs }) : void 0,
|
81652
81655
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SortFilter, { sort, setSort, epochs })
|
@@ -82342,13 +82345,7 @@ Supported expressions:
|
|
82342
82345
|
running: evalStatus === "started"
|
82343
82346
|
},
|
82344
82347
|
tools: () => !samplesDescriptor ? void 0 : totalSampleCount === 1 ? [/* @__PURE__ */ jsxRuntimeExports.jsx(ScoreFilterTools, {})] : [
|
82345
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
82346
|
-
SampleTools,
|
82347
|
-
{
|
82348
|
-
samples: sampleSummaries || []
|
82349
|
-
},
|
82350
|
-
"sample-tools"
|
82351
|
-
),
|
82348
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SampleTools, {}, "sample-tools"),
|
82352
82349
|
evalStatus === "started" && !streamSamples && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
82353
82350
|
ToolButton,
|
82354
82351
|
{
|
@@ -8,7 +8,7 @@ import {
|
|
8
8
|
EvalStats,
|
9
9
|
} from "../../../@types/log";
|
10
10
|
import { EvalDescriptor } from "../../../app/samples/descriptor/types";
|
11
|
-
import {
|
11
|
+
import { sampleFilterItems } from "../../../app/samples/sample-tools/filters";
|
12
12
|
import { ExpandablePanel } from "../../../components/ExpandablePanel";
|
13
13
|
import { LabeledValue } from "../../../components/LabeledValue";
|
14
14
|
import { useEvalDescriptor } from "../../../state/hooks";
|
@@ -181,7 +181,7 @@ const ScorerSummary: FC<ScoreSummaryProps> = ({ evalDescriptor }) => {
|
|
181
181
|
return null;
|
182
182
|
}
|
183
183
|
|
184
|
-
const items =
|
184
|
+
const items = sampleFilterItems(evalDescriptor);
|
185
185
|
return (
|
186
186
|
<span style={{ position: "relative" }}>
|
187
187
|
{Array.from(items).map((item, index, array) => (
|
@@ -50,10 +50,7 @@ export const useSamplesTabConfig = (
|
|
50
50
|
: totalSampleCount === 1
|
51
51
|
? [<ScoreFilterTools />]
|
52
52
|
: [
|
53
|
-
<SampleTools
|
54
|
-
samples={sampleSummaries || []}
|
55
|
-
key="sample-tools"
|
56
|
-
/>,
|
53
|
+
<SampleTools key="sample-tools" />,
|
57
54
|
evalStatus === "started" && !streamSamples && (
|
58
55
|
<ToolButton
|
59
56
|
key="refresh"
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import { FC } from "react";
|
2
2
|
import { Fragment } from "react/jsx-runtime";
|
3
|
-
import { SampleSummary } from "../../client/api/types";
|
4
3
|
import { useScore, useScores } from "../../state/hooks";
|
5
4
|
import { useStore } from "../../state/store";
|
6
5
|
import { EpochFilter } from "./sample-tools/EpochFilter";
|
@@ -8,16 +7,11 @@ import { SampleFilter } from "./sample-tools/sample-filter/SampleFilter";
|
|
8
7
|
import { SelectScorer } from "./sample-tools/SelectScorer";
|
9
8
|
import { SortFilter } from "./sample-tools/SortFilter";
|
10
9
|
|
11
|
-
interface SampleToolsProps {
|
12
|
-
samples: SampleSummary[];
|
13
|
-
}
|
10
|
+
interface SampleToolsProps {}
|
14
11
|
|
15
|
-
export const SampleTools: FC<SampleToolsProps> = (
|
12
|
+
export const SampleTools: FC<SampleToolsProps> = () => {
|
16
13
|
const selectedLogSummary = useStore((state) => state.log.selectedLogSummary);
|
17
14
|
|
18
|
-
const filter = useStore((state) => state.log.filter);
|
19
|
-
const setFilter = useStore((state) => state.logActions.setFilter);
|
20
|
-
|
21
15
|
const scores = useScores();
|
22
16
|
const score = useScore();
|
23
17
|
const setScore = useStore((state) => state.logActions.setScore);
|
@@ -29,11 +23,7 @@ export const SampleTools: FC<SampleToolsProps> = ({ samples }) => {
|
|
29
23
|
const epochs = selectedLogSummary?.eval.config.epochs || 1;
|
30
24
|
return (
|
31
25
|
<Fragment>
|
32
|
-
<SampleFilter
|
33
|
-
samples={samples}
|
34
|
-
scoreFilter={filter}
|
35
|
-
setScoreFilter={setFilter}
|
36
|
-
/>
|
26
|
+
<SampleFilter />
|
37
27
|
{scores?.length > 1 ? (
|
38
28
|
<SelectScorer scores={scores} score={score} setScore={setScore} />
|
39
29
|
) : undefined}
|