@meridianlabs/inspect-scout-viewer 0.4.39 → 0.4.40

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.
@@ -8,5 +8,5 @@ interface ScoreProps {
8
8
  expandable?: boolean;
9
9
  }
10
10
  export declare const ScoreValue: FC<ScoreProps>;
11
- export declare const renderScore: (value: JsonValue, maxRows?: number, expandable?: boolean) => string | import("react/jsx-runtime").JSX.Element;
11
+ export declare const renderScore: (value: JsonValue, maxRows?: number, expandable?: boolean) => string | import("react").JSX.Element;
12
12
  export {};
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Ensure `visibleScannerResults` is populated when a scanner-result page is
3
+ * opened directly (deep link or page reload).
4
+ *
5
+ * `visibleScannerResults` is normally written only by ScannerResultsList, which
6
+ * renders under the scan-list route (ScanPanel). On a direct result URL the
7
+ * router renders ScannerResultPanel instead, so that list never mounts and the
8
+ * store keeps its empty default — which leaves ScannerResultNav with no items
9
+ * to page through and hides it entirely (ScannerResultPanel gates the nav on
10
+ * `visibleScannerResults.length > 0`).
11
+ *
12
+ * This seeds the store from the active scan's summaries the same way the list
13
+ * does, but only while it's empty, so it never overrides the list view's
14
+ * filtered/sorted set during in-app navigation.
15
+ */
16
+ export declare const useEnsureVisibleScannerResults: () => void;
@@ -28,7 +28,7 @@ export declare const useCreateSearch: (params: SearchParams) => import('@tanstac
28
28
  id: string;
29
29
  result: import('../../types/generated').components["schemas"]["Result"];
30
30
  }, Error, SearchRequest, unknown>;
31
- export declare const useCachedSearchResult: (params: CachedSearchResultParams) => import('@tanstack/react-query').UseQueryResult<{
31
+ export declare const useCachedSearchResult: (params: CachedSearchResultParams) => import('@tanstack/react-query').UseQueryResult<NoInfer<{
32
32
  answer?: string | null;
33
33
  explanation?: string | null;
34
34
  label?: string | null;
@@ -39,5 +39,5 @@ export declare const useCachedSearchResult: (params: CachedSearchResultParams) =
39
39
  type?: string | null;
40
40
  uuid?: string | null;
41
41
  value: import('../../types/generated').components["schemas"]["JsonValue"];
42
- } | null, Error>;
42
+ } | null>, Error>;
43
43
  export {};
@@ -5,5 +5,5 @@ type SearchPanelProps = {
5
5
  transcriptId: string;
6
6
  onClose: () => void;
7
7
  };
8
- export declare const SearchPanel: (props: SearchPanelProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const SearchPanel: (props: SearchPanelProps) => import("react").JSX.Element;
9
9
  export {};
@@ -7,5 +7,5 @@ export declare const useTranscriptColumnFilter: () => {
7
7
  setDefaultFilter: () => void;
8
8
  setDebugFilter: () => void;
9
9
  toggleEventType: (type: EventTypeValue, isCurrentlyExcluded: boolean) => void;
10
- arrangedEventTypes: (columns?: number) => ("anchor" | "error" | "input" | "tool" | "state" | "step" | "sandbox" | "approval" | "branch" | "checkpoint" | "compaction" | "model" | "info" | "store" | "logger" | "span_begin" | "span_end" | "interrupt" | "sample_init" | "sample_limit" | "score_edit" | "score" | "subtask")[];
10
+ arrangedEventTypes: (columns?: number) => ("anchor" | "error" | "input" | "tool" | "state" | "step" | "approval" | "branch" | "checkpoint" | "compaction" | "model" | "sandbox" | "info" | "store" | "logger" | "span_begin" | "span_end" | "interrupt" | "sample_init" | "sample_limit" | "score_edit" | "score" | "subtask")[];
11
11
  };
@@ -3,6 +3,6 @@ export declare const navigationLog: (description: string) => void;
3
3
  type LoggingNavigateProps = NavigateProps & {
4
4
  reason: string;
5
5
  };
6
- export declare const LoggingNavigate: ({ reason, ...props }: LoggingNavigateProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const LoggingNavigate: ({ reason, ...props }: LoggingNavigateProps) => import("react").JSX.Element;
7
7
  export declare const useLoggingNavigate: (description: string) => NavigateFunction;
8
8
  export {};
@@ -13,7 +13,6 @@ export declare const ApplicationIcons: {
13
13
  "play-circle": string;
14
14
  refuse: string;
15
15
  scanner: string;
16
- settings: string;
17
16
  subagent: string;
18
17
  successSubtle: string;
19
18
  terminal: string;
package/lib/src/main.d.ts CHANGED
@@ -4,3 +4,4 @@ declare global {
4
4
  __SCOUT_DISABLE_SSE__?: boolean;
5
5
  }
6
6
  }
7
+ export {};
@@ -6,7 +6,6 @@ export declare const kScanResultRouteUrlPattern = "/scan/:scansDir/*/*";
6
6
  export declare const kTranscriptsRouteUrlPattern = "/transcripts";
7
7
  export declare const kProjectRouteUrlPattern = "/project";
8
8
  export declare const kValidationRouteUrlPattern = "/validation";
9
- export declare const kSettingsRouteUrlPattern = "/settings";
10
9
  export declare const kTranscriptDetailRoute = "/transcripts/:transcriptsDir/:transcriptId";
11
10
  export declare const kTranscriptDetailRouteUrlPattern: RegExp;
12
11
  export declare const kScanIdPattern: RegExp;
@@ -21,7 +20,6 @@ export declare const scanResultRoute: (scansDir: string, scanRelativePath: strin
21
20
  export declare const transcriptsRoute: (searchParams?: URLSearchParams) => string;
22
21
  export declare const projectRoute: () => string;
23
22
  export declare const validationRoute: () => string;
24
- export declare const settingsRoute: () => string;
25
23
  export declare const transcriptRoute: (transcriptsDir: string, transcriptId: string, searchParams?: URLSearchParams, validationSetUri?: string) => string;
26
24
  /**
27
25
  * Validates if a path matches the scan_id pattern.
@@ -1,8 +1,11 @@
1
+ import { ThemePreference } from '@tsmono/theme/bootstrap';
2
+ import { SETTINGS_STORAGE_KEY } from '../theme/constants';
3
+ export type { ThemePreference };
4
+ export { SETTINGS_STORAGE_KEY };
1
5
  export interface ColumnPreset {
2
6
  name: string;
3
7
  columns: string[];
4
8
  }
5
- export type ThemePreference = "system" | "light" | "dark";
6
9
  interface UserSettingsState {
7
10
  dataframeColumnPresets: ColumnPreset[];
8
11
  themePreference: ThemePreference;
@@ -25,4 +28,3 @@ export declare const useUserSettings: import('zustand').UseBoundStore<Omit<impor
25
28
  getOptions: () => Partial<import('zustand/middleware').PersistOptions<UserSettingsState, unknown, unknown>>;
26
29
  };
27
30
  }>;
28
- export {};
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ /**
3
+ * Binds the shared ThemeToggle to scout's zustand-persisted preference.
4
+ * Scout's App.tsx already re-applies the theme whenever themePreference
5
+ * changes (useThemePreferenceSync), so this only has to write the store.
6
+ */
7
+ export declare const ThemeToggleControl: FC;
@@ -1,6 +1 @@
1
- declare global {
2
- interface Window {
3
- __SCOUT_APPLY_BROWSER_THEME__?: () => void;
4
- }
5
- }
6
1
  export {};
@@ -0,0 +1 @@
1
+ export declare const SETTINGS_STORAGE_KEY = "inspect-scout-user-settings";
@@ -957,6 +957,7 @@ export interface components {
957
957
  logprobs?: components["schemas"]["Logprobs"] | null;
958
958
  message: components["schemas"]["ChatMessageAssistant"];
959
959
  prompt_logprobs?: components["schemas"]["Logprobs"] | null;
960
+ stop_details?: components["schemas"]["StopDetails"] | null;
960
961
  /**
961
962
  * Stop Reason
962
963
  * @default unknown
@@ -1113,7 +1114,7 @@ export interface components {
1113
1114
  * Trigger
1114
1115
  * @enum {string}
1115
1116
  */
1116
- trigger: "time" | "turn" | "manual" | "token" | "cost" | "budget";
1117
+ trigger: "time" | "turn" | "manual" | "token" | "cost" | "budget" | "agent_complete";
1117
1118
  /** Turn */
1118
1119
  turn: number;
1119
1120
  /** Uuid */
@@ -1131,12 +1132,10 @@ export interface components {
1131
1132
  * also accepted at the task and eval layers (where they participate in
1132
1133
  * the per-field merge — precedence: eval > sample > task).
1133
1134
  *
1134
- * The fields excluded from this base class — ``checkpoints_dir`` and
1135
- * ``retention`` — are eval-wide concerns that the sample layer must
1135
+ * The fields excluded from this base class — ``checkpoints_location``
1136
+ * and ``retention`` — are eval-wide concerns that the sample layer must
1136
1137
  * not influence. They live only on the derived :class:`CheckpointConfig`,
1137
1138
  * which is the type used at the task and eval layers.
1138
- *
1139
- * See ``design/plans/checkpointing-working.md`` §2.
1140
1139
  */
1141
1140
  CheckpointSampleConfig: {
1142
1141
  /** Max Consecutive Failures */
@@ -1566,6 +1565,8 @@ export interface components {
1566
1565
  extra_headers?: {
1567
1566
  [key: string]: string;
1568
1567
  } | null;
1568
+ /** Fallback Models */
1569
+ fallback_models?: string[] | null;
1569
1570
  /** Frequency Penalty */
1570
1571
  frequency_penalty?: number | null;
1571
1572
  /** Internal Tools */
@@ -1649,6 +1650,8 @@ export interface components {
1649
1650
  extra_headers?: {
1650
1651
  [key: string]: string;
1651
1652
  } | null;
1653
+ /** Fallback Models */
1654
+ fallback_models?: string[] | null;
1652
1655
  /** Frequency Penalty */
1653
1656
  frequency_penalty?: number | null;
1654
1657
  /** Internal Tools */
@@ -2323,6 +2326,25 @@ export interface components {
2323
2326
  /** Working Time */
2324
2327
  working_time?: number | null;
2325
2328
  };
2329
+ /**
2330
+ * ModelFallback
2331
+ * @description A model fallback (request served by a different model than requested).
2332
+ */
2333
+ ModelFallback: {
2334
+ /**
2335
+ * Count
2336
+ * @default 1
2337
+ */
2338
+ count: number;
2339
+ /** Fallback Model */
2340
+ fallback_model: string;
2341
+ /** Metadata */
2342
+ metadata?: {
2343
+ [key: string]: unknown;
2344
+ } | null;
2345
+ /** Model */
2346
+ model: string;
2347
+ };
2326
2348
  /**
2327
2349
  * ModelOutput
2328
2350
  * @description Output from model generation.
@@ -2340,6 +2362,7 @@ export interface components {
2340
2362
  completion: string;
2341
2363
  /** Error */
2342
2364
  error?: string | null;
2365
+ fallback?: components["schemas"]["ModelFallback"] | null;
2343
2366
  /** Metadata */
2344
2367
  metadata?: {
2345
2368
  [key: string]: unknown;
@@ -3363,8 +3386,12 @@ export interface components {
3363
3386
  * from restic's backup summary — see :class:`ResticBackupSummary`.
3364
3387
  */
3365
3388
  SnapshotDetails: {
3389
+ /** Additional Files */
3390
+ additional_files?: number | null;
3366
3391
  /** Duration Ms */
3367
3392
  duration_ms: number;
3393
+ /** Files */
3394
+ files?: string[] | null;
3368
3395
  /** Size Bytes */
3369
3396
  size_bytes: number;
3370
3397
  /** Snapshot Id */
@@ -3511,6 +3538,36 @@ export interface components {
3511
3538
  /** Working Start */
3512
3539
  working_start: number;
3513
3540
  };
3541
+ /**
3542
+ * StopCategory
3543
+ * @description A single refusal/safety category reported by (or derived for) a model stop.
3544
+ */
3545
+ StopCategory: {
3546
+ /** Category */
3547
+ category: string;
3548
+ /** Level */
3549
+ level?: string | null;
3550
+ };
3551
+ /**
3552
+ * StopDetails
3553
+ * @description Additional detail about why a model stopped generating (e.g. a content refusal).
3554
+ *
3555
+ * `categories` is the canonical list (always iterable; a single-category provider
3556
+ * appears as one entry). `category` and `explanation` are a convenience high-level
3557
+ * summary derived from the same data — `category` is the primary category and
3558
+ * `explanation` is human-readable (synthesized from `categories` when the provider
3559
+ * supplies no text). Read either way; both describe the same stop.
3560
+ */
3561
+ StopDetails: {
3562
+ /** Categories */
3563
+ categories: components["schemas"]["StopCategory"][];
3564
+ /** Category */
3565
+ category?: string | null;
3566
+ /** Explanation */
3567
+ explanation?: string | null;
3568
+ /** Type */
3569
+ type?: string | null;
3570
+ };
3514
3571
  /**
3515
3572
  * StoreEvent
3516
3573
  * @description Change to data within the current `Store`.