@metrevals/inspect-scout-viewer 0.3.2-beta.1764711188 → 0.3.3-beta.1765542109

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.
package/lib/index.js CHANGED
@@ -5729,7 +5729,7 @@ function isHtmlLinkDescriptor(object2) {
5729
5729
  return typeof object2.rel === "string" && typeof object2.href === "string";
5730
5730
  }
5731
5731
  async function getKeyedPrefetchLinks(matches, manifest, routeModules) {
5732
- let links = await Promise.all(
5732
+ let links2 = await Promise.all(
5733
5733
  matches.map(async (match3) => {
5734
5734
  let route = manifest.routes[match3.route.id];
5735
5735
  if (route) {
@@ -5740,7 +5740,7 @@ async function getKeyedPrefetchLinks(matches, manifest, routeModules) {
5740
5740
  })
5741
5741
  );
5742
5742
  return dedupeLinkDescriptors(
5743
- links.flat(1).filter(isHtmlLinkDescriptor).filter((link2) => link2.rel === "stylesheet" || link2.rel === "preload").map(
5743
+ links2.flat(1).filter(isHtmlLinkDescriptor).filter((link2) => link2.rel === "stylesheet" || link2.rel === "preload").map(
5744
5744
  (link2) => link2.rel === "stylesheet" ? { ...link2, rel: "prefetch", as: "style" } : { ...link2, rel: "prefetch" }
5745
5745
  )
5746
5746
  );
@@ -5946,9 +5946,9 @@ function useKeyedPrefetchLinks(matches) {
5946
5946
  React3.useEffect(() => {
5947
5947
  let interrupted = false;
5948
5948
  void getKeyedPrefetchLinks(matches, manifest, routeModules).then(
5949
- (links) => {
5949
+ (links2) => {
5950
5950
  if (!interrupted) {
5951
- setKeyedPrefetchLinks(links);
5951
+ setKeyedPrefetchLinks(links2);
5952
5952
  }
5953
5953
  }
5954
5954
  );
@@ -6511,24 +6511,24 @@ function clsx() {
6511
6511
  return n2;
6512
6512
  }
6513
6513
  const wrapper$2 = "_wrapper_1tajk_1";
6514
- const container$h = "_container_1tajk_12";
6514
+ const container$j = "_container_1tajk_12";
6515
6515
  const animate = "_animate_1tajk_21";
6516
- const styles$1m = {
6516
+ const styles$1q = {
6517
6517
  wrapper: wrapper$2,
6518
- container: container$h,
6518
+ container: container$j,
6519
6519
  animate
6520
6520
  };
6521
6521
  const ActivityBar = ({ animating }) => {
6522
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1m.wrapper), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
6522
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1q.wrapper), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
6523
6523
  "div",
6524
6524
  {
6525
- className: clsx(styles$1m.container),
6525
+ className: clsx(styles$1q.container),
6526
6526
  role: "progressbar",
6527
6527
  "aria-label": "Progress bar",
6528
6528
  "aria-valuenow": 25,
6529
6529
  "aria-valuemin": 0,
6530
6530
  "aria-valuemax": 100,
6531
- children: animating && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$1m.animate })
6531
+ children: animating && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$1q.animate })
6532
6532
  }
6533
6533
  ) });
6534
6534
  };
@@ -9721,6 +9721,16 @@ const createStore$1 = (api) => create$2()(
9721
9721
  set3((state) => {
9722
9722
  state.dataframeWrapText = wrap2;
9723
9723
  });
9724
+ },
9725
+ setDataframeFilterColumns: (columns2) => {
9726
+ set3((state) => {
9727
+ state.dataframeFilterColumns = columns2;
9728
+ });
9729
+ },
9730
+ setDataframeShowFilterColumns: (show) => {
9731
+ set3((state) => {
9732
+ state.dataframeShowFilterColumns = show;
9733
+ });
9724
9734
  }
9725
9735
  })),
9726
9736
  {
@@ -9928,7 +9938,7 @@ function useRafThrottle(callback) {
9928
9938
  }
9929
9939
  const tabs$2 = "_tabs_1sz0h_1";
9930
9940
  const tabContents = "_tabContents_1sz0h_5";
9931
- const scrollable = "_scrollable_1sz0h_10";
9941
+ const scrollable$1 = "_scrollable_1sz0h_10";
9932
9942
  const tab$1 = "_tab_1sz0h_1";
9933
9943
  const tabItem = "_tabItem_1sz0h_25";
9934
9944
  const tabIcon = "_tabIcon_1sz0h_29";
@@ -9937,7 +9947,7 @@ const tabStyle = "_tabStyle_1sz0h_43";
9937
9947
  const moduleStyles = {
9938
9948
  tabs: tabs$2,
9939
9949
  tabContents,
9940
- scrollable,
9950
+ scrollable: scrollable$1,
9941
9951
  tab: tab$1,
9942
9952
  tabItem,
9943
9953
  tabIcon,
@@ -10159,6 +10169,7 @@ const ApplicationIcons = {
10159
10169
  edit: "bi bi-pencil-square",
10160
10170
  error: "bi bi-exclamation-circle-fill",
10161
10171
  file: "bi bi-file-code",
10172
+ filter: "bi bi-funnel",
10162
10173
  folder: "bi bi-folder",
10163
10174
  highlight: "bi bi-highlighter",
10164
10175
  info: "bi bi-info-circle",
@@ -10183,12 +10194,14 @@ const ApplicationIcons = {
10183
10194
  next: "bi bi-chevron-right",
10184
10195
  noSamples: "bi bi-ban",
10185
10196
  pendingTask: "bi bi-clock-fill",
10197
+ pendingTaskSubtle: "bi bi-clock",
10186
10198
  play: "bi bi-play-fill",
10187
10199
  previous: "bi bi-chevron-left",
10188
10200
  refuse: "bi bi-ban",
10189
10201
  role: {
10190
10202
  tool: "bi bi-tools"
10191
10203
  },
10204
+ running: "bi bi-stars",
10192
10205
  sample: "bi bi-database",
10193
10206
  samples: "bi bi-file-spreadsheet",
10194
10207
  sandbox: "bi bi-box-seam",
@@ -10198,6 +10211,7 @@ const ApplicationIcons = {
10198
10211
  use_tools: "bi bi-tools"
10199
10212
  },
10200
10213
  success: "bi bi-check-circle-fill",
10214
+ successSubtle: "bi bi-check-circle",
10201
10215
  tree: {
10202
10216
  open: "bi bi-caret-down-fill",
10203
10217
  closed: "bi bi-caret-right-fill"
@@ -10207,7 +10221,7 @@ const ApplicationIcons = {
10207
10221
  };
10208
10222
  const toolButton = "_toolButton_1y0d0_1";
10209
10223
  const latched = "_latched_1y0d0_17";
10210
- const styles$1l = {
10224
+ const styles$1p = {
10211
10225
  toolButton,
10212
10226
  latched
10213
10227
  };
@@ -10219,11 +10233,11 @@ const ToolButton = forwardRef(
10219
10233
  ref: ref2,
10220
10234
  type: "button",
10221
10235
  className: clsx(
10222
- styles$1l.toolButton,
10236
+ styles$1p.toolButton,
10223
10237
  "btn",
10224
10238
  "btn-tools",
10225
10239
  className2,
10226
- latched2 ? styles$1l.latched : void 0
10240
+ latched2 ? styles$1p.latched : void 0
10227
10241
  ),
10228
10242
  ...rest,
10229
10243
  children: [
@@ -34900,7 +34914,7 @@ function formatValue(v, options = {}) {
34900
34914
  function toHTML(table2, options = {}) {
34901
34915
  const names = columns(table2, options.columns);
34902
34916
  const { align: align2, format: format2 } = formats(table2, names, options);
34903
- const style2 = styles$1k(options);
34917
+ const style2 = styles$1o(options);
34904
34918
  const nullish = options.null;
34905
34919
  const alignValue = (a2) => a2 === "c" ? "center" : a2 === "r" ? "right" : "left";
34906
34920
  const escape2 = (s) => s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
@@ -34930,7 +34944,7 @@ function toHTML(table2, options = {}) {
34930
34944
  });
34931
34945
  return text2 + "</tbody></table>";
34932
34946
  }
34933
- function styles$1k(options) {
34947
+ function styles$1o(options) {
34934
34948
  return mapObject(
34935
34949
  options.style,
34936
34950
  (value2) => isFunction$1(value2) ? value2 : () => value2
@@ -36494,7 +36508,10 @@ function castColumns(table2) {
36494
36508
  if (hasScanRefusal) {
36495
36509
  derivations.scan_error_refusal = escape$2(
36496
36510
  (d) => {
36497
- return d.scan_error_refusal?.toLowerCase() === "true";
36511
+ if (typeof d.scan_error_refusal === "string") {
36512
+ return d.scan_error_refusal?.toLowerCase() === "true";
36513
+ }
36514
+ return !!d.scan_error_refusal;
36498
36515
  }
36499
36516
  );
36500
36517
  }
@@ -38203,7 +38220,7 @@ const useScannerData = (columnTable, scanResultUuid) => {
38203
38220
  transcriptSourceUri,
38204
38221
  validationResult,
38205
38222
  validationTarget,
38206
- value: value2 || null,
38223
+ value: value2 ?? null,
38207
38224
  valueType
38208
38225
  };
38209
38226
  let typedData;
@@ -38473,7 +38490,7 @@ const toRelativePath = (absolutePath, basePath) => {
38473
38490
  }
38474
38491
  return normalizedPath;
38475
38492
  };
38476
- const header$2 = "_header_oy6cz_1";
38493
+ const header$3 = "_header_oy6cz_1";
38477
38494
  const bordered$1 = "_bordered_oy6cz_11";
38478
38495
  const breadcrumbs = "_breadcrumbs_oy6cz_15";
38479
38496
  const ellipsis = "_ellipsis_oy6cz_26";
@@ -38482,8 +38499,8 @@ const right$2 = "_right_oy6cz_41";
38482
38499
  const toolbarButton = "_toolbarButton_oy6cz_50";
38483
38500
  const pathContainer = "_pathContainer_oy6cz_58";
38484
38501
  const hasChildren = "_hasChildren_oy6cz_62";
38485
- const styles$1j = {
38486
- header: header$2,
38502
+ const styles$1n = {
38503
+ header: header$3,
38487
38504
  bordered: bordered$1,
38488
38505
  breadcrumbs,
38489
38506
  ellipsis,
@@ -38620,38 +38637,38 @@ const Navbar = ({ bordered: bordered2 = true, children: children2 }) => {
38620
38637
  className: clsx(
38621
38638
  "text-size-smaller",
38622
38639
  "header-nav",
38623
- styles$1j.header,
38624
- bordered2 ? styles$1j.bordered : void 0
38640
+ styles$1n.header,
38641
+ bordered2 ? styles$1n.bordered : void 0
38625
38642
  ),
38626
38643
  "aria-label": "breadcrumb",
38627
38644
  "data-unsearchable": true,
38628
38645
  children: [
38629
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$1j.left), children: [
38630
- backUrl && /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: backUrl, className: clsx(styles$1j.toolbarButton), children: /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx(ApplicationIcons.navbar.back) }) }),
38646
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$1n.left), children: [
38647
+ backUrl && /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: backUrl, className: clsx(styles$1n.toolbarButton), children: /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx(ApplicationIcons.navbar.back) }) }),
38631
38648
  !singleFileMode && /* @__PURE__ */ jsxRuntimeExports.jsx(
38632
38649
  Link,
38633
38650
  {
38634
38651
  to: scansRoute(),
38635
- className: clsx(styles$1j.toolbarButton),
38652
+ className: clsx(styles$1n.toolbarButton),
38636
38653
  onClick: () => {
38637
38654
  },
38638
38655
  children: /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx(ApplicationIcons.navbar.home) })
38639
38656
  }
38640
38657
  ),
38641
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1j.pathContainer), ref: pathContainerRef, children: resultsDir ? /* @__PURE__ */ jsxRuntimeExports.jsx("ol", { className: clsx("breadcrumb", styles$1j.breadcrumbs), children: visibleSegments.map((segment2, index) => {
38658
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1n.pathContainer), ref: pathContainerRef, children: resultsDir ? /* @__PURE__ */ jsxRuntimeExports.jsx("ol", { className: clsx("breadcrumb", styles$1n.breadcrumbs), children: visibleSegments.map((segment2, index) => {
38642
38659
  const isLast = index === visibleSegments.length - 1;
38643
38660
  const shouldShowEllipsis = showEllipsis && index === 1 && visibleSegments.length >= 2;
38644
38661
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
38645
- shouldShowEllipsis && /* @__PURE__ */ jsxRuntimeExports.jsx("li", { className: clsx("breadcrumb-item", styles$1j.ellipsis), children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "..." }) }),
38662
+ shouldShowEllipsis && /* @__PURE__ */ jsxRuntimeExports.jsx("li", { className: clsx("breadcrumb-item", styles$1n.ellipsis), children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "..." }) }),
38646
38663
  /* @__PURE__ */ jsxRuntimeExports.jsx(
38647
38664
  "li",
38648
38665
  {
38649
38666
  className: clsx(
38650
- styles$1j.pathLink,
38667
+ styles$1n.pathLink,
38651
38668
  "breadcrumb-item",
38652
38669
  isLast && !singleFileMode ? "active" : void 0
38653
38670
  ),
38654
- children: segment2.url && !singleFileMode && !isLast ? /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: segment2.url, children: segment2.text }) : /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: clsx(styles$1j.pathSegment), children: segment2.text })
38671
+ children: segment2.url && !singleFileMode && !isLast ? /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: segment2.url, children: segment2.text }) : /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: clsx(styles$1n.pathSegment), children: segment2.text })
38655
38672
  }
38656
38673
  )
38657
38674
  ] }, index);
@@ -38661,8 +38678,8 @@ const Navbar = ({ bordered: bordered2 = true, children: children2 }) => {
38661
38678
  "div",
38662
38679
  {
38663
38680
  className: clsx(
38664
- styles$1j.right,
38665
- children2 ? styles$1j.hasChildren : void 0
38681
+ styles$1n.right,
38682
+ children2 ? styles$1n.hasChildren : void 0
38666
38683
  ),
38667
38684
  children: children2
38668
38685
  }
@@ -40134,21 +40151,21 @@ const CardBody = ({
40134
40151
  const Card = ({ id: id2, children: children2, className: className2 }) => {
40135
40152
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("card", className2), id: id2, children: children2 });
40136
40153
  };
40137
- const container$g = "_container_1cz5u_1";
40154
+ const container$i = "_container_1cz5u_1";
40138
40155
  const traceback = "_traceback_1cz5u_5";
40139
- const styles$1i = {
40140
- container: container$g,
40156
+ const styles$1m = {
40157
+ container: container$i,
40141
40158
  traceback
40142
40159
  };
40143
40160
  const ErrorPanel$1 = ({ error: error2, traceback: traceback2 }) => {
40144
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { className: clsx(styles$1i.container), children: [
40161
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { className: clsx(styles$1m.container), children: [
40145
40162
  /* @__PURE__ */ jsxRuntimeExports.jsx(CardHeader, { type: "modern", children: "Error" }),
40146
40163
  /* @__PURE__ */ jsxRuntimeExports.jsxs(CardBody, { children: [
40147
40164
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-smaller"), children: error2 }),
40148
40165
  traceback2 && /* @__PURE__ */ jsxRuntimeExports.jsx(
40149
40166
  ANSIDisplay,
40150
40167
  {
40151
- className: clsx(styles$1i.traceback, "text-size-smaller"),
40168
+ className: clsx(styles$1m.traceback, "text-size-smaller"),
40152
40169
  output: traceback2
40153
40170
  }
40154
40171
  )
@@ -40156,12 +40173,12 @@ const ErrorPanel$1 = ({ error: error2, traceback: traceback2 }) => {
40156
40173
  ] });
40157
40174
  };
40158
40175
  const labeledValue = "_labeledValue_6obbb_1";
40159
- const row$3 = "_row_6obbb_6";
40176
+ const row$4 = "_row_6obbb_6";
40160
40177
  const column = "_column_6obbb_10";
40161
40178
  const labeledValueLabel = "_labeledValueLabel_6obbb_14";
40162
- const styles$1h = {
40179
+ const styles$1l = {
40163
40180
  labeledValue,
40164
- row: row$3,
40181
+ row: row$4,
40165
40182
  column,
40166
40183
  labeledValueLabel
40167
40184
  };
@@ -40177,8 +40194,8 @@ const LabeledValue = ({
40177
40194
  "div",
40178
40195
  {
40179
40196
  className: clsx(
40180
- styles$1h.labeledValue,
40181
- layout === "column" ? styles$1h.column : styles$1h.row,
40197
+ styles$1l.labeledValue,
40198
+ layout === "column" ? styles$1l.column : styles$1l.row,
40182
40199
  className2
40183
40200
  ),
40184
40201
  style: {
@@ -40189,14 +40206,14 @@ const LabeledValue = ({
40189
40206
  "div",
40190
40207
  {
40191
40208
  className: clsx(
40192
- styles$1h.labeledValueLabel,
40209
+ styles$1l.labeledValueLabel,
40193
40210
  "text-style-label",
40194
40211
  "text-style-secondary"
40195
40212
  ),
40196
40213
  children: label2
40197
40214
  }
40198
40215
  ),
40199
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1h.labeledValueValue), style: { ...valueStyle }, children: children2 })
40216
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1l.labeledValueValue), style: { ...valueStyle }, children: children2 })
40200
40217
  ]
40201
40218
  }
40202
40219
  );
@@ -43423,7 +43440,7 @@ const moreToggleButton = "_moreToggleButton_1ka1g_36";
43423
43440
  const separator$4 = "_separator_1ka1g_44";
43424
43441
  const inlineRight = "_inlineRight_1ka1g_50";
43425
43442
  const blockLeft = "_blockLeft_1ka1g_56";
43426
- const styles$1g = {
43443
+ const styles$1k = {
43427
43444
  expandablePanel,
43428
43445
  expandableBordered,
43429
43446
  expandableCollapsed,
@@ -43475,10 +43492,10 @@ const ExpandablePanel = memo$1(
43475
43492
  style: baseStyles,
43476
43493
  ref: contentRef,
43477
43494
  className: clsx(
43478
- styles$1g.expandablePanel,
43479
- collapsed ? styles$1g.expandableCollapsed : void 0,
43480
- border ? styles$1g.expandableBordered : void 0,
43481
- showToggle ? styles$1g.padBottom : void 0,
43495
+ styles$1k.expandablePanel,
43496
+ collapsed ? styles$1k.expandableCollapsed : void 0,
43497
+ border ? styles$1k.expandableBordered : void 0,
43498
+ showToggle ? styles$1k.padBottom : void 0,
43482
43499
  className2
43483
43500
  ),
43484
43501
  children: [
@@ -43504,7 +43521,7 @@ const ExpandablePanel = memo$1(
43504
43521
  position: "block-left"
43505
43522
  }
43506
43523
  ) }),
43507
- showToggle && layout === "inline-right" && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1g.separator) })
43524
+ showToggle && layout === "inline-right" && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1k.separator) })
43508
43525
  ] });
43509
43526
  }
43510
43527
  );
@@ -43523,15 +43540,15 @@ const MoreToggle = ({
43523
43540
  "div",
43524
43541
  {
43525
43542
  className: clsx(
43526
- styles$1g.moreToggle,
43527
- border ? styles$1g.bordered : void 0,
43528
- position === "inline-right" ? styles$1g.inlineRight : styles$1g.blockLeft
43543
+ styles$1k.moreToggle,
43544
+ border ? styles$1k.bordered : void 0,
43545
+ position === "inline-right" ? styles$1k.inlineRight : styles$1k.blockLeft
43529
43546
  ),
43530
43547
  style: style2,
43531
43548
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
43532
43549
  "button",
43533
43550
  {
43534
- className: clsx(styles$1g.moreToggleButton, "text-size-smallest"),
43551
+ className: clsx(styles$1k.moreToggleButton, "text-size-smallest"),
43535
43552
  onClick: handleClick,
43536
43553
  children: [
43537
43554
  text2,
@@ -43628,7 +43645,7 @@ const keyPairBordered = "_keyPairBordered_qjlxf_9";
43628
43645
  const key = "_key_qjlxf_1";
43629
43646
  const pre = "_pre_qjlxf_19";
43630
43647
  const treeIcon = "_treeIcon_qjlxf_23";
43631
- const styles$1f = {
43648
+ const styles$1j = {
43632
43649
  keyPairContainer,
43633
43650
  keyPairBordered,
43634
43651
  key,
@@ -43639,7 +43656,7 @@ const visible = "_visible_tm52u_1";
43639
43656
  const hidden$2 = "_hidden_tm52u_5";
43640
43657
  const pills = "_pills_tm52u_9";
43641
43658
  const pill = "_pill_tm52u_9";
43642
- const styles$1e = {
43659
+ const styles$1i = {
43643
43660
  visible,
43644
43661
  hidden: hidden$2,
43645
43662
  pills,
@@ -43669,7 +43686,7 @@ const NavPills = ({ id: id2, children: children2 }) => {
43669
43686
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
43670
43687
  "div",
43671
43688
  {
43672
- className: child["props"]?.title === activeItem ? styles$1e.visible : styles$1e.hidden,
43689
+ className: child["props"]?.title === activeItem ? styles$1i.visible : styles$1i.hidden,
43673
43690
  children: child
43674
43691
  },
43675
43692
  `nav-pill-container-${idx}`
@@ -43679,7 +43696,7 @@ const NavPills = ({ id: id2, children: children2 }) => {
43679
43696
  /* @__PURE__ */ jsxRuntimeExports.jsx(
43680
43697
  "ul",
43681
43698
  {
43682
- className: clsx("nav", "nav-pills", styles$1e.pills),
43699
+ className: clsx("nav", "nav-pills", styles$1i.pills),
43683
43700
  role: "tablist",
43684
43701
  "aria-orientation": "horizontal",
43685
43702
  children: navPills
@@ -43715,7 +43732,7 @@ const NavPill = ({
43715
43732
  "nav-link",
43716
43733
  "text-style-label",
43717
43734
  active ? "active " : "",
43718
- styles$1e.pill
43735
+ styles$1i.pill
43719
43736
  ),
43720
43737
  "data-target": title2,
43721
43738
  onClick: handleClick,
@@ -43731,11 +43748,12 @@ const Buckets = {
43731
43748
  final: 1e3
43732
43749
  };
43733
43750
  const copyButton = "_copyButton_1goi8_1";
43734
- const styles$1d = {
43751
+ const styles$1h = {
43735
43752
  copyButton
43736
43753
  };
43737
43754
  const CopyButton = ({
43738
43755
  icon: icon2 = ApplicationIcons.copy,
43756
+ title: title2,
43739
43757
  value: value2,
43740
43758
  onCopySuccess,
43741
43759
  onCopyError,
@@ -43761,12 +43779,13 @@ const CopyButton = ({
43761
43779
  "button",
43762
43780
  {
43763
43781
  type: "button",
43764
- className: clsx("copy-button", styles$1d.copyButton, className2),
43782
+ className: clsx("copy-button", styles$1h.copyButton, className2),
43765
43783
  onClick: () => {
43766
43784
  void handleClick();
43767
43785
  },
43768
43786
  "aria-label": ariaLabel,
43769
43787
  disabled: isCopied,
43788
+ title: title2,
43770
43789
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
43771
43790
  "i",
43772
43791
  {
@@ -43786,7 +43805,7 @@ const indented = "_indented_b8oe1_29";
43786
43805
  const copyLink = "_copyLink_b8oe1_33";
43787
43806
  const metadataLabel = "_metadataLabel_b8oe1_43";
43788
43807
  const hover$1 = "_hover_b8oe1_47";
43789
- const styles$1c = {
43808
+ const styles$1g = {
43790
43809
  message,
43791
43810
  systemRole,
43792
43811
  messageGrid,
@@ -45401,28 +45420,28 @@ function linkify$1(state) {
45401
45420
  }
45402
45421
  if (currentToken.type === "text" && state.md.linkify.test(currentToken.content)) {
45403
45422
  const text2 = currentToken.content;
45404
- let links = state.md.linkify.match(text2);
45423
+ let links2 = state.md.linkify.match(text2);
45405
45424
  const nodes = [];
45406
45425
  let level = currentToken.level;
45407
45426
  let lastPos = 0;
45408
- if (links.length > 0 && links[0].index === 0 && i2 > 0 && tokens[i2 - 1].type === "text_special") {
45409
- links = links.slice(1);
45427
+ if (links2.length > 0 && links2[0].index === 0 && i2 > 0 && tokens[i2 - 1].type === "text_special") {
45428
+ links2 = links2.slice(1);
45410
45429
  }
45411
- for (let ln = 0; ln < links.length; ln++) {
45412
- const url = links[ln].url;
45430
+ for (let ln = 0; ln < links2.length; ln++) {
45431
+ const url = links2[ln].url;
45413
45432
  const fullUrl = state.md.normalizeLink(url);
45414
45433
  if (!state.md.validateLink(fullUrl)) {
45415
45434
  continue;
45416
45435
  }
45417
- let urlText = links[ln].text;
45418
- if (!links[ln].schema) {
45436
+ let urlText = links2[ln].text;
45437
+ if (!links2[ln].schema) {
45419
45438
  urlText = state.md.normalizeLinkText("http://" + urlText).replace(/^http:\/\//, "");
45420
- } else if (links[ln].schema === "mailto:" && !/^mailto:/i.test(urlText)) {
45439
+ } else if (links2[ln].schema === "mailto:" && !/^mailto:/i.test(urlText)) {
45421
45440
  urlText = state.md.normalizeLinkText("mailto:" + urlText).replace(/^mailto:/, "");
45422
45441
  } else {
45423
45442
  urlText = state.md.normalizeLinkText(urlText);
45424
45443
  }
45425
- const pos2 = links[ln].index;
45444
+ const pos2 = links2[ln].index;
45426
45445
  if (pos2 > lastPos) {
45427
45446
  const token2 = new state.Token("text", "", 0);
45428
45447
  token2.content = text2.slice(lastPos, pos2);
@@ -45444,7 +45463,7 @@ function linkify$1(state) {
45444
45463
  token_c.markup = "linkify";
45445
45464
  token_c.info = "auto";
45446
45465
  nodes.push(token_c);
45447
- lastPos = links[ln].lastIndex;
45466
+ lastPos = links2[ln].lastIndex;
45448
45467
  }
45449
45468
  if (lastPos < text2.length) {
45450
45469
  const token2 = new state.Token("text", "", 0);
@@ -49375,17 +49394,17 @@ function unescapeCodeHtmlEntities(str) {
49375
49394
  );
49376
49395
  }
49377
49396
  const cite = "_cite_1t1bm_1";
49378
- const styles$1b = {
49397
+ const styles$1f = {
49379
49398
  cite
49380
49399
  };
49381
49400
  const panel$1 = "_panel_twp3v_1";
49382
- const container$f = "_container_twp3v_7";
49383
- const styles$1a = {
49401
+ const container$h = "_container_twp3v_7";
49402
+ const styles$1e = {
49384
49403
  panel: panel$1,
49385
- container: container$f
49404
+ container: container$h
49386
49405
  };
49387
49406
  const NoContentsPanel = ({ text: text2 }) => {
49388
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1a.panel), children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$1a.container, "text-size-smaller"), children: [
49407
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1e.panel), children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$1e.container, "text-size-smaller"), children: [
49389
49408
  /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: ApplicationIcons.noSamples }),
49390
49409
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: text2 })
49391
49410
  ] }) });
@@ -51147,7 +51166,7 @@ const PopOver = ({
51147
51166
  opacity: state?.placement ? 1 : 0,
51148
51167
  transition: "opacity 0.1s",
51149
51168
  maxWidth: "80%",
51150
- maxHeight: "50%",
51169
+ maxHeight: "80%",
51151
51170
  overflowY: "hidden"
51152
51171
  };
51153
51172
  if (!isOpen || hoverDelay > 0 && !shouldShowPopover) {
@@ -51326,7 +51345,7 @@ const PopOver = ({
51326
51345
  }
51327
51346
  return popperContent;
51328
51347
  };
51329
- const MarkdownDivWithReferences = forwardRef(({ markdown, references, className: className2, style: style2, omitMedia }, ref2) => {
51348
+ const MarkdownDivWithReferences = forwardRef(({ markdown, references, options, className: className2, style: style2, omitMedia }, ref2) => {
51330
51349
  const containerRef = useRef(null);
51331
51350
  const [positionEl, setPositionEl] = useState(null);
51332
51351
  const [currentRef, setCurrentRef] = useState(null);
@@ -51344,14 +51363,14 @@ const MarkdownDivWithReferences = forwardRef(({ markdown, references, className:
51344
51363
  let processedHtml = html;
51345
51364
  references?.forEach((ref22) => {
51346
51365
  const escapedCite = ref22.cite.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
51347
- const regex2 = new RegExp(escapedCite, "g");
51366
+ const regex2 = new RegExp(`${escapedCite}(?![a-zA-Z0-9])`, "g");
51348
51367
  const href = ref22.citeUrl || "javascript:void(0)";
51349
- const replacement = `<a href="${href}" class="${styles$1b.cite}" data-ref-id="${ref22.id}">${ref22.cite}</a>`;
51368
+ const replacement = `<a href="${href}" class="${styles$1f.cite}" data-ref-id="${ref22.id}">${ref22.cite}</a>`;
51350
51369
  processedHtml = processedHtml.replace(regex2, replacement);
51351
51370
  });
51352
51371
  return processedHtml;
51353
51372
  },
51354
- [references, styles$1b.cite]
51373
+ [references, styles$1f.cite]
51355
51374
  );
51356
51375
  const memoizedMarkdown = useMemo(
51357
51376
  () => /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -51372,8 +51391,11 @@ const MarkdownDivWithReferences = forwardRef(({ markdown, references, className:
51372
51391
  if (!container2) {
51373
51392
  return;
51374
51393
  }
51394
+ if (options?.previewRefsOnHover === false) {
51395
+ return;
51396
+ }
51375
51397
  const citeLinks = container2.querySelectorAll(
51376
- `.${styles$1b.cite}`
51398
+ `.${styles$1f.cite}`
51377
51399
  );
51378
51400
  const handleMouseEnter = (e) => {
51379
51401
  const el = e.currentTarget;
@@ -51390,6 +51412,9 @@ const MarkdownDivWithReferences = forwardRef(({ markdown, references, className:
51390
51412
  setShowingRefPopover(popoverKey(ref22));
51391
51413
  };
51392
51414
  const handleClick = (e) => {
51415
+ clearShowingRefPopover();
51416
+ setCurrentRef(null);
51417
+ setPositionEl(null);
51393
51418
  e.stopPropagation();
51394
51419
  };
51395
51420
  const cleanup = [];
@@ -51407,10 +51432,11 @@ const MarkdownDivWithReferences = forwardRef(({ markdown, references, className:
51407
51432
  }, [
51408
51433
  markdown,
51409
51434
  refMap,
51410
- styles$1b.cite,
51435
+ styles$1f.cite,
51411
51436
  setPositionEl,
51412
51437
  setCurrentRef,
51413
- setShowingRefPopover
51438
+ setShowingRefPopover,
51439
+ clearShowingRefPopover
51414
51440
  ]);
51415
51441
  const key2 = currentRef ? popoverKey(currentRef) : "unknown-markdown-ref-popover";
51416
51442
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(className2), ref: containerRef, children: [
@@ -51429,7 +51455,7 @@ const MarkdownDivWithReferences = forwardRef(({ markdown, references, className:
51429
51455
  }
51430
51456
  },
51431
51457
  placement: "auto",
51432
- hoverDelay: 200,
51458
+ hoverDelay: 400,
51433
51459
  showArrow: true,
51434
51460
  children: currentRef.citePreview && currentRef.citePreview() || /* @__PURE__ */ jsxRuntimeExports.jsx(NoContentsPanel, { text: "No preview available." })
51435
51461
  }
@@ -51438,7 +51464,7 @@ const MarkdownDivWithReferences = forwardRef(({ markdown, references, className:
51438
51464
  });
51439
51465
  const popoverKey = (ref2) => `markdown-ref-popover-${ref2.id}`;
51440
51466
  const content = "_content_13ihw_1";
51441
- const styles$19 = {
51467
+ const styles$1d = {
51442
51468
  content
51443
51469
  };
51444
51470
  forwardRef(
@@ -51447,28 +51473,31 @@ forwardRef(
51447
51473
  "pre",
51448
51474
  {
51449
51475
  ref: ref2,
51450
- className: clsx(styles$19.content, "text-size-smaller", className2),
51476
+ className: clsx(styles$1d.content, "text-size-smaller", className2),
51451
51477
  style: style2,
51452
51478
  children: text2
51453
51479
  }
51454
51480
  );
51455
51481
  }
51456
51482
  );
51457
- const RenderedText = forwardRef(({ markdown, references, style: style2, className: className2, forceRender, omitMedia }, ref2) => {
51458
- {
51459
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
51460
- MarkdownDivWithReferences,
51461
- {
51462
- ref: ref2,
51463
- markdown,
51464
- references,
51465
- style: style2,
51466
- className: className2,
51467
- omitMedia
51468
- }
51469
- );
51483
+ const RenderedText = forwardRef(
51484
+ ({ markdown, references, style: style2, className: className2, forceRender, omitMedia, options }, ref2) => {
51485
+ {
51486
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
51487
+ MarkdownDivWithReferences,
51488
+ {
51489
+ ref: ref2,
51490
+ markdown,
51491
+ references,
51492
+ options,
51493
+ style: style2,
51494
+ className: className2,
51495
+ omitMedia
51496
+ }
51497
+ );
51498
+ }
51470
51499
  }
51471
- });
51500
+ );
51472
51501
  const isJson = (text2) => {
51473
51502
  text2 = text2.trim();
51474
51503
  if (text2.startsWith("{") && text2.endsWith("}")) {
@@ -51509,23 +51538,23 @@ const parsedJson = (text2) => {
51509
51538
  return void 0;
51510
51539
  };
51511
51540
  const contentData = "_contentData_1sd1z_1";
51512
- const styles$18 = {
51541
+ const styles$1c = {
51513
51542
  contentData
51514
51543
  };
51515
51544
  const webSearch = "_webSearch_1376z_1";
51516
51545
  const query$1 = "_query_1376z_8";
51517
- const styles$17 = {
51546
+ const styles$1b = {
51518
51547
  webSearch,
51519
51548
  query: query$1
51520
51549
  };
51521
51550
  const WebSearch = ({ query: query2 }) => {
51522
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$17.webSearch, "text-size-smaller"), children: [
51551
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$1b.webSearch, "text-size-smaller"), children: [
51523
51552
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: clsx("text-style-label", "text-style-secondary"), children: "Web Search:" }),
51524
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: clsx(styles$17.query, "text-size-smallest"), children: query2 })
51553
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: clsx(styles$1b.query, "text-size-smallest"), children: query2 })
51525
51554
  ] });
51526
51555
  };
51527
51556
  const result$2 = "_result_1mixg_12";
51528
- const styles$16 = {
51557
+ const styles$1a = {
51529
51558
  result: result$2
51530
51559
  };
51531
51560
  const WebSearchResults = ({
@@ -51536,7 +51565,7 @@ const WebSearchResults = ({
51536
51565
  "div",
51537
51566
  {
51538
51567
  className: clsx(
51539
- styles$16.label,
51568
+ styles$1a.label,
51540
51569
  "text-style-label",
51541
51570
  "text-style-secondary",
51542
51571
  "text-size-smaller"
@@ -51544,10 +51573,10 @@ const WebSearchResults = ({
51544
51573
  children: "Results"
51545
51574
  }
51546
51575
  ),
51547
- /* @__PURE__ */ jsxRuntimeExports.jsx("ol", { className: clsx(styles$16.results, "text-size-smaller"), children: results.map((result2, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(
51576
+ /* @__PURE__ */ jsxRuntimeExports.jsx("ol", { className: clsx(styles$1a.results, "text-size-smaller"), children: results.map((result2, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(
51548
51577
  "li",
51549
51578
  {
51550
- className: clsx(styles$16.result, "text-style-secondary"),
51579
+ className: clsx(styles$1a.result, "text-style-secondary"),
51551
51580
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
51552
51581
  "a",
51553
51582
  {
@@ -51571,17 +51600,17 @@ const ContentDataView = ({ id: id2, contentData: contentData2 }) => {
51571
51600
  );
51572
51601
  if (!renderer) {
51573
51602
  const { encrypted_content, ...record } = renderableData;
51574
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$18.contentData), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
51603
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1c.contentData), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
51575
51604
  RecordTree,
51576
51605
  {
51577
51606
  id: `${id2}-tree`,
51578
51607
  record,
51579
- className: clsx(styles$18.data),
51608
+ className: clsx(styles$1c.data),
51580
51609
  defaultExpandLevel: 0
51581
51610
  }
51582
51611
  ) });
51583
51612
  }
51584
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$18.contentData), children: renderer.render(renderableData) });
51613
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$1c.contentData), children: renderer.render(renderableData) });
51585
51614
  };
51586
51615
  const webSearchServerToolRenderer = {
51587
51616
  name: "WebSearch",
@@ -51623,7 +51652,7 @@ const serverToolRenderer = {
51623
51652
  {
51624
51653
  id: data2.name || "server-tool",
51625
51654
  record: data2,
51626
- className: clsx(styles$18.data)
51655
+ className: clsx(styles$1c.data)
51627
51656
  }
51628
51657
  )
51629
51658
  ] });
@@ -51641,7 +51670,7 @@ const documentFrame = "_documentFrame_1576h_1";
51641
51670
  const documentFrameTitle = "_documentFrameTitle_1576h_9";
51642
51671
  const downloadLink = "_downloadLink_1576h_16";
51643
51672
  const imageDocument = "_imageDocument_1576h_21";
51644
- const styles$15 = {
51673
+ const styles$19 = {
51645
51674
  documentFrame,
51646
51675
  documentFrameTitle,
51647
51676
  downloadLink,
@@ -51656,7 +51685,7 @@ const ContentDocumentView = ({
51656
51685
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ContentDocumentFrame, { document: document2, downloadable: canDownloadFiles, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
51657
51686
  "img",
51658
51687
  {
51659
- className: clsx(styles$15.imageDocument),
51688
+ className: clsx(styles$19.imageDocument),
51660
51689
  src: document2.document,
51661
51690
  alt: document2.filename,
51662
51691
  id: id2
@@ -51681,17 +51710,17 @@ const ContentDocumentFrame = ({
51681
51710
  "div",
51682
51711
  {
51683
51712
  className: clsx(
51684
- styles$15.documentFrame,
51713
+ styles$19.documentFrame,
51685
51714
  "text-size-small",
51686
51715
  "text-style-secondary"
51687
51716
  ),
51688
51717
  children: [
51689
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$15.documentFrameTitle), children: [
51718
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$19.documentFrameTitle), children: [
51690
51719
  /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx(iconForMimeType(document2.mime_type)) }),
51691
51720
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: downloadable ? /* @__PURE__ */ jsxRuntimeExports.jsx(
51692
51721
  "a",
51693
51722
  {
51694
- className: clsx(styles$15.downloadLink),
51723
+ className: clsx(styles$19.downloadLink),
51695
51724
  onClick: () => {
51696
51725
  },
51697
51726
  children: document2.filename
@@ -51704,7 +51733,7 @@ const ContentDocumentFrame = ({
51704
51733
  );
51705
51734
  };
51706
51735
  const jsonMessage = "_jsonMessage_oxf8d_1";
51707
- const styles$14 = {
51736
+ const styles$18 = {
51708
51737
  jsonMessage
51709
51738
  };
51710
51739
  const JsonMessageContent = ({
@@ -51717,7 +51746,7 @@ const JsonMessageContent = ({
51717
51746
  {
51718
51747
  id: id2,
51719
51748
  record: json2,
51720
- className: clsx(styles$14.jsonMessage, className2),
51749
+ className: clsx(styles$18.jsonMessage, className2),
51721
51750
  useBorders: false
51722
51751
  }
51723
51752
  );
@@ -51729,7 +51758,7 @@ const decodeHtmlEntities = (text2) => {
51729
51758
  };
51730
51759
  const citations = "_citations_1ggvf_1";
51731
51760
  const citationLink = "_citationLink_1ggvf_9";
51732
- const styles$13 = {
51761
+ const styles$17 = {
51733
51762
  citations,
51734
51763
  citationLink
51735
51764
  };
@@ -51737,7 +51766,7 @@ const MessageCitations = ({ citations: citations2 }) => {
51737
51766
  if (citations2.length === 0) {
51738
51767
  return void 0;
51739
51768
  }
51740
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$13.citations, "text-size-smallest"), children: citations2.map((citation, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
51769
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$17.citations, "text-size-smallest"), children: citations2.map((citation, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
51741
51770
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: index + 1 }),
51742
51771
  /* @__PURE__ */ jsxRuntimeExports.jsx(MessageCitation, { citation })
51743
51772
  ] }, index)) });
@@ -51757,7 +51786,7 @@ const UrlCitation = ({
51757
51786
  href: citation.url,
51758
51787
  target: "_blank",
51759
51788
  rel: "noopener noreferrer",
51760
- className: clsx(styles$13.citationLink),
51789
+ className: clsx(styles$17.citationLink),
51761
51790
  title: citation.cited_text && typeof citation.cited_text === "string" ? `${citation.cited_text}
51762
51791
  ${citation.url}` : citation.url,
51763
51792
  children: children2
@@ -51766,7 +51795,7 @@ ${citation.url}` : citation.url,
51766
51795
  const OtherCitation = ({ children: children2 }) => /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: children2 });
51767
51796
  const contentImage = "_contentImage_8rgix_1";
51768
51797
  const reasoning = "_reasoning_8rgix_6";
51769
- const styles$12 = {
51798
+ const styles$16 = {
51770
51799
  contentImage,
51771
51800
  reasoning
51772
51801
  };
@@ -51777,7 +51806,7 @@ const args = "_args_1792k_22";
51777
51806
  const argLabel = "_argLabel_1792k_31";
51778
51807
  const error$2 = "_error_1792k_35";
51779
51808
  const toolPanel = "_toolPanel_1792k_40";
51780
- const styles$11 = {
51809
+ const styles$15 = {
51781
51810
  mcpToolUse,
51782
51811
  title: title$3,
51783
51812
  titleText,
@@ -51798,23 +51827,23 @@ const McpToolUse = ({ id: id2, content: content2, className: className2 }) => {
51798
51827
  const titleStr = content2.context ? `${content2.context} — ${content2.name}()` : `${content2.name}()`;
51799
51828
  const listToolsResult = maybeListTools(content2);
51800
51829
  const webSearchResult = maybeWebSearchResult(content2);
51801
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { id: id2, className: clsx(styles$11.mcpToolUse, className2), children: [
51830
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { id: id2, className: clsx(styles$15.mcpToolUse, className2), children: [
51802
51831
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
51803
51832
  "div",
51804
51833
  {
51805
51834
  className: clsx(
51806
- styles$11.title,
51835
+ styles$15.title,
51807
51836
  "text-size-small",
51808
51837
  "text-style-secondary"
51809
51838
  ),
51810
51839
  children: [
51811
51840
  /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: ApplicationIcons.role.tool }),
51812
- /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: styles$11.titleText, children: titleStr }),
51813
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$11.type, children: content2.type })
51841
+ /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: styles$15.titleText, children: titleStr }),
51842
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$15.type, children: content2.type })
51814
51843
  ]
51815
51844
  }
51816
51845
  ),
51817
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$11.args, children: [
51846
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$15.args, children: [
51818
51847
  Object.keys(args2).map((key2, index) => {
51819
51848
  const value2 = args2[key2];
51820
51849
  let valueRecord = void 0;
@@ -51833,7 +51862,7 @@ const McpToolUse = ({ id: id2, content: content2, className: className2 }) => {
51833
51862
  }),
51834
51863
  webSearchResult ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
51835
51864
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelDiv, { label: "results" }),
51836
- /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDiv, { children: webSearchResult.result.map((result2, index) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$11.result, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
51865
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDiv, { children: webSearchResult.result.map((result2, index) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$15.result, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
51837
51866
  "a",
51838
51867
  {
51839
51868
  href: result2.url,
@@ -51848,7 +51877,7 @@ const McpToolUse = ({ id: id2, content: content2, className: className2 }) => {
51848
51877
  {
51849
51878
  id: `${id2}-output`,
51850
51879
  collapse: true,
51851
- className: clsx(styles$11.toolPanel),
51880
+ className: clsx(styles$15.toolPanel),
51852
51881
  children: [
51853
51882
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelDiv, { label: tool2.name }),
51854
51883
  /* @__PURE__ */ jsxRuntimeExports.jsxs(ValueDiv, { children: [
@@ -51866,7 +51895,7 @@ const McpToolUse = ({ id: id2, content: content2, className: className2 }) => {
51866
51895
  }
51867
51896
  ) })) : void 0
51868
51897
  ] }),
51869
- content2.error ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$11.error, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
51898
+ content2.error ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$15.error, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
51870
51899
  "Error: ",
51871
51900
  content2.error
51872
51901
  ] }) }) : !listToolsResult && !webSearchResult ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-small"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(ExpandablePanel, { id: `${id2}-output`, collapse: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -51923,7 +51952,7 @@ const LabelDiv = ({ label: label2 }) => {
51923
51952
  "div",
51924
51953
  {
51925
51954
  className: clsx(
51926
- styles$11.argLabel,
51955
+ styles$15.argLabel,
51927
51956
  "text-style-secondary",
51928
51957
  "text-size-smaller"
51929
51958
  ),
@@ -51938,7 +51967,7 @@ const toolImage = "_toolImage_1wvgr_1";
51938
51967
  const output = "_output_1wvgr_6";
51939
51968
  const textOutput = "_textOutput_1wvgr_10";
51940
51969
  const textCode = "_textCode_1wvgr_18";
51941
- const styles$10 = {
51970
+ const styles$14 = {
51942
51971
  toolImage,
51943
51972
  output,
51944
51973
  textOutput,
@@ -51957,7 +51986,7 @@ const ToolOutput = ({ output: output2, className: className2 }) => {
51957
51986
  } else {
51958
51987
  if (out.image.startsWith("data:")) {
51959
51988
  outputs.push(
51960
- /* @__PURE__ */ jsxRuntimeExports.jsx("img", { className: clsx(styles$10.toolImage), src: out.image }, key2)
51989
+ /* @__PURE__ */ jsxRuntimeExports.jsx("img", { className: clsx(styles$14.toolImage), src: out.image }, key2)
51961
51990
  );
51962
51991
  } else {
51963
51992
  outputs.push(/* @__PURE__ */ jsxRuntimeExports.jsx(ToolTextOutput, { text: String(out.image) }, key2));
@@ -51969,14 +51998,14 @@ const ToolOutput = ({ output: output2, className: className2 }) => {
51969
51998
  /* @__PURE__ */ jsxRuntimeExports.jsx(ToolTextOutput, { text: String(output2) }, "tool-output-single")
51970
51999
  );
51971
52000
  }
51972
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$10.output, className2), children: outputs });
52001
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$14.output, className2), children: outputs });
51973
52002
  };
51974
52003
  const ToolTextOutput = ({ text: text2 }) => {
51975
52004
  if (isJson(text2)) {
51976
52005
  const obj = JSON.parse(text2);
51977
52006
  return /* @__PURE__ */ jsxRuntimeExports.jsx(JsonMessageContent, { id: `1-json`, json: obj });
51978
52007
  }
51979
- return /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$10.textOutput, "tool-output"), children: /* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: clsx("sourceCode", styles$10.textCode), children: text2.trim() }) });
52008
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$14.textOutput, "tool-output"), children: /* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: clsx("sourceCode", styles$14.textCode), children: text2.trim() }) });
51980
52009
  };
51981
52010
  const isMessageContent = (content2) => {
51982
52011
  return typeof content2 === "object" && content2 !== null && "type" in content2 && typeof content2.type === "string";
@@ -52075,7 +52104,7 @@ const messageRenderers = {
52075
52104
  } else if (!text2) {
52076
52105
  text2 = r2.summary || "Reasoning text not provided.";
52077
52106
  }
52078
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$12.reasoning, "text-size-small"), children: [
52107
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$16.reasoning, "text-size-small"), children: [
52079
52108
  /* @__PURE__ */ jsxRuntimeExports.jsx(
52080
52109
  "div",
52081
52110
  {
@@ -52098,7 +52127,7 @@ const messageRenderers = {
52098
52127
  render: (key2, content2, _isLast, _context) => {
52099
52128
  const c2 = content2;
52100
52129
  if (c2.image.startsWith("data:")) {
52101
- return /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: c2.image, className: styles$12.contentImage }, key2);
52130
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: c2.image, className: styles$16.contentImage }, key2);
52102
52131
  } else {
52103
52132
  return /* @__PURE__ */ jsxRuntimeExports.jsx("code", { children: c2.image }, key2);
52104
52133
  }
@@ -52249,10 +52278,10 @@ const ChatMessage = memo$1(
52249
52278
  className: clsx(
52250
52279
  message2.role,
52251
52280
  "text-size-base",
52252
- styles$1c.message,
52253
- message2.role === "system" ? styles$1c.systemRole : void 0,
52254
- message2.role === "user" ? styles$1c.userRole : void 0,
52255
- mouseOver ? styles$1c.hover : void 0
52281
+ styles$1g.message,
52282
+ message2.role === "system" ? styles$1g.systemRole : void 0,
52283
+ message2.role === "user" ? styles$1g.userRole : void 0,
52284
+ mouseOver ? styles$1g.hover : void 0
52256
52285
  ),
52257
52286
  onMouseEnter: () => setMouseOver(true),
52258
52287
  onMouseLeave: () => setMouseOver(false),
@@ -52261,8 +52290,8 @@ const ChatMessage = memo$1(
52261
52290
  "div",
52262
52291
  {
52263
52292
  className: clsx(
52264
- styles$1c.messageGrid,
52265
- message2.role === "tool" ? styles$1c.toolMessageGrid : void 0,
52293
+ styles$1g.messageGrid,
52294
+ message2.role === "tool" ? styles$1g.toolMessageGrid : void 0,
52266
52295
  "text-style-label"
52267
52296
  ),
52268
52297
  children: [
@@ -52273,7 +52302,7 @@ const ChatMessage = memo$1(
52273
52302
  {
52274
52303
  icon: ApplicationIcons.link,
52275
52304
  value: toFullUrl(messageUrl),
52276
- className: clsx(styles$1c.copyLink)
52305
+ className: clsx(styles$1g.copyLink)
52277
52306
  }
52278
52307
  ) : ""
52279
52308
  ]
@@ -52283,8 +52312,8 @@ const ChatMessage = memo$1(
52283
52312
  "div",
52284
52313
  {
52285
52314
  className: clsx(
52286
- styles$1c.messageContents,
52287
- indented2 ? styles$1c.indented : void 0
52315
+ styles$1g.messageContents,
52316
+ indented2 ? styles$1g.indented : void 0
52288
52317
  ),
52289
52318
  children: [
52290
52319
  /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -52300,7 +52329,7 @@ const ChatMessage = memo$1(
52300
52329
  LabeledValue,
52301
52330
  {
52302
52331
  label: "Metadata",
52303
- className: clsx(styles$1c.metadataLabel, "text-size-smaller"),
52332
+ className: clsx(styles$1g.metadataLabel, "text-size-smaller"),
52304
52333
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
52305
52334
  RecordTree,
52306
52335
  {
@@ -52319,20 +52348,20 @@ const ChatMessage = memo$1(
52319
52348
  );
52320
52349
  }
52321
52350
  );
52322
- const grid$2 = "_grid_17ltx_1";
52351
+ const grid$3 = "_grid_17ltx_1";
52323
52352
  const number = "_number_17ltx_8";
52324
52353
  const user = "_user_17ltx_12";
52325
- const container$e = "_container_17ltx_18";
52354
+ const container$g = "_container_17ltx_18";
52326
52355
  const first = "_first_17ltx_26";
52327
52356
  const last = "_last_17ltx_33";
52328
52357
  const label$4 = "_label_17ltx_40";
52329
52358
  const highlight = "_highlight_17ltx_44";
52330
52359
  const bottomMargin = "_bottomMargin_17ltx_48";
52331
- const styles$$ = {
52332
- grid: grid$2,
52360
+ const styles$13 = {
52361
+ grid: grid$3,
52333
52362
  number,
52334
52363
  user,
52335
- container: container$e,
52364
+ container: container$g,
52336
52365
  first,
52337
52366
  last,
52338
52367
  label: label$4,
@@ -52767,7 +52796,7 @@ const extractInput = (args2, inputDescriptor) => {
52767
52796
  const sourcePanel = "_sourcePanel_bat6y_1";
52768
52797
  const simple = "_simple_bat6y_6";
52769
52798
  const code$2 = "_code_bat6y_11";
52770
- const styles$_ = {
52799
+ const styles$12 = {
52771
52800
  sourcePanel,
52772
52801
  simple,
52773
52802
  code: code$2
@@ -52786,8 +52815,8 @@ const SourceCodePanel = ({
52786
52815
  "pre",
52787
52816
  {
52788
52817
  className: clsx(
52789
- styles$_.sourcePanel,
52790
- simple2 ? styles$_.simple : "",
52818
+ styles$12.sourcePanel,
52819
+ simple2 ? styles$12.simple : "",
52791
52820
  className2
52792
52821
  ),
52793
52822
  style: style2,
@@ -52795,7 +52824,7 @@ const SourceCodePanel = ({
52795
52824
  "code",
52796
52825
  {
52797
52826
  id: id2,
52798
- className: clsx("source-code", styles$_.code, `language-${language}`),
52827
+ className: clsx("source-code", styles$12.code, `language-${language}`),
52799
52828
  children: code2
52800
52829
  }
52801
52830
  )
@@ -52819,12 +52848,12 @@ const AnswerToolCallView = (props) => {
52819
52848
  );
52820
52849
  };
52821
52850
  const toolCallView = "_toolCallView_x6cus_1";
52822
- const styles$Z = {
52851
+ const styles$11 = {
52823
52852
  toolCallView
52824
52853
  };
52825
52854
  const todoList = "_todoList_1t8rx_1";
52826
52855
  const inProgress = "_inProgress_1t8rx_9";
52827
- const styles$Y = {
52856
+ const styles$10 = {
52828
52857
  todoList,
52829
52858
  inProgress
52830
52859
  };
@@ -52844,7 +52873,7 @@ const toToolTodos = (obj) => {
52844
52873
  };
52845
52874
  const TodoWriteInput = ({ contents: contents2, parentRef }) => {
52846
52875
  const todoItems = toToolTodos(contents2);
52847
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: parentRef, className: clsx(styles$Y.todoList), children: todoItems.map((todo) => {
52876
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: parentRef, className: clsx(styles$10.todoList), children: todoItems.map((todo) => {
52848
52877
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
52849
52878
  /* @__PURE__ */ jsxRuntimeExports.jsx(
52850
52879
  "i",
@@ -52859,9 +52888,9 @@ const TodoWriteInput = ({ contents: contents2, parentRef }) => {
52859
52888
  "span",
52860
52889
  {
52861
52890
  className: clsx(
52862
- styles$Y.todoItem,
52891
+ styles$10.todoItem,
52863
52892
  "text-size-smallest",
52864
- todo.status === "in_progress" ? styles$Y.inProgress : void 0
52893
+ todo.status === "in_progress" ? styles$10.inProgress : void 0
52865
52894
  ),
52866
52895
  children: todo.content
52867
52896
  }
@@ -52872,7 +52901,7 @@ const TodoWriteInput = ({ contents: contents2, parentRef }) => {
52872
52901
  const outputPre = "_outputPre_1jznn_1";
52873
52902
  const toolView = "_toolView_1jznn_7";
52874
52903
  const outputCode = "_outputCode_1jznn_15";
52875
- const styles$X = {
52904
+ const styles$$ = {
52876
52905
  outputPre,
52877
52906
  toolView,
52878
52907
  outputCode
@@ -52889,7 +52918,7 @@ const ToolInput = (props) => {
52889
52918
  {
52890
52919
  markdown: toolCallView2.content,
52891
52920
  ref: sourceCodeRef,
52892
- className: clsx("tool-output", styles$X.toolView, className2)
52921
+ className: clsx("tool-output", styles$$.toolView, className2)
52893
52922
  }
52894
52923
  );
52895
52924
  } else {
@@ -52919,8 +52948,8 @@ const RenderTool = ({
52919
52948
  {
52920
52949
  className: clsx(
52921
52950
  "tool-output",
52922
- styles$X.outputPre,
52923
- styles$X.bottomMargin,
52951
+ styles$$.outputPre,
52952
+ styles$$.bottomMargin,
52924
52953
  className2
52925
52954
  ),
52926
52955
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -52930,7 +52959,7 @@ const RenderTool = ({
52930
52959
  "source-code",
52931
52960
  "sourceCode",
52932
52961
  contentType ? `language-${contentType}` : void 0,
52933
- styles$X.outputCode
52962
+ styles$$.outputCode
52934
52963
  ),
52935
52964
  children: formattedContent
52936
52965
  }
@@ -52941,16 +52970,16 @@ const RenderTool = ({
52941
52970
  const image = "_image_1vcac_1";
52942
52971
  const toolTitle = "_toolTitle_1vcac_6";
52943
52972
  const description = "_description_1vcac_10";
52944
- const styles$W = {
52973
+ const styles$_ = {
52945
52974
  image,
52946
52975
  toolTitle,
52947
52976
  description
52948
52977
  };
52949
52978
  const ToolTitle = ({ title: title2, description: description2 }) => {
52950
52979
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
52951
- /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx("bi", "bi-tools", styles$W.image) }),
52952
- /* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: clsx("text-size-small", styles$W.toolTitle), children: title2 }),
52953
- description2 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: clsx(styles$W.description, "text-size-smallest"), children: [
52980
+ /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx("bi", "bi-tools", styles$_.image) }),
52981
+ /* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: clsx("text-size-small", styles$_.toolTitle), children: title2 }),
52982
+ description2 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: clsx(styles$_.description, "text-size-smallest"), children: [
52954
52983
  "- ",
52955
52984
  description2
52956
52985
  ] }) : void 0
@@ -53012,7 +53041,7 @@ const ToolCallView = ({
53012
53041
  }
53013
53042
  const contents2 = mode !== "compact" ? input2 : input2 || functionCall;
53014
53043
  const context = defaultContext();
53015
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$Z.toolCallView), children: [
53044
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$11.toolCallView), children: [
53016
53045
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
53017
53046
  mode !== "compact" && (!view || view.title) ? /* @__PURE__ */ jsxRuntimeExports.jsx(
53018
53047
  ToolTitle,
@@ -53144,7 +53173,7 @@ const ChatMessageRow = ({
53144
53173
  }
53145
53174
  }
53146
53175
  if (useLabels) {
53147
- return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$$.grid, className2), children: views.map((view, idx) => {
53176
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$13.grid, className2), children: views.map((view, idx) => {
53148
53177
  const label2 = viewLabels[idx];
53149
53178
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
53150
53179
  /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -53153,8 +53182,8 @@ const ChatMessageRow = ({
53153
53182
  className: clsx(
53154
53183
  "text-size-smaller",
53155
53184
  "text-style-secondary",
53156
- styles$$.number,
53157
- styles$$.label
53185
+ styles$13.number,
53186
+ styles$13.label
53158
53187
  ),
53159
53188
  children: label2
53160
53189
  }
@@ -53163,11 +53192,11 @@ const ChatMessageRow = ({
53163
53192
  "div",
53164
53193
  {
53165
53194
  className: clsx(
53166
- styles$$.container,
53167
- highlightUserMessage && resolvedMessage.message.role === "user" ? styles$$.user : void 0,
53168
- idx === 0 ? styles$$.first : void 0,
53169
- idx === views.length - 1 ? styles$$.last : void 0,
53170
- highlightLabeled && label2?.trim() ? styles$$.highlight : void 0
53195
+ styles$13.container,
53196
+ highlightUserMessage && resolvedMessage.message.role === "user" ? styles$13.user : void 0,
53197
+ idx === 0 ? styles$13.first : void 0,
53198
+ idx === views.length - 1 ? styles$13.last : void 0,
53199
+ highlightLabeled && label2?.trim() ? styles$13.highlight : void 0
53171
53200
  ),
53172
53201
  children: view
53173
53202
  }
@@ -53180,13 +53209,13 @@ const ChatMessageRow = ({
53180
53209
  "div",
53181
53210
  {
53182
53211
  className: clsx(
53183
- styles$$.container,
53184
- idx === 0 ? styles$$.first : void 0,
53185
- idx === views.length - 1 ? styles$$.last : void 0,
53186
- idx === views.length - 1 ? styles$$.bottomMargin : void 0,
53212
+ styles$13.container,
53213
+ idx === 0 ? styles$13.first : void 0,
53214
+ idx === views.length - 1 ? styles$13.last : void 0,
53215
+ idx === views.length - 1 ? styles$13.bottomMargin : void 0,
53187
53216
  className2,
53188
- styles$$.simple,
53189
- highlightUserMessage && resolvedMessage.message.role === "user" ? styles$$.user : void 0
53217
+ styles$13.simple,
53218
+ highlightUserMessage && resolvedMessage.message.role === "user" ? styles$13.user : void 0
53190
53219
  ),
53191
53220
  children: view
53192
53221
  }
@@ -53245,7 +53274,7 @@ const resolveToolMessage = (toolMessage) => {
53245
53274
  }
53246
53275
  };
53247
53276
  const ToolCallViewCompact = ({ idx, functionCall }) => {
53248
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("code", { className: clsx(styles$$.codeCompact), children: [
53277
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("code", { className: clsx(styles$13.codeCompact), children: [
53249
53278
  "tool: ",
53250
53279
  functionCall
53251
53280
  ] }) }, `tool-call-${idx}`);
@@ -53309,26 +53338,6 @@ const normalizeContent = (content2) => {
53309
53338
  return content2;
53310
53339
  }
53311
53340
  };
53312
- const messagesFromEvents = (runningEvents) => {
53313
- const messages2 = /* @__PURE__ */ new Map();
53314
- runningEvents.filter((e) => e.event === "model").forEach((e) => {
53315
- for (const m of e.input) {
53316
- const inputMessage = m;
53317
- if (inputMessage.id && !messages2.has(inputMessage.id)) {
53318
- messages2.set(inputMessage.id, inputMessage);
53319
- }
53320
- }
53321
- const outputMessage = e.output.choices[0]?.message;
53322
- if (outputMessage?.id) {
53323
- messages2.set(outputMessage.id, outputMessage);
53324
- }
53325
- });
53326
- if (messages2.size > 0) {
53327
- return messages2.values().toArray();
53328
- } else {
53329
- return [];
53330
- }
53331
- };
53332
53341
  const ChatView = ({
53333
53342
  id: id2,
53334
53343
  messages: messages2,
@@ -53463,10 +53472,10 @@ function centerTruncate(str, maxLength = 50) {
53463
53472
  function formatPercent(value2) {
53464
53473
  return `${formatPrettyDecimal(value2 * 100, 2)}%`;
53465
53474
  }
53466
- const grid$1 = "_grid_14885_1";
53475
+ const grid$2 = "_grid_14885_1";
53467
53476
  const cell = "_cell_14885_8";
53468
- const styles$V = {
53469
- grid: grid$1,
53477
+ const styles$Z = {
53478
+ grid: grid$2,
53470
53479
  cell
53471
53480
  };
53472
53481
  const MetaDataGrid = ({
@@ -53474,12 +53483,11 @@ const MetaDataGrid = ({
53474
53483
  entries: entries2,
53475
53484
  className: className2,
53476
53485
  references,
53477
- size,
53478
53486
  style: style2,
53479
- plain
53487
+ options
53480
53488
  }) => {
53481
53489
  const baseId = "metadata-grid";
53482
- const fontStyle = size === "mini" ? "text-size-smallest" : "text-size-smaller";
53490
+ const fontStyle = options?.size === "mini" ? "text-size-smallest" : "text-size-smaller";
53483
53491
  const entryEls = entryRecords(entries2).map((entry2, index) => {
53484
53492
  const id22 = `${baseId}-value-${index}`;
53485
53493
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
@@ -53488,7 +53496,7 @@ const MetaDataGrid = ({
53488
53496
  {
53489
53497
  style: {
53490
53498
  gridColumn: "1 / -1",
53491
- borderBottom: `${!plain ? "solid 1px var(--bs-light-border-subtle" : ""}`
53499
+ borderBottom: `${!options?.plain ? "solid 1px var(--bs-light-border-subtle" : ""}`
53492
53500
  }
53493
53501
  }
53494
53502
  ) : void 0,
@@ -53497,7 +53505,7 @@ const MetaDataGrid = ({
53497
53505
  {
53498
53506
  className: clsx(
53499
53507
  `${baseId}-key`,
53500
- styles$V.cell,
53508
+ styles$Z.cell,
53501
53509
  "text-style-label",
53502
53510
  "text-style-secondary",
53503
53511
  fontStyle
@@ -53505,21 +53513,24 @@ const MetaDataGrid = ({
53505
53513
  children: entry2?.name
53506
53514
  }
53507
53515
  ),
53508
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$V.value, `${baseId}-value`, fontStyle), children: entry2 && /* @__PURE__ */ jsxRuntimeExports.jsx(
53516
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$Z.value, `${baseId}-value`, fontStyle), children: entry2 && /* @__PURE__ */ jsxRuntimeExports.jsx(
53509
53517
  RenderedContent,
53510
53518
  {
53511
53519
  id: id22,
53512
53520
  entry: entry2,
53513
53521
  references,
53522
+ renderOptions: {
53523
+ renderString: "markdown",
53524
+ previewRefsOnHover: options?.previewRefsOnHover
53525
+ },
53514
53526
  renderObject: (obj) => {
53515
53527
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
53516
53528
  MetaDataGrid,
53517
53529
  {
53518
53530
  id: id22,
53519
- className: clsx(styles$V.nested),
53531
+ className: clsx(styles$Z.nested),
53520
53532
  entries: obj,
53521
- size,
53522
- plain,
53533
+ options,
53523
53534
  references
53524
53535
  }
53525
53536
  );
@@ -53528,7 +53539,7 @@ const MetaDataGrid = ({
53528
53539
  ) })
53529
53540
  ] }, `${baseId}-record-${index}`);
53530
53541
  });
53531
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { id: id2, className: clsx(className2, styles$V.grid), style: style2, children: entryEls });
53542
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { id: id2, className: clsx(className2, styles$Z.grid), style: style2, children: entryEls });
53532
53543
  };
53533
53544
  const entryRecords = (entries2) => {
53534
53545
  if (!entries2) {
@@ -53546,7 +53557,7 @@ const query = "_query_seqs2_1";
53546
53557
  const summary$3 = "_summary_seqs2_6";
53547
53558
  const preWrap = "_preWrap_seqs2_10";
53548
53559
  const preCompact = "_preCompact_seqs2_15";
53549
- const styles$U = {
53560
+ const styles$Y = {
53550
53561
  query,
53551
53562
  summary: summary$3,
53552
53563
  preWrap,
@@ -53668,11 +53679,18 @@ const contentRenderers = (renderObject) => {
53668
53679
  const rendered = entry2.value.trim();
53669
53680
  if (options.renderString === "markdown") {
53670
53681
  return {
53671
- rendered: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: rendered, references })
53682
+ rendered: /* @__PURE__ */ jsxRuntimeExports.jsx(
53683
+ RenderedText,
53684
+ {
53685
+ markdown: rendered,
53686
+ references,
53687
+ options: { previewRefsOnHover: options.previewRefsOnHover }
53688
+ }
53689
+ )
53672
53690
  };
53673
53691
  } else {
53674
53692
  return {
53675
- rendered: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$U.preWrap, styles$U.preCompact), children: rendered })
53693
+ rendered: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$Y.preWrap, styles$Y.preCompact), children: rendered })
53676
53694
  };
53677
53695
  }
53678
53696
  }
@@ -53706,7 +53724,7 @@ const contentRenderers = (renderObject) => {
53706
53724
  id: id2,
53707
53725
  className: "font-size-small",
53708
53726
  entries: arrayMap,
53709
- plain: true
53727
+ options: { plain: true }
53710
53728
  }
53711
53729
  );
53712
53730
  return { rendered: arrayRendered };
@@ -53721,7 +53739,7 @@ const contentRenderers = (renderObject) => {
53721
53739
  render: (_id, entry2, _options) => {
53722
53740
  const results = [];
53723
53741
  results.push(
53724
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$U.query, children: [
53742
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$Y.query, children: [
53725
53743
  /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: ApplicationIcons.search }),
53726
53744
  " ",
53727
53745
  entry2.value.query
@@ -53733,7 +53751,7 @@ const contentRenderers = (renderObject) => {
53733
53751
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: result2.url, children: result2.url }) })
53734
53752
  );
53735
53753
  results.push(
53736
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-smaller", styles$U.summary), children: result2.summary })
53754
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-smaller", styles$Y.summary), children: result2.summary })
53737
53755
  );
53738
53756
  }
53739
53757
  );
@@ -53749,7 +53767,7 @@ const contentRenderers = (renderObject) => {
53749
53767
  },
53750
53768
  render: (_id, entry2, _options) => {
53751
53769
  return {
53752
- rendered: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: styles$U.preWrap, children: entry2.value })
53770
+ rendered: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: styles$Y.preWrap, children: entry2.value })
53753
53771
  };
53754
53772
  }
53755
53773
  },
@@ -53804,7 +53822,7 @@ const contentRenderers = (renderObject) => {
53804
53822
  id: id2,
53805
53823
  className: "font-size-small",
53806
53824
  entries: entry2.value,
53807
- plain: true
53825
+ options: { plain: true }
53808
53826
  }
53809
53827
  )
53810
53828
  };
@@ -53929,8 +53947,8 @@ const RecordTree = ({
53929
53947
  "div",
53930
53948
  {
53931
53949
  className: clsx(
53932
- styles$1f.keyPairContainer,
53933
- index < items.length - 1 && useBorders ? styles$1f.keyPairBordered : void 0,
53950
+ styles$1j.keyPairContainer,
53951
+ index < items.length - 1 && useBorders ? styles$1j.keyPairBordered : void 0,
53934
53952
  "text-size-small"
53935
53953
  ),
53936
53954
  style: {
@@ -53943,7 +53961,7 @@ const RecordTree = ({
53943
53961
  "data-index": index,
53944
53962
  className: clsx(
53945
53963
  kRecordTreeKey,
53946
- styles$1f.key,
53964
+ styles$1j.key,
53947
53965
  "font-monospace",
53948
53966
  "text-style-secondary"
53949
53967
  ),
@@ -53953,16 +53971,16 @@ const RecordTree = ({
53953
53971
  setCollapsed(item2.id, !collapsedIds?.[item2.id]);
53954
53972
  },
53955
53973
  children: [
53956
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: item2.hasChildren ? /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$1f.pre), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
53974
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: item2.hasChildren ? /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$1j.pre), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
53957
53975
  "i",
53958
53976
  {
53959
53977
  className: clsx(
53960
53978
  collapsedIds && collapsedIds[item2.id] ? ApplicationIcons.tree.closed : ApplicationIcons.tree.open,
53961
- styles$1f.treeIcon
53979
+ styles$1j.treeIcon
53962
53980
  )
53963
53981
  }
53964
53982
  ) }) : void 0 }),
53965
- /* @__PURE__ */ jsxRuntimeExports.jsxs("pre", { className: clsx(styles$1f.pre), children: [
53983
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("pre", { className: clsx(styles$1j.pre), children: [
53966
53984
  item2.key,
53967
53985
  ":"
53968
53986
  ] })
@@ -54132,7 +54150,7 @@ const col1_3$1 = "_col1_3_sq96g_12";
54132
54150
  const col3$1 = "_col3_sq96g_16";
54133
54151
  const separator$3 = "_separator_sq96g_20";
54134
54152
  const padded = "_padded_sq96g_26";
54135
- const styles$T = {
54153
+ const styles$X = {
54136
54154
  wrapper: wrapper$1,
54137
54155
  col2: col2$1,
54138
54156
  col1_3: col1_3$1,
@@ -54194,14 +54212,14 @@ const ModelUsagePanel = ({ usage, className: className2 }) => {
54194
54212
  value: usage.total_tokens,
54195
54213
  secondary: false
54196
54214
  });
54197
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-small", styles$T.wrapper, className2), children: rows.map((row2, idx) => {
54215
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-small", styles$X.wrapper, className2), children: rows.map((row2, idx) => {
54198
54216
  if (row2.label === "---") {
54199
54217
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
54200
54218
  "div",
54201
54219
  {
54202
54220
  className: clsx(
54203
- styles$T.separator,
54204
- row2.padded ? styles$T.padded : void 0
54221
+ styles$X.separator,
54222
+ row2.padded ? styles$X.padded : void 0
54205
54223
  )
54206
54224
  },
54207
54225
  `$usage-sep-${idx}`
@@ -54214,12 +54232,12 @@ const ModelUsagePanel = ({ usage, className: className2 }) => {
54214
54232
  className: clsx(
54215
54233
  "text-style-label",
54216
54234
  "text-style-secondary",
54217
- row2.secondary ? styles$T.col2 : styles$T.col1_3
54235
+ row2.secondary ? styles$X.col2 : styles$X.col1_3
54218
54236
  ),
54219
54237
  children: row2.label
54220
54238
  }
54221
54239
  ),
54222
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$T.col3, children: row2.value ? formatNumber(row2.value) : "" })
54240
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$X.col3, children: row2.value ? formatNumber(row2.value) : "" })
54223
54241
  ] }, `$usage-row-${idx}`);
54224
54242
  }
54225
54243
  }) });
@@ -54229,7 +54247,7 @@ const tableTokens = "_tableTokens_z217i_5";
54229
54247
  const tableH = "_tableH_z217i_9";
54230
54248
  const model = "_model_z217i_14";
54231
54249
  const cellContents = "_cellContents_z217i_18";
54232
- const styles$S = {
54250
+ const styles$W = {
54233
54251
  table,
54234
54252
  tableTokens,
54235
54253
  tableH,
@@ -54244,7 +54262,7 @@ const TokenTable = ({ className: className2, children: children2 }) => {
54244
54262
  "table",
54245
54263
  "table-sm",
54246
54264
  "text-size-smaller",
54247
- styles$S.table,
54265
+ styles$W.table,
54248
54266
  className2
54249
54267
  ),
54250
54268
  children: children2
@@ -54261,7 +54279,7 @@ const TokenHeader = () => {
54261
54279
  colSpan: 3,
54262
54280
  className: clsx(
54263
54281
  "card-subheading",
54264
- styles$S.tableTokens,
54282
+ styles$W.tableTokens,
54265
54283
  "text-size-small",
54266
54284
  "text-style-label",
54267
54285
  "text-style-secondary"
@@ -54276,7 +54294,7 @@ const TokenHeader = () => {
54276
54294
  "th",
54277
54295
  {
54278
54296
  className: clsx(
54279
- styles$S.tableH,
54297
+ styles$W.tableH,
54280
54298
  "text-sixe-small",
54281
54299
  "text-style-label",
54282
54300
  "text-style-secondary"
@@ -54288,7 +54306,7 @@ const TokenHeader = () => {
54288
54306
  "th",
54289
54307
  {
54290
54308
  className: clsx(
54291
- styles$S.tableH,
54309
+ styles$W.tableH,
54292
54310
  "text-sixe-small",
54293
54311
  "text-style-label",
54294
54312
  "text-style-secondary"
@@ -54301,8 +54319,8 @@ const TokenHeader = () => {
54301
54319
  };
54302
54320
  const TokenRow = ({ model: model2, usage }) => {
54303
54321
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("tr", { children: [
54304
- /* @__PURE__ */ jsxRuntimeExports.jsx("td", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$S.model, styles$S.cellContents), children: model2 }) }),
54305
- /* @__PURE__ */ jsxRuntimeExports.jsx("td", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ModelUsagePanel, { usage, className: clsx(styles$S.cellContents) }) })
54322
+ /* @__PURE__ */ jsxRuntimeExports.jsx("td", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$W.model, styles$W.cellContents), children: model2 }) }),
54323
+ /* @__PURE__ */ jsxRuntimeExports.jsx("td", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ModelUsagePanel, { usage, className: clsx(styles$W.cellContents) }) })
54306
54324
  ] });
54307
54325
  };
54308
54326
  const ModelTokenTable = ({
@@ -54320,13 +54338,13 @@ const ModelTokenTable = ({
54320
54338
  ] });
54321
54339
  };
54322
54340
  const scanInfo = "_scanInfo_76qrl_1";
54323
- const container$d = "_container_76qrl_7";
54324
- const styles$R = {
54341
+ const container$f = "_container_76qrl_7";
54342
+ const styles$V = {
54325
54343
  scanInfo,
54326
- container: container$d
54344
+ container: container$f
54327
54345
  };
54328
54346
  const InfoPanel = ({ result: result2 }) => {
54329
- return result2 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$R.container), children: [
54347
+ return result2 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$V.container), children: [
54330
54348
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { children: [
54331
54349
  /* @__PURE__ */ jsxRuntimeExports.jsx(CardHeader, { label: "Scanner Info", type: "modern" }),
54332
54350
  /* @__PURE__ */ jsxRuntimeExports.jsx(CardBody, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ScannerInfoPanel, { result: result2 }) })
@@ -54354,7 +54372,7 @@ const InfoPanel = ({ result: result2 }) => {
54354
54372
  };
54355
54373
  const ScannerInfoPanel = ({ result: result2 }) => {
54356
54374
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx("text-size-small"), children: [
54357
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$R.scanInfo), children: [
54375
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$V.scanInfo), children: [
54358
54376
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabeledValue, { label: "Name", children: result2?.scannerName }),
54359
54377
  result2?.scannerFile && result2.scannerFile !== null && /* @__PURE__ */ jsxRuntimeExports.jsx(LabeledValue, { label: "File", children: result2?.scannerFile }),
54360
54378
  (result2?.scanTotalTokens || 0) > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(LabeledValue, { label: "Tokens", children: result2?.scanTotalTokens ? formatNumber(result2.scanTotalTokens) : "" })
@@ -54369,11 +54387,28 @@ const ScannerInfoPanel = ({ result: result2 }) => {
54369
54387
  ) })
54370
54388
  ] });
54371
54389
  };
54390
+ const container$e = "_container_5gpfz_1";
54391
+ const styles$U = {
54392
+ container: container$e
54393
+ };
54394
+ const MetadataPanel = ({ result: result2 }) => {
54395
+ const hasMetadata = result2 && Object.keys(result2?.metadata).length > 0;
54396
+ return result2 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$U.container, "text-size-base"), children: [
54397
+ !hasMetadata && /* @__PURE__ */ jsxRuntimeExports.jsx(NoContentsPanel, { text: "No metadata available" }),
54398
+ hasMetadata && /* @__PURE__ */ jsxRuntimeExports.jsx(Card, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(CardBody, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(LabeledValue, { label: "Metadata", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
54399
+ RecordTree,
54400
+ {
54401
+ id: `result-metadata-${result2.uuid}`,
54402
+ record: result2.metadata || {}
54403
+ }
54404
+ ) }) }) })
54405
+ ] });
54406
+ };
54372
54407
  const progressContainer = "_progressContainer_1cjjr_1";
54373
- const styles$Q = {
54408
+ const styles$T = {
54374
54409
  progressContainer
54375
54410
  };
54376
- const container$c = "_container_4p85e_2";
54411
+ const container$d = "_container_4p85e_2";
54377
54412
  const dotsContainer = "_dotsContainer_4p85e_8";
54378
54413
  const small = "_small_4p85e_15";
54379
54414
  const medium = "_medium_4p85e_19";
@@ -54382,8 +54417,8 @@ const dot = "_dot_4p85e_8";
54382
54417
  const subtle = "_subtle_4p85e_36";
54383
54418
  const primary = "_primary_4p85e_40";
54384
54419
  const visuallyHidden = "_visuallyHidden_4p85e_59";
54385
- const styles$P = {
54386
- container: container$c,
54420
+ const styles$S = {
54421
+ container: container$d,
54387
54422
  dotsContainer,
54388
54423
  small,
54389
54424
  medium,
@@ -54404,24 +54439,24 @@ const PulsingDots = ({
54404
54439
  "div",
54405
54440
  {
54406
54441
  className: clsx(
54407
- styles$P.container,
54408
- size === "small" ? styles$P.small : size === "medium" ? styles$P.medium : styles$P.large,
54442
+ styles$S.container,
54443
+ size === "small" ? styles$S.small : size === "medium" ? styles$S.medium : styles$S.large,
54409
54444
  className2
54410
54445
  ),
54411
54446
  role: "status",
54412
54447
  children: [
54413
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$P.dotsContainer, children: Array.from({ length: dotsCount }, (_, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(
54448
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$S.dotsContainer, children: Array.from({ length: dotsCount }, (_, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(
54414
54449
  "div",
54415
54450
  {
54416
54451
  className: clsx(
54417
- styles$P.dot,
54418
- subtle2 ? styles$P.subtle : styles$P.primary
54452
+ styles$S.dot,
54453
+ subtle2 ? styles$S.subtle : styles$S.primary
54419
54454
  ),
54420
54455
  style: { animationDelay: `${index * 0.2}s` }
54421
54456
  },
54422
54457
  `dot-${index}`
54423
54458
  )) }),
54424
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: styles$P.visuallyHidden, children: text2 })
54459
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: styles$S.visuallyHidden, children: text2 })
54425
54460
  ]
54426
54461
  }
54427
54462
  );
@@ -54555,7 +54590,7 @@ const LiveVirtualList = ({
54555
54590
  return unregister;
54556
54591
  }, [id2, registerVirtualList, searchInData]);
54557
54592
  const Footer3 = () => {
54558
- return showProgress ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$Q.progressContainer), children: /* @__PURE__ */ jsxRuntimeExports.jsx(PulsingDots, { subtle: false, size: "medium" }) }) : void 0;
54593
+ return showProgress ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$T.progressContainer), children: /* @__PURE__ */ jsxRuntimeExports.jsx(PulsingDots, { subtle: false, size: "medium" }) }) : void 0;
54559
54594
  };
54560
54595
  useEffect(() => {
54561
54596
  const parent = scrollRef?.current;
@@ -54628,7 +54663,7 @@ const LiveVirtualList = ({
54628
54663
  );
54629
54664
  };
54630
54665
  const item$1 = "_item_5fj0m_6";
54631
- const styles$O = {
54666
+ const styles$R = {
54632
54667
  item: item$1
54633
54668
  };
54634
54669
  const ChatViewVirtualList = memo$1(
@@ -54772,7 +54807,7 @@ const ChatViewVirtualListComponent = memo$1(
54772
54807
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
54773
54808
  "div",
54774
54809
  {
54775
- className: clsx(styles$O.item),
54810
+ className: clsx(styles$R.item),
54776
54811
  "data-index": props["data-index"],
54777
54812
  "data-item-group-index": props["data-item-group-index"],
54778
54813
  "data-item-index": props["data-item-index"],
@@ -54795,17 +54830,18 @@ const ChatViewVirtualListComponent = memo$1(
54795
54830
  offsetTop: topOffset,
54796
54831
  live: running,
54797
54832
  showProgress: running,
54798
- components: { Item }
54833
+ components: { Item },
54834
+ animation: false
54799
54835
  }
54800
54836
  );
54801
54837
  }
54802
54838
  );
54803
- const styles$N = {};
54839
+ const styles$Q = {};
54804
54840
  const title$2 = "_title_19l1b_1";
54805
- const contents = "_contents_19l1b_8";
54806
- const styles$M = {
54841
+ const contents$1 = "_contents_19l1b_8";
54842
+ const styles$P = {
54807
54843
  title: title$2,
54808
- contents
54844
+ contents: contents$1
54809
54845
  };
54810
54846
  const EventRow = ({
54811
54847
  title: title2,
@@ -54813,12 +54849,12 @@ const EventRow = ({
54813
54849
  className: className2,
54814
54850
  children: children2
54815
54851
  }) => {
54816
- const contentEl = title2 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx("text-size-small", styles$M.title, className2), children: [
54852
+ const contentEl = title2 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx("text-size-small", styles$P.title, className2), children: [
54817
54853
  /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: icon2 || ApplicationIcons.metadata }),
54818
54854
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-style-label"), children: title2 }),
54819
54855
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: children2 })
54820
54856
  ] }) : "";
54821
- const card2 = /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("card", styles$M.contents), children: contentEl });
54857
+ const card2 = /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("card", styles$P.contents), children: contentEl });
54822
54858
  return card2;
54823
54859
  };
54824
54860
  const ApprovalEventView = ({
@@ -54916,7 +54952,7 @@ class EventNode {
54916
54952
  }
54917
54953
  }
54918
54954
  const tab = "_tab_1je38_1";
54919
- const styles$L = {
54955
+ const styles$O = {
54920
54956
  tab
54921
54957
  };
54922
54958
  const EventNav = ({
@@ -54941,7 +54977,7 @@ const EventNav = ({
54941
54977
  active ? "active " : "",
54942
54978
  "text-style-label",
54943
54979
  "text-size-small",
54944
- styles$L.tab
54980
+ styles$O.tab
54945
54981
  ),
54946
54982
  onClick: handleClick,
54947
54983
  children: title2
@@ -54949,7 +54985,7 @@ const EventNav = ({
54949
54985
  ) });
54950
54986
  };
54951
54987
  const navs$1 = "_navs_1vm6p_1";
54952
- const styles$K = {
54988
+ const styles$N = {
54953
54989
  navs: navs$1
54954
54990
  };
54955
54991
  const EventNavs = ({
@@ -54960,7 +54996,7 @@ const EventNavs = ({
54960
54996
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
54961
54997
  "ul",
54962
54998
  {
54963
- className: clsx("nav", "nav-pills", styles$K.navs),
54999
+ className: clsx("nav", "nav-pills", styles$N.navs),
54964
55000
  role: "tablist",
54965
55001
  "aria-orientation": "horizontal",
54966
55002
  children: navs2.map((nav2) => {
@@ -54987,7 +55023,7 @@ const hover = "_hover_1nn7f_41";
54987
55023
  const root$2 = "_root_1nn7f_45";
54988
55024
  const bottomDongle = "_bottomDongle_1nn7f_50";
54989
55025
  const dongleIcon = "_dongleIcon_1nn7f_67";
54990
- const styles$J = {
55026
+ const styles$M = {
54991
55027
  label: label$3,
54992
55028
  navs,
54993
55029
  card,
@@ -55051,7 +55087,7 @@ const EventPanel = ({
55051
55087
  "div",
55052
55088
  {
55053
55089
  title: subTitle2,
55054
- className: clsx("text-size-small", mouseOver ? styles$J.hover : ""),
55090
+ className: clsx("text-size-small", mouseOver ? styles$M.hover : ""),
55055
55091
  style: {
55056
55092
  display: "grid",
55057
55093
  gridTemplateColumns: gridColumns.join(" "),
@@ -55091,12 +55127,12 @@ const EventPanel = ({
55091
55127
  /* @__PURE__ */ jsxRuntimeExports.jsx(
55092
55128
  "div",
55093
55129
  {
55094
- className: clsx("text-style-secondary", styles$J.label),
55130
+ className: clsx("text-style-secondary", styles$M.label),
55095
55131
  onClick: toggleCollapse,
55096
55132
  children: collapsed ? text2 : ""
55097
55133
  }
55098
55134
  ),
55099
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$J.navs, children: isCollapsible && collapsibleContent && collapsed ? "" : filteredArrChildren && filteredArrChildren.length > 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
55135
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$M.navs, children: isCollapsible && collapsibleContent && collapsed ? "" : filteredArrChildren && filteredArrChildren.length > 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
55100
55136
  EventNavs,
55101
55137
  {
55102
55138
  navs: filteredArrChildren.map((child, index) => {
@@ -55121,8 +55157,8 @@ const EventPanel = ({
55121
55157
  id: `event-panel-${eventNodeId}`,
55122
55158
  className: clsx(
55123
55159
  className2,
55124
- styles$J.card,
55125
- depth === 0 ? styles$J.root : void 0
55160
+ styles$M.card,
55161
+ depth === 0 ? styles$M.root : void 0
55126
55162
  ),
55127
55163
  children: [
55128
55164
  titleEl,
@@ -55131,8 +55167,8 @@ const EventPanel = ({
55131
55167
  {
55132
55168
  className: clsx(
55133
55169
  "tab-content",
55134
- styles$J.cardContent,
55135
- isCollapsible && collapsed && collapsibleContent ? styles$J.hidden : void 0
55170
+ styles$M.cardContent,
55171
+ isCollapsible && collapsed && collapsibleContent ? styles$M.hidden : void 0
55136
55172
  ),
55137
55173
  children: filteredArrChildren?.map((child, index) => {
55138
55174
  const id2 = pillId(index);
@@ -55152,7 +55188,7 @@ const EventPanel = ({
55152
55188
  isCollapsible && useBottomDongle ? /* @__PURE__ */ jsxRuntimeExports.jsxs(
55153
55189
  "div",
55154
55190
  {
55155
- className: clsx(styles$J.bottomDongle, "text-size-smallest"),
55191
+ className: clsx(styles$M.bottomDongle, "text-size-smallest"),
55156
55192
  onClick: toggleCollapse,
55157
55193
  children: [
55158
55194
  /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -55160,7 +55196,7 @@ const EventPanel = ({
55160
55196
  {
55161
55197
  className: clsx(
55162
55198
  collapsed ? ApplicationIcons.chevron.right : ApplicationIcons.chevron.down,
55163
- styles$J.dongleIcon
55199
+ styles$M.dongleIcon
55164
55200
  )
55165
55201
  }
55166
55202
  ),
@@ -55208,7 +55244,7 @@ const ErrorEventView = ({
55208
55244
  );
55209
55245
  };
55210
55246
  const panel = "_panel_vz394_1";
55211
- const styles$I = {
55247
+ const styles$L = {
55212
55248
  panel
55213
55249
  };
55214
55250
  const InfoEventView = ({
@@ -55223,12 +55259,12 @@ const InfoEventView = ({
55223
55259
  RenderedText,
55224
55260
  {
55225
55261
  markdown: event.data,
55226
- className: clsx(styles$I.panel, "text-size-base")
55262
+ className: clsx(styles$L.panel, "text-size-base")
55227
55263
  }
55228
55264
  )
55229
55265
  );
55230
55266
  } else {
55231
- panels.push(/* @__PURE__ */ jsxRuntimeExports.jsx(JSONPanel, { data: event.data, className: styles$I.panel }));
55267
+ panels.push(/* @__PURE__ */ jsxRuntimeExports.jsx(JSONPanel, { data: event.data, className: styles$L.panel }));
55232
55268
  }
55233
55269
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
55234
55270
  EventPanel,
@@ -55267,9 +55303,9 @@ const InputEventView = ({
55267
55303
  }
55268
55304
  );
55269
55305
  };
55270
- const grid = "_grid_1eq5o_1";
55271
- const styles$H = {
55272
- grid
55306
+ const grid$1 = "_grid_1eq5o_1";
55307
+ const styles$K = {
55308
+ grid: grid$1
55273
55309
  };
55274
55310
  const LoggerEventView = ({
55275
55311
  eventNode,
@@ -55283,7 +55319,7 @@ const LoggerEventView = ({
55283
55319
  className: className2,
55284
55320
  title: event.message.level,
55285
55321
  icon: ApplicationIcons.logging[event.message.level.toLowerCase()] || ApplicationIcons.info,
55286
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx("text-size-base", styles$H.grid), children: [
55322
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx("text-size-base", styles$K.grid), children: [
55287
55323
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-smaller"), children: obj !== void 0 && obj !== null ? /* @__PURE__ */ jsxRuntimeExports.jsx(MetaDataGrid, { entries: obj }) : event.message.message }),
55288
55324
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx("text-size-smaller", "text-style-secondary"), children: [
55289
55325
  event.message.filename,
@@ -55294,11 +55330,11 @@ const LoggerEventView = ({
55294
55330
  }
55295
55331
  );
55296
55332
  };
55297
- const container$b = "_container_1ww70_1";
55333
+ const container$c = "_container_1ww70_1";
55298
55334
  const titleRow = "_titleRow_1ww70_5";
55299
55335
  const title$1 = "_title_1ww70_5";
55300
- const styles$G = {
55301
- container: container$b,
55336
+ const styles$J = {
55337
+ container: container$c,
55302
55338
  titleRow,
55303
55339
  title: title$1
55304
55340
  };
@@ -55308,11 +55344,11 @@ const EventSection = ({
55308
55344
  copyContent,
55309
55345
  className: className2
55310
55346
  }) => {
55311
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$G.container, className2), children: [
55312
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$G.titleRow), children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
55347
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$J.container, className2), children: [
55348
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$J.titleRow), children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
55313
55349
  "div",
55314
55350
  {
55315
- className: clsx("text-size-small", "text-style-label", styles$G.title),
55351
+ className: clsx("text-size-small", "text-style-label", styles$J.title),
55316
55352
  children: [
55317
55353
  title2,
55318
55354
  copyContent ? /* @__PURE__ */ jsxRuntimeExports.jsx(CopyButton, { value: copyContent, ariaLabel: "Copy to clipboard" }) : null
@@ -55328,7 +55364,7 @@ const col1_3 = "_col1_3_45f60_12";
55328
55364
  const col3 = "_col3_45f60_16";
55329
55365
  const separator$2 = "_separator_45f60_20";
55330
55366
  const topMargin = "_topMargin_45f60_26";
55331
- const styles$F = {
55367
+ const styles$I = {
55332
55368
  wrapper,
55333
55369
  col2,
55334
55370
  col1_3,
@@ -55396,9 +55432,9 @@ const EventTimingPanel = ({
55396
55432
  });
55397
55433
  }
55398
55434
  }
55399
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-small", styles$F.wrapper), children: rows.map((row2, idx) => {
55435
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-small", styles$I.wrapper), children: rows.map((row2, idx) => {
55400
55436
  if (row2.label === "---") {
55401
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$F.separator }, `$usage-sep-${idx}`);
55437
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$I.separator }, `$usage-sep-${idx}`);
55402
55438
  } else {
55403
55439
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
55404
55440
  /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -55407,13 +55443,13 @@ const EventTimingPanel = ({
55407
55443
  className: clsx(
55408
55444
  "text-style-label",
55409
55445
  "text-style-secondary",
55410
- row2.secondary ? styles$F.col2 : styles$F.col1_3,
55411
- row2.topMargin ? styles$F.topMargin : void 0
55446
+ row2.secondary ? styles$I.col2 : styles$I.col1_3,
55447
+ row2.topMargin ? styles$I.topMargin : void 0
55412
55448
  ),
55413
55449
  children: row2.label
55414
55450
  }
55415
55451
  ),
55416
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$F.col3, children: row2.value ? row2.value : "" })
55452
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$I.col3, children: row2.value ? row2.value : "" })
55417
55453
  ] }, `$usage-row-${idx}`);
55418
55454
  }
55419
55455
  }) });
@@ -55437,7 +55473,7 @@ const formatTitle = (title2, total_tokens, working_start) => {
55437
55473
  const subtitle2 = subItems.length > 0 ? ` (${subItems.join(", ")})` : "";
55438
55474
  return `${title2}${subtitle2}`;
55439
55475
  };
55440
- const container$a = "_container_e0l2n_1";
55476
+ const container$b = "_container_e0l2n_1";
55441
55477
  const all = "_all_e0l2n_6";
55442
55478
  const tableSelection = "_tableSelection_e0l2n_12";
55443
55479
  const codePre = "_codePre_e0l2n_22";
@@ -55445,8 +55481,8 @@ const code$1 = "_code_e0l2n_22";
55445
55481
  const progress$1 = "_progress_e0l2n_34";
55446
55482
  const toolConfig = "_toolConfig_e0l2n_38";
55447
55483
  const toolChoice = "_toolChoice_e0l2n_46";
55448
- const styles$E = {
55449
- container: container$a,
55484
+ const styles$H = {
55485
+ container: container$b,
55450
55486
  all,
55451
55487
  tableSelection,
55452
55488
  codePre,
@@ -55491,7 +55527,7 @@ const ModelEventView = ({
55491
55527
  subTitle: formatTiming(event.timestamp, event.working_start),
55492
55528
  icon: ApplicationIcons.model,
55493
55529
  children: [
55494
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-name": "Summary", className: styles$E.container, children: [
55530
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-name": "Summary", className: styles$H.container, children: [
55495
55531
  /* @__PURE__ */ jsxRuntimeExports.jsx(
55496
55532
  ChatView,
55497
55533
  {
@@ -55502,20 +55538,20 @@ const ModelEventView = ({
55502
55538
  allowLinking: false
55503
55539
  }
55504
55540
  ),
55505
- event.pending ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.progress), children: /* @__PURE__ */ jsxRuntimeExports.jsx(PulsingDots, { subtle: false, size: "medium" }) }) : void 0
55541
+ event.pending ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$H.progress), children: /* @__PURE__ */ jsxRuntimeExports.jsx(PulsingDots, { subtle: false, size: "medium" }) }) : void 0
55506
55542
  ] }),
55507
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-name": "All", className: styles$E.container, children: [
55508
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$E.all, children: [
55543
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-name": "All", className: styles$H.container, children: [
55544
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$H.all, children: [
55509
55545
  Object.keys(entries2).length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
55510
55546
  EventSection,
55511
55547
  {
55512
55548
  title: "Configuration",
55513
- className: styles$E.tableSelection,
55514
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(MetaDataGrid, { entries: entries2, plain: true })
55549
+ className: styles$H.tableSelection,
55550
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(MetaDataGrid, { entries: entries2, options: { plain: true } })
55515
55551
  }
55516
55552
  ),
55517
- /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: "Usage", className: styles$E.tableSelection, children: event.output.usage !== null ? /* @__PURE__ */ jsxRuntimeExports.jsx(ModelUsagePanel, { usage: event.output.usage }) : void 0 }),
55518
- /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: "Timing", className: styles$E.tableSelection, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
55553
+ /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: "Usage", className: styles$H.tableSelection, children: event.output.usage !== null ? /* @__PURE__ */ jsxRuntimeExports.jsx(ModelUsagePanel, { usage: event.output.usage }) : void 0 }),
55554
+ /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: "Timing", className: styles$H.tableSelection, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
55519
55555
  EventTimingPanel,
55520
55556
  {
55521
55557
  timestamp: event.timestamp,
@@ -55535,13 +55571,13 @@ const ModelEventView = ({
55535
55571
  }
55536
55572
  ) })
55537
55573
  ] }),
55538
- event.tools.length > 1 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-name": "Tools", className: styles$E.container, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolsConfig, { tools: event.tools, toolChoice: event.tool_choice }) }),
55574
+ event.tools.length > 1 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-name": "Tools", className: styles$H.container, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolsConfig, { tools: event.tools, toolChoice: event.tool_choice }) }),
55539
55575
  event.call ? /* @__PURE__ */ jsxRuntimeExports.jsx(
55540
55576
  APIView,
55541
55577
  {
55542
55578
  "data-name": "API",
55543
55579
  call: event.call,
55544
- className: styles$E.container
55580
+ className: styles$H.container
55545
55581
  }
55546
55582
  ) : ""
55547
55583
  ]
@@ -55569,11 +55605,11 @@ const APICodeCell = ({ id: id2, sourceCode }) => {
55569
55605
  if (!sourceCode) {
55570
55606
  return null;
55571
55607
  }
55572
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: sourceCodeRef, className: clsx("model-call"), children: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$E.codePre), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
55608
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: sourceCodeRef, className: clsx("model-call"), children: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$H.codePre), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
55573
55609
  "code",
55574
55610
  {
55575
55611
  id: id2,
55576
- className: clsx("language-json", styles$E.code, "text-size-small"),
55612
+ className: clsx("language-json", styles$H.code, "text-size-small"),
55577
55613
  children: sourceCode
55578
55614
  }
55579
55615
  ) }) });
@@ -55586,8 +55622,8 @@ const ToolsConfig = ({ tools: tools2, toolChoice: toolChoice2 }) => {
55586
55622
  ] }, `${tool2.name}-${idx}`);
55587
55623
  });
55588
55624
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
55589
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.toolConfig, "text-size-small"), children: toolEls }),
55590
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$E.toolChoice, "text-size-small"), children: [
55625
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$H.toolConfig, "text-size-small"), children: toolEls }),
55626
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$H.toolChoice, "text-size-small"), children: [
55591
55627
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-style-label", "text-style-secondary"), children: "Tool Choice" }),
55592
55628
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolChoiceView, { toolChoice: toolChoice2 }) })
55593
55629
  ] })
@@ -55616,7 +55652,7 @@ const code = "_code_1a3fk_5";
55616
55652
  const sample = "_sample_1a3fk_10";
55617
55653
  const section$1 = "_section_1a3fk_14";
55618
55654
  const metadata = "_metadata_1a3fk_21";
55619
- const styles$D = {
55655
+ const styles$G = {
55620
55656
  noMargin,
55621
55657
  code,
55622
55658
  sample,
@@ -55633,13 +55669,13 @@ const SampleInitEventView = ({
55633
55669
  if (event.sample.files && Object.keys(event.sample.files).length > 0) {
55634
55670
  sections.push(
55635
55671
  /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: "Files", children: Object.keys(event.sample.files).map((file) => {
55636
- return /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: styles$D.noMargin, children: file }, `sample-init-file-${file}`);
55672
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: styles$G.noMargin, children: file }, `sample-init-file-${file}`);
55637
55673
  }) }, `event-${eventNode.id}`)
55638
55674
  );
55639
55675
  }
55640
55676
  if (event.sample.setup) {
55641
55677
  sections.push(
55642
- /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: "Setup", children: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: styles$D.code, children: /* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: "sourceCode", children: event.sample.setup }) }) }, `${eventNode.id}-section-setup`)
55678
+ /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: "Setup", children: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: styles$G.code, children: /* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: "sourceCode", children: event.sample.setup }) }) }, `${eventNode.id}-section-setup`)
55643
55679
  );
55644
55680
  }
55645
55681
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -55652,7 +55688,7 @@ const SampleInitEventView = ({
55652
55688
  icon: ApplicationIcons.sample,
55653
55689
  subTitle: formatDateTime(new Date(event.timestamp)),
55654
55690
  children: [
55655
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-name": "Sample", className: styles$D.sample, children: [
55691
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-name": "Sample", className: styles$G.sample, children: [
55656
55692
  /* @__PURE__ */ jsxRuntimeExports.jsx(
55657
55693
  ChatView,
55658
55694
  {
@@ -55668,7 +55704,7 @@ const SampleInitEventView = ({
55668
55704
  choice
55669
55705
  ] }, `$choice-{choice}`);
55670
55706
  }) : "",
55671
- sections.length > 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$D.section, children: sections }) : "",
55707
+ sections.length > 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$G.section, children: sections }) : "",
55672
55708
  event.sample.target ? /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: "Target", children: toArray(event.sample.target).map((target) => {
55673
55709
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-base"), children: target }, target);
55674
55710
  }) }) : void 0
@@ -55678,7 +55714,7 @@ const SampleInitEventView = ({
55678
55714
  MetaDataGrid,
55679
55715
  {
55680
55716
  "data-name": "Metadata",
55681
- className: styles$D.metadata,
55717
+ className: styles$G.metadata,
55682
55718
  entries: event.sample.metadata
55683
55719
  }
55684
55720
  ) : ""
@@ -55741,7 +55777,7 @@ const exec = "_exec_1irga_15";
55741
55777
  const result$1 = "_result_1irga_19";
55742
55778
  const fileLabel = "_fileLabel_1irga_23";
55743
55779
  const wrapPre = "_wrapPre_1irga_28";
55744
- const styles$C = {
55780
+ const styles$F = {
55745
55781
  twoColumn,
55746
55782
  exec,
55747
55783
  result: result$1,
@@ -55775,15 +55811,15 @@ const ExecView = ({ id: id2, event }) => {
55775
55811
  const input2 = event.input;
55776
55812
  const result2 = event.result;
55777
55813
  const output2 = event.output ? event.output.trim() : void 0;
55778
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$C.exec), children: [
55779
- /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: `Command`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$C.twoColumn), children: [
55780
- /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$C.wrapPre), children: cmd }),
55781
- /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$C.wrapPre), children: input2 !== null ? input2?.trim() : void 0 }),
55814
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$F.exec), children: [
55815
+ /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: `Command`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$F.twoColumn), children: [
55816
+ /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$F.wrapPre), children: cmd }),
55817
+ /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$F.wrapPre), children: input2 !== null ? input2?.trim() : void 0 }),
55782
55818
  options !== null && Object.keys(options).length > 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: `Options`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
55783
55819
  MetaDataGrid,
55784
55820
  {
55785
55821
  entries: options,
55786
- plain: true
55822
+ options: { plain: true }
55787
55823
  }
55788
55824
  ) }) : void 0
55789
55825
  ] }) }),
@@ -55795,7 +55831,7 @@ const ExecView = ({ id: id2, event }) => {
55795
55831
  entry: { name: "sandbox_output", value: output2 }
55796
55832
  }
55797
55833
  ) }) : void 0,
55798
- result2 !== 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$C.result, "text-size-base"), children: [
55834
+ result2 !== 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$F.result, "text-size-base"), children: [
55799
55835
  "(exited with code ",
55800
55836
  result2,
55801
55837
  ")"
@@ -55821,29 +55857,29 @@ const WriteFileView = ({ id: id2, event }) => {
55821
55857
  };
55822
55858
  const FileView = ({ id: id2, file, contents: contents2 }) => {
55823
55859
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
55824
- /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: "File", children: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$C.fileLabel), children: file }) }),
55860
+ /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: "File", children: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$F.fileLabel), children: file }) }),
55825
55861
  contents2 ? /* @__PURE__ */ jsxRuntimeExports.jsx(EventSection, { title: "Contents", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ExpandablePanel, { id: `${id2}-file`, collapse: false, children: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { children: contents2 }) }) }) : void 0
55826
55862
  ] });
55827
55863
  };
55828
- const container$9 = "_container_io1r0_1";
55864
+ const container$a = "_container_io1r0_1";
55829
55865
  const wrappingContent$1 = "_wrappingContent_io1r0_8";
55830
55866
  const separator$1 = "_separator_io1r0_13";
55831
55867
  const unchanged = "_unchanged_io1r0_22";
55832
55868
  const section = "_section_io1r0_27";
55833
55869
  const spacer = "_spacer_io1r0_31";
55834
- const styles$B = {
55835
- container: container$9,
55870
+ const styles$E = {
55871
+ container: container$a,
55836
55872
  wrappingContent: wrappingContent$1,
55837
55873
  separator: separator$1,
55838
55874
  unchanged,
55839
55875
  section,
55840
55876
  spacer
55841
55877
  };
55842
- const explanation$2 = "_explanation_1k2k0_1";
55878
+ const explanation$1 = "_explanation_1k2k0_1";
55843
55879
  const wrappingContent = "_wrappingContent_1k2k0_8";
55844
55880
  const separator = "_separator_1k2k0_13";
55845
- const styles$A = {
55846
- explanation: explanation$2,
55881
+ const styles$D = {
55882
+ explanation: explanation$1,
55847
55883
  wrappingContent,
55848
55884
  separator
55849
55885
  };
@@ -55864,29 +55900,29 @@ const ScoreEventView = ({
55864
55900
  icon: ApplicationIcons.scorer,
55865
55901
  collapsibleContent: true,
55866
55902
  children: [
55867
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-name": "Explanation", className: clsx(styles$A.explanation), children: [
55903
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-name": "Explanation", className: clsx(styles$D.explanation), children: [
55868
55904
  event.target ? /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
55869
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$A.separator) }),
55905
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$D.separator) }),
55870
55906
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-style-label", children: "Target" }),
55871
55907
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: resolvedTarget || "" }) })
55872
55908
  ] }) : "",
55873
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$A.separator) }),
55909
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$D.separator) }),
55874
55910
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-style-label", children: "Answer" }),
55875
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$A.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.score.answer || "" }) }),
55876
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$A.separator) }),
55911
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$D.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.score.answer || "" }) }),
55912
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$D.separator) }),
55877
55913
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-style-label", children: "Explanation" }),
55878
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$A.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.score.explanation || "" }) }),
55879
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$A.separator) }),
55914
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$D.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.score.explanation || "" }) }),
55915
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$D.separator) }),
55880
55916
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-style-label", children: "Score" }),
55881
55917
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: renderScore(event.score.value) }),
55882
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$A.separator) })
55918
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$D.separator) })
55883
55919
  ] }),
55884
55920
  event.score.metadata ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-name": "Metadata", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
55885
55921
  RecordTree,
55886
55922
  {
55887
55923
  id: `${eventNode.id}-score-metadata`,
55888
55924
  record: event.score.metadata,
55889
- className: styles$A.metadataTree,
55925
+ className: styles$D.metadataTree,
55890
55926
  defaultExpandLevel: 0
55891
55927
  }
55892
55928
  ) }) : void 0
@@ -55927,46 +55963,46 @@ const ScoreEditEventView = ({
55927
55963
  className: clsx(
55928
55964
  "text-style-label",
55929
55965
  "text-style-secondary",
55930
- styles$B.section
55966
+ styles$E.section
55931
55967
  ),
55932
55968
  children: "Updated Values"
55933
55969
  }
55934
55970
  ),
55935
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$B.container), children: [
55971
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$E.container), children: [
55936
55972
  event.edit.value ? /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
55937
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.separator) }),
55973
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.separator) }),
55938
55974
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-style-label", children: "Value" }),
55939
55975
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: renderScore(event.edit.value) })
55940
55976
  ] }) : "",
55941
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.separator) }),
55977
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.separator) }),
55942
55978
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-style-label", children: "Answer" }),
55943
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.wrappingContent), children: event.edit.answer === kUnchangedSentinel ? /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$B.unchanged), children: "[unchanged]" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.edit.answer || "" }) }),
55944
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.separator) }),
55979
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.wrappingContent), children: event.edit.answer === kUnchangedSentinel ? /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$E.unchanged), children: "[unchanged]" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.edit.answer || "" }) }),
55980
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.separator) }),
55945
55981
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-style-label", children: "Explanation" }),
55946
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.edit.explanation || "" }) })
55982
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.edit.explanation || "" }) })
55947
55983
  ] }),
55948
- event.edit.provenance ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$B.container), children: [
55984
+ event.edit.provenance ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$E.container), children: [
55949
55985
  /* @__PURE__ */ jsxRuntimeExports.jsx(
55950
55986
  "div",
55951
55987
  {
55952
55988
  className: clsx(
55953
55989
  "text-style-label",
55954
55990
  "text-style-secondary",
55955
- styles$B.section
55991
+ styles$E.section
55956
55992
  ),
55957
55993
  children: "Provenance"
55958
55994
  }
55959
55995
  ),
55960
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.spacer) }),
55961
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.separator) }),
55996
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.spacer) }),
55997
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.separator) }),
55962
55998
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-style-label", children: "Author" }),
55963
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.edit.provenance.author }) }),
55964
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.separator) }),
55999
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.edit.provenance.author }) }),
56000
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.separator) }),
55965
56001
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-style-label", children: "Reason" }),
55966
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.edit.provenance.reason || "" }) }),
55967
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.separator) }),
56002
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderedText, { markdown: event.edit.provenance.reason || "" }) }),
56003
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.separator) }),
55968
56004
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-style-label", children: "Time" }),
55969
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
56005
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$E.wrappingContent), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
55970
56006
  RenderedText,
55971
56007
  {
55972
56008
  markdown: formatDateTime(new Date(event.edit.provenance.timestamp)) || ""
@@ -55978,7 +56014,7 @@ const ScoreEditEventView = ({
55978
56014
  {
55979
56015
  id: `${eventNode.id}-score-metadata`,
55980
56016
  record: event.edit.metadata || {},
55981
- className: styles$B.metadataTree,
56017
+ className: styles$E.metadataTree,
55982
56018
  defaultExpandLevel: 0
55983
56019
  }
55984
56020
  ) }) : void 0
@@ -63747,7 +63783,7 @@ const lightboxContent = "_lightboxContent_1mvg8_33";
63747
63783
  const lightboxButtonCloseWrapper = "_lightboxButtonCloseWrapper_1mvg8_45";
63748
63784
  const lightboxButtonClose = "_lightboxButtonClose_1mvg8_45";
63749
63785
  const lightboxPreviewButton = "_lightboxPreviewButton_1mvg8_63";
63750
- const styles$z = {
63786
+ const styles$C = {
63751
63787
  carouselThumbs,
63752
63788
  carouselThumb,
63753
63789
  carouselPlayIcon,
@@ -63816,12 +63852,12 @@ const LightboxCarousel = ({ id: id2, slides }) => {
63816
63852
  [openLightbox]
63817
63853
  );
63818
63854
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx("lightbox-carousel-container"), children: [
63819
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$z.carouselThumbs), children: slides.map((slide, index) => {
63855
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$C.carouselThumbs), children: slides.map((slide, index) => {
63820
63856
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
63821
63857
  "div",
63822
63858
  {
63823
63859
  "data-index": index,
63824
- className: clsx(styles$z.carouselThumb),
63860
+ className: clsx(styles$C.carouselThumb),
63825
63861
  onClick: handleThumbClick,
63826
63862
  children: [
63827
63863
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: slide.label }),
@@ -63830,7 +63866,7 @@ const LightboxCarousel = ({ id: id2, slides }) => {
63830
63866
  {
63831
63867
  className: clsx(
63832
63868
  ApplicationIcons.play,
63833
- styles$z.carouselPlayIcon
63869
+ styles$C.carouselPlayIcon
63834
63870
  )
63835
63871
  }
63836
63872
  ) })
@@ -63842,12 +63878,12 @@ const LightboxCarousel = ({ id: id2, slides }) => {
63842
63878
  showOverlay && /* @__PURE__ */ jsxRuntimeExports.jsxs(
63843
63879
  "div",
63844
63880
  {
63845
- className: clsx(styles$z.lightboxOverlay, isOpen ? "open" : "closed"),
63881
+ className: clsx(styles$C.lightboxOverlay, isOpen ? "open" : "closed"),
63846
63882
  children: [
63847
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$z.lightboxButtonCloseWrapper), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
63883
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$C.lightboxButtonCloseWrapper), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
63848
63884
  "button",
63849
63885
  {
63850
- className: styles$z.lightboxButtonClose,
63886
+ className: styles$C.lightboxButtonClose,
63851
63887
  onClick: closeLightbox,
63852
63888
  children: /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: ApplicationIcons.close })
63853
63889
  }
@@ -63855,7 +63891,7 @@ const LightboxCarousel = ({ id: id2, slides }) => {
63855
63891
  slides.length > 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
63856
63892
  "button",
63857
63893
  {
63858
- className: clsx(styles$z.lightboxPreviewButton, "prev"),
63894
+ className: clsx(styles$C.lightboxPreviewButton, "prev"),
63859
63895
  onClick: showPrev,
63860
63896
  children: /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: ApplicationIcons.previous })
63861
63897
  }
@@ -63863,7 +63899,7 @@ const LightboxCarousel = ({ id: id2, slides }) => {
63863
63899
  slides.length > 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
63864
63900
  "button",
63865
63901
  {
63866
- className: clsx(styles$z.lightboxPreviewButton, "next"),
63902
+ className: clsx(styles$C.lightboxPreviewButton, "next"),
63867
63903
  onClick: showNext,
63868
63904
  children: /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: ApplicationIcons.next })
63869
63905
  }
@@ -63871,7 +63907,7 @@ const LightboxCarousel = ({ id: id2, slides }) => {
63871
63907
  /* @__PURE__ */ jsxRuntimeExports.jsx(
63872
63908
  "div",
63873
63909
  {
63874
- className: clsx(styles$z.lightboxContent, isOpen ? "open" : "closed"),
63910
+ className: clsx(styles$C.lightboxContent, isOpen ? "open" : "closed"),
63875
63911
  children: slides[currentIndex || 0]?.render()
63876
63912
  },
63877
63913
  `carousel-slide-${currentIndex}`
@@ -63982,7 +64018,7 @@ const extractSize = (value2, label2, defaultValue) => {
63982
64018
  const toolsGrid = "_toolsGrid_1qqm2_1";
63983
64019
  const tools = "_tools_1qqm2_1";
63984
64020
  const tool = "_tool_1qqm2_1";
63985
- const styles$y = {
64021
+ const styles$B = {
63986
64022
  toolsGrid,
63987
64023
  tools,
63988
64024
  tool
@@ -64155,7 +64191,7 @@ const renderTools = (changes, resolvedState) => {
64155
64191
  toolsInfo["Tools"] = /* @__PURE__ */ jsxRuntimeExports.jsx(Tools, { toolDefinitions: filtered });
64156
64192
  }
64157
64193
  }
64158
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$y.tools), children: Object.keys(toolsInfo).map((key2) => {
64194
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$B.tools), children: Object.keys(toolsInfo).map((key2) => {
64159
64195
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
64160
64196
  /* @__PURE__ */ jsxRuntimeExports.jsx(
64161
64197
  "div",
@@ -64210,7 +64246,7 @@ const StoreSpecificRenderableTypes = [
64210
64246
  human_baseline_session
64211
64247
  ];
64212
64248
  const Tools = ({ toolDefinitions }) => {
64213
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$y.toolsGrid, children: toolDefinitions.map((toolDefinition, idx) => {
64249
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$B.toolsGrid, children: toolDefinitions.map((toolDefinition, idx) => {
64214
64250
  const toolName = toolDefinition.name;
64215
64251
  const toolArgs = toolDefinition.parameters?.properties ? Object.keys(toolDefinition.parameters.properties) : [];
64216
64252
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -64225,11 +64261,11 @@ const Tools = ({ toolDefinitions }) => {
64225
64261
  };
64226
64262
  const Tool = ({ toolName, toolArgs }) => {
64227
64263
  const functionCall = toolArgs && toolArgs.length > 0 ? `${toolName}(${toolArgs.join(", ")})` : toolName;
64228
- return /* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: clsx("text-size-smallest", styles$y.tool), children: functionCall });
64264
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: clsx("text-size-smallest", styles$B.tool), children: functionCall });
64229
64265
  };
64230
64266
  const diff = "_diff_eobja_1";
64231
64267
  const summary$2 = "_summary_eobja_6";
64232
- const styles$x = {
64268
+ const styles$A = {
64233
64269
  diff,
64234
64270
  summary: summary$2
64235
64271
  };
@@ -64275,14 +64311,14 @@ const StateEventView = ({
64275
64311
  text: !changePreview ? summary2 : void 0,
64276
64312
  collapsibleContent: true,
64277
64313
  children: [
64278
- changePreview ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-name": "Summary", className: clsx(styles$x.summary), children: changePreview }) : void 0,
64314
+ changePreview ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-name": "Summary", className: clsx(styles$A.summary), children: changePreview }) : void 0,
64279
64315
  /* @__PURE__ */ jsxRuntimeExports.jsx(
64280
64316
  StateDiffView,
64281
64317
  {
64282
64318
  before,
64283
64319
  after,
64284
64320
  "data-name": "Diff",
64285
- className: clsx(styles$x.diff)
64321
+ className: clsx(styles$A.diff)
64286
64322
  }
64287
64323
  )
64288
64324
  ]
@@ -64615,7 +64651,7 @@ const summary$1 = "_summary_ac4z2_1";
64615
64651
  const summaryRendered = "_summaryRendered_ac4z2_6";
64616
64652
  const subtaskSummary = "_subtaskSummary_ac4z2_10";
64617
64653
  const subtaskLabel = "_subtaskLabel_ac4z2_17";
64618
- const styles$w = {
64654
+ const styles$z = {
64619
64655
  summary: summary$1,
64620
64656
  summaryRendered,
64621
64657
  subtaskSummary,
@@ -64630,9 +64666,9 @@ const SubtaskEventView = ({
64630
64666
  const body = [];
64631
64667
  if (event.type === "fork") {
64632
64668
  body.push(
64633
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { title: "Summary", className: clsx(styles$w.summary), children: [
64669
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { title: "Summary", className: clsx(styles$z.summary), children: [
64634
64670
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-style-label"), children: "Inputs" }),
64635
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$w.summaryRendered), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Rendered, { values: event.input }) })
64671
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$z.summaryRendered), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Rendered, { values: event.input }) })
64636
64672
  ] })
64637
64673
  );
64638
64674
  } else {
@@ -64668,12 +64704,12 @@ const SubtaskEventView = ({
64668
64704
  };
64669
64705
  const SubtaskSummary = ({ input: input2, result: result2 }) => {
64670
64706
  const output2 = typeof result2 === "object" ? result2 : { result: result2 };
64671
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$w.subtaskSummary), children: [
64707
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$z.subtaskSummary), children: [
64672
64708
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-style-label", "text-size-small"), children: "Input" }),
64673
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-large", styles$w.subtaskLabel) }),
64709
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-large", styles$z.subtaskLabel) }),
64674
64710
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-style-label", "text-size-small"), children: "Output" }),
64675
64711
  input2 ? /* @__PURE__ */ jsxRuntimeExports.jsx(Rendered, { values: input2 }) : void 0,
64676
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-title-secondary", styles$w.subtaskLabel), children: /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: ApplicationIcons.arrows.right }) }),
64712
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-title-secondary", styles$z.subtaskLabel), children: /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: ApplicationIcons.arrows.right }) }),
64677
64713
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Rendered, { values: output2 }) })
64678
64714
  ] });
64679
64715
  };
@@ -64698,7 +64734,7 @@ const None = () => {
64698
64734
  const summary = "_summary_1qsnv_1";
64699
64735
  const approval = "_approval_1qsnv_6";
64700
64736
  const progress = "_progress_1qsnv_12";
64701
- const styles$v = {
64737
+ const styles$y = {
64702
64738
  summary,
64703
64739
  approval,
64704
64740
  progress
@@ -64737,7 +64773,7 @@ const ToolEventView = ({
64737
64773
  icon: ApplicationIcons.solvers.use_tools,
64738
64774
  childIds: children2.map((child) => child.id),
64739
64775
  collapseControl: "bottom",
64740
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-name": "Summary", className: styles$v.summary, children: [
64776
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-name": "Summary", className: styles$y.summary, children: [
64741
64777
  /* @__PURE__ */ jsxRuntimeExports.jsx(
64742
64778
  ToolCallView,
64743
64779
  {
@@ -64765,10 +64801,10 @@ const ToolEventView = ({
64765
64801
  ApprovalEventView,
64766
64802
  {
64767
64803
  eventNode: approvalNode,
64768
- className: styles$v.approval
64804
+ className: styles$y.approval
64769
64805
  }
64770
64806
  ) : "",
64771
- event.pending ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$v.progress), children: /* @__PURE__ */ jsxRuntimeExports.jsx(PulsingDots, { subtle: false, size: "medium" }) }) : void 0
64807
+ event.pending ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$y.progress), children: /* @__PURE__ */ jsxRuntimeExports.jsx(PulsingDots, { subtle: false, size: "medium" }) }) : void 0
64772
64808
  ] })
64773
64809
  }
64774
64810
  );
@@ -64777,7 +64813,7 @@ const node = "_node_1r858_1";
64777
64813
  const attached = "_attached_1r858_5";
64778
64814
  const attachedParent = "_attachedParent_1r858_9";
64779
64815
  const attachedChild = "_attachedChild_1r858_16";
64780
- const styles$u = {
64816
+ const styles$x = {
64781
64817
  node,
64782
64818
  attached,
64783
64819
  attachedParent,
@@ -64827,23 +64863,23 @@ const TranscriptVirtualListComponent = ({
64827
64863
  );
64828
64864
  const renderRow = useCallback(
64829
64865
  (index, item2) => {
64830
- const paddingClass = index === 0 ? styles$u.first : void 0;
64866
+ const paddingClass = index === 0 ? styles$x.first : void 0;
64831
64867
  const previousIndex = index - 1;
64832
64868
  const nextIndex2 = index + 1;
64833
64869
  const previous = previousIndex > 0 && previousIndex <= eventNodes.length ? eventNodes[previousIndex] : void 0;
64834
64870
  const next = nextIndex2 < eventNodes.length ? eventNodes[nextIndex2] : void 0;
64835
64871
  const attached2 = item2.event.event === "tool" && (previous?.event.event === "tool" || previous?.event.event === "model");
64836
64872
  const attachedParent2 = item2.event.event === "model" && next?.event.event === "tool";
64837
- const attachedClass = attached2 ? styles$u.attached : void 0;
64838
- const attachedChildClass = attached2 ? styles$u.attachedChild : void 0;
64839
- const attachedParentClass = attachedParent2 ? styles$u.attachedParent : void 0;
64873
+ const attachedClass = attached2 ? styles$x.attached : void 0;
64874
+ const attachedChildClass = attached2 ? styles$x.attachedChild : void 0;
64875
+ const attachedParentClass = attachedParent2 ? styles$x.attachedParent : void 0;
64840
64876
  const hasToolEvents = hasToolEventsAtCurrentDepth(index);
64841
64877
  const context = hasToolEvents ? contextWithToolEvents : contextWithoutToolEvents;
64842
64878
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
64843
64879
  "div",
64844
64880
  {
64845
64881
  id: item2.id,
64846
- className: clsx(styles$u.node, paddingClass, attachedClass),
64882
+ className: clsx(styles$x.node, paddingClass, attachedClass),
64847
64883
  style: {
64848
64884
  paddingLeft: `${item2.depth <= 1 ? item2.depth * 0.7 : (0.7 + item2.depth - 1) * 1}em`,
64849
64885
  paddingRight: `${item2.depth === 0 ? void 0 : ".7em"} `
@@ -65453,31 +65489,54 @@ const TranscriptView = ({
65453
65489
  eventNodes: flattenedNodes,
65454
65490
  scrollRef,
65455
65491
  offsetTop: 10,
65456
- className: styles$N.listContainer,
65492
+ className: styles$Q.listContainer,
65457
65493
  initialEventId
65458
65494
  }
65459
65495
  );
65460
65496
  };
65461
- const container$8 = "_container_kyylo_1";
65462
- const styles$t = {
65463
- container: container$8
65497
+ const header$2 = "_header_189zi_1";
65498
+ const styles$w = {
65499
+ header: header$2
65500
+ };
65501
+ const ColumnHeader$1 = ({ label: label2 }) => {
65502
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$w.header), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
65503
+ "div",
65504
+ {
65505
+ className: clsx(
65506
+ styles$w.label,
65507
+ "text-size-smallest",
65508
+ "text-style-label",
65509
+ "text-style-secondary"
65510
+ ),
65511
+ children: label2
65512
+ }
65513
+ ) });
65464
65514
  };
65465
- const InputPanel = ({ result: result2 }) => {
65515
+ const container$9 = "_container_1fgdb_1";
65516
+ const scrollable = "_scrollable_1fgdb_6";
65517
+ const styles$v = {
65518
+ container: container$9,
65519
+ scrollable
65520
+ };
65521
+ const ResultBody = ({ result: result2 }) => {
65466
65522
  const scrollRef = useRef(null);
65467
65523
  const [searchParams] = useSearchParams();
65468
65524
  const initialMessageId = searchParams.get("message");
65469
65525
  const initialEventId = searchParams.get("event");
65470
65526
  const highlightLabeled = useStore((state) => state.highlightLabeled);
65471
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: scrollRef, className: clsx(styles$t.container), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
65472
- InputRenderer,
65473
- {
65474
- result: result2,
65475
- scrollRef,
65476
- initialMessageId,
65477
- initialEventId,
65478
- highlightLabeled
65479
- }
65480
- ) });
65527
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$v.container, children: [
65528
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ColumnHeader$1, { label: "Input" }),
65529
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: scrollRef, className: clsx(styles$v.scrollable), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
65530
+ InputRenderer,
65531
+ {
65532
+ result: result2,
65533
+ scrollRef,
65534
+ initialMessageId,
65535
+ initialEventId,
65536
+ highlightLabeled
65537
+ }
65538
+ ) })
65539
+ ] });
65481
65540
  };
65482
65541
  const InputRenderer = ({
65483
65542
  result: result2,
@@ -65585,6 +65644,32 @@ const InputRenderer = ({
65585
65644
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Unknown Input Type" });
65586
65645
  }
65587
65646
  };
65647
+ const container$8 = "_container_u4d55_1";
65648
+ const styles$u = {
65649
+ container: container$8
65650
+ };
65651
+ const useMarkdownRefs = (result2) => {
65652
+ const params = useParams();
65653
+ const buildUrl = useMemo(() => {
65654
+ if (!result2?.uuid) {
65655
+ return (queryParams) => `?${queryParams}`;
65656
+ }
65657
+ const relativePath = getRelativePathFromParams(params);
65658
+ const { scanPath } = parseScanResultPath(relativePath);
65659
+ return (queryParams) => {
65660
+ const searchParams = new URLSearchParams(queryParams);
65661
+ return `#${scanResultRoute(scanPath, result2.uuid, searchParams)}`;
65662
+ };
65663
+ }, [result2?.uuid, params]);
65664
+ const refs = result2 ? toMarkdownRefs(result2, (refId, type) => {
65665
+ if (type === "message") {
65666
+ return buildUrl(`tab=Result&message=${encodeURIComponent(refId)}`);
65667
+ } else {
65668
+ return buildUrl(`tab=Result&event=${encodeURIComponent(refId)}`);
65669
+ }
65670
+ }) : [];
65671
+ return refs;
65672
+ };
65588
65673
  const toMarkdownRefs = (core, makeReferenceUrl) => {
65589
65674
  const refLookup = referenceTable(core);
65590
65675
  const refs = [];
@@ -65704,36 +65789,22 @@ const referenceTable = (result2) => {
65704
65789
  return {};
65705
65790
  }
65706
65791
  };
65707
- const Explanation = ({ result: result2 }) => {
65708
- const params = useParams();
65709
- const buildUrl = useMemo(() => {
65710
- if (!result2?.uuid) {
65711
- return (queryParams) => `?${queryParams}`;
65712
- }
65713
- const relativePath = getRelativePathFromParams(params);
65714
- const { scanPath } = parseScanResultPath(relativePath);
65715
- return (queryParams) => {
65716
- const searchParams = new URLSearchParams(queryParams);
65717
- return `#${scanResultRoute(scanPath, result2.uuid, searchParams)}`;
65718
- };
65719
- }, [result2?.uuid, params]);
65720
- const refs = result2 ? toMarkdownRefs(result2, (refId, type) => {
65721
- if (type === "message") {
65722
- return buildUrl(`tab=Input&message=${encodeURIComponent(refId)}`);
65723
- } else {
65724
- return buildUrl(`tab=Input&event=${encodeURIComponent(refId)}`);
65725
- }
65726
- }) : [];
65792
+ const Explanation = ({
65793
+ result: result2,
65794
+ references,
65795
+ options
65796
+ }) => {
65727
65797
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
65728
65798
  MarkdownDivWithReferences,
65729
65799
  {
65730
65800
  markdown: result2?.explanation || "",
65731
- references: refs
65801
+ references,
65802
+ options
65732
65803
  }
65733
65804
  );
65734
65805
  };
65735
65806
  const result = "_result_f18wg_1";
65736
- const styles$s = {
65807
+ const styles$t = {
65737
65808
  result,
65738
65809
  "true": "_true_f18wg_12",
65739
65810
  "false": "_false_f18wg_17"
@@ -65743,11 +65814,11 @@ const ValidationResult = ({ result: result2 }) => {
65743
65814
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Result, { value: result2 });
65744
65815
  } else if (typeof result2 === "object") {
65745
65816
  const entries2 = Object.entries(result2);
65746
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$s.validationTable), children: entries2.map(([_key, value2]) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Result, { value: value2 }) })) });
65817
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$t.validationTable), children: entries2.map(([_key, value2]) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Result, { value: value2 }) })) });
65747
65818
  }
65748
65819
  };
65749
65820
  const Result = ({ value: value2 }) => {
65750
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(value2 ? styles$s.true : styles$s.false, styles$s.result), children: value2 ? /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx(ApplicationIcons.check) }) : /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx(ApplicationIcons.x) }) });
65821
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(value2 ? styles$t.true : styles$t.false, styles$t.result), children: value2 ? /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx(ApplicationIcons.check) }) : /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx(ApplicationIcons.x) }) });
65751
65822
  };
65752
65823
  const printArray = (arr, size = 50) => {
65753
65824
  const envelope = ["[", "]"];
@@ -65868,7 +65939,7 @@ const valueTable = "_valueTable_1uivt_24";
65868
65939
  const inline = "_inline_1uivt_31";
65869
65940
  const valueValue = "_valueValue_1uivt_31";
65870
65941
  const value = "_value_1uivt_24";
65871
- const styles$r = {
65942
+ const styles$s = {
65872
65943
  boolean,
65873
65944
  "true": "_true_1uivt_12",
65874
65945
  "false": "_false_1uivt_18",
@@ -65879,24 +65950,21 @@ const styles$r = {
65879
65950
  };
65880
65951
  const Value = ({
65881
65952
  result: result2,
65953
+ references,
65882
65954
  style: style2,
65883
65955
  maxTableSize = 5,
65884
- interactive = false
65956
+ interactive = false,
65957
+ options
65885
65958
  }) => {
65886
- const params = useParams();
65887
- const buildUrl = useMemo(() => {
65888
- if (!result2?.uuid) {
65889
- return (queryParams) => `?${queryParams}`;
65890
- }
65891
- const relativePath = getRelativePathFromParams(params);
65892
- const { scanPath } = parseScanResultPath(relativePath);
65893
- return (queryParams) => {
65894
- const searchParams = new URLSearchParams(queryParams);
65895
- return `#${scanResultRoute(scanPath, result2.uuid, searchParams)}`;
65896
- };
65897
- }, [result2?.uuid, params]);
65898
65959
  if (isStringValue(result2)) {
65899
- return `"${result2.value}"`;
65960
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
65961
+ MarkdownDivWithReferences,
65962
+ {
65963
+ markdown: result2.value,
65964
+ references,
65965
+ options
65966
+ }
65967
+ );
65900
65968
  } else if (isNumberValue(result2) && result2.value !== null) {
65901
65969
  return formatPrettyDecimal(result2.value);
65902
65970
  } else if (isBooleanValue(result2)) {
@@ -65904,8 +65972,8 @@ const Value = ({
65904
65972
  "div",
65905
65973
  {
65906
65974
  className: clsx(
65907
- styles$r.boolean,
65908
- result2.value ? styles$r.true : styles$r.false
65975
+ styles$s.boolean,
65976
+ result2.value ? styles$s.true : styles$s.false
65909
65977
  ),
65910
65978
  children: String(result2.value)
65911
65979
  }
@@ -65918,7 +65986,7 @@ const Value = ({
65918
65986
  {
65919
65987
  value: result2.value,
65920
65988
  result: result2,
65921
- buildUrl,
65989
+ references,
65922
65990
  style: style2,
65923
65991
  maxListSize: maxTableSize,
65924
65992
  interactive
@@ -65930,7 +65998,7 @@ const Value = ({
65930
65998
  {
65931
65999
  value: result2.value,
65932
66000
  result: result2,
65933
- buildUrl,
66001
+ references,
65934
66002
  style: style2,
65935
66003
  maxTableSize,
65936
66004
  interactive
@@ -65940,21 +66008,21 @@ const Value = ({
65940
66008
  return "Unknown value type";
65941
66009
  }
65942
66010
  };
65943
- const ValueList2 = ({ value: value2, result: result2, maxListSize, interactive, buildUrl, style: style2 }) => {
66011
+ const ValueList2 = ({ value: value2, result: result2, maxListSize, interactive, references, style: style2 }) => {
65944
66012
  const itemsToDisplay = value2.slice(0, maxListSize);
65945
66013
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
65946
66014
  "div",
65947
66015
  {
65948
66016
  className: clsx(
65949
- styles$r.valueTable,
65950
- style2 === "inline" ? styles$r.inline : styles$r.block
66017
+ styles$s.valueTable,
66018
+ style2 === "inline" ? styles$s.inline : styles$s.block
65951
66019
  ),
65952
66020
  children: itemsToDisplay.map((item2, index) => {
65953
66021
  const displayValue = renderValue(
65954
66022
  index,
65955
66023
  item2,
65956
66024
  result2,
65957
- buildUrl,
66025
+ references,
65958
66026
  interactive
65959
66027
  );
65960
66028
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
@@ -65962,7 +66030,7 @@ const ValueList2 = ({ value: value2, result: result2, maxListSize, interactive,
65962
66030
  "div",
65963
66031
  {
65964
66032
  className: clsx(
65965
- styles$r.valueKey,
66033
+ styles$s.valueKey,
65966
66034
  "text-style-label",
65967
66035
  "text-style-secondary",
65968
66036
  "text-size-smallest"
@@ -65974,28 +66042,28 @@ const ValueList2 = ({ value: value2, result: result2, maxListSize, interactive,
65974
66042
  ]
65975
66043
  }
65976
66044
  ),
65977
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$r.valueValue), children: displayValue })
66045
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$s.valueValue), children: displayValue })
65978
66046
  ] }, `value-table-row-${index}`);
65979
66047
  })
65980
66048
  }
65981
66049
  );
65982
66050
  };
65983
- const ValueTable = ({ value: value2, result: result2, maxTableSize, interactive, buildUrl, style: style2 }) => {
66051
+ const ValueTable = ({ value: value2, result: result2, maxTableSize, interactive, references, style: style2 }) => {
65984
66052
  const keys2 = Object.keys(value2);
65985
66053
  const keysToDisplay = keys2.slice(0, maxTableSize);
65986
66054
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
65987
66055
  "div",
65988
66056
  {
65989
66057
  className: clsx(
65990
- styles$r.valueTable,
65991
- style2 === "inline" ? styles$r.inline : styles$r.block
66058
+ styles$s.valueTable,
66059
+ style2 === "inline" ? styles$s.inline : styles$s.block
65992
66060
  ),
65993
66061
  children: keysToDisplay.map((key2, index) => {
65994
66062
  const displayValue = renderValue(
65995
66063
  index,
65996
66064
  value2[key2],
65997
66065
  result2,
65998
- buildUrl,
66066
+ references,
65999
66067
  interactive
66000
66068
  );
66001
66069
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
@@ -66003,7 +66071,7 @@ const ValueTable = ({ value: value2, result: result2, maxTableSize, interactive,
66003
66071
  "div",
66004
66072
  {
66005
66073
  className: clsx(
66006
- styles$r.valueKey,
66074
+ styles$s.valueKey,
66007
66075
  "text-style-label",
66008
66076
  "text-style-secondary",
66009
66077
  "text-size-smallest"
@@ -66011,31 +66079,21 @@ const ValueTable = ({ value: value2, result: result2, maxTableSize, interactive,
66011
66079
  children: key2
66012
66080
  }
66013
66081
  ),
66014
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$r.valueValue), children: displayValue })
66082
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$s.valueValue), children: displayValue })
66015
66083
  ] }, `value-table-row-${key2}`);
66016
66084
  })
66017
66085
  }
66018
66086
  );
66019
66087
  };
66020
- const renderValue = (index, val, result2, buildUrl, interactive) => {
66088
+ const renderValue = (index, val, result2, references, interactive) => {
66021
66089
  if (typeof val === "string") {
66022
- const refs = toMarkdownRefs(
66023
- result2,
66024
- (refId, type) => {
66025
- if (type === "message") {
66026
- return buildUrl(`tab=Input&message=${encodeURIComponent(refId)}`);
66027
- } else {
66028
- return buildUrl(`tab=Input&event=${encodeURIComponent(refId)}`);
66029
- }
66030
- }
66031
- );
66032
- return /* @__PURE__ */ jsxRuntimeExports.jsx(MarkdownDivWithReferences, { markdown: val, references: refs });
66090
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(MarkdownDivWithReferences, { markdown: val, references });
66033
66091
  } else if (typeof val === "number") {
66034
66092
  return formatPrettyDecimal(val);
66035
66093
  } else if (typeof val === "boolean") {
66036
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$r.boolean, val ? styles$r.true : styles$r.false), children: String(val) });
66094
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$s.boolean, val ? styles$s.true : styles$s.false), children: String(val) });
66037
66095
  } else if (val === null) {
66038
- return /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$r.value), children: "null" });
66096
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: clsx(styles$s.value), children: "null" });
66039
66097
  } else if (Array.isArray(val)) {
66040
66098
  return printArray(val, 25);
66041
66099
  } else if (typeof val === "object") {
@@ -66050,121 +66108,119 @@ const renderValue = (index, val, result2, buildUrl, interactive) => {
66050
66108
  return "Unknown value type";
66051
66109
  }
66052
66110
  };
66053
- const container$7 = "_container_15a30_1";
66054
- const explanation$1 = "_explanation_15a30_9";
66055
- const values = "_values_15a30_20";
66056
- const validation = "_validation_15a30_26";
66057
- const validationLabel = "_validationLabel_15a30_32";
66058
- const styles$q = {
66111
+ const sidebar = "_sidebar_ruino_1";
66112
+ const container$7 = "_container_ruino_7";
66113
+ const colspan = "_colspan_ruino_14";
66114
+ const values = "_values_ruino_29";
66115
+ const validation = "_validation_ruino_35";
66116
+ const validationLabel = "_validationLabel_ruino_41";
66117
+ const styles$r = {
66118
+ sidebar,
66059
66119
  container: container$7,
66060
- explanation: explanation$1,
66120
+ colspan,
66061
66121
  values,
66062
66122
  validation,
66063
66123
  validationLabel
66064
66124
  };
66065
- const ResultPanel = ({ result: result2 }) => {
66066
- const messages2 = useMemo(() => {
66067
- if (result2 && result2.scanEvents && result2.scanEvents.length > 0) {
66068
- return messagesFromEvents(result2.scanEvents);
66069
- }
66070
- return [];
66071
- }, [result2?.scanEvents]);
66072
- return result2 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$q.container, "text-size-base"), children: [
66073
- /* @__PURE__ */ jsxRuntimeExports.jsx(Card, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(CardBody, { className: clsx(styles$q.explanation), children: [
66074
- result2.label && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
66075
- /* @__PURE__ */ jsxRuntimeExports.jsx(
66076
- "div",
66077
- {
66078
- className: clsx("text-style-label", "text-style-secondary"),
66079
- children: "Label"
66080
- }
66125
+ const ResultSidebar = ({ result: result2 }) => {
66126
+ const refs = useMarkdownRefs(result2);
66127
+ if (!result2) {
66128
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(NoContentsPanel, { text: "No result to display." });
66129
+ }
66130
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$r.sidebar), children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$r.container, "text-size-base"), children: [
66131
+ result2.label && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
66132
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-style-label", "text-style-secondary"), children: "Label" }),
66133
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: result2.label })
66134
+ ] }),
66135
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-style-label", "text-style-secondary"), children: "Value" }),
66136
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
66137
+ "div",
66138
+ {
66139
+ className: clsx(
66140
+ result2.validationResult !== void 0 ? styles$r.values : void 0
66081
66141
  ),
66082
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: result2.label })
66083
- ] }),
66084
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-style-label", "text-style-secondary"), children: "Value" }),
66085
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
66086
- "div",
66087
- {
66088
- className: clsx(
66089
- result2.validationResult !== void 0 ? styles$q.values : void 0
66142
+ children: [
66143
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
66144
+ Value,
66145
+ {
66146
+ result: result2,
66147
+ style: "block",
66148
+ maxTableSize: 1e3,
66149
+ interactive: true,
66150
+ references: refs,
66151
+ options: { previewRefsOnHover: false }
66152
+ }
66090
66153
  ),
66091
- children: [
66154
+ result2.validationResult !== void 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$r.validation), children: [
66092
66155
  /* @__PURE__ */ jsxRuntimeExports.jsx(
66093
- Value,
66156
+ "div",
66094
66157
  {
66095
- result: result2,
66096
- style: "block",
66097
- maxTableSize: 1e3,
66098
- interactive: true
66158
+ className: clsx(
66159
+ "text-style-label",
66160
+ "text-style-secondary",
66161
+ "text-size-smallest",
66162
+ styles$r.validationLabel
66163
+ ),
66164
+ children: "Validation"
66099
66165
  }
66100
66166
  ),
66101
- result2.validationResult !== void 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$q.validation), children: [
66102
- /* @__PURE__ */ jsxRuntimeExports.jsx(
66103
- "div",
66104
- {
66105
- className: clsx(
66106
- "text-style-label",
66107
- "text-style-secondary",
66108
- "text-size-smallest",
66109
- styles$q.validationLabel
66110
- ),
66111
- children: "Validation"
66112
- }
66113
- ),
66114
- /* @__PURE__ */ jsxRuntimeExports.jsx(ValidationResult, { result: result2.validationResult })
66115
- ] }) : void 0
66116
- ]
66117
- }
66118
- ),
66119
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-style-label", "text-style-secondary"), children: "Explanation" }),
66120
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Explanation, { result: result2 }) }),
66121
- result2.metadata && Object.keys(result2.metadata).length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
66122
- /* @__PURE__ */ jsxRuntimeExports.jsx(
66123
- "div",
66124
- {
66125
- className: clsx("text-style-label", "text-style-secondary"),
66126
- children: "Metadata"
66127
- }
66128
- ),
66129
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(MetaDataGrid, { entries: result2.metadata }) })
66130
- ] })
66131
- ] }) }),
66132
- messages2.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(Card, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(CardBody, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(LabeledValue, { label: "Scanner", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
66133
- ChatView,
66134
- {
66135
- showLabels: false,
66136
- messages: messages2,
66137
- id: `scan-result-chat`,
66138
- toolCallStyle: "complete",
66139
- indented: false
66140
- }
66141
- ) }) }) }),
66142
- result2.metadata && Object.keys(result2.metadata).length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(Card, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(CardBody, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(LabeledValue, { label: "Metadata", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
66143
- RecordTree,
66144
- {
66145
- id: `result-metadata-${result2.uuid}`,
66146
- record: result2.metadata || {}
66167
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ValidationResult, { result: result2.validationResult })
66168
+ ] }) : void 0
66169
+ ]
66147
66170
  }
66148
- ) }) }) })
66171
+ ),
66172
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$r.colspan), children: [
66173
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-style-label", "text-style-secondary"), children: "Explanation" }),
66174
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
66175
+ Explanation,
66176
+ {
66177
+ result: result2,
66178
+ references: refs,
66179
+ options: { previewRefsOnHover: false }
66180
+ }
66181
+ )
66182
+ ] }),
66183
+ result2.metadata && Object.keys(result2.metadata).length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
66184
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-style-label", "text-style-secondary"), children: "Metadata" }),
66185
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
66186
+ MetaDataGrid,
66187
+ {
66188
+ entries: result2.metadata,
66189
+ references: refs,
66190
+ options: { previewRefsOnHover: false }
66191
+ }
66192
+ ) })
66193
+ ] })
66194
+ ] }) });
66195
+ };
66196
+ const ResultPanel = ({ result: result2 }) => {
66197
+ return result2 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$u.container, "text-size-base"), children: [
66198
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ResultSidebar, { result: result2 }),
66199
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ResultBody, { result: result2 })
66149
66200
  ] });
66150
66201
  };
66151
- const header$1 = "_header_ph0sv_1";
66152
- const oneCol = "_oneCol_ph0sv_12";
66153
- const twoCol = "_twoCol_ph0sv_16";
66154
- const threeCol = "_threeCol_ph0sv_20";
66155
- const fourCol = "_fourCol_ph0sv_24";
66156
- const fiveCol = "_fiveCol_ph0sv_28";
66157
- const styles$p = {
66202
+ const header$1 = "_header_87o1i_1";
66203
+ const oneCol = "_oneCol_87o1i_12";
66204
+ const twoCol = "_twoCol_87o1i_16";
66205
+ const threeCol = "_threeCol_87o1i_20";
66206
+ const fourCol = "_fourCol_87o1i_24";
66207
+ const fiveCol = "_fiveCol_87o1i_28";
66208
+ const sixCol = "_sixCol_87o1i_32";
66209
+ const styles$q = {
66158
66210
  header: header$1,
66159
66211
  oneCol,
66160
66212
  twoCol,
66161
66213
  threeCol,
66162
66214
  fourCol,
66163
- fiveCol
66215
+ fiveCol,
66216
+ sixCol
66164
66217
  };
66165
- const ScanResultHeader = ({ result: result2 }) => {
66166
- const columns2 = colsForResult(result2) || [];
66167
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$p.header, classForCols(columns2.length)), children: [
66218
+ const ScanResultHeader = ({
66219
+ result: result2,
66220
+ status
66221
+ }) => {
66222
+ const columns2 = colsForResult(result2, status) || [];
66223
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$q.header, classForCols(columns2.length)), children: [
66168
66224
  columns2.map((col) => {
66169
66225
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
66170
66226
  "div",
@@ -66173,7 +66229,7 @@ const ScanResultHeader = ({ result: result2 }) => {
66173
66229
  "text-size-smallest",
66174
66230
  "text-style-label",
66175
66231
  "text-style-secondary",
66176
- styles$p.label,
66232
+ styles$q.label,
66177
66233
  col.className
66178
66234
  ),
66179
66235
  children: col.label
@@ -66185,7 +66241,7 @@ const ScanResultHeader = ({ result: result2 }) => {
66185
66241
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
66186
66242
  "div",
66187
66243
  {
66188
- className: clsx("text-size-small", styles$p.value, col.className),
66244
+ className: clsx("text-size-small", styles$q.value, col.className),
66189
66245
  children: col.value
66190
66246
  },
66191
66247
  `header-val-${col.label}`
@@ -66195,17 +66251,17 @@ const ScanResultHeader = ({ result: result2 }) => {
66195
66251
  };
66196
66252
  const classForCols = (numCols) => {
66197
66253
  return clsx(
66198
- numCols === 1 ? styles$p.oneCol : numCols === 2 ? styles$p.twoCol : numCols === 3 ? styles$p.threeCol : numCols === 4 ? styles$p.fourCol : styles$p.fiveCol
66254
+ numCols === 1 ? styles$q.oneCol : numCols === 2 ? styles$q.twoCol : numCols === 3 ? styles$q.threeCol : numCols === 4 ? styles$q.fourCol : numCols === 5 ? styles$q.fiveCol : styles$q.sixCol
66199
66255
  );
66200
66256
  };
66201
- const colsForResult = (result2) => {
66257
+ const colsForResult = (result2, status) => {
66202
66258
  if (!result2) {
66203
66259
  return [];
66204
66260
  }
66205
66261
  if (result2.inputType === "transcript") {
66206
- return transcriptCols(result2);
66262
+ return transcriptCols(result2, status);
66207
66263
  } else if (result2.inputType === "message") {
66208
- return messageCols(result2);
66264
+ return messageCols(result2, status);
66209
66265
  } else if (result2.inputType === "messages") {
66210
66266
  return messagesCols(result2);
66211
66267
  } else if (result2.inputType === "event") {
@@ -66216,9 +66272,9 @@ const colsForResult = (result2) => {
66216
66272
  return [];
66217
66273
  }
66218
66274
  };
66219
- const transcriptCols = (result2) => {
66275
+ const transcriptCols = (result2, status) => {
66220
66276
  if (result2.inputType === "transcript") {
66221
- return [
66277
+ const cols = [
66222
66278
  {
66223
66279
  label: "Log",
66224
66280
  value: filename(result2.input.metadata.log)
@@ -66236,9 +66292,16 @@ const transcriptCols = (result2) => {
66236
66292
  value: result2.input.metadata.model
66237
66293
  }
66238
66294
  ];
66295
+ if (status?.spec.model.model) {
66296
+ cols.push({
66297
+ label: "Scanning Model",
66298
+ value: status.spec.model.model
66299
+ });
66300
+ }
66301
+ return cols;
66239
66302
  }
66240
66303
  };
66241
- const messageCols = (result2) => {
66304
+ const messageCols = (result2, status) => {
66242
66305
  if (result2.inputType === "message") {
66243
66306
  const cols = [
66244
66307
  {
@@ -66261,6 +66324,12 @@ const messageCols = (result2) => {
66261
66324
  value: result2.input.role
66262
66325
  });
66263
66326
  }
66327
+ if (status?.spec.model.model) {
66328
+ cols.push({
66329
+ label: "Scanning Model",
66330
+ value: status.spec.model.model
66331
+ });
66332
+ }
66264
66333
  return cols;
66265
66334
  }
66266
66335
  };
@@ -66364,7 +66433,7 @@ const resultLog = (scannerCore) => {
66364
66433
  const resultNav = "_resultNav_oszqi_1";
66365
66434
  const nav = "_nav_oszqi_9";
66366
66435
  const disabled$1 = "_disabled_oszqi_9";
66367
- const styles$o = {
66436
+ const styles$p = {
66368
66437
  resultNav,
66369
66438
  nav,
66370
66439
  disabled: disabled$1
@@ -66427,23 +66496,23 @@ const ScanResultNav = () => {
66427
66496
  };
66428
66497
  }, [hasPrevious, hasNext, handlePrevious, handleNext]);
66429
66498
  const result2 = visibleScannerResults && currentIndex !== -1 ? visibleScannerResults[currentIndex] : void 0;
66430
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$o.resultNav), children: [
66499
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$p.resultNav), children: [
66431
66500
  /* @__PURE__ */ jsxRuntimeExports.jsx(
66432
66501
  "div",
66433
66502
  {
66434
66503
  onClick: handlePrevious,
66435
66504
  tabIndex: 0,
66436
- className: clsx(!hasPrevious && styles$o.disabled, styles$o.nav),
66505
+ className: clsx(!hasPrevious && styles$p.disabled, styles$p.nav),
66437
66506
  children: /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx(ApplicationIcons.previous) })
66438
66507
  }
66439
66508
  ),
66440
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$o.sampleInfo, "text-size-smallest"), children: visibleScannerResults && currentIndex !== -1 ? printIdentifier(resultIdentifier(result2), result2?.label) : void 0 }),
66509
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$p.sampleInfo, "text-size-smallest"), children: visibleScannerResults && currentIndex !== -1 ? printIdentifier(resultIdentifier(result2), result2?.label) : void 0 }),
66441
66510
  /* @__PURE__ */ jsxRuntimeExports.jsx(
66442
66511
  "div",
66443
66512
  {
66444
66513
  onClick: handleNext,
66445
66514
  tabIndex: 0,
66446
- className: clsx(!hasNext && styles$o.disabled, styles$o.nav),
66515
+ className: clsx(!hasNext && styles$p.disabled, styles$p.nav),
66447
66516
  children: /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: clsx(ApplicationIcons.next) })
66448
66517
  }
66449
66518
  )
@@ -66461,18 +66530,20 @@ const printIdentifier = (identifier, label2) => {
66461
66530
  }
66462
66531
  return val;
66463
66532
  };
66464
- const root$1 = "_root_12il0_1";
66465
- const tabSet$1 = "_tabSet_12il0_13";
66466
- const tabControl$1 = "_tabControl_12il0_19";
66467
- const tabs$1 = "_tabs_12il0_23";
66468
- const styles$n = {
66533
+ const root$1 = "_root_1ewhq_1";
66534
+ const tabSet$1 = "_tabSet_1ewhq_13";
66535
+ const tabControl$1 = "_tabControl_1ewhq_19";
66536
+ const tabs$1 = "_tabs_1ewhq_23";
66537
+ const fullHeight = "_fullHeight_1ewhq_27";
66538
+ const styles$o = {
66469
66539
  root: root$1,
66470
66540
  tabSet: tabSet$1,
66471
66541
  tabControl: tabControl$1,
66472
- tabs: tabs$1
66542
+ tabs: tabs$1,
66543
+ fullHeight
66473
66544
  };
66474
66545
  const container$6 = "_container_g5onx_1";
66475
- const styles$m = {
66546
+ const styles$n = {
66476
66547
  container: container$6
66477
66548
  };
66478
66549
  const TranscriptPanel = ({
@@ -66481,7 +66552,7 @@ const TranscriptPanel = ({
66481
66552
  nodeFilter
66482
66553
  }) => {
66483
66554
  const scrollRef = useRef(null);
66484
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: scrollRef, className: clsx(styles$m.container), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
66555
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: scrollRef, className: clsx(styles$n.container), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
66485
66556
  TranscriptView,
66486
66557
  {
66487
66558
  id: id2,
@@ -66497,6 +66568,7 @@ const kTabIdInput = "Input";
66497
66568
  const kTabIdInfo$1 = "Info";
66498
66569
  const kTabIdJson$1 = "JSON";
66499
66570
  const kTabIdTranscript = "transcript";
66571
+ const kTabIdMetadata = "Metadata";
66500
66572
  const ScanResultPanel = () => {
66501
66573
  const params = useParams();
66502
66574
  const relativePath = getRelativePathFromParams(params);
@@ -66519,6 +66591,7 @@ const ScanResultPanel = () => {
66519
66591
  );
66520
66592
  const setSelectedResultTab = useStore((state) => state.setSelectedResultTab);
66521
66593
  const { data: selectedResult, isLoading: resultLoading } = useSelectedResultsRow(scanResultUuid);
66594
+ const status = useStore((state) => state.selectedScanStatus);
66522
66595
  useEffect(() => {
66523
66596
  const tabParam = searchParams.get("tab");
66524
66597
  if (tabParam) {
@@ -66573,18 +66646,18 @@ const ScanResultPanel = () => {
66573
66646
  return [];
66574
66647
  }
66575
66648
  }, [highlightLabeled, toggleHighlightLabeled, selectedTab, selectedResult]);
66576
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$n.root), children: [
66649
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$o.root), children: [
66577
66650
  /* @__PURE__ */ jsxRuntimeExports.jsx(Navbar, { children: visibleScannerResults.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(ScanResultNav, {}) }),
66578
66651
  /* @__PURE__ */ jsxRuntimeExports.jsx(ActivityBar, { animating: !!loading || resultLoading }),
66579
- /* @__PURE__ */ jsxRuntimeExports.jsx(ScanResultHeader, { result: selectedResult }),
66652
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ScanResultHeader, { result: selectedResult, status }),
66580
66653
  selectedResult && /* @__PURE__ */ jsxRuntimeExports.jsx(ExtendedFindProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
66581
66654
  TabSet,
66582
66655
  {
66583
66656
  id: "scan-result-tabs",
66584
66657
  type: "pills",
66585
- tabPanelsClassName: clsx(styles$n.tabSet),
66586
- tabControlsClassName: clsx(styles$n.tabControl),
66587
- className: clsx(styles$n.tabs),
66658
+ tabPanelsClassName: clsx(styles$o.tabSet),
66659
+ tabControlsClassName: clsx(styles$o.tabControl),
66660
+ className: clsx(styles$o.tabs),
66588
66661
  tools: tools2,
66589
66662
  children: [
66590
66663
  hasError ? /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -66611,24 +66684,14 @@ const ScanResultPanel = () => {
66611
66684
  id: kTabIdResult,
66612
66685
  selected: selectedTab === kTabIdResult || !hasError && selectedTab === void 0,
66613
66686
  title: "Result",
66687
+ scrollable: false,
66614
66688
  onSelected: () => {
66615
66689
  handleTabChange(kTabIdResult);
66616
66690
  },
66691
+ className: styles$o.fullHeight,
66617
66692
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(ResultPanel, { result: selectedResult })
66618
66693
  }
66619
66694
  ) : void 0,
66620
- /* @__PURE__ */ jsxRuntimeExports.jsx(
66621
- TabPanel,
66622
- {
66623
- id: kTabIdInput,
66624
- selected: selectedTab === kTabIdInput,
66625
- title: "Input",
66626
- onSelected: () => {
66627
- handleTabChange(kTabIdInput);
66628
- },
66629
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(InputPanel, { result: selectedResult })
66630
- }
66631
- ),
66632
66695
  showEvents ? /* @__PURE__ */ jsxRuntimeExports.jsx(
66633
66696
  TabPanel,
66634
66697
  {
@@ -66648,6 +66711,18 @@ const ScanResultPanel = () => {
66648
66711
  )
66649
66712
  }
66650
66713
  ) : void 0,
66714
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
66715
+ TabPanel,
66716
+ {
66717
+ id: kTabIdMetadata,
66718
+ selected: selectedTab === kTabIdMetadata,
66719
+ title: "Metadata",
66720
+ onSelected: () => {
66721
+ handleTabChange(kTabIdMetadata);
66722
+ },
66723
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(MetadataPanel, { result: selectedResult })
66724
+ }
66725
+ ),
66651
66726
  /* @__PURE__ */ jsxRuntimeExports.jsx(
66652
66727
  TabPanel,
66653
66728
  {
@@ -66675,7 +66750,7 @@ const ScanResultPanel = () => {
66675
66750
  id: "scan-result-json-contents",
66676
66751
  data: selectedResult,
66677
66752
  simple: true,
66678
- className: styles$n.json
66753
+ className: styles$o.json
66679
66754
  }
66680
66755
  )
66681
66756
  }
@@ -66715,7 +66790,7 @@ const label$2 = "_label_14uod_25";
66715
66790
  const right = "_right_14uod_30";
66716
66791
  const left = "_left_14uod_39";
66717
66792
  const center = "_center_14uod_48";
66718
- const styles$l = {
66793
+ const styles$m = {
66719
66794
  footer: footer$1,
66720
66795
  spinnerContainer,
66721
66796
  spinner,
@@ -66726,7 +66801,7 @@ const styles$l = {
66726
66801
  };
66727
66802
  const pager = "_pager_jzegk_1";
66728
66803
  const item = "_item_jzegk_11";
66729
- const styles$k = {
66804
+ const styles$l = {
66730
66805
  pager,
66731
66806
  item
66732
66807
  };
@@ -66769,8 +66844,8 @@ const Pager = ({
66769
66844
  return segments2;
66770
66845
  };
66771
66846
  const segments = generatePaginationSegments();
66772
- return /* @__PURE__ */ jsxRuntimeExports.jsx("nav", { "aria-label": "Log Pagination", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("ul", { className: clsx("pagination", styles$k.pager), children: [
66773
- /* @__PURE__ */ jsxRuntimeExports.jsx("li", { className: clsx(currentPage === 0 ? "disabled" : "", styles$k.item), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
66847
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("nav", { "aria-label": "Log Pagination", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("ul", { className: clsx("pagination", styles$l.pager), children: [
66848
+ /* @__PURE__ */ jsxRuntimeExports.jsx("li", { className: clsx(currentPage === 0 ? "disabled" : "", styles$l.item), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
66774
66849
  "a",
66775
66850
  {
66776
66851
  className: clsx("page-link"),
@@ -66788,7 +66863,7 @@ const Pager = ({
66788
66863
  className: clsx(
66789
66864
  segment2.type === "page" && segment2.page === currentPage ? "active" : void 0,
66790
66865
  segment2.type === "ellipsis" ? "disabled" : void 0,
66791
- styles$k.item
66866
+ styles$l.item
66792
66867
  ),
66793
66868
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
66794
66869
  "a",
@@ -66810,7 +66885,7 @@ const Pager = ({
66810
66885
  {
66811
66886
  className: clsx(
66812
66887
  currentPage + 1 >= pageCount ? "disabled" : "",
66813
- styles$k.item
66888
+ styles$l.item
66814
66889
  ),
66815
66890
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
66816
66891
  "a",
@@ -66856,13 +66931,13 @@ const Footer2 = ({
66856
66931
  "div",
66857
66932
  {
66858
66933
  id: id2,
66859
- className: clsx("text-size-smaller", styles$l.footer, className2),
66934
+ className: clsx("text-size-smaller", styles$m.footer, className2),
66860
66935
  children: [
66861
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$l.left), children: progressText ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$l.spinnerContainer), children: [
66936
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$m.left), children: progressText ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$m.spinnerContainer), children: [
66862
66937
  /* @__PURE__ */ jsxRuntimeExports.jsx(
66863
66938
  "div",
66864
66939
  {
66865
- className: clsx("spinner-border", styles$l.spinner),
66940
+ className: clsx("spinner-border", styles$m.spinner),
66866
66941
  role: "status",
66867
66942
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: clsx("visually-hidden"), children: [
66868
66943
  progressText,
@@ -66870,12 +66945,12 @@ const Footer2 = ({
66870
66945
  ] })
66871
66946
  }
66872
66947
  ),
66873
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx("text-style-secondary", styles$l.label), children: [
66948
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx("text-style-secondary", styles$m.label), children: [
66874
66949
  progressText,
66875
66950
  "..."
66876
66951
  ] })
66877
66952
  ] }) : void 0 }),
66878
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$l.center), children: paginated && /* @__PURE__ */ jsxRuntimeExports.jsx(
66953
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$m.center), children: paginated && /* @__PURE__ */ jsxRuntimeExports.jsx(
66879
66954
  Pager,
66880
66955
  {
66881
66956
  itemCount: effectiveItemCount,
@@ -66884,7 +66959,7 @@ const Footer2 = ({
66884
66959
  setPage
66885
66960
  }
66886
66961
  ) }),
66887
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$l.right), children: progressBar ? progressBar : paginated ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: effectiveItemCount === 0 ? "" : filteredCount !== void 0 && filteredCount !== itemCount ? `${startItem} - ${endItem} / ${effectiveItemCount} (${itemCount} total)` : `${startItem} - ${endItem} / ${effectiveItemCount}` }) : effectiveItemCount === 1 ? `${effectiveItemCount} ${labels.singular}` : `${effectiveItemCount} ${labels.plural}` })
66962
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$m.right), children: progressBar ? progressBar : paginated ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: effectiveItemCount === 0 ? "" : filteredCount !== void 0 && filteredCount !== itemCount ? `${startItem} - ${endItem} / ${effectiveItemCount} (${itemCount} total)` : `${startItem} - ${endItem} / ${effectiveItemCount}` }) : effectiveItemCount === 1 ? `${effectiveItemCount} ${labels.singular}` : `${effectiveItemCount} ${labels.plural}` })
66888
66963
  ]
66889
66964
  }
66890
66965
  );
@@ -94031,7 +94106,7 @@ var COLUMN_DEFINITION_MOD_VALIDATIONS = {
94031
94106
  groupHierarchy: "SharedRowGrouping"
94032
94107
  };
94033
94108
  var COLUMN_DEFINITION_VALIDATIONS = () => {
94034
- const validations = {
94109
+ const validations2 = {
94035
94110
  autoHeight: {
94036
94111
  supportedRowModels: ["clientSide", "serverSide"],
94037
94112
  validate: (_colDef, { paginationAutoPageSize }) => {
@@ -94203,7 +94278,7 @@ ${suggestions}`;
94203
94278
  }
94204
94279
  }
94205
94280
  };
94206
- return validations;
94281
+ return validations2;
94207
94282
  };
94208
94283
  var colDefPropertyMap = {
94209
94284
  headerName: void 0,
@@ -95230,15 +95305,15 @@ var GRID_OPTION_VALIDATIONS = () => {
95230
95305
  }
95231
95306
  }
95232
95307
  };
95233
- const validations = {};
95308
+ const validations2 = {};
95234
95309
  for (const key2 of _BOOLEAN_GRID_OPTIONS) {
95235
- validations[key2] = { expectedType: "boolean" };
95310
+ validations2[key2] = { expectedType: "boolean" };
95236
95311
  }
95237
95312
  for (const key2 of _NUMBER_GRID_OPTIONS) {
95238
- validations[key2] = { expectedType: "number" };
95313
+ validations2[key2] = { expectedType: "number" };
95239
95314
  }
95240
- _mergeDeep(validations, definedValidations);
95241
- return validations;
95315
+ _mergeDeep(validations2, definedValidations);
95316
+ return validations2;
95242
95317
  };
95243
95318
  var GRID_OPTIONS_VALIDATORS = () => ({
95244
95319
  objectName: "gridOptions",
@@ -97258,10 +97333,10 @@ function _validateEdit(beans) {
97258
97333
  if (!map2) {
97259
97334
  return null;
97260
97335
  }
97261
- const validations = [];
97336
+ const validations2 = [];
97262
97337
  map2.forEach((rowValidations, rowNode) => {
97263
97338
  rowValidations.forEach(({ errorMessages }, column2) => {
97264
- validations.push({
97339
+ validations2.push({
97265
97340
  column: column2,
97266
97341
  rowIndex: rowNode.rowIndex,
97267
97342
  rowPinned: rowNode.rowPinned,
@@ -97269,7 +97344,7 @@ function _validateEdit(beans) {
97269
97344
  });
97270
97345
  });
97271
97346
  });
97272
- return validations;
97347
+ return validations2;
97273
97348
  }
97274
97349
  function _createCellEvent(beans, domEvent, eventType, { rowNode, column: column2 }, value2) {
97275
97350
  const event = _addGridCommonParams(beans.gos, {
@@ -105098,7 +105173,7 @@ var ValidationService = class extends BeanStub {
105098
105173
  this.processOptions(colDef, COL_DEF_VALIDATORS());
105099
105174
  }
105100
105175
  processOptions(options, validator) {
105101
- const { validations, deprecations, allProperties, propertyExceptions, objectName, docsUrl } = validator;
105176
+ const { validations: validations2, deprecations, allProperties, propertyExceptions, objectName, docsUrl } = validator;
105102
105177
  if (allProperties && this.gridOptions.suppressPropertyNamesCheck !== true) {
105103
105178
  this.checkProperties(
105104
105179
  options,
@@ -105120,7 +105195,7 @@ var ValidationService = class extends BeanStub {
105120
105195
  if (value2 == null || value2 === false) {
105121
105196
  return;
105122
105197
  }
105123
- const rules = validations[key2];
105198
+ const rules = validations2[key2];
105124
105199
  if (!rules) {
105125
105200
  return;
105126
105201
  }
@@ -123712,14 +123787,14 @@ var AgGridReact = class extends Component$1 {
123712
123787
  }
123713
123788
  };
123714
123789
  const gridWrapper$1 = "_gridWrapper_1jp8e_1";
123715
- const row$2 = "_row_1jp8e_11";
123790
+ const row$3 = "_row_1jp8e_11";
123716
123791
  const green = "_green_1jp8e_15";
123717
123792
  const red = "_red_1jp8e_19";
123718
123793
  const yellow = "_yellow_1jp8e_23";
123719
123794
  const blue = "_blue_1jp8e_27";
123720
- const styles$j = {
123795
+ const styles$k = {
123721
123796
  gridWrapper: gridWrapper$1,
123722
- row: row$2,
123797
+ row: row$3,
123723
123798
  green,
123724
123799
  red,
123725
123800
  yellow,
@@ -123863,9 +123938,18 @@ const ScanJobGrid = () => {
123863
123938
  sortable: true,
123864
123939
  filter: true,
123865
123940
  resizable: true,
123866
- valueGetter: (params2) => {
123867
- const timestamp2 = params2.data?.timestamp;
123941
+ valueFormatter: (params2) => {
123942
+ const timestamp2 = params2.value;
123868
123943
  return timestamp2 ? new Date(timestamp2).toLocaleString() : "";
123944
+ },
123945
+ comparator: (valueA, valueB) => {
123946
+ if (!valueA) {
123947
+ return 1;
123948
+ }
123949
+ if (!valueB) {
123950
+ return -1;
123951
+ }
123952
+ return new Date(valueA).getTime() - new Date(valueB).getTime();
123869
123953
  }
123870
123954
  }
123871
123955
  ];
@@ -123885,7 +123969,7 @@ const ScanJobGrid = () => {
123885
123969
  },
123886
123970
  [setVisibleScanJobCount]
123887
123971
  );
123888
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$j.gridWrapper, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
123972
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$k.gridWrapper, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
123889
123973
  AgGridReact,
123890
123974
  {
123891
123975
  ref: gridRef,
@@ -123906,7 +123990,7 @@ const ScanJobGrid = () => {
123906
123990
  onStateUpdated: (e) => {
123907
123991
  setGridState(GRID_STATE_NAME$1, e.state);
123908
123992
  },
123909
- rowClass: styles$j.row,
123993
+ rowClass: styles$k.row,
123910
123994
  onRowClicked: (e) => {
123911
123995
  if (e.data) {
123912
123996
  void navigate(`/scan/${e.data.relativeLocation}`);
@@ -123920,19 +124004,19 @@ const ScanJobGrid = () => {
123920
124004
  const classNameForColor = (color) => {
123921
124005
  switch (color) {
123922
124006
  case "green":
123923
- return styles$j.green;
124007
+ return styles$k.green;
123924
124008
  case "yellow":
123925
- return styles$j.yellow;
124009
+ return styles$k.yellow;
123926
124010
  case "red":
123927
- return styles$j.red;
124011
+ return styles$k.red;
123928
124012
  case "blue":
123929
- return styles$j.blue;
124013
+ return styles$k.blue;
123930
124014
  default:
123931
124015
  return "";
123932
124016
  }
123933
124017
  };
123934
124018
  const container$5 = "_container_18ufx_1";
123935
- const styles$i = {
124019
+ const styles$j = {
123936
124020
  container: container$5
123937
124021
  };
123938
124022
  const ScanJobsPanel = () => {
@@ -123944,7 +124028,7 @@ const ScanJobsPanel = () => {
123944
124028
  useEffect(() => {
123945
124029
  clearScansState();
123946
124030
  }, []);
123947
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$i.container), children: [
124031
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$j.container), children: [
123948
124032
  /* @__PURE__ */ jsxRuntimeExports.jsx(Navbar, { bordered: false }),
123949
124033
  /* @__PURE__ */ jsxRuntimeExports.jsx(ActivityBar, { animating: !!loading }),
123950
124034
  /* @__PURE__ */ jsxRuntimeExports.jsxs(ExtendedFindProvider, { children: [
@@ -123962,16 +124046,249 @@ const ScanJobsPanel = () => {
123962
124046
  ] });
123963
124047
  };
123964
124048
  const root = "_root_ke0e7_1";
123965
- const styles$h = {
124049
+ const styles$i = {
123966
124050
  root
123967
124051
  };
124052
+ const gridWrapper = "_gridWrapper_bykj9_1";
124053
+ const styles$h = {
124054
+ gridWrapper
124055
+ };
124056
+ ModuleRegistry.registerModules([AllCommunityModule]);
124057
+ const GRID_STATE_NAME = "DataframeView";
124058
+ const DataframeView = ({
124059
+ columnTable,
124060
+ sortedColumns,
124061
+ onRowDoubleClicked,
124062
+ onVisibleRowCountChanged,
124063
+ options,
124064
+ enableKeyboardNavigation = true,
124065
+ showRowNumbers = false,
124066
+ wrapText = false
124067
+ }) => {
124068
+ const selectedDataframeRow = useStore((state) => state.selectedResultRow) || 0;
124069
+ const setSelectedDataframeRow = useStore(
124070
+ (state) => state.setSelectedResultRow
124071
+ );
124072
+ const setGridState = useStore((state) => state.setGridState);
124073
+ const gridState = useStore((state) => state.gridStates[GRID_STATE_NAME]);
124074
+ const { columnDefs, rowData } = useMemo(() => {
124075
+ const columnNames = sortedColumns || columnTable?.columnNames() || [];
124076
+ const dataColumnDefs = columnTable ? columnNames.map((name2) => {
124077
+ const col = columnTable.column(name2);
124078
+ if (!col) {
124079
+ return void 0;
124080
+ }
124081
+ const sampleValue = col?.at(0);
124082
+ const valueFormatter = options ? (params) => {
124083
+ if (params.value === null || params.value === void 0) {
124084
+ return String(params.value);
124085
+ }
124086
+ if (typeof params.value === "string") {
124087
+ return centerTruncate(params.value, options.maxStrLen);
124088
+ }
124089
+ return String(params.value);
124090
+ } : void 0;
124091
+ return {
124092
+ field: name2,
124093
+ headerName: name2,
124094
+ sortable: true,
124095
+ filter: true,
124096
+ resizable: true,
124097
+ tooltipField: name2,
124098
+ maxWidth: 800,
124099
+ cellDataType: typeof sampleValue === "boolean" ? false : void 0,
124100
+ hide: !columnNames?.includes(name2) || false,
124101
+ valueFormatter,
124102
+ wrapText,
124103
+ autoHeight: wrapText
124104
+ };
124105
+ }).filter((c2) => c2 !== void 0) : [];
124106
+ const columnDefs2 = showRowNumbers ? [
124107
+ {
124108
+ headerName: "",
124109
+ valueGetter: (params) => {
124110
+ return params.node?.rowIndex !== void 0 && params.node?.rowIndex !== null ? params.node.rowIndex + 1 : "";
124111
+ },
124112
+ sortable: false,
124113
+ filter: false,
124114
+ resizable: false,
124115
+ width: 60,
124116
+ maxWidth: 60,
124117
+ minWidth: 60,
124118
+ pinned: "left",
124119
+ suppressMovable: true,
124120
+ cellClass: "row-number-cell",
124121
+ cellStyle: {
124122
+ textAlign: "right",
124123
+ paddingRight: "12px"
124124
+ },
124125
+ onCellClicked: (params) => {
124126
+ if (params.data && onRowDoubleClicked) {
124127
+ if (params.rowIndex !== null && params.rowIndex !== void 0) {
124128
+ setSelectedDataframeRow(params.rowIndex);
124129
+ }
124130
+ onRowDoubleClicked(params.data);
124131
+ }
124132
+ }
124133
+ },
124134
+ ...dataColumnDefs
124135
+ ] : dataColumnDefs;
124136
+ const rowData2 = columnTable?.objects();
124137
+ return { columnDefs: columnDefs2, rowData: rowData2 };
124138
+ }, [
124139
+ columnTable,
124140
+ sortedColumns,
124141
+ options,
124142
+ showRowNumbers,
124143
+ wrapText,
124144
+ onRowDoubleClicked,
124145
+ setSelectedDataframeRow
124146
+ ]);
124147
+ const gridRef = useRef(null);
124148
+ useEffect(() => {
124149
+ if (gridRef.current?.api && gridState && !gridState.filter) {
124150
+ const currentFilterModel = gridRef.current.api.getFilterModel();
124151
+ if (currentFilterModel && Object.keys(currentFilterModel).length > 0) {
124152
+ gridRef.current.api.setFilterModel(null);
124153
+ }
124154
+ }
124155
+ }, [gridState]);
124156
+ useEffect(() => {
124157
+ if (gridRef.current?.api && selectedDataframeRow >= 0) {
124158
+ gridRef.current.api.forEachNode((node2) => {
124159
+ node2.setSelected(node2.rowIndex === selectedDataframeRow);
124160
+ });
124161
+ gridRef.current.api.ensureIndexVisible(selectedDataframeRow);
124162
+ }
124163
+ }, [selectedDataframeRow]);
124164
+ const handleNext = useCallback(() => {
124165
+ const totalRows = rowData?.length ?? 0;
124166
+ if (selectedDataframeRow < totalRows - 1) {
124167
+ setSelectedDataframeRow(selectedDataframeRow + 1);
124168
+ }
124169
+ }, [selectedDataframeRow, rowData]);
124170
+ const handlePrevious = useCallback(() => {
124171
+ if (selectedDataframeRow > 0) {
124172
+ setSelectedDataframeRow(selectedDataframeRow - 1);
124173
+ }
124174
+ }, [selectedDataframeRow]);
124175
+ const handleEnter = useCallback(() => {
124176
+ if (gridRef.current?.api && selectedDataframeRow >= 0 && onRowDoubleClicked) {
124177
+ const selectedNode = gridRef.current.api.getDisplayedRowAtIndex(selectedDataframeRow);
124178
+ if (selectedNode?.data) {
124179
+ onRowDoubleClicked(selectedNode.data);
124180
+ }
124181
+ }
124182
+ }, [selectedDataframeRow, onRowDoubleClicked]);
124183
+ useEffect(() => {
124184
+ if (!enableKeyboardNavigation) {
124185
+ return;
124186
+ }
124187
+ const handleGlobalKeyDown = (e) => {
124188
+ const activeElement = document.activeElement;
124189
+ const isInputFocused = activeElement && (activeElement.tagName === "INPUT" || activeElement.tagName === "TEXTAREA" || activeElement.tagName === "SELECT");
124190
+ if (!isInputFocused) {
124191
+ const totalRows = rowData?.length ?? 0;
124192
+ if (e.key === "ArrowUp") {
124193
+ if (e.metaKey || e.ctrlKey) {
124194
+ if (totalRows > 0) {
124195
+ e.preventDefault();
124196
+ setSelectedDataframeRow(0);
124197
+ }
124198
+ } else if (selectedDataframeRow > 0) {
124199
+ e.preventDefault();
124200
+ handlePrevious();
124201
+ }
124202
+ } else if (e.key === "ArrowDown") {
124203
+ if (e.metaKey || e.ctrlKey) {
124204
+ if (totalRows > 0) {
124205
+ e.preventDefault();
124206
+ setSelectedDataframeRow(totalRows - 1);
124207
+ }
124208
+ } else if (selectedDataframeRow < totalRows - 1) {
124209
+ e.preventDefault();
124210
+ handleNext();
124211
+ }
124212
+ } else if (e.key === "Enter") {
124213
+ if (selectedDataframeRow >= 0) {
124214
+ e.preventDefault();
124215
+ handleEnter();
124216
+ }
124217
+ }
124218
+ }
124219
+ };
124220
+ document.addEventListener("keydown", handleGlobalKeyDown, true);
124221
+ return () => {
124222
+ document.removeEventListener("keydown", handleGlobalKeyDown, true);
124223
+ };
124224
+ }, [
124225
+ enableKeyboardNavigation,
124226
+ selectedDataframeRow,
124227
+ rowData,
124228
+ handleNext,
124229
+ handlePrevious,
124230
+ handleEnter
124231
+ ]);
124232
+ const updateVisibleRowCount = useCallback(
124233
+ (api) => {
124234
+ const displayedRowCount = api.getDisplayedRowCount();
124235
+ onVisibleRowCountChanged?.(displayedRowCount);
124236
+ },
124237
+ [onVisibleRowCountChanged]
124238
+ );
124239
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$h.gridWrapper, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
124240
+ AgGridReact,
124241
+ {
124242
+ ref: gridRef,
124243
+ rowData,
124244
+ columnDefs,
124245
+ defaultColDef: {
124246
+ sortable: true,
124247
+ filter: true,
124248
+ resizable: true
124249
+ },
124250
+ rowSelection: {
124251
+ mode: "singleRow",
124252
+ enableClickSelection: true,
124253
+ checkboxes: false
124254
+ },
124255
+ animateRows: false,
124256
+ suppressColumnMoveAnimation: true,
124257
+ suppressCellFocus: true,
124258
+ theme: themeBalham,
124259
+ enableCellTextSelection: true,
124260
+ initialState: gridState,
124261
+ onFirstDataRendered: (e) => {
124262
+ e.api.sizeColumnsToFit();
124263
+ updateVisibleRowCount(e.api);
124264
+ },
124265
+ onStateUpdated: (e) => {
124266
+ setGridState(GRID_STATE_NAME, e.state);
124267
+ },
124268
+ onFilterChanged: (e) => {
124269
+ updateVisibleRowCount(e.api);
124270
+ },
124271
+ autoSizeStrategy: {
124272
+ type: "fitCellContents"
124273
+ },
124274
+ onRowDoubleClicked: (e) => {
124275
+ if (e.data) {
124276
+ if (e.rowIndex !== null) {
124277
+ setSelectedDataframeRow(e.rowIndex);
124278
+ }
124279
+ onRowDoubleClicked?.(e.data);
124280
+ }
124281
+ }
124282
+ }
124283
+ ) });
124284
+ };
123968
124285
  const rootControl = "_rootControl_19z32_1";
123969
124286
  const segment = "_segment_19z32_10";
123970
- const selected$2 = "_selected_19z32_10";
124287
+ const selected$3 = "_selected_19z32_10";
123971
124288
  const styles$g = {
123972
124289
  rootControl,
123973
124290
  segment,
123974
- selected: selected$2
124291
+ selected: selected$3
123975
124292
  };
123976
124293
  const SegmentedControl = ({
123977
124294
  id: id2,
@@ -124035,13 +124352,6 @@ const ScanInfo = () => {
124035
124352
  className: clsx(styles$f.container),
124036
124353
  selectedStatus
124037
124354
  }
124038
- ),
124039
- /* @__PURE__ */ jsxRuntimeExports.jsx(
124040
- TranscriptsInfoCard,
124041
- {
124042
- className: clsx(styles$f.container),
124043
- selectedStatus
124044
- }
124045
124355
  )
124046
124356
  ] });
124047
124357
  };
@@ -124093,34 +124403,6 @@ const ScanMetadataCard = ({
124093
124403
  }
124094
124404
  return /* @__PURE__ */ jsxRuntimeExports.jsx(InfoCard, { title: "Metadata", className: className2, children: /* @__PURE__ */ jsxRuntimeExports.jsx(RecordTree, { id: "scan-metadata", record: selectedStatus.spec.metadata }) });
124095
124405
  };
124096
- const TranscriptsInfoCard = ({
124097
- selectedStatus,
124098
- className: className2
124099
- }) => {
124100
- const fieldsDict = selectedStatus.spec.transcripts?.fields.reduce(
124101
- (acc, curr) => {
124102
- const name2 = curr["name"];
124103
- const type = curr["type"];
124104
- if (name2 && type) {
124105
- acc[name2] = type;
124106
- }
124107
- return acc;
124108
- },
124109
- {}
124110
- );
124111
- return /* @__PURE__ */ jsxRuntimeExports.jsx(InfoCard, { title: "Transcripts", className: className2, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
124112
- MetaDataGrid,
124113
- {
124114
- className: "text-size-small",
124115
- entries: {
124116
- Type: selectedStatus.spec.transcripts?.type,
124117
- Count: selectedStatus.spec.transcripts?.count,
124118
- Fields: fieldsDict
124119
- }
124120
- },
124121
- `plan-md-task`
124122
- ) });
124123
- };
124124
124406
  const ScannerInfoCard = ({
124125
124407
  selectedStatus,
124126
124408
  className: className2
@@ -124142,6 +124424,284 @@ const InfoCard = ({ title: title2, className: className2, children: children2 })
124142
124424
  /* @__PURE__ */ jsxRuntimeExports.jsx(CardBody, { children: children2 })
124143
124425
  ] });
124144
124426
  };
124427
+ const ScanDataframeClearFiltersButton = () => {
124428
+ const setGridState = useStore((state) => state.setGridState);
124429
+ const gridState = useStore((state) => state.gridStates[GRID_STATE_NAME]);
124430
+ const clearState = useCallback(() => {
124431
+ const { filter: filter2, ...state } = gridState || {};
124432
+ setGridState(GRID_STATE_NAME, state);
124433
+ }, [gridState, setGridState]);
124434
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
124435
+ ToolButton,
124436
+ {
124437
+ icon: ApplicationIcons.filter,
124438
+ label: "Clear Filters",
124439
+ onClick: clearState
124440
+ }
124441
+ );
124442
+ };
124443
+ const grid = "_grid_hbkjn_1";
124444
+ const row$2 = "_row_hbkjn_8";
124445
+ const links = "_links_hbkjn_22";
124446
+ const selected$2 = "_selected_hbkjn_40";
124447
+ const styles$e = {
124448
+ grid,
124449
+ row: row$2,
124450
+ links,
124451
+ selected: selected$2
124452
+ };
124453
+ const defaultColumns = [
124454
+ "transcript_id",
124455
+ "value",
124456
+ "explanation",
124457
+ "metadata",
124458
+ "transcript_source_id",
124459
+ "transcript_metadata",
124460
+ "input_ids",
124461
+ "input",
124462
+ "label",
124463
+ "uuid",
124464
+ "message_references",
124465
+ "validation_target",
124466
+ "validation_result",
124467
+ "scan_total_tokens",
124468
+ "scan_model_usage",
124469
+ "scan_events",
124470
+ "timestamp"
124471
+ ];
124472
+ const columnsGroups = {
124473
+ Transcript: [
124474
+ "transcript_id",
124475
+ "transcript_source_type",
124476
+ "transcript_source_id",
124477
+ "transcript_source_uri",
124478
+ "transcript_metadata"
124479
+ ],
124480
+ Scan: [
124481
+ "scan_id",
124482
+ "scan_tags",
124483
+ "scan_metadata",
124484
+ "scan_git_origin",
124485
+ "scan_git_version",
124486
+ "scan_git_commit"
124487
+ ],
124488
+ Scanner: [
124489
+ "scanner_key",
124490
+ "scanner_name",
124491
+ "scanner_version",
124492
+ "scanner_package_version",
124493
+ "scanner_file",
124494
+ "scanner_params"
124495
+ ],
124496
+ Input: ["input_type", "input_ids", "input"],
124497
+ Validation: ["validation_target", "validation_result"],
124498
+ Result: [
124499
+ "uuid",
124500
+ "value",
124501
+ "explanation",
124502
+ "metadata",
124503
+ "label",
124504
+ "value_type",
124505
+ "answer",
124506
+ "scan_tokens_total",
124507
+ "scan_model_usage",
124508
+ "scan_events",
124509
+ "timestamp",
124510
+ "message_references",
124511
+ "event_references"
124512
+ ],
124513
+ Error: ["scan_error", "scan_error_traceback", "scan_error_type"]
124514
+ };
124515
+ const useDataframeColumns = () => {
124516
+ const allColumns = Object.values(columnsGroups).flat();
124517
+ const filteredColumns = useStore((state) => state.dataframeFilterColumns) || defaultColumns;
124518
+ const setFilteredColumns = useStore(
124519
+ (state) => state.setDataframeFilterColumns
124520
+ );
124521
+ const isDefaultFilter = filteredColumns?.length === defaultColumns.length && filteredColumns.every((col) => defaultColumns.includes(col));
124522
+ const isAllFilter = filteredColumns?.length === allColumns.length;
124523
+ const setDefaultFilter = () => {
124524
+ setFilteredColumns(defaultColumns);
124525
+ };
124526
+ const setAllFilter = () => {
124527
+ setFilteredColumns(allColumns);
124528
+ };
124529
+ const filterColumn = useCallback(
124530
+ (column2, show) => {
124531
+ if (show && !filteredColumns?.includes(column2)) {
124532
+ setFilteredColumns([...filteredColumns || [], column2]);
124533
+ } else if (!show) {
124534
+ setFilteredColumns(filteredColumns?.filter((c2) => c2 !== column2) || []);
124535
+ }
124536
+ },
124537
+ [filteredColumns, setFilteredColumns]
124538
+ );
124539
+ const arrangedColumns = (cols) => {
124540
+ const groupOrder = [
124541
+ "Result",
124542
+ "Input",
124543
+ "---",
124544
+ "Transcript",
124545
+ "Validation",
124546
+ "Error",
124547
+ "---",
124548
+ "Scan",
124549
+ "Scanner"
124550
+ ];
124551
+ const groupedColumns = {};
124552
+ Object.entries(columnsGroups).forEach(([groupName, columns2]) => {
124553
+ const columnsInGroup = columns2.filter((col) => {
124554
+ if (col.endsWith("*")) {
124555
+ const prefix = col.slice(0, -1);
124556
+ return allColumns.some((c2) => c2.startsWith(prefix));
124557
+ }
124558
+ return allColumns.includes(col);
124559
+ });
124560
+ if (columnsInGroup.length > 0) {
124561
+ groupedColumns[groupName] = columnsInGroup;
124562
+ }
124563
+ });
124564
+ const result2 = [];
124565
+ let currentColumn = {};
124566
+ groupOrder.forEach((item2) => {
124567
+ if (item2 === "---") {
124568
+ if (Object.keys(currentColumn).length > 0) {
124569
+ result2.push(currentColumn);
124570
+ currentColumn = {};
124571
+ }
124572
+ } else if (groupedColumns[item2]) {
124573
+ currentColumn[item2] = groupedColumns[item2];
124574
+ }
124575
+ });
124576
+ if (Object.keys(currentColumn).length > 0) {
124577
+ result2.push(currentColumn);
124578
+ }
124579
+ while (result2.length < cols) {
124580
+ result2.push({});
124581
+ }
124582
+ return result2;
124583
+ };
124584
+ return {
124585
+ defaultFilter: defaultColumns,
124586
+ isDefaultFilter,
124587
+ isAllFilter,
124588
+ setDefaultFilter,
124589
+ setAllFilter,
124590
+ filterColumn,
124591
+ filtered: filteredColumns || [],
124592
+ arrangedColumns
124593
+ };
124594
+ };
124595
+ const ScanDataframeColumnsPopover = ({ positionEl }) => {
124596
+ const showFilter = useStore((state) => state.dataframeShowFilterColumns);
124597
+ const setShowFilter = useStore(
124598
+ (state) => state.setDataframeShowFilterColumns
124599
+ );
124600
+ const {
124601
+ isDefaultFilter,
124602
+ isAllFilter,
124603
+ setDefaultFilter,
124604
+ setAllFilter,
124605
+ filterColumn,
124606
+ filtered,
124607
+ arrangedColumns
124608
+ } = useDataframeColumns();
124609
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
124610
+ PopOver,
124611
+ {
124612
+ id: `scandata-choose-columns-popover`,
124613
+ positionEl,
124614
+ isOpen: !!showFilter,
124615
+ setIsOpen: setShowFilter,
124616
+ placement: "bottom-end",
124617
+ hoverDelay: -1,
124618
+ children: [
124619
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$e.links, "text-size-smaller"), children: [
124620
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
124621
+ "a",
124622
+ {
124623
+ className: clsx(
124624
+ styles$e.link,
124625
+ isDefaultFilter ? styles$e.selected : void 0
124626
+ ),
124627
+ onClick: () => setDefaultFilter(),
124628
+ children: "Default"
124629
+ }
124630
+ ),
124631
+ "|",
124632
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
124633
+ "a",
124634
+ {
124635
+ className: clsx(
124636
+ styles$e.link,
124637
+ isAllFilter ? styles$e.selected : void 0
124638
+ ),
124639
+ onClick: () => setAllFilter(),
124640
+ children: "All"
124641
+ }
124642
+ )
124643
+ ] }),
124644
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$e.grid, "text-size-smaller"), children: arrangedColumns(3).map((columnGroup, colIndex) => {
124645
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: Object.entries(columnGroup).map(([groupName, columns2]) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
124646
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
124647
+ "div",
124648
+ {
124649
+ style: {
124650
+ fontWeight: 600,
124651
+ marginTop: "0.5em",
124652
+ marginBottom: "0.25em"
124653
+ },
124654
+ children: groupName
124655
+ }
124656
+ ),
124657
+ columns2.map((column2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
124658
+ "div",
124659
+ {
124660
+ className: clsx(styles$e.row),
124661
+ onClick: () => {
124662
+ filterColumn(column2, !filtered.includes(column2));
124663
+ },
124664
+ children: [
124665
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
124666
+ "input",
124667
+ {
124668
+ type: "checkbox",
124669
+ checked: filtered.includes(column2),
124670
+ onChange: (e) => {
124671
+ filterColumn(column2, e.target.checked);
124672
+ }
124673
+ }
124674
+ ),
124675
+ column2
124676
+ ]
124677
+ },
124678
+ column2
124679
+ ))
124680
+ ] }, groupName)) }, colIndex);
124681
+ }) })
124682
+ ]
124683
+ }
124684
+ );
124685
+ };
124686
+ const ScanDataframeFilterColumnsButton = forwardRef((_, ref2) => {
124687
+ const showFilter = useStore((state) => state.dataframeShowFilterColumns);
124688
+ const setShowFilter = useStore(
124689
+ (state) => state.setDataframeShowFilterColumns
124690
+ );
124691
+ const toggleShowFilter = useCallback(() => {
124692
+ setShowFilter(!showFilter);
124693
+ }, [showFilter, setShowFilter]);
124694
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
124695
+ ToolButton,
124696
+ {
124697
+ icon: ApplicationIcons.checkbox.checked,
124698
+ label: "Choose Columns",
124699
+ onClick: toggleShowFilter,
124700
+ latched: showFilter,
124701
+ ref: ref2
124702
+ }
124703
+ );
124704
+ });
124145
124705
  const ScanDataframeWrapTextButton = () => {
124146
124706
  const wrapText = useStore((state) => state.dataframeWrapText);
124147
124707
  const setWrapText = useStore((state) => state.setDataframeWrapText);
@@ -124160,7 +124720,7 @@ const ScanDataframeWrapTextButton = () => {
124160
124720
  };
124161
124721
  const flex$1 = "_flex_1kye9_1";
124162
124722
  const label$1 = "_label_1kye9_5";
124163
- const styles$e = {
124723
+ const styles$d = {
124164
124724
  flex: flex$1,
124165
124725
  label: label$1
124166
124726
  };
@@ -124180,7 +124740,7 @@ const ScanResultsFilter = () => {
124180
124740
  { label: "Positive", val: kFilterPositiveResults },
124181
124741
  { label: "All", val: kFilterAllResults }
124182
124742
  ];
124183
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$e.flex, children: [
124743
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$d.flex, children: [
124184
124744
  /* @__PURE__ */ jsxRuntimeExports.jsx(
124185
124745
  "span",
124186
124746
  {
@@ -124189,7 +124749,7 @@ const ScanResultsFilter = () => {
124189
124749
  "text-size-smaller",
124190
124750
  "text-style-label",
124191
124751
  "text-style-secondary",
124192
- styles$e.label
124752
+ styles$d.label
124193
124753
  ),
124194
124754
  children: "Results:"
124195
124755
  }
@@ -124211,7 +124771,7 @@ const ScanResultsFilter = () => {
124211
124771
  };
124212
124772
  const flex = "_flex_1kye9_1";
124213
124773
  const label = "_label_1kye9_5";
124214
- const styles$d = {
124774
+ const styles$c = {
124215
124775
  flex,
124216
124776
  label
124217
124777
  };
@@ -124237,7 +124797,7 @@ const ScanResultsGroup = ({
124237
124797
  return null;
124238
124798
  }
124239
124799
  groupByOpts.unshift({ label: "None", value: "none" });
124240
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$d.flex, children: [
124800
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$c.flex, children: [
124241
124801
  /* @__PURE__ */ jsxRuntimeExports.jsx(
124242
124802
  "span",
124243
124803
  {
@@ -124246,7 +124806,7 @@ const ScanResultsGroup = ({
124246
124806
  "text-size-smaller",
124247
124807
  "text-style-label",
124248
124808
  "text-style-secondary",
124249
- styles$d.label
124809
+ styles$c.label
124250
124810
  ),
124251
124811
  children: "Group:"
124252
124812
  }
@@ -124279,231 +124839,6 @@ const toVal = (v) => {
124279
124839
  return "none";
124280
124840
  }
124281
124841
  };
124282
- const gridWrapper = "_gridWrapper_bykj9_1";
124283
- const styles$c = {
124284
- gridWrapper
124285
- };
124286
- ModuleRegistry.registerModules([AllCommunityModule]);
124287
- const GRID_STATE_NAME = "DataframeView";
124288
- const DataframeView = ({
124289
- columnTable,
124290
- sortedColumns,
124291
- onRowDoubleClicked,
124292
- onVisibleRowCountChanged,
124293
- options,
124294
- enableKeyboardNavigation = true,
124295
- showRowNumbers = false,
124296
- wrapText = false
124297
- }) => {
124298
- const selectedDataframeRow = useStore((state) => state.selectedResultRow) || 0;
124299
- const setSelectedDataframeRow = useStore(
124300
- (state) => state.setSelectedResultRow
124301
- );
124302
- const gridStates = useStore((state) => state.gridStates);
124303
- const setGridState = useStore((state) => state.setGridState);
124304
- const gridState = useMemo(() => {
124305
- const savedState = gridStates[GRID_STATE_NAME];
124306
- return savedState;
124307
- }, [gridStates]);
124308
- const { columnDefs, rowData } = useMemo(() => {
124309
- const columnNames = sortedColumns || columnTable?.columnNames() || [];
124310
- const dataColumnDefs = columnTable ? columnNames.map((name2) => {
124311
- const col = columnTable.column(name2);
124312
- if (!col) {
124313
- return void 0;
124314
- }
124315
- const sampleValue = col?.at(0);
124316
- const valueFormatter = options ? (params) => {
124317
- if (params.value === null || params.value === void 0) {
124318
- return String(params.value);
124319
- }
124320
- if (typeof params.value === "string") {
124321
- return centerTruncate(params.value, options.maxStrLen);
124322
- }
124323
- return String(params.value);
124324
- } : void 0;
124325
- return {
124326
- field: name2,
124327
- headerName: name2,
124328
- sortable: true,
124329
- filter: true,
124330
- resizable: true,
124331
- tooltipField: name2,
124332
- maxWidth: 800,
124333
- cellDataType: typeof sampleValue === "boolean" ? false : void 0,
124334
- hide: !columnNames?.includes(name2) || false,
124335
- valueFormatter,
124336
- wrapText,
124337
- autoHeight: wrapText
124338
- };
124339
- }).filter((c2) => c2 !== void 0) : [];
124340
- const columnDefs2 = showRowNumbers ? [
124341
- {
124342
- headerName: "",
124343
- valueGetter: (params) => {
124344
- return params.node?.rowIndex !== void 0 && params.node?.rowIndex !== null ? params.node.rowIndex + 1 : "";
124345
- },
124346
- sortable: false,
124347
- filter: false,
124348
- resizable: false,
124349
- width: 60,
124350
- maxWidth: 60,
124351
- minWidth: 60,
124352
- pinned: "left",
124353
- suppressMovable: true,
124354
- cellClass: "row-number-cell",
124355
- cellStyle: {
124356
- textAlign: "right",
124357
- paddingRight: "12px"
124358
- },
124359
- onCellClicked: (params) => {
124360
- if (params.data && onRowDoubleClicked) {
124361
- if (params.rowIndex !== null && params.rowIndex !== void 0) {
124362
- setSelectedDataframeRow(params.rowIndex);
124363
- }
124364
- onRowDoubleClicked(params.data);
124365
- }
124366
- }
124367
- },
124368
- ...dataColumnDefs
124369
- ] : dataColumnDefs;
124370
- const rowData2 = columnTable?.objects();
124371
- return { columnDefs: columnDefs2, rowData: rowData2 };
124372
- }, [
124373
- columnTable,
124374
- sortedColumns,
124375
- options,
124376
- showRowNumbers,
124377
- wrapText,
124378
- onRowDoubleClicked,
124379
- setSelectedDataframeRow
124380
- ]);
124381
- const gridRef = useRef(null);
124382
- useEffect(() => {
124383
- if (gridRef.current?.api && selectedDataframeRow >= 0) {
124384
- gridRef.current.api.forEachNode((node2) => {
124385
- node2.setSelected(node2.rowIndex === selectedDataframeRow);
124386
- });
124387
- gridRef.current.api.ensureIndexVisible(selectedDataframeRow);
124388
- }
124389
- }, [selectedDataframeRow]);
124390
- const handleNext = useCallback(() => {
124391
- const totalRows = rowData?.length ?? 0;
124392
- if (selectedDataframeRow < totalRows - 1) {
124393
- setSelectedDataframeRow(selectedDataframeRow + 1);
124394
- }
124395
- }, [selectedDataframeRow, rowData]);
124396
- const handlePrevious = useCallback(() => {
124397
- if (selectedDataframeRow > 0) {
124398
- setSelectedDataframeRow(selectedDataframeRow - 1);
124399
- }
124400
- }, [selectedDataframeRow]);
124401
- const handleEnter = useCallback(() => {
124402
- if (gridRef.current?.api && selectedDataframeRow >= 0 && onRowDoubleClicked) {
124403
- const selectedNode = gridRef.current.api.getDisplayedRowAtIndex(selectedDataframeRow);
124404
- if (selectedNode?.data) {
124405
- onRowDoubleClicked(selectedNode.data);
124406
- }
124407
- }
124408
- }, [selectedDataframeRow, onRowDoubleClicked]);
124409
- useEffect(() => {
124410
- if (!enableKeyboardNavigation) {
124411
- return;
124412
- }
124413
- const handleGlobalKeyDown = (e) => {
124414
- const activeElement = document.activeElement;
124415
- const isInputFocused = activeElement && (activeElement.tagName === "INPUT" || activeElement.tagName === "TEXTAREA" || activeElement.tagName === "SELECT");
124416
- if (!isInputFocused) {
124417
- const totalRows = rowData?.length ?? 0;
124418
- if (e.key === "ArrowUp") {
124419
- if (e.metaKey || e.ctrlKey) {
124420
- if (totalRows > 0) {
124421
- e.preventDefault();
124422
- setSelectedDataframeRow(0);
124423
- }
124424
- } else if (selectedDataframeRow > 0) {
124425
- e.preventDefault();
124426
- handlePrevious();
124427
- }
124428
- } else if (e.key === "ArrowDown") {
124429
- if (e.metaKey || e.ctrlKey) {
124430
- if (totalRows > 0) {
124431
- e.preventDefault();
124432
- setSelectedDataframeRow(totalRows - 1);
124433
- }
124434
- } else if (selectedDataframeRow < totalRows - 1) {
124435
- e.preventDefault();
124436
- handleNext();
124437
- }
124438
- } else if (e.key === "Enter") {
124439
- if (selectedDataframeRow >= 0) {
124440
- e.preventDefault();
124441
- handleEnter();
124442
- }
124443
- }
124444
- }
124445
- };
124446
- document.addEventListener("keydown", handleGlobalKeyDown, true);
124447
- return () => {
124448
- document.removeEventListener("keydown", handleGlobalKeyDown, true);
124449
- };
124450
- }, [
124451
- enableKeyboardNavigation,
124452
- selectedDataframeRow,
124453
- rowData,
124454
- handleNext,
124455
- handlePrevious,
124456
- handleEnter
124457
- ]);
124458
- const updateVisibleRowCount = useCallback(
124459
- (api) => {
124460
- const displayedRowCount = api.getDisplayedRowCount();
124461
- onVisibleRowCountChanged?.(displayedRowCount);
124462
- },
124463
- [onVisibleRowCountChanged]
124464
- );
124465
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$c.gridWrapper, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
124466
- AgGridReact,
124467
- {
124468
- ref: gridRef,
124469
- rowData,
124470
- columnDefs,
124471
- defaultColDef: {
124472
- sortable: true,
124473
- filter: true,
124474
- resizable: true
124475
- },
124476
- rowSelection: "single",
124477
- animateRows: false,
124478
- suppressColumnMoveAnimation: true,
124479
- suppressCellFocus: true,
124480
- theme: themeBalham,
124481
- enableCellTextSelection: true,
124482
- initialState: gridState,
124483
- onFirstDataRendered: (e) => {
124484
- e.api.sizeColumnsToFit();
124485
- updateVisibleRowCount(e.api);
124486
- },
124487
- onStateUpdated: (e) => {
124488
- setGridState(GRID_STATE_NAME, e.state);
124489
- },
124490
- onFilterChanged: (e) => {
124491
- updateVisibleRowCount(e.api);
124492
- },
124493
- autoSizeStrategy: {
124494
- type: "fitCellContents"
124495
- },
124496
- onRowDoubleClicked: (e) => {
124497
- if (e.data) {
124498
- if (e.rowIndex !== null) {
124499
- setSelectedDataframeRow(e.rowIndex);
124500
- }
124501
- onRowDoubleClicked?.(e.data);
124502
- }
124503
- }
124504
- }
124505
- ) });
124506
- };
124507
124842
  const header = "_header_u9u40_1";
124508
124843
  const clickable = "_clickable_u9u40_19";
124509
124844
  const styles$b = {
@@ -124678,6 +125013,7 @@ const ScanResultsRowComponent = ({
124678
125013
  const hasLabel = gridDescriptor.columns.includes("label");
124679
125014
  const hasErrors = gridDescriptor.columns.includes("error");
124680
125015
  const hasValidations = gridDescriptor.columns.includes("validations");
125016
+ const refs = useMarkdownRefs(entry2);
124681
125017
  const grid2 = /* @__PURE__ */ jsxRuntimeExports.jsxs(
124682
125018
  "div",
124683
125019
  {
@@ -124695,7 +125031,7 @@ const ScanResultsRowComponent = ({
124695
125031
  },
124696
125032
  children: [
124697
125033
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$6.id, "text-size-smaller"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Identifier, { result: entry2 }) }),
124698
- hasExplanation && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$6.explanation, "text-size-smaller"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Explanation, { result: entry2 }) }),
125034
+ hasExplanation && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$6.explanation, "text-size-smaller"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Explanation, { result: entry2, references: refs }) }),
124699
125035
  hasLabel && /* @__PURE__ */ jsxRuntimeExports.jsx(
124700
125036
  "div",
124701
125037
  {
@@ -124708,7 +125044,7 @@ const ScanResultsRowComponent = ({
124708
125044
  children: entry2.label || /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: clsx("text-style-secondary"), children: "—" })
124709
125045
  }
124710
125046
  ),
124711
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$6.value, "text-size-smaller"), children: !entry2.scanError && /* @__PURE__ */ jsxRuntimeExports.jsx(Value, { result: entry2, style: "inline" }) }),
125047
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$6.value, "text-size-smaller"), children: !entry2.scanError && /* @__PURE__ */ jsxRuntimeExports.jsx(Value, { result: entry2, style: "inline", references: refs }) }),
124712
125048
  hasValidations && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx("text-size-smaller"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(ValidationResult, { result: entry2.validationResult }) }),
124713
125049
  hasErrors && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$6.error, "text-size-smallest"), children: entry2.scanError && /* @__PURE__ */ jsxRuntimeExports.jsx(
124714
125050
  Error$1,
@@ -125149,12 +125485,13 @@ const ScanResultsBody = () => {
125149
125485
  const [searchParams] = useSearchParams();
125150
125486
  const relativePath = getRelativePathFromParams(params);
125151
125487
  const { scanPath } = parseScanResultPath(relativePath);
125488
+ const dataframeFilterColumns = useStore(
125489
+ (state) => state.dataframeFilterColumns
125490
+ );
125152
125491
  const sortedColumns = useMemo(() => {
125153
- if (!columnTable) {
125154
- return [];
125155
- }
125156
- return columnTable.columnNames().sort(sortColumns);
125157
- }, [columnTable]);
125492
+ const cols = dataframeFilterColumns || defaultColumns;
125493
+ return [...cols].sort(sortColumns);
125494
+ }, [dataframeFilterColumns]);
125158
125495
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$5.scrollContainer), children: [
125159
125496
  hasScanner && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { height: "100%", width: "100%" }, children: [
125160
125497
  selectedResultsView === kSegmentList && /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -125206,21 +125543,25 @@ const sortColumns = (a2, b) => {
125206
125543
  return indexA - indexB;
125207
125544
  }
125208
125545
  };
125209
- const container$2 = "_container_1a0yr_1";
125210
- const entry = "_entry_1a0yr_5";
125211
- const selected = "_selected_1a0yr_9";
125212
- const titleBlock = "_titleBlock_1a0yr_13";
125213
- const subTitle = "_subTitle_1a0yr_17";
125214
- const title = "_title_1a0yr_13";
125215
- const validationTable = "_validationTable_1a0yr_36";
125546
+ const container$2 = "_container_1ov9x_1";
125547
+ const entry = "_entry_1ov9x_5";
125548
+ const selected = "_selected_1ov9x_12";
125549
+ const titleBlock = "_titleBlock_1ov9x_16";
125550
+ const validations = "_validations_1ov9x_21";
125551
+ const subTitle = "_subTitle_1ov9x_25";
125552
+ const title = "_title_1ov9x_16";
125553
+ const numericResultTable = "_numericResultTable_1ov9x_44";
125554
+ const contents = "_contents_1ov9x_51";
125216
125555
  const styles$4 = {
125217
125556
  container: container$2,
125218
125557
  entry,
125219
125558
  selected,
125220
125559
  titleBlock,
125560
+ validations,
125221
125561
  subTitle,
125222
125562
  title,
125223
- validationTable
125563
+ numericResultTable,
125564
+ contents
125224
125565
  };
125225
125566
  const ScanResultsOutline = () => {
125226
125567
  const selectedStatus = useStore((state) => state.selectedScanStatus);
@@ -125278,16 +125619,27 @@ const ScanResultsRow = ({
125278
125619
  {
125279
125620
  label: "Positive Results",
125280
125621
  layout: "row",
125281
- className: clsx("text-size-smallest"),
125622
+ className: clsx("text-size-smallest", styles$4.contents),
125282
125623
  children: entry2.results
125283
125624
  }
125284
125625
  ),
125626
+ Object.keys(entry2.metrics).map((key2) => {
125627
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
125628
+ LabeledValue,
125629
+ {
125630
+ label: key2,
125631
+ layout: "row",
125632
+ className: clsx("text-size-smallest", styles$4.contents),
125633
+ children: entry2.metrics[key2] !== void 0 ? formatPrettyDecimal(entry2.metrics[key2]) : "n/a"
125634
+ }
125635
+ );
125636
+ }),
125285
125637
  !!entry2.errors && /* @__PURE__ */ jsxRuntimeExports.jsx(
125286
125638
  LabeledValue,
125287
125639
  {
125288
125640
  label: "Errors",
125289
125641
  layout: "row",
125290
- className: clsx("text-size-smallest"),
125642
+ className: clsx("text-size-smallest", styles$4.contents),
125291
125643
  children: entry2.errors
125292
125644
  }
125293
125645
  ),
@@ -125296,8 +125648,14 @@ const ScanResultsRow = ({
125296
125648
  {
125297
125649
  label: "Validations",
125298
125650
  layout: typeof entry2.validations === "number" ? "row" : "column",
125299
- className: clsx("text-size-smallest"),
125300
- children: typeof entry2.validations === "number" ? formatPercent(entry2.validations) : /* @__PURE__ */ jsxRuntimeExports.jsx(ValidationTable, { validations: entry2.validations })
125651
+ className: clsx("text-size-smallest", styles$4.validations),
125652
+ children: typeof entry2.validations === "number" ? formatPercent(entry2.validations) : /* @__PURE__ */ jsxRuntimeExports.jsx(
125653
+ NumericResultsTable,
125654
+ {
125655
+ results: entry2.validations,
125656
+ formatter: formatPercent
125657
+ }
125658
+ )
125301
125659
  }
125302
125660
  )
125303
125661
  ]
@@ -125320,7 +125678,8 @@ const toEntries = (status) => {
125320
125678
  formattedParams.push(`${key2}=${JSON.stringify(value2)}`);
125321
125679
  }
125322
125680
  }
125323
- const validations = summary2?.validations ? resolveValidations(summary2.validations) : void 0;
125681
+ const validations2 = summary2?.validations ? resolveValidations(summary2.validations) : void 0;
125682
+ const metrics = summary2 && Object.keys(summary2?.metrics || {}).includes(scanner) ? summary2.metrics[scanner] : {};
125324
125683
  entries2.push({
125325
125684
  icon: ApplicationIcons.scorer,
125326
125685
  title: scanner,
@@ -125329,24 +125688,25 @@ const toEntries = (status) => {
125329
125688
  tokens: summary2?.tokens,
125330
125689
  errors: summary2?.errors,
125331
125690
  params: formattedParams,
125332
- validations
125691
+ validations: validations2,
125692
+ metrics
125333
125693
  });
125334
125694
  }
125335
125695
  return entries2;
125336
125696
  };
125337
- const resolveValidations = (validations) => {
125338
- if (validations.length === 0) {
125697
+ const resolveValidations = (validations2) => {
125698
+ if (validations2.length === 0) {
125339
125699
  return void 0;
125340
125700
  }
125341
- const first2 = validations[0];
125701
+ const first2 = validations2[0];
125342
125702
  if (typeof first2 === "boolean") {
125343
- const correct = validations.reduce((count2, v) => count2 + (v ? 1 : 0), 0);
125344
- const total = validations.length;
125703
+ const correct = validations2.reduce((count2, v) => count2 + (v ? 1 : 0), 0);
125704
+ const total = validations2.length;
125345
125705
  return correct / total;
125346
125706
  } else {
125347
125707
  const counts = {};
125348
- const total = validations.length;
125349
- for (const validation2 of validations) {
125708
+ const total = validations2.length;
125709
+ for (const validation2 of validations2) {
125350
125710
  if (typeof validation2 === "object") {
125351
125711
  for (const [key2, value2] of Object.entries(validation2)) {
125352
125712
  if (value2) {
@@ -125361,10 +125721,10 @@ const resolveValidations = (validations) => {
125361
125721
  return counts;
125362
125722
  }
125363
125723
  };
125364
- const ValidationTable = ({ validations }) => {
125365
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$4.validationTable), children: Object.entries(validations).map(([key2, value2]) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
125366
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$4.validationKey), children: key2 }),
125367
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$4.validationValue), children: formatPercent(value2) })
125724
+ const NumericResultsTable = ({ results: validations2, formatter }) => {
125725
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$4.numericResultTable), children: Object.entries(validations2).map(([key2, value2]) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
125726
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$4.numericResultKey), children: key2 }),
125727
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles$4.numericResultValue), children: formatter ? formatter(value2) : value2 })
125368
125728
  ] }, key2)) });
125369
125729
  };
125370
125730
  const container$1 = "_container_1db6h_1";
@@ -125496,6 +125856,17 @@ const ScannerPanelBody = () => {
125496
125856
  const visibleScannerResults = useStore(
125497
125857
  (state) => state.visibleScannerResults
125498
125858
  );
125859
+ const chooseColumnnsRef = useRef(null);
125860
+ const [buttonElement, setButtonElement] = useState(
125861
+ null
125862
+ );
125863
+ const gridFilter = useStore(
125864
+ (state) => state.gridStates[GRID_STATE_NAME]?.filter
125865
+ );
125866
+ const buttonRefCallback = (element) => {
125867
+ chooseColumnnsRef.current = element;
125868
+ setButtonElement(element);
125869
+ };
125499
125870
  useEffect(() => {
125500
125871
  const tabParam = searchParams.get("tab");
125501
125872
  if (tabParam) {
@@ -125558,7 +125929,23 @@ const ScannerPanelBody = () => {
125558
125929
  tools2.push(/* @__PURE__ */ jsxRuntimeExports.jsx(ScanResultsFilter, {}, "scan-results-filtering"));
125559
125930
  }
125560
125931
  if (selectedResultsView === kSegmentDataframe) {
125561
- tools2.push(/* @__PURE__ */ jsxRuntimeExports.jsx(ScanDataframeWrapTextButton, {}));
125932
+ tools2.push(
125933
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ScanDataframeWrapTextButton, {}, "scan-dataframe-wrap-text")
125934
+ );
125935
+ }
125936
+ if (selectedResultsView === kSegmentDataframe) {
125937
+ tools2.push(
125938
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
125939
+ ScanDataframeFilterColumnsButton,
125940
+ {
125941
+ ref: buttonRefCallback
125942
+ },
125943
+ "scan-dataframe-filter-columns"
125944
+ )
125945
+ );
125946
+ }
125947
+ if (selectedResultsView === kSegmentDataframe && gridFilter) {
125948
+ tools2.push(/* @__PURE__ */ jsxRuntimeExports.jsx(ScanDataframeClearFiltersButton, {}));
125562
125949
  }
125563
125950
  if (selectedResultsView === kSegmentList && groupOptions.length > 0) {
125564
125951
  tools2.push(
@@ -125596,69 +125983,72 @@ const ScannerPanelBody = () => {
125596
125983
  )
125597
125984
  );
125598
125985
  }
125599
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
125600
- TabSet,
125601
- {
125602
- id: "scan-detail-tabs",
125603
- type: "pills",
125604
- tabPanelsClassName: clsx(styles$1.tabSet),
125605
- tabControlsClassName: clsx(styles$1.tabControl),
125606
- className: clsx(styles$1.tabs),
125607
- tools: tools2,
125608
- children: [
125609
- /* @__PURE__ */ jsxRuntimeExports.jsx(
125610
- TabPanel,
125611
- {
125612
- id: kTabIdScans,
125613
- selected: selectedTab === kTabIdScans || selectedTab === void 0,
125614
- title: "Results",
125615
- onSelected: () => {
125616
- handleTabChange(kTabIdScans);
125617
- },
125618
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(ScanResultsPanel, {})
125619
- }
125620
- ),
125621
- /* @__PURE__ */ jsxRuntimeExports.jsx(
125622
- TabPanel,
125623
- {
125624
- id: kTabIdInfo,
125625
- selected: selectedTab === kTabIdInfo,
125626
- title: "Info",
125627
- onSelected: () => {
125628
- handleTabChange(kTabIdInfo);
125629
- },
125630
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(ScanInfo, {})
125631
- }
125632
- ),
125633
- /* @__PURE__ */ jsxRuntimeExports.jsx(
125634
- TabPanel,
125635
- {
125636
- id: kTabIdJson,
125637
- selected: selectedTab === kTabIdJson,
125638
- title: "JSON",
125639
- onSelected: () => {
125640
- handleTabChange(kTabIdJson);
125641
- },
125642
- scrollable: true,
125643
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
125644
- JSONPanel,
125645
- {
125646
- id: "task-json-contents",
125647
- data: selectedStatus,
125648
- simple: true
125649
- }
125650
- )
125651
- }
125652
- )
125653
- ]
125654
- }
125655
- );
125986
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
125987
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
125988
+ TabSet,
125989
+ {
125990
+ id: "scan-detail-tabs",
125991
+ type: "pills",
125992
+ tabPanelsClassName: clsx(styles$1.tabSet),
125993
+ tabControlsClassName: clsx(styles$1.tabControl),
125994
+ className: clsx(styles$1.tabs),
125995
+ tools: tools2,
125996
+ children: [
125997
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
125998
+ TabPanel,
125999
+ {
126000
+ id: kTabIdScans,
126001
+ selected: selectedTab === kTabIdScans || selectedTab === void 0,
126002
+ title: "Results",
126003
+ onSelected: () => {
126004
+ handleTabChange(kTabIdScans);
126005
+ },
126006
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ScanResultsPanel, {})
126007
+ }
126008
+ ),
126009
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
126010
+ TabPanel,
126011
+ {
126012
+ id: kTabIdInfo,
126013
+ selected: selectedTab === kTabIdInfo,
126014
+ title: "Info",
126015
+ onSelected: () => {
126016
+ handleTabChange(kTabIdInfo);
126017
+ },
126018
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ScanInfo, {})
126019
+ }
126020
+ ),
126021
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
126022
+ TabPanel,
126023
+ {
126024
+ id: kTabIdJson,
126025
+ selected: selectedTab === kTabIdJson,
126026
+ title: "JSON",
126027
+ onSelected: () => {
126028
+ handleTabChange(kTabIdJson);
126029
+ },
126030
+ scrollable: true,
126031
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
126032
+ JSONPanel,
126033
+ {
126034
+ id: "task-json-contents",
126035
+ data: selectedStatus,
126036
+ simple: true
126037
+ }
126038
+ )
126039
+ }
126040
+ )
126041
+ ]
126042
+ }
126043
+ ),
126044
+ selectedResultsView === kSegmentDataframe && buttonElement && /* @__PURE__ */ jsxRuntimeExports.jsx(ScanDataframeColumnsPopover, { positionEl: buttonElement })
126045
+ ] });
125656
126046
  };
125657
- const scanTitleView = "_scanTitleView_1vka4_1";
125658
- const leftColumn = "_leftColumn_1vka4_10";
125659
- const rightColumn = "_rightColumn_1vka4_18";
125660
- const secondaryRow = "_secondaryRow_1vka4_34";
125661
- const subtitle = "_subtitle_1vka4_47";
126047
+ const scanTitleView = "_scanTitleView_1ayz3_1";
126048
+ const leftColumn = "_leftColumn_1ayz3_10";
126049
+ const rightColumn = "_rightColumn_1ayz3_18";
126050
+ const secondaryRow = "_secondaryRow_1ayz3_34";
126051
+ const subtitle = "_subtitle_1ayz3_40";
125662
126052
  const styles = {
125663
126053
  scanTitleView,
125664
126054
  leftColumn,
@@ -125669,10 +126059,13 @@ const styles = {
125669
126059
  const ScannerPanelTitle = () => {
125670
126060
  const selectedStatus = useStore((state) => state.selectedScanStatus);
125671
126061
  const resultsDir = useStore((state) => state.resultsDir);
125672
- const errorCount = selectedStatus?.errors.length || 0;
125673
- const status = selectedStatus === void 0 ? "" : selectedStatus.complete ? "Complete" : "Incomplete";
125674
126062
  const scanJobName = selectedStatus?.spec.scan_name === "job" ? "scan" : selectedStatus?.spec.scan_name;
125675
- const transcriptCount = selectedStatus?.spec.transcripts?.count || 0;
126063
+ const scannerModel = selectedStatus?.spec.model.model;
126064
+ const deprecatedCount = selectedStatus?.spec.transcripts?.count || 0;
126065
+ const modernCorrectCount = Object.keys(
126066
+ selectedStatus?.spec.transcripts?.transcript_ids || {}
126067
+ ).length;
126068
+ const transcriptCount = Math.max(deprecatedCount, modernCorrectCount);
125676
126069
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles.scanTitleView), children: [
125677
126070
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles.leftColumn), children: [
125678
126071
  /* @__PURE__ */ jsxRuntimeExports.jsxs("h1", { children: [
@@ -125680,26 +126073,50 @@ const ScannerPanelTitle = () => {
125680
126073
  ":"
125681
126074
  ] }),
125682
126075
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles.secondaryRow), children: [
125683
- /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { children: toRelativePath(selectedStatus?.location || "", resultsDir || "") }),
126076
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("h2", { children: [
126077
+ toRelativePath(selectedStatus?.location || "", resultsDir || ""),
126078
+ scannerModel ? ` (${scannerModel})` : ""
126079
+ ] }),
125684
126080
  selectedStatus?.location && /* @__PURE__ */ jsxRuntimeExports.jsx(
125685
126081
  CopyButton,
125686
126082
  {
126083
+ title: "Copy Scan Path",
125687
126084
  className: clsx("text-size-small"),
125688
126085
  value: prettyDirUri(selectedStatus?.location)
125689
126086
  }
125690
126087
  )
125691
126088
  ] }),
125692
126089
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", {}),
125693
- /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: clsx(styles.subtitle, "text-style-secondary"), children: selectedStatus?.spec.timestamp ? formatDateTime(new Date(selectedStatus?.spec.timestamp)) : "" })
126090
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles.subtitle, "text-style-secondary"), children: [
126091
+ /* @__PURE__ */ jsxRuntimeExports.jsx(StatusDisplay, { status: selectedStatus }),
126092
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "—" }),
126093
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
126094
+ transcriptCount,
126095
+ " Transcripts "
126096
+ ] }),
126097
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "—" }),
126098
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: selectedStatus?.spec.timestamp ? formatDateTime(new Date(selectedStatus?.spec.timestamp)) : "" })
126099
+ ] })
125694
126100
  ] }),
125695
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles.rightColumn, "text-size-smaller"), children: [
125696
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
125697
- transcriptCount,
125698
- " Transcripts"
125699
- ] }),
125700
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: status }),
125701
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: errorCount === 1 ? `${errorCount} Error` : errorCount > 1 ? `${errorCount} Errors` : "" })
125702
- ] })
126101
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(styles.rightColumn, "text-size-smaller") })
126102
+ ] });
126103
+ };
126104
+ const StatusDisplay = ({ status }) => {
126105
+ const errorCount = status?.errors.length || 0;
126106
+ if (errorCount > 0) {
126107
+ const errorStr = errorCount === 1 ? `${errorCount} Error` : errorCount > 1 ? `${errorCount} Errors` : "";
126108
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
126109
+ /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: ApplicationIcons.error }),
126110
+ " ",
126111
+ errorStr
126112
+ ] });
126113
+ }
126114
+ const statusStr = status === void 0 ? "" : status.complete ? "Complete" : "Incomplete";
126115
+ const statusIcon = status === void 0 ? ApplicationIcons.running : status.complete ? ApplicationIcons.successSubtle : ApplicationIcons.pendingTaskSubtle;
126116
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
126117
+ /* @__PURE__ */ jsxRuntimeExports.jsx("i", { className: statusIcon }),
126118
+ " ",
126119
+ statusStr
125703
126120
  ] });
125704
126121
  };
125705
126122
  const ScannerPanel = () => {
@@ -125720,7 +126137,7 @@ const ScannerPanel = () => {
125720
126137
  }
125721
126138
  }, [searchParams, setSelectedScanner]);
125722
126139
  const selectedStatus = useStore((state) => state.selectedScanStatus);
125723
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$h.root), children: [
126140
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$i.root), children: [
125724
126141
  /* @__PURE__ */ jsxRuntimeExports.jsx(Navbar, {}),
125725
126142
  /* @__PURE__ */ jsxRuntimeExports.jsx(ActivityBar, { animating: !!loading }),
125726
126143
  selectedStatus && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [