@ai-matrx/agents 0.59.213 → 0.59.215

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.
@@ -96,6 +96,20 @@ import {
96
96
  import { Input } from "@ai-matrx/design-system/controls";
97
97
  import { MakerBrandGlyph, ServiceBrandGlyph } from "@ai-matrx/icons/brand-glyphs";
98
98
 
99
+ // models/react/icons.tsx
100
+ import {
101
+ AudioLinesIcon as GAudioLinesIcon,
102
+ BoxesIcon as GBoxesIcon,
103
+ FileTextIcon as GFileTextIcon,
104
+ ImageIcon as GImageIcon,
105
+ LanguagesIcon as GLanguagesIcon,
106
+ LayersIcon as GLayersIcon,
107
+ ScaleIcon as GScaleIcon,
108
+ ShieldIcon as GShieldIcon,
109
+ SlidersHorizontalIcon as GSlidersHorizontalIcon,
110
+ TypeIcon as GTypeIcon
111
+ } from "@ai-matrx/design-system/icons";
112
+
99
113
  // catalog/shared/icon-paths.ts
100
114
  var SHAPES = {
101
115
  star: {
@@ -205,6 +219,7 @@ var ICON_PATHS = SHAPES;
205
219
  var ICON_NAMES = Object.keys(ICON_PATHS);
206
220
 
207
221
  // catalog/react/icons.tsx
222
+ import { FolderIcon, RotateCcwIcon, TagIcon } from "@ai-matrx/design-system/icons";
208
223
  import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
209
224
  function Svg({ children, ...props }) {
210
225
  return /* @__PURE__ */ jsx2(
@@ -252,9 +267,6 @@ function makeIcon(name) {
252
267
  };
253
268
  }
254
269
  var ArrowUpDownIcon = makeIcon("arrowUpDown");
255
- var FolderIcon = makeIcon("folder");
256
- var TagIcon = makeIcon("tag");
257
- var RotateCcwIcon = makeIcon("rotateCcw");
258
270
  var LoaderIcon = makeIcon("loader");
259
271
  var UsersIcon = makeIcon("users");
260
272
  var MessageCircleIcon = makeIcon("messageCircle");
@@ -273,115 +285,17 @@ function MousePointerClickIcon(props) {
273
285
  }
274
286
 
275
287
  // models/react/icons.tsx
276
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
277
- function Svg2({ children, ...props }) {
278
- return /* @__PURE__ */ jsx3(
279
- "svg",
280
- {
281
- xmlns: "http://www.w3.org/2000/svg",
282
- viewBox: "0 0 24 24",
283
- fill: "none",
284
- stroke: "currentColor",
285
- strokeWidth: 2,
286
- strokeLinecap: "round",
287
- strokeLinejoin: "round",
288
- "aria-hidden": "true",
289
- ...props,
290
- children
291
- }
292
- );
293
- }
294
- function ShieldIcon(props) {
295
- return /* @__PURE__ */ jsx3(Svg2, { ...props, children: /* @__PURE__ */ jsx3("path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }) });
296
- }
297
- function SlidersHorizontalIcon(props) {
298
- return /* @__PURE__ */ jsxs2(Svg2, { ...props, children: [
299
- /* @__PURE__ */ jsx3("path", { d: "M10 5H3" }),
300
- /* @__PURE__ */ jsx3("path", { d: "M12 19H3" }),
301
- /* @__PURE__ */ jsx3("path", { d: "M14 3v4" }),
302
- /* @__PURE__ */ jsx3("path", { d: "M16 17v4" }),
303
- /* @__PURE__ */ jsx3("path", { d: "M21 12h-9" }),
304
- /* @__PURE__ */ jsx3("path", { d: "M21 19h-5" }),
305
- /* @__PURE__ */ jsx3("path", { d: "M21 5h-7" }),
306
- /* @__PURE__ */ jsx3("path", { d: "M8 10v4" }),
307
- /* @__PURE__ */ jsx3("path", { d: "M8 12H3" })
308
- ] });
309
- }
310
- function TypeIcon(props) {
311
- return /* @__PURE__ */ jsxs2(Svg2, { ...props, children: [
312
- /* @__PURE__ */ jsx3("path", { d: "M12 4v16" }),
313
- /* @__PURE__ */ jsx3("path", { d: "M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2" }),
314
- /* @__PURE__ */ jsx3("path", { d: "M9 20h6" })
315
- ] });
316
- }
317
- function ImageIcon(props) {
318
- return /* @__PURE__ */ jsxs2(Svg2, { ...props, children: [
319
- /* @__PURE__ */ jsx3("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2" }),
320
- /* @__PURE__ */ jsx3("circle", { cx: "9", cy: "9", r: "2" }),
321
- /* @__PURE__ */ jsx3("path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" })
322
- ] });
323
- }
324
- function AudioLinesIcon(props) {
325
- return /* @__PURE__ */ jsxs2(Svg2, { ...props, children: [
326
- /* @__PURE__ */ jsx3("path", { d: "M2 10v3" }),
327
- /* @__PURE__ */ jsx3("path", { d: "M6 6v11" }),
328
- /* @__PURE__ */ jsx3("path", { d: "M10 3v18" }),
329
- /* @__PURE__ */ jsx3("path", { d: "M14 8v7" }),
330
- /* @__PURE__ */ jsx3("path", { d: "M18 5v13" }),
331
- /* @__PURE__ */ jsx3("path", { d: "M22 10v3" })
332
- ] });
333
- }
334
- function BoxesIcon(props) {
335
- return /* @__PURE__ */ jsxs2(Svg2, { ...props, children: [
336
- /* @__PURE__ */ jsx3("path", { d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z" }),
337
- /* @__PURE__ */ jsx3("path", { d: "m7 16.5-4.74-2.85" }),
338
- /* @__PURE__ */ jsx3("path", { d: "m7 16.5 5-3" }),
339
- /* @__PURE__ */ jsx3("path", { d: "M7 16.5v5.17" }),
340
- /* @__PURE__ */ jsx3("path", { d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z" }),
341
- /* @__PURE__ */ jsx3("path", { d: "m17 16.5-5-3" }),
342
- /* @__PURE__ */ jsx3("path", { d: "m17 16.5 4.74-2.85" }),
343
- /* @__PURE__ */ jsx3("path", { d: "M17 16.5v5.17" }),
344
- /* @__PURE__ */ jsx3("path", { d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z" }),
345
- /* @__PURE__ */ jsx3("path", { d: "M12 8 7.26 5.15" }),
346
- /* @__PURE__ */ jsx3("path", { d: "m12 8 4.74-2.85" }),
347
- /* @__PURE__ */ jsx3("path", { d: "M12 13.5V8" })
348
- ] });
349
- }
350
- function FileTextIcon(props) {
351
- return /* @__PURE__ */ jsxs2(Svg2, { ...props, children: [
352
- /* @__PURE__ */ jsx3("path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }),
353
- /* @__PURE__ */ jsx3("path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }),
354
- /* @__PURE__ */ jsx3("path", { d: "M10 9H8" }),
355
- /* @__PURE__ */ jsx3("path", { d: "M16 13H8" }),
356
- /* @__PURE__ */ jsx3("path", { d: "M16 17H8" })
357
- ] });
358
- }
359
- function LayersIcon(props) {
360
- return /* @__PURE__ */ jsxs2(Svg2, { ...props, children: [
361
- /* @__PURE__ */ jsx3("path", { d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z" }),
362
- /* @__PURE__ */ jsx3("path", { d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12" }),
363
- /* @__PURE__ */ jsx3("path", { d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17" })
364
- ] });
365
- }
366
- function ScaleIcon(props) {
367
- return /* @__PURE__ */ jsxs2(Svg2, { ...props, children: [
368
- /* @__PURE__ */ jsx3("path", { d: "M12 3v18" }),
369
- /* @__PURE__ */ jsx3("path", { d: "m19 8 3 8a5 5 0 0 1-6 0zV7" }),
370
- /* @__PURE__ */ jsx3("path", { d: "M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1" }),
371
- /* @__PURE__ */ jsx3("path", { d: "m5 8 3 8a5 5 0 0 1-6 0zV7" }),
372
- /* @__PURE__ */ jsx3("path", { d: "M7 21h10" })
373
- ] });
374
- }
375
- function LanguagesIcon(props) {
376
- return /* @__PURE__ */ jsxs2(Svg2, { ...props, children: [
377
- /* @__PURE__ */ jsx3("path", { d: "m5 8 6 6" }),
378
- /* @__PURE__ */ jsx3("path", { d: "m4 14 6-6 2-3" }),
379
- /* @__PURE__ */ jsx3("path", { d: "M2 5h12" }),
380
- /* @__PURE__ */ jsx3("path", { d: "M7 2h1" }),
381
- /* @__PURE__ */ jsx3("path", { d: "m22 22-5-10-5 10" }),
382
- /* @__PURE__ */ jsx3("path", { d: "M14 18h6" })
383
- ] });
384
- }
288
+ var sized = (Glyph) => Glyph;
289
+ var ShieldIcon = sized(GShieldIcon);
290
+ var SlidersHorizontalIcon = sized(GSlidersHorizontalIcon);
291
+ var TypeIcon = sized(GTypeIcon);
292
+ var ImageIcon = sized(GImageIcon);
293
+ var AudioLinesIcon = sized(GAudioLinesIcon);
294
+ var BoxesIcon = sized(GBoxesIcon);
295
+ var FileTextIcon = sized(GFileTextIcon);
296
+ var LayersIcon = sized(GLayersIcon);
297
+ var ScaleIcon = sized(GScaleIcon);
298
+ var LanguagesIcon = sized(GLanguagesIcon);
385
299
 
386
300
  // models/react/ModelListDropdown.tsx
387
301
  import { ChevronDownIcon, ChevronRightIcon, SearchIcon, StarIcon, VideoIcon } from "@ai-matrx/design-system/icons";
@@ -549,7 +463,7 @@ function serviceCountLabel(count) {
549
463
  }
550
464
 
551
465
  // models/react/ModelListDropdown.tsx
552
- import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
466
+ import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
553
467
  var PANEL_HEIGHT = 640;
554
468
  var LIST_MAX_HEIGHT = `min(${PANEL_HEIGHT}px, var(--radix-popper-available-height, 70dvh))`;
555
469
  var LIST_WIDTH = 520;
@@ -587,15 +501,15 @@ var INTERACTION_LABEL = {
587
501
  };
588
502
  function SpeedDots({ value }) {
589
503
  const label = speedRatingLabel(value);
590
- return /* @__PURE__ */ jsxs3(
504
+ return /* @__PURE__ */ jsxs2(
591
505
  "span",
592
506
  {
593
507
  className: "inline-flex items-center gap-1",
594
508
  title: label == null ? "No speed rating yet" : `Speed ${label}/5`,
595
509
  children: [
596
- /* @__PURE__ */ jsx4("span", { className: "text-[11px] font-medium tabular-nums text-foreground/80", children: speedRatingWord(value) }),
597
- /* @__PURE__ */ jsxs3("span", { className: "inline-flex items-center gap-0.5", children: [
598
- [0, 1, 2, 3, 4].map((i) => /* @__PURE__ */ jsx4(
510
+ /* @__PURE__ */ jsx3("span", { className: "text-[11px] font-medium tabular-nums text-foreground/80", children: speedRatingWord(value) }),
511
+ /* @__PURE__ */ jsxs2("span", { className: "inline-flex items-center gap-0.5", children: [
512
+ [0, 1, 2, 3, 4].map((i) => /* @__PURE__ */ jsx3(
599
513
  "span",
600
514
  {
601
515
  className: cn(
@@ -605,7 +519,7 @@ function SpeedDots({ value }) {
605
519
  },
606
520
  i
607
521
  )),
608
- value != null && value >= 6 && /* @__PURE__ */ jsx4("span", { className: "text-[9px] leading-none text-amber-500", children: "+" })
522
+ value != null && value >= 6 && /* @__PURE__ */ jsx3("span", { className: "text-[9px] leading-none text-amber-500", children: "+" })
609
523
  ] })
610
524
  ]
611
525
  }
@@ -614,40 +528,40 @@ function SpeedDots({ value }) {
614
528
  function SpeedCell({ value }) {
615
529
  const word = speedRatingWord(value);
616
530
  const label = speedRatingLabel(value);
617
- return /* @__PURE__ */ jsx4(
531
+ return /* @__PURE__ */ jsx3(
618
532
  DelayedHint,
619
533
  {
620
534
  label: label == null ? "No speed rating yet" : `Speed ${word} (${label}/5)`,
621
- children: /* @__PURE__ */ jsx4("span", { className: "inline-block w-11 text-right text-[11px] font-medium tabular-nums text-foreground/80", children: word })
535
+ children: /* @__PURE__ */ jsx3("span", { className: "inline-block w-11 text-right text-[11px] font-medium tabular-nums text-foreground/80", children: word })
622
536
  }
623
537
  );
624
538
  }
625
539
  function CostTier({ tier }) {
626
540
  if (!tier)
627
- return /* @__PURE__ */ jsx4("span", { className: "text-[11px] text-muted-foreground/50", children: "\u2014" });
541
+ return /* @__PURE__ */ jsx3("span", { className: "text-[11px] text-muted-foreground/50", children: "\u2014" });
628
542
  const rating = priceTierRating(tier);
629
543
  const word = costRatingWord(rating);
630
- return /* @__PURE__ */ jsx4(
544
+ return /* @__PURE__ */ jsx3(
631
545
  DelayedHint,
632
546
  {
633
547
  label: `Relative cost ${word} (${rating >= 6 ? "5+" : rating}/5 compared with other models)`,
634
- children: /* @__PURE__ */ jsx4("span", { className: "inline-block w-11 text-right text-[11px] font-medium tabular-nums text-foreground/80", children: word })
548
+ children: /* @__PURE__ */ jsx3("span", { className: "inline-block w-11 text-right text-[11px] font-medium tabular-nums text-foreground/80", children: word })
635
549
  }
636
550
  );
637
551
  }
638
552
  function ModalityIcons({ list }) {
639
553
  if (list.length === 0)
640
- return /* @__PURE__ */ jsx4("span", { className: "text-[11px] text-muted-foreground/50", children: "\u2014" });
641
- return /* @__PURE__ */ jsx4("span", { className: "inline-flex flex-nowrap items-center gap-1 whitespace-nowrap", children: list.map((m) => {
554
+ return /* @__PURE__ */ jsx3("span", { className: "text-[11px] text-muted-foreground/50", children: "\u2014" });
555
+ return /* @__PURE__ */ jsx3("span", { className: "inline-flex flex-nowrap items-center gap-1 whitespace-nowrap", children: list.map((m) => {
642
556
  const Icon = MODALITY_ICON[m];
643
- return /* @__PURE__ */ jsxs3(
557
+ return /* @__PURE__ */ jsxs2(
644
558
  "span",
645
559
  {
646
560
  className: "inline-flex shrink-0 items-center gap-0.5 text-xs text-foreground/70",
647
561
  title: m,
648
562
  children: [
649
- /* @__PURE__ */ jsx4(Icon, { className: "h-3 w-3" }),
650
- /* @__PURE__ */ jsx4("span", { className: "capitalize", children: m })
563
+ /* @__PURE__ */ jsx3(Icon, { className: "h-3 w-3" }),
564
+ /* @__PURE__ */ jsx3("span", { className: "capitalize", children: m })
651
565
  ]
652
566
  },
653
567
  m
@@ -659,9 +573,9 @@ function AdminRow({
659
573
  value,
660
574
  mono
661
575
  }) {
662
- return /* @__PURE__ */ jsxs3("div", { className: "flex items-baseline gap-2 whitespace-nowrap", children: [
663
- /* @__PURE__ */ jsx4("span", { className: "w-[76px] shrink-0 text-[10px] uppercase tracking-wide text-muted-foreground", children: label }),
664
- /* @__PURE__ */ jsx4(
576
+ return /* @__PURE__ */ jsxs2("div", { className: "flex items-baseline gap-2 whitespace-nowrap", children: [
577
+ /* @__PURE__ */ jsx3("span", { className: "w-[76px] shrink-0 text-[10px] uppercase tracking-wide text-muted-foreground", children: label }),
578
+ /* @__PURE__ */ jsx3(
665
579
  "span",
666
580
  {
667
581
  className: cn(
@@ -689,16 +603,16 @@ function AdminOfferingBlock({
689
603
  total
690
604
  }) {
691
605
  const unit = offering.usageBasis ? `/ ${offering.usageBasis}` : "/ 1M tokens";
692
- return /* @__PURE__ */ jsxs3("div", { className: "rounded-md border border-border p-2", children: [
693
- /* @__PURE__ */ jsxs3("div", { className: "mb-1.5 flex items-center justify-between gap-2", children: [
694
- /* @__PURE__ */ jsxs3("span", { className: "truncate text-[11px] font-semibold text-foreground", children: [
606
+ return /* @__PURE__ */ jsxs2("div", { className: "rounded-md border border-border p-2", children: [
607
+ /* @__PURE__ */ jsxs2("div", { className: "mb-1.5 flex items-center justify-between gap-2", children: [
608
+ /* @__PURE__ */ jsxs2("span", { className: "truncate text-[11px] font-semibold text-foreground", children: [
695
609
  "Offering ",
696
610
  index + 1,
697
611
  " of ",
698
612
  total,
699
613
  index === 0 ? " \u2014 preferred" : ""
700
614
  ] }),
701
- /* @__PURE__ */ jsx4(
615
+ /* @__PURE__ */ jsx3(
702
616
  "span",
703
617
  {
704
618
  className: cn(
@@ -709,21 +623,21 @@ function AdminOfferingBlock({
709
623
  }
710
624
  )
711
625
  ] }),
712
- /* @__PURE__ */ jsxs3("div", { className: "space-y-0.5", children: [
713
- /* @__PURE__ */ jsx4(AdminRow, { label: "Model", value: offering.providerModelId, mono: true }),
714
- /* @__PURE__ */ jsx4(AdminRow, { label: "Vendor", value: offering.vendor, mono: true }),
715
- /* @__PURE__ */ jsx4(AdminRow, { label: "API", value: offering.apiName, mono: true }),
716
- /* @__PURE__ */ jsx4(AdminRow, { label: "Translator", value: offering.translatorKey, mono: true }),
717
- /* @__PURE__ */ jsx4(AdminRow, { label: "Transport", value: offering.transport, mono: true }),
718
- /* @__PURE__ */ jsx4(
626
+ /* @__PURE__ */ jsxs2("div", { className: "space-y-0.5", children: [
627
+ /* @__PURE__ */ jsx3(AdminRow, { label: "Model", value: offering.providerModelId, mono: true }),
628
+ /* @__PURE__ */ jsx3(AdminRow, { label: "Vendor", value: offering.vendor, mono: true }),
629
+ /* @__PURE__ */ jsx3(AdminRow, { label: "API", value: offering.apiName, mono: true }),
630
+ /* @__PURE__ */ jsx3(AdminRow, { label: "Translator", value: offering.translatorKey, mono: true }),
631
+ /* @__PURE__ */ jsx3(AdminRow, { label: "Transport", value: offering.transport, mono: true }),
632
+ /* @__PURE__ */ jsx3(
719
633
  AdminRow,
720
634
  {
721
635
  label: "Endpoint",
722
636
  value: offering.endpointDisplayName || offering.endpointInternalName ? `${offering.endpointDisplayName ?? "\u2014"} (${offering.endpointInternalName ?? "\u2014"})` : null
723
637
  }
724
638
  ),
725
- /* @__PURE__ */ jsx4(AdminRow, { label: "Priority", value: String(offering.priority), mono: true }),
726
- /* @__PURE__ */ jsx4(
639
+ /* @__PURE__ */ jsx3(AdminRow, { label: "Priority", value: String(offering.priority), mono: true }),
640
+ /* @__PURE__ */ jsx3(
727
641
  AdminRow,
728
642
  {
729
643
  label: "Points in",
@@ -731,7 +645,7 @@ function AdminOfferingBlock({
731
645
  mono: true
732
646
  }
733
647
  ),
734
- /* @__PURE__ */ jsx4(
648
+ /* @__PURE__ */ jsx3(
735
649
  AdminRow,
736
650
  {
737
651
  label: "Points out",
@@ -739,7 +653,7 @@ function AdminOfferingBlock({
739
653
  mono: true
740
654
  }
741
655
  ),
742
- offering.pointsCachedInput != null && /* @__PURE__ */ jsx4(
656
+ offering.pointsCachedInput != null && /* @__PURE__ */ jsx3(
743
657
  AdminRow,
744
658
  {
745
659
  label: "Points cached",
@@ -747,15 +661,15 @@ function AdminOfferingBlock({
747
661
  mono: true
748
662
  }
749
663
  ),
750
- offering.pricing.length === 0 ? /* @__PURE__ */ jsx4(AdminRow, { label: "Pricing", value: "\u2014 (no pricing rows)" }) : offering.pricing.map((band, i) => /* @__PURE__ */ jsxs3("div", { className: "space-y-0.5", children: [
751
- band.maxTokens != null && /* @__PURE__ */ jsx4(
664
+ offering.pricing.length === 0 ? /* @__PURE__ */ jsx3(AdminRow, { label: "Pricing", value: "\u2014 (no pricing rows)" }) : offering.pricing.map((band, i) => /* @__PURE__ */ jsxs2("div", { className: "space-y-0.5", children: [
665
+ band.maxTokens != null && /* @__PURE__ */ jsx3(
752
666
  AdminRow,
753
667
  {
754
668
  label: `Band ${i + 1}`,
755
669
  value: `\u2264 ${formatCount(band.maxTokens)} tokens`
756
670
  }
757
671
  ),
758
- /* @__PURE__ */ jsx4(
672
+ /* @__PURE__ */ jsx3(
759
673
  AdminRow,
760
674
  {
761
675
  label: "Input $",
@@ -763,7 +677,7 @@ function AdminOfferingBlock({
763
677
  mono: true
764
678
  }
765
679
  ),
766
- /* @__PURE__ */ jsx4(
680
+ /* @__PURE__ */ jsx3(
767
681
  AdminRow,
768
682
  {
769
683
  label: "Output $",
@@ -771,7 +685,7 @@ function AdminOfferingBlock({
771
685
  mono: true
772
686
  }
773
687
  ),
774
- /* @__PURE__ */ jsx4(
688
+ /* @__PURE__ */ jsx3(
775
689
  AdminRow,
776
690
  {
777
691
  label: "Cached $",
@@ -780,26 +694,26 @@ function AdminOfferingBlock({
780
694
  }
781
695
  )
782
696
  ] }, i)),
783
- /* @__PURE__ */ jsx4(
697
+ /* @__PURE__ */ jsx3(
784
698
  AdminRow,
785
699
  {
786
700
  label: "Billing",
787
701
  value: offering.usageBasis ? `Usage basis: ${offering.usageBasis}` : offering.tokenBilled ? "Token-billed (provider-reported tokens)" : "Standard $ / 1M tokens"
788
702
  }
789
703
  ),
790
- /* @__PURE__ */ jsx4(AdminRow, { label: "Offering", value: offering.offeringId, mono: true })
704
+ /* @__PURE__ */ jsx3(AdminRow, { label: "Offering", value: offering.offeringId, mono: true })
791
705
  ] })
792
706
  ] });
793
707
  }
794
708
  function AdminOfferingsSection({ model }) {
795
709
  const offerings = model.admin?.offerings ?? [];
796
- return /* @__PURE__ */ jsxs3("div", { className: "flex h-full flex-col", children: [
797
- /* @__PURE__ */ jsxs3("div", { className: "shrink-0 border-b border-border px-3 py-2 text-[10px] uppercase tracking-wide text-muted-foreground", children: [
710
+ return /* @__PURE__ */ jsxs2("div", { className: "flex h-full flex-col", children: [
711
+ /* @__PURE__ */ jsxs2("div", { className: "shrink-0 border-b border-border px-3 py-2 text-[10px] uppercase tracking-wide text-muted-foreground", children: [
798
712
  "Offerings \u2014 real vendor / wire data (",
799
713
  offerings.length,
800
714
  ")"
801
715
  ] }),
802
- /* @__PURE__ */ jsx4("div", { className: "min-h-0 flex-1 space-y-2 overflow-y-auto p-2", children: offerings.length === 0 ? /* @__PURE__ */ jsx4("div", { className: "rounded-md border border-destructive/40 bg-destructive/10 p-2 text-[11px] text-destructive-ink", children: "No offerings \u2014 this model is not callable (a model without an `ai.offering` row cannot be routed)." }) : offerings.map((o, i) => /* @__PURE__ */ jsx4(
716
+ /* @__PURE__ */ jsx3("div", { className: "min-h-0 flex-1 space-y-2 overflow-y-auto p-2", children: offerings.length === 0 ? /* @__PURE__ */ jsx3("div", { className: "rounded-md border border-destructive/40 bg-destructive/10 p-2 text-[11px] text-destructive-ink", children: "No offerings \u2014 this model is not callable (a model without an `ai.offering` row cannot be routed)." }) : offerings.map((o, i) => /* @__PURE__ */ jsx3(
803
717
  AdminOfferingBlock,
804
718
  {
805
719
  offering: o,
@@ -824,13 +738,13 @@ function ModelDetailCard({
824
738
  }) {
825
739
  const pinnedHere = (t) => !!isCurrentModel && !!pinnedOfferingId && t.offeringId === pinnedOfferingId;
826
740
  const anyPinnedHere = model.tiers.some(pinnedHere);
827
- return /* @__PURE__ */ jsxs3("div", { className: "flex h-full flex-col", children: [
828
- /* @__PURE__ */ jsxs3("div", { className: "min-h-0 flex-1 overflow-y-auto p-4", children: [
829
- /* @__PURE__ */ jsxs3("div", { className: "flex items-start justify-between gap-2", children: [
830
- /* @__PURE__ */ jsxs3("div", { className: "min-w-0", children: [
831
- /* @__PURE__ */ jsx4("div", { className: "truncate text-sm font-semibold text-foreground", children: model.name }),
832
- model.maker && /* @__PURE__ */ jsxs3("div", { className: "mt-0.5 flex items-center gap-1 text-xs text-muted-foreground", children: [
833
- /* @__PURE__ */ jsx4(
741
+ return /* @__PURE__ */ jsxs2("div", { className: "flex h-full flex-col", children: [
742
+ /* @__PURE__ */ jsxs2("div", { className: "min-h-0 flex-1 overflow-y-auto p-4", children: [
743
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-start justify-between gap-2", children: [
744
+ /* @__PURE__ */ jsxs2("div", { className: "min-w-0", children: [
745
+ /* @__PURE__ */ jsx3("div", { className: "truncate text-sm font-semibold text-foreground", children: model.name }),
746
+ model.maker && /* @__PURE__ */ jsxs2("div", { className: "mt-0.5 flex items-center gap-1 text-xs text-muted-foreground", children: [
747
+ /* @__PURE__ */ jsx3(
834
748
  MakerBrandGlyph,
835
749
  {
836
750
  maker: model.maker,
@@ -838,13 +752,13 @@ function ModelDetailCard({
838
752
  className: "h-3.5 w-3.5"
839
753
  }
840
754
  ),
841
- /* @__PURE__ */ jsx4("span", { children: model.maker })
755
+ /* @__PURE__ */ jsx3("span", { children: model.maker })
842
756
  ] })
843
757
  ] }),
844
- /* @__PURE__ */ jsxs3("div", { className: "flex shrink-0 flex-col items-end gap-1", children: [
845
- model.isPrimary && /* @__PURE__ */ jsx4("span", { className: "rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-foreground/70", children: "Default" }),
846
- model.isPremium && /* @__PURE__ */ jsx4("span", { className: "rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-foreground/70", children: "Premium" }),
847
- model.isDeprecated && !model.retiredAt && /* @__PURE__ */ jsx4(
758
+ /* @__PURE__ */ jsxs2("div", { className: "flex shrink-0 flex-col items-end gap-1", children: [
759
+ model.isPrimary && /* @__PURE__ */ jsx3("span", { className: "rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-foreground/70", children: "Default" }),
760
+ model.isPremium && /* @__PURE__ */ jsx3("span", { className: "rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-foreground/70", children: "Premium" }),
761
+ model.isDeprecated && !model.retiredAt && /* @__PURE__ */ jsx3(
848
762
  "span",
849
763
  {
850
764
  className: "rounded bg-destructive/15 px-1.5 py-0.5 text-[10px] font-medium text-destructive-ink",
@@ -852,7 +766,7 @@ function ModelDetailCard({
852
766
  children: "Deprecated"
853
767
  }
854
768
  ),
855
- model.retiredAt && /* @__PURE__ */ jsx4(
769
+ model.retiredAt && /* @__PURE__ */ jsx3(
856
770
  "span",
857
771
  {
858
772
  className: "rounded bg-destructive/15 px-1.5 py-0.5 text-[10px] font-medium text-destructive-ink",
@@ -862,19 +776,19 @@ function ModelDetailCard({
862
776
  )
863
777
  ] })
864
778
  ] }),
865
- model.description && /* @__PURE__ */ jsx4("p", { className: "mt-2 line-clamp-3 text-xs text-muted-foreground", children: model.description }),
866
- /* @__PURE__ */ jsxs3("dl", { className: "mt-3 space-y-2 text-xs", children: [
867
- /* @__PURE__ */ jsxs3("div", { children: [
868
- /* @__PURE__ */ jsx4("dt", { className: "mb-0.5 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Input" }),
869
- /* @__PURE__ */ jsx4("dd", { children: /* @__PURE__ */ jsx4(ModalityIcons, { list: model.input }) })
779
+ model.description && /* @__PURE__ */ jsx3("p", { className: "mt-2 line-clamp-3 text-xs text-muted-foreground", children: model.description }),
780
+ /* @__PURE__ */ jsxs2("dl", { className: "mt-3 space-y-2 text-xs", children: [
781
+ /* @__PURE__ */ jsxs2("div", { children: [
782
+ /* @__PURE__ */ jsx3("dt", { className: "mb-0.5 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Input" }),
783
+ /* @__PURE__ */ jsx3("dd", { children: /* @__PURE__ */ jsx3(ModalityIcons, { list: model.input }) })
870
784
  ] }),
871
- /* @__PURE__ */ jsxs3("div", { children: [
872
- /* @__PURE__ */ jsx4("dt", { className: "mb-0.5 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Output" }),
873
- /* @__PURE__ */ jsx4("dd", { children: /* @__PURE__ */ jsx4(ModalityIcons, { list: model.output }) })
785
+ /* @__PURE__ */ jsxs2("div", { children: [
786
+ /* @__PURE__ */ jsx3("dt", { className: "mb-0.5 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Output" }),
787
+ /* @__PURE__ */ jsx3("dd", { children: /* @__PURE__ */ jsx3(ModalityIcons, { list: model.output }) })
874
788
  ] }),
875
- model.features.buckets.length > 0 && /* @__PURE__ */ jsxs3("div", { children: [
876
- /* @__PURE__ */ jsx4("dt", { className: "mb-0.5 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Features" }),
877
- /* @__PURE__ */ jsx4("dd", { className: "flex flex-wrap gap-1", children: model.features.buckets.map((b) => /* @__PURE__ */ jsx4(
789
+ model.features.buckets.length > 0 && /* @__PURE__ */ jsxs2("div", { children: [
790
+ /* @__PURE__ */ jsx3("dt", { className: "mb-0.5 text-[10px] uppercase tracking-wide text-muted-foreground", children: "Features" }),
791
+ /* @__PURE__ */ jsx3("dd", { className: "flex flex-wrap gap-1", children: model.features.buckets.map((b) => /* @__PURE__ */ jsx3(
878
792
  "span",
879
793
  {
880
794
  className: "whitespace-nowrap rounded border border-border px-1.5 py-0.5 text-[10px] text-foreground/80",
@@ -884,10 +798,10 @@ function ModelDetailCard({
884
798
  b
885
799
  )) })
886
800
  ] }),
887
- /* @__PURE__ */ jsxs3("div", { className: "grid grid-cols-2 gap-2", children: [
888
- /* @__PURE__ */ jsxs3("div", { className: "col-span-2", children: [
889
- /* @__PURE__ */ jsx4("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Points / 1M tokens" }),
890
- /* @__PURE__ */ jsx4(
801
+ /* @__PURE__ */ jsxs2("div", { className: "grid grid-cols-2 gap-2", children: [
802
+ /* @__PURE__ */ jsxs2("div", { className: "col-span-2", children: [
803
+ /* @__PURE__ */ jsx3("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Points / 1M tokens" }),
804
+ /* @__PURE__ */ jsx3(
891
805
  "dd",
892
806
  {
893
807
  className: "whitespace-nowrap text-sm font-semibold tabular-nums text-foreground",
@@ -896,31 +810,31 @@ function ModelDetailCard({
896
810
  }
897
811
  )
898
812
  ] }),
899
- /* @__PURE__ */ jsxs3("div", { children: [
900
- /* @__PURE__ */ jsx4("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Context window" }),
901
- /* @__PURE__ */ jsx4("dd", { className: "tabular-nums text-foreground/80", children: model.contextWindow?.toLocaleString() ?? "\u2014" })
813
+ /* @__PURE__ */ jsxs2("div", { children: [
814
+ /* @__PURE__ */ jsx3("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Context window" }),
815
+ /* @__PURE__ */ jsx3("dd", { className: "tabular-nums text-foreground/80", children: model.contextWindow?.toLocaleString() ?? "\u2014" })
902
816
  ] }),
903
- /* @__PURE__ */ jsxs3("div", { children: [
904
- /* @__PURE__ */ jsx4("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Max output" }),
905
- /* @__PURE__ */ jsx4("dd", { className: "tabular-nums text-foreground/80", children: model.maxTokens?.toLocaleString() ?? "\u2014" })
817
+ /* @__PURE__ */ jsxs2("div", { children: [
818
+ /* @__PURE__ */ jsx3("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Max output" }),
819
+ /* @__PURE__ */ jsx3("dd", { className: "tabular-nums text-foreground/80", children: model.maxTokens?.toLocaleString() ?? "\u2014" })
906
820
  ] }),
907
- /* @__PURE__ */ jsxs3("div", { children: [
908
- /* @__PURE__ */ jsx4("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Cost" }),
909
- /* @__PURE__ */ jsx4("dd", { children: /* @__PURE__ */ jsx4(CostTier, { tier }) })
821
+ /* @__PURE__ */ jsxs2("div", { children: [
822
+ /* @__PURE__ */ jsx3("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Cost" }),
823
+ /* @__PURE__ */ jsx3("dd", { children: /* @__PURE__ */ jsx3(CostTier, { tier }) })
910
824
  ] }),
911
- /* @__PURE__ */ jsxs3("div", { children: [
912
- /* @__PURE__ */ jsx4("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Speed" }),
913
- /* @__PURE__ */ jsx4("dd", { children: /* @__PURE__ */ jsx4(SpeedDots, { value: model.speedRating }) })
825
+ /* @__PURE__ */ jsxs2("div", { children: [
826
+ /* @__PURE__ */ jsx3("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Speed" }),
827
+ /* @__PURE__ */ jsx3("dd", { children: /* @__PURE__ */ jsx3(SpeedDots, { value: model.speedRating }) })
914
828
  ] }),
915
- /* @__PURE__ */ jsxs3("div", { children: [
916
- /* @__PURE__ */ jsx4("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Interaction" }),
917
- /* @__PURE__ */ jsx4("dd", { className: "text-foreground/80", children: INTERACTION_LABEL[model.interaction] })
829
+ /* @__PURE__ */ jsxs2("div", { children: [
830
+ /* @__PURE__ */ jsx3("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "Interaction" }),
831
+ /* @__PURE__ */ jsx3("dd", { className: "text-foreground/80", children: INTERACTION_LABEL[model.interaction] })
918
832
  ] })
919
833
  ] }),
920
- model.tiers[0]?.servedVia && /* @__PURE__ */ jsxs3("div", { children: [
921
- /* @__PURE__ */ jsx4("dt", { className: "mb-0.5 text-[10px] uppercase tracking-wide text-muted-foreground", children: model.tiers.length === 1 ? SERVICE_LABEL : SERVICE_LABEL_PLURAL }),
922
- /* @__PURE__ */ jsx4("dd", { className: "flex flex-wrap gap-1", children: onPinOffering ? /* @__PURE__ */ jsxs3(Fragment2, { children: [
923
- /* @__PURE__ */ jsx4(
834
+ model.tiers[0]?.servedVia && /* @__PURE__ */ jsxs2("div", { children: [
835
+ /* @__PURE__ */ jsx3("dt", { className: "mb-0.5 text-[10px] uppercase tracking-wide text-muted-foreground", children: model.tiers.length === 1 ? SERVICE_LABEL : SERVICE_LABEL_PLURAL }),
836
+ /* @__PURE__ */ jsx3("dd", { className: "flex flex-wrap gap-1", children: onPinOffering ? /* @__PURE__ */ jsxs2(Fragment2, { children: [
837
+ /* @__PURE__ */ jsx3(
924
838
  "button",
925
839
  {
926
840
  type: "button",
@@ -938,7 +852,7 @@ function ModelDetailCard({
938
852
  ),
939
853
  model.tiers.map((t) => {
940
854
  const pinned = pinnedHere(t);
941
- return /* @__PURE__ */ jsx4(
855
+ return /* @__PURE__ */ jsx3(
942
856
  "button",
943
857
  {
944
858
  type: "button",
@@ -959,7 +873,7 @@ function ModelDetailCard({
959
873
  t.offeringId
960
874
  );
961
875
  })
962
- ] }) : model.tiers.map((t, i) => /* @__PURE__ */ jsx4(
876
+ ] }) : model.tiers.map((t, i) => /* @__PURE__ */ jsx3(
963
877
  "span",
964
878
  {
965
879
  className: i === 0 ? SERVICE_CHIP_SELECTED : SERVICE_CHIP_UNSELECTED,
@@ -969,18 +883,18 @@ function ModelDetailCard({
969
883
  t.offeringId
970
884
  )) })
971
885
  ] }),
972
- model.multilingual && /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-1 text-foreground/80", children: [
973
- /* @__PURE__ */ jsx4(LanguagesIcon, { className: "h-3.5 w-3.5" }),
974
- /* @__PURE__ */ jsx4("span", { children: "Multilingual" })
886
+ model.multilingual && /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-1 text-foreground/80", children: [
887
+ /* @__PURE__ */ jsx3(LanguagesIcon, { className: "h-3.5 w-3.5" }),
888
+ /* @__PURE__ */ jsx3("span", { children: "Multilingual" })
975
889
  ] }),
976
- model.features.raw.length > 0 && /* @__PURE__ */ jsxs3("div", { children: [
977
- /* @__PURE__ */ jsx4("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "All capability flags" }),
978
- /* @__PURE__ */ jsx4("dd", { className: "font-mono text-[10px] leading-relaxed text-muted-foreground/80", children: model.features.raw.join(", ") })
890
+ model.features.raw.length > 0 && /* @__PURE__ */ jsxs2("div", { children: [
891
+ /* @__PURE__ */ jsx3("dt", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: "All capability flags" }),
892
+ /* @__PURE__ */ jsx3("dd", { className: "font-mono text-[10px] leading-relaxed text-muted-foreground/80", children: model.features.raw.join(", ") })
979
893
  ] })
980
894
  ] }),
981
- includeAdminSection && variant === "admin" && /* @__PURE__ */ jsx4("div", { className: "mt-3 rounded-md border border-border", children: /* @__PURE__ */ jsx4(AdminOfferingsSection, { model }) })
895
+ includeAdminSection && variant === "admin" && /* @__PURE__ */ jsx3("div", { className: "mt-3 rounded-md border border-border", children: /* @__PURE__ */ jsx3(AdminOfferingsSection, { model }) })
982
896
  ] }),
983
- /* @__PURE__ */ jsx4("div", { className: "shrink-0 border-t border-border p-3", children: /* @__PURE__ */ jsx4(
897
+ /* @__PURE__ */ jsx3("div", { className: "shrink-0 border-t border-border p-3", children: /* @__PURE__ */ jsx3(
984
898
  "button",
985
899
  {
986
900
  type: "button",
@@ -996,13 +910,13 @@ function DelayedHint({
996
910
  label,
997
911
  children
998
912
  }) {
999
- return /* @__PURE__ */ jsxs3(Tooltip, { children: [
1000
- /* @__PURE__ */ jsx4(TooltipTrigger, { asChild: true, children }),
1001
- /* @__PURE__ */ jsx4(TooltipContent, { side: "top", sideOffset: 6, className: "max-w-64 text-xs", children: label })
913
+ return /* @__PURE__ */ jsxs2(Tooltip, { children: [
914
+ /* @__PURE__ */ jsx3(TooltipTrigger, { asChild: true, children }),
915
+ /* @__PURE__ */ jsx3(TooltipContent, { side: "top", sideOffset: 6, className: "max-w-64 text-xs", children: label })
1002
916
  ] });
1003
917
  }
1004
918
  function ChipRow({ children }) {
1005
- return /* @__PURE__ */ jsx4("div", { className: "flex flex-nowrap gap-1 overflow-x-auto pb-0.5", children });
919
+ return /* @__PURE__ */ jsx3("div", { className: "flex flex-nowrap gap-1 overflow-x-auto pb-0.5", children });
1006
920
  }
1007
921
  function ChipToggle({
1008
922
  active,
@@ -1010,7 +924,7 @@ function ChipToggle({
1010
924
  children,
1011
925
  className
1012
926
  }) {
1013
- return /* @__PURE__ */ jsx4(
927
+ return /* @__PURE__ */ jsx3(
1014
928
  "button",
1015
929
  {
1016
930
  type: "button",
@@ -1029,7 +943,7 @@ function MakerFilterButton({
1029
943
  active,
1030
944
  onClick
1031
945
  }) {
1032
- return /* @__PURE__ */ jsxs3(
946
+ return /* @__PURE__ */ jsxs2(
1033
947
  "button",
1034
948
  {
1035
949
  type: "button",
@@ -1041,8 +955,8 @@ function MakerFilterButton({
1041
955
  active ? "border-primary bg-primary/10 text-foreground" : "border-border text-muted-foreground hover:text-foreground"
1042
956
  ),
1043
957
  children: [
1044
- /* @__PURE__ */ jsx4(MakerBrandGlyph, { maker, colored: true, className: "h-4 w-4 shrink-0" }),
1045
- /* @__PURE__ */ jsx4(DelayedHint, { label: maker, children: /* @__PURE__ */ jsx4("span", { className: "min-w-0 truncate text-[11px] font-medium leading-tight", children: maker }) })
958
+ /* @__PURE__ */ jsx3(MakerBrandGlyph, { maker, colored: true, className: "h-4 w-4 shrink-0" }),
959
+ /* @__PURE__ */ jsx3(DelayedHint, { label: maker, children: /* @__PURE__ */ jsx3("span", { className: "min-w-0 truncate text-[11px] font-medium leading-tight", children: maker }) })
1046
960
  ]
1047
961
  }
1048
962
  );
@@ -1052,7 +966,7 @@ function ServiceFilterButton({
1052
966
  active,
1053
967
  onClick
1054
968
  }) {
1055
- return /* @__PURE__ */ jsxs3(
969
+ return /* @__PURE__ */ jsxs2(
1056
970
  "button",
1057
971
  {
1058
972
  type: "button",
@@ -1064,8 +978,8 @@ function ServiceFilterButton({
1064
978
  active ? "border-primary bg-primary/10 text-foreground" : "border-border text-muted-foreground hover:text-foreground"
1065
979
  ),
1066
980
  children: [
1067
- /* @__PURE__ */ jsx4(ServiceBrandGlyph, { service, className: "h-4 w-4 shrink-0" }),
1068
- /* @__PURE__ */ jsx4(DelayedHint, { label: service, children: /* @__PURE__ */ jsx4("span", { className: "min-w-0 truncate text-[11px] font-medium leading-tight", children: service }) })
981
+ /* @__PURE__ */ jsx3(ServiceBrandGlyph, { service, className: "h-4 w-4 shrink-0" }),
982
+ /* @__PURE__ */ jsx3(DelayedHint, { label: service, children: /* @__PURE__ */ jsx3("span", { className: "min-w-0 truncate text-[11px] font-medium leading-tight", children: service }) })
1069
983
  ]
1070
984
  }
1071
985
  );
@@ -1076,11 +990,11 @@ function TriStateChips({
1076
990
  yesLabel,
1077
991
  noLabel
1078
992
  }) {
1079
- return /* @__PURE__ */ jsx4("div", { className: "flex flex-wrap gap-1", children: [
993
+ return /* @__PURE__ */ jsx3("div", { className: "flex flex-wrap gap-1", children: [
1080
994
  ["any", "Any"],
1081
995
  ["yes", yesLabel],
1082
996
  ["no", noLabel]
1083
- ].map(([key, label]) => /* @__PURE__ */ jsx4(
997
+ ].map(([key, label]) => /* @__PURE__ */ jsx3(
1084
998
  ChipToggle,
1085
999
  {
1086
1000
  active: value === key,
@@ -1094,8 +1008,8 @@ function FilterSection({
1094
1008
  label,
1095
1009
  children
1096
1010
  }) {
1097
- return /* @__PURE__ */ jsxs3("div", { children: [
1098
- /* @__PURE__ */ jsx4("div", { className: "mb-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: label }),
1011
+ return /* @__PURE__ */ jsxs2("div", { children: [
1012
+ /* @__PURE__ */ jsx3("div", { className: "mb-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: label }),
1099
1013
  children
1100
1014
  ] });
1101
1015
  }
@@ -1140,8 +1054,8 @@ function FiltersPanel({
1140
1054
  { key: "premium", label: "Premium" }
1141
1055
  ] : []
1142
1056
  ];
1143
- const setChip = (kind) => /* @__PURE__ */ jsxs3("div", { className: "flex flex-wrap gap-1", children: [
1144
- /* @__PURE__ */ jsx4(
1057
+ const setChip = (kind) => /* @__PURE__ */ jsxs2("div", { className: "flex flex-wrap gap-1", children: [
1058
+ /* @__PURE__ */ jsx3(
1145
1059
  ChipToggle,
1146
1060
  {
1147
1061
  active: filters[kind].size === 0,
@@ -1149,7 +1063,7 @@ function FiltersPanel({
1149
1063
  children: "Any"
1150
1064
  }
1151
1065
  ),
1152
- (kind === "makers" ? makerOptions : kind === "services" ? serviceOptions : kind === "vendors" ? vendorOptions : apiOptions).map((v) => /* @__PURE__ */ jsx4(
1066
+ (kind === "makers" ? makerOptions : kind === "services" ? serviceOptions : kind === "vendors" ? vendorOptions : apiOptions).map((v) => /* @__PURE__ */ jsx3(
1153
1067
  ChipToggle,
1154
1068
  {
1155
1069
  active: filters[kind].has(v),
@@ -1159,9 +1073,9 @@ function FiltersPanel({
1159
1073
  v
1160
1074
  ))
1161
1075
  ] });
1162
- return /* @__PURE__ */ jsxs3("div", { className: "flex h-full flex-col text-xs", children: [
1163
- /* @__PURE__ */ jsxs3("div", { className: "min-h-0 flex-1 space-y-3 overflow-y-auto p-3 pb-4", children: [
1164
- /* @__PURE__ */ jsx4(FilterSection, { label: "Sort by", children: /* @__PURE__ */ jsx4(ChipRow, { children: sortOptions.map((o) => /* @__PURE__ */ jsx4(
1076
+ return /* @__PURE__ */ jsxs2("div", { className: "flex h-full flex-col text-xs", children: [
1077
+ /* @__PURE__ */ jsxs2("div", { className: "min-h-0 flex-1 space-y-3 overflow-y-auto p-3 pb-4", children: [
1078
+ /* @__PURE__ */ jsx3(FilterSection, { label: "Sort by", children: /* @__PURE__ */ jsx3(ChipRow, { children: sortOptions.map((o) => /* @__PURE__ */ jsx3(
1165
1079
  ChipToggle,
1166
1080
  {
1167
1081
  active: filters.sort === o.key,
@@ -1170,8 +1084,8 @@ function FiltersPanel({
1170
1084
  },
1171
1085
  o.key
1172
1086
  )) }) }),
1173
- /* @__PURE__ */ jsx4(FilterSection, { label: "Input", children: /* @__PURE__ */ jsxs3(ChipRow, { children: [
1174
- /* @__PURE__ */ jsx4(
1087
+ /* @__PURE__ */ jsx3(FilterSection, { label: "Input", children: /* @__PURE__ */ jsxs2(ChipRow, { children: [
1088
+ /* @__PURE__ */ jsx3(
1175
1089
  ChipToggle,
1176
1090
  {
1177
1091
  active: filters.input.size === 0,
@@ -1179,18 +1093,18 @@ function FiltersPanel({
1179
1093
  children: "Any"
1180
1094
  }
1181
1095
  ),
1182
- INPUT_MODALITIES.map((m) => /* @__PURE__ */ jsx4(
1096
+ INPUT_MODALITIES.map((m) => /* @__PURE__ */ jsx3(
1183
1097
  ChipToggle,
1184
1098
  {
1185
1099
  active: filters.input.has(m),
1186
1100
  onClick: () => toggleModality("input", m),
1187
- children: /* @__PURE__ */ jsx4("span", { className: "capitalize", children: m })
1101
+ children: /* @__PURE__ */ jsx3("span", { className: "capitalize", children: m })
1188
1102
  },
1189
1103
  m
1190
1104
  ))
1191
1105
  ] }) }),
1192
- /* @__PURE__ */ jsx4(FilterSection, { label: "Output", children: /* @__PURE__ */ jsxs3(ChipRow, { children: [
1193
- /* @__PURE__ */ jsx4(
1106
+ /* @__PURE__ */ jsx3(FilterSection, { label: "Output", children: /* @__PURE__ */ jsxs2(ChipRow, { children: [
1107
+ /* @__PURE__ */ jsx3(
1194
1108
  ChipToggle,
1195
1109
  {
1196
1110
  active: filters.output.size === 0,
@@ -1198,18 +1112,18 @@ function FiltersPanel({
1198
1112
  children: "Any"
1199
1113
  }
1200
1114
  ),
1201
- OUTPUT_MODALITIES.map((m) => /* @__PURE__ */ jsx4(
1115
+ OUTPUT_MODALITIES.map((m) => /* @__PURE__ */ jsx3(
1202
1116
  ChipToggle,
1203
1117
  {
1204
1118
  active: filters.output.has(m),
1205
1119
  onClick: () => toggleModality("output", m),
1206
- children: /* @__PURE__ */ jsx4("span", { className: "capitalize", children: m })
1120
+ children: /* @__PURE__ */ jsx3("span", { className: "capitalize", children: m })
1207
1121
  },
1208
1122
  m
1209
1123
  ))
1210
1124
  ] }) }),
1211
- variant === "admin" && /* @__PURE__ */ jsxs3(Fragment2, { children: [
1212
- /* @__PURE__ */ jsx4(FilterSection, { label: "Deprecated", children: /* @__PURE__ */ jsx4(
1125
+ variant === "admin" && /* @__PURE__ */ jsxs2(Fragment2, { children: [
1126
+ /* @__PURE__ */ jsx3(FilterSection, { label: "Deprecated", children: /* @__PURE__ */ jsx3(
1213
1127
  TriStateChips,
1214
1128
  {
1215
1129
  value: filters.deprecated,
@@ -1218,7 +1132,7 @@ function FiltersPanel({
1218
1132
  noLabel: "Active only"
1219
1133
  }
1220
1134
  ) }),
1221
- /* @__PURE__ */ jsx4(FilterSection, { label: "Availability", children: /* @__PURE__ */ jsx4(
1135
+ /* @__PURE__ */ jsx3(FilterSection, { label: "Availability", children: /* @__PURE__ */ jsx3(
1222
1136
  TriStateChips,
1223
1137
  {
1224
1138
  value: filters.availability,
@@ -1227,7 +1141,7 @@ function FiltersPanel({
1227
1141
  noLabel: "Unavailable"
1228
1142
  }
1229
1143
  ) }),
1230
- /* @__PURE__ */ jsx4(FilterSection, { label: "Premium", children: /* @__PURE__ */ jsx4(
1144
+ /* @__PURE__ */ jsx3(FilterSection, { label: "Premium", children: /* @__PURE__ */ jsx3(
1231
1145
  TriStateChips,
1232
1146
  {
1233
1147
  value: filters.premium,
@@ -1236,11 +1150,11 @@ function FiltersPanel({
1236
1150
  noLabel: "Standard only"
1237
1151
  }
1238
1152
  ) }),
1239
- /* @__PURE__ */ jsx4(FilterSection, { label: "Vendor", children: setChip("vendors") }),
1240
- /* @__PURE__ */ jsx4(FilterSection, { label: "API", children: setChip("apis") })
1153
+ /* @__PURE__ */ jsx3(FilterSection, { label: "Vendor", children: setChip("vendors") }),
1154
+ /* @__PURE__ */ jsx3(FilterSection, { label: "API", children: setChip("apis") })
1241
1155
  ] }),
1242
- /* @__PURE__ */ jsx4(FilterSection, { label: "Maker", children: /* @__PURE__ */ jsxs3("div", { className: "grid grid-cols-3 gap-1", children: [
1243
- /* @__PURE__ */ jsx4(
1156
+ /* @__PURE__ */ jsx3(FilterSection, { label: "Maker", children: /* @__PURE__ */ jsxs2("div", { className: "grid grid-cols-3 gap-1", children: [
1157
+ /* @__PURE__ */ jsx3(
1244
1158
  ChipToggle,
1245
1159
  {
1246
1160
  active: filters.makers.size === 0,
@@ -1249,7 +1163,7 @@ function FiltersPanel({
1249
1163
  children: "Any"
1250
1164
  }
1251
1165
  ),
1252
- makerOptions.map((maker) => /* @__PURE__ */ jsx4(
1166
+ makerOptions.map((maker) => /* @__PURE__ */ jsx3(
1253
1167
  MakerFilterButton,
1254
1168
  {
1255
1169
  maker,
@@ -1259,8 +1173,8 @@ function FiltersPanel({
1259
1173
  maker
1260
1174
  ))
1261
1175
  ] }) }),
1262
- /* @__PURE__ */ jsx4(FilterSection, { label: SERVICE_LABEL, children: /* @__PURE__ */ jsxs3("div", { className: "grid grid-cols-3 gap-1", children: [
1263
- /* @__PURE__ */ jsx4(
1176
+ /* @__PURE__ */ jsx3(FilterSection, { label: SERVICE_LABEL, children: /* @__PURE__ */ jsxs2("div", { className: "grid grid-cols-3 gap-1", children: [
1177
+ /* @__PURE__ */ jsx3(
1264
1178
  ChipToggle,
1265
1179
  {
1266
1180
  active: filters.services.size === 0,
@@ -1269,7 +1183,7 @@ function FiltersPanel({
1269
1183
  children: "Any"
1270
1184
  }
1271
1185
  ),
1272
- serviceOptions.map((service) => /* @__PURE__ */ jsx4(
1186
+ serviceOptions.map((service) => /* @__PURE__ */ jsx3(
1273
1187
  ServiceFilterButton,
1274
1188
  {
1275
1189
  service,
@@ -1279,7 +1193,7 @@ function FiltersPanel({
1279
1193
  service
1280
1194
  ))
1281
1195
  ] }) }),
1282
- /* @__PURE__ */ jsx4(FilterSection, { label: "Features", children: /* @__PURE__ */ jsx4("div", { className: "flex flex-wrap gap-1", children: FEATURE_BUCKET_ORDER.map((b) => /* @__PURE__ */ jsx4(
1196
+ /* @__PURE__ */ jsx3(FilterSection, { label: "Features", children: /* @__PURE__ */ jsx3("div", { className: "flex flex-wrap gap-1", children: FEATURE_BUCKET_ORDER.map((b) => /* @__PURE__ */ jsx3(
1283
1197
  ChipToggle,
1284
1198
  {
1285
1199
  active: filters.features.has(b),
@@ -1288,8 +1202,8 @@ function FiltersPanel({
1288
1202
  },
1289
1203
  b
1290
1204
  )) }) }),
1291
- /* @__PURE__ */ jsx4(FilterSection, { label: "Interaction", children: /* @__PURE__ */ jsx4("div", { className: "flex flex-wrap gap-1", children: ["any", "turn", "single", "extraction", "realtime"].map(
1292
- (i) => /* @__PURE__ */ jsx4(
1205
+ /* @__PURE__ */ jsx3(FilterSection, { label: "Interaction", children: /* @__PURE__ */ jsx3("div", { className: "flex flex-wrap gap-1", children: ["any", "turn", "single", "extraction", "realtime"].map(
1206
+ (i) => /* @__PURE__ */ jsx3(
1293
1207
  ChipToggle,
1294
1208
  {
1295
1209
  active: filters.interaction === i,
@@ -1300,20 +1214,20 @@ function FiltersPanel({
1300
1214
  )
1301
1215
  ) }) })
1302
1216
  ] }),
1303
- /* @__PURE__ */ jsxs3("div", { className: "z-10 flex shrink-0 flex-nowrap items-center gap-1 border-t border-border bg-popover px-3 py-2", children: [
1304
- /* @__PURE__ */ jsx4(
1217
+ /* @__PURE__ */ jsxs2("div", { className: "z-10 flex shrink-0 flex-nowrap items-center gap-1 border-t border-border bg-popover px-3 py-2", children: [
1218
+ /* @__PURE__ */ jsx3(
1305
1219
  ChipToggle,
1306
1220
  {
1307
1221
  active: filters.multilingualOnly,
1308
1222
  onClick: () => setFilters((f) => ({ ...f, multilingualOnly: !f.multilingualOnly })),
1309
1223
  className: "flex-1 justify-center",
1310
- children: /* @__PURE__ */ jsxs3("span", { className: "inline-flex items-center gap-1", children: [
1311
- /* @__PURE__ */ jsx4(LanguagesIcon, { className: "h-3 w-3" }),
1224
+ children: /* @__PURE__ */ jsxs2("span", { className: "inline-flex items-center gap-1", children: [
1225
+ /* @__PURE__ */ jsx3(LanguagesIcon, { className: "h-3 w-3" }),
1312
1226
  " Multilingual"
1313
1227
  ] })
1314
1228
  }
1315
1229
  ),
1316
- variant === "user" && /* @__PURE__ */ jsx4(
1230
+ variant === "user" && /* @__PURE__ */ jsx3(
1317
1231
  ChipToggle,
1318
1232
  {
1319
1233
  active: filters.includeDeprecated,
@@ -1344,7 +1258,7 @@ function ModelRow({
1344
1258
  const retired = model.retiredAt != null;
1345
1259
  const retiredTitle = retired ? `Retired ${model.retiredAt?.slice(0, 10)} \u2014 the provider no longer serves this model, so it cannot be selected.` : locked ? TOP_TIER_LOCKED_TITLE : void 0;
1346
1260
  const blocked = retired || locked;
1347
- return /* @__PURE__ */ jsxs3(
1261
+ return /* @__PURE__ */ jsxs2(
1348
1262
  "div",
1349
1263
  {
1350
1264
  role: "button",
@@ -1366,7 +1280,7 @@ function ModelRow({
1366
1280
  selected && "bg-muted"
1367
1281
  ),
1368
1282
  children: [
1369
- /* @__PURE__ */ jsx4(
1283
+ /* @__PURE__ */ jsx3(
1370
1284
  "button",
1371
1285
  {
1372
1286
  type: "button",
@@ -1380,20 +1294,20 @@ function ModelRow({
1380
1294
  "flex h-4 w-4 items-center justify-center rounded transition-colors",
1381
1295
  isFavorite ? "text-amber-400" : "text-muted-foreground/30 hover:text-muted-foreground"
1382
1296
  ),
1383
- children: /* @__PURE__ */ jsx4(StarIcon, { className: cn("h-3 w-3", isFavorite && "fill-amber-400") })
1297
+ children: /* @__PURE__ */ jsx3(StarIcon, { className: cn("h-3 w-3", isFavorite && "fill-amber-400") })
1384
1298
  }
1385
1299
  ),
1386
- /* @__PURE__ */ jsx4(
1300
+ /* @__PURE__ */ jsx3(
1387
1301
  "span",
1388
1302
  {
1389
1303
  className: "flex w-5 justify-center",
1390
1304
  title: model.maker ?? void 0,
1391
- children: /* @__PURE__ */ jsx4(MakerBrandGlyph, { maker: model.maker, colored: true, className: "h-3.5 w-3.5" })
1305
+ children: /* @__PURE__ */ jsx3(MakerBrandGlyph, { maker: model.maker, colored: true, className: "h-3.5 w-3.5" })
1392
1306
  }
1393
1307
  ),
1394
- /* @__PURE__ */ jsxs3("span", { className: "flex min-w-0 items-center gap-1.5", children: [
1395
- /* @__PURE__ */ jsx4(DelayedHint, { label: model.name, children: /* @__PURE__ */ jsx4("span", { className: "truncate text-xs font-medium text-foreground", children: model.name }) }),
1396
- isDecisionModelCapability(model) && /* @__PURE__ */ jsx4(
1308
+ /* @__PURE__ */ jsxs2("span", { className: "flex min-w-0 items-center gap-1.5", children: [
1309
+ /* @__PURE__ */ jsx3(DelayedHint, { label: model.name, children: /* @__PURE__ */ jsx3("span", { className: "truncate text-xs font-medium text-foreground", children: model.name }) }),
1310
+ isDecisionModelCapability(model) && /* @__PURE__ */ jsx3(
1397
1311
  "span",
1398
1312
  {
1399
1313
  className: "shrink-0 rounded border border-primary/40 bg-primary/10 px-1 text-[9px] font-medium text-foreground/80",
@@ -1401,7 +1315,7 @@ function ModelRow({
1401
1315
  children: "decision"
1402
1316
  }
1403
1317
  ),
1404
- model.isDeprecated && !retired && /* @__PURE__ */ jsx4(
1318
+ model.isDeprecated && !retired && /* @__PURE__ */ jsx3(
1405
1319
  "span",
1406
1320
  {
1407
1321
  className: "shrink-0 rounded bg-destructive/15 px-1 text-[9px] text-destructive-ink",
@@ -1409,7 +1323,7 @@ function ModelRow({
1409
1323
  children: "dep"
1410
1324
  }
1411
1325
  ),
1412
- retired && /* @__PURE__ */ jsx4(
1326
+ retired && /* @__PURE__ */ jsx3(
1413
1327
  "span",
1414
1328
  {
1415
1329
  className: "shrink-0 rounded bg-destructive/15 px-1 text-[9px] text-destructive-ink",
@@ -1417,7 +1331,7 @@ function ModelRow({
1417
1331
  children: "retired"
1418
1332
  }
1419
1333
  ),
1420
- unavailable && /* @__PURE__ */ jsx4(
1334
+ unavailable && /* @__PURE__ */ jsx3(
1421
1335
  "span",
1422
1336
  {
1423
1337
  className: "shrink-0 rounded bg-destructive/15 px-1 text-[9px] text-destructive-ink",
@@ -1425,14 +1339,14 @@ function ModelRow({
1425
1339
  children: "off"
1426
1340
  }
1427
1341
  ),
1428
- classTier ? /* @__PURE__ */ jsx4(
1342
+ classTier ? /* @__PURE__ */ jsx3(
1429
1343
  "span",
1430
1344
  {
1431
1345
  className: "shrink-0 rounded border border-primary/40 bg-primary/10 px-1 text-[9px] font-medium text-foreground/80",
1432
1346
  title: `Runs on ${classTier.servedVia}`,
1433
1347
  children: classTier.servedVia
1434
1348
  }
1435
- ) : model.tiers.length > 1 && /* @__PURE__ */ jsx4(
1349
+ ) : model.tiers.length > 1 && /* @__PURE__ */ jsx3(
1436
1350
  "span",
1437
1351
  {
1438
1352
  className: "shrink-0 rounded border border-primary/40 bg-primary/10 px-1 text-[9px] font-medium text-foreground/80",
@@ -1441,19 +1355,19 @@ function ModelRow({
1441
1355
  }
1442
1356
  )
1443
1357
  ] }),
1444
- /* @__PURE__ */ jsx4(SpeedCell, { value: model.speedRating }),
1445
- /* @__PURE__ */ jsx4(
1358
+ /* @__PURE__ */ jsx3(SpeedCell, { value: model.speedRating }),
1359
+ /* @__PURE__ */ jsx3(
1446
1360
  DelayedHint,
1447
1361
  {
1448
1362
  label: model.contextWindow == null ? "No context window listed" : `Context window ${formatCount(model.contextWindow)} tokens`,
1449
- children: /* @__PURE__ */ jsx4("span", { className: "block w-12 whitespace-nowrap text-right font-mono text-[11px] tabular-nums text-foreground/80", children: model.contextWindow == null ? "\u2014" : fmtPointsCompact(model.contextWindow) })
1363
+ children: /* @__PURE__ */ jsx3("span", { className: "block w-12 whitespace-nowrap text-right font-mono text-[11px] tabular-nums text-foreground/80", children: model.contextWindow == null ? "\u2014" : fmtPointsCompact(model.contextWindow) })
1450
1364
  }
1451
1365
  ),
1452
- /* @__PURE__ */ jsx4(
1366
+ /* @__PURE__ */ jsx3(
1453
1367
  DelayedHint,
1454
1368
  {
1455
1369
  label: tier == null ? "No relative cost rating yet" : `Relative cost ${tier.replace("+", "")}${tier.endsWith("+") ? "+" : ""} \u2014 more $ is more expensive`,
1456
- children: /* @__PURE__ */ jsx4("span", { className: "block w-[2.75rem] text-right", children: /* @__PURE__ */ jsx4(CostTier, { tier }) })
1370
+ children: /* @__PURE__ */ jsx3("span", { className: "block w-[2.75rem] text-right", children: /* @__PURE__ */ jsx3(CostTier, { tier }) })
1457
1371
  }
1458
1372
  )
1459
1373
  ]
@@ -1463,7 +1377,7 @@ function ModelRow({
1463
1377
  function LocalModelRow({ model, selected, onSelect }) {
1464
1378
  const unusable = model.unusable ?? null;
1465
1379
  const dim = model.needsMoreMemory === true;
1466
- return /* @__PURE__ */ jsxs3(
1380
+ return /* @__PURE__ */ jsxs2(
1467
1381
  "div",
1468
1382
  {
1469
1383
  role: "button",
@@ -1486,12 +1400,12 @@ function LocalModelRow({ model, selected, onSelect }) {
1486
1400
  selected && "bg-muted"
1487
1401
  ),
1488
1402
  children: [
1489
- /* @__PURE__ */ jsx4("span", { className: "w-4" }),
1490
- /* @__PURE__ */ jsx4("span", { className: "flex w-5 justify-center", title: model.maker ?? void 0, children: /* @__PURE__ */ jsx4(MakerBrandGlyph, { maker: model.maker ?? null, colored: true, className: "h-3.5 w-3.5" }) }),
1491
- /* @__PURE__ */ jsxs3("span", { className: "flex min-w-0 flex-col", children: [
1492
- /* @__PURE__ */ jsxs3("span", { className: "flex min-w-0 items-center gap-1.5", children: [
1493
- /* @__PURE__ */ jsx4("span", { className: "truncate text-xs font-medium text-foreground", children: model.name }),
1494
- /* @__PURE__ */ jsx4(
1403
+ /* @__PURE__ */ jsx3("span", { className: "w-4" }),
1404
+ /* @__PURE__ */ jsx3("span", { className: "flex w-5 justify-center", title: model.maker ?? void 0, children: /* @__PURE__ */ jsx3(MakerBrandGlyph, { maker: model.maker ?? null, colored: true, className: "h-3.5 w-3.5" }) }),
1405
+ /* @__PURE__ */ jsxs2("span", { className: "flex min-w-0 flex-col", children: [
1406
+ /* @__PURE__ */ jsxs2("span", { className: "flex min-w-0 items-center gap-1.5", children: [
1407
+ /* @__PURE__ */ jsx3("span", { className: "truncate text-xs font-medium text-foreground", children: model.name }),
1408
+ /* @__PURE__ */ jsx3(
1495
1409
  "span",
1496
1410
  {
1497
1411
  className: "shrink-0 rounded border border-primary/40 bg-primary/10 px-1 text-[9px] font-medium text-foreground/80",
@@ -1499,13 +1413,13 @@ function LocalModelRow({ model, selected, onSelect }) {
1499
1413
  children: "local"
1500
1414
  }
1501
1415
  ),
1502
- dim && /* @__PURE__ */ jsx4("span", { className: "shrink-0 rounded bg-muted px-1 text-[9px] text-muted-foreground", title: "Needs more memory than this computer has free", children: "needs memory" })
1416
+ dim && /* @__PURE__ */ jsx3("span", { className: "shrink-0 rounded bg-muted px-1 text-[9px] text-muted-foreground", title: "Needs more memory than this computer has free", children: "needs memory" })
1503
1417
  ] }),
1504
- unusable && /* @__PURE__ */ jsx4("span", { "data-local-model-reason": true, className: "truncate text-[11px] text-muted-foreground", children: unusable })
1418
+ unusable && /* @__PURE__ */ jsx3("span", { "data-local-model-reason": true, className: "truncate text-[11px] text-muted-foreground", children: unusable })
1505
1419
  ] }),
1506
- /* @__PURE__ */ jsx4("span", { className: "w-11" }),
1507
- /* @__PURE__ */ jsx4("span", { className: "block w-12 whitespace-nowrap text-right font-mono text-[11px] tabular-nums text-foreground/80", children: model.contextWindow == null ? "\u2014" : fmtPointsCompact(model.contextWindow) }),
1508
- /* @__PURE__ */ jsx4("span", { className: "w-[2.75rem]" })
1420
+ /* @__PURE__ */ jsx3("span", { className: "w-11" }),
1421
+ /* @__PURE__ */ jsx3("span", { className: "block w-12 whitespace-nowrap text-right font-mono text-[11px] tabular-nums text-foreground/80", children: model.contextWindow == null ? "\u2014" : fmtPointsCompact(model.contextWindow) }),
1422
+ /* @__PURE__ */ jsx3("span", { className: "w-[2.75rem]" })
1509
1423
  ]
1510
1424
  }
1511
1425
  );
@@ -1842,7 +1756,7 @@ function ModelListDropdown({
1842
1756
  onOfferingPinChange(offeringId);
1843
1757
  if (model.id !== value) onValueChange(model.id);
1844
1758
  };
1845
- const trigger = /* @__PURE__ */ jsxs3(
1759
+ const trigger = /* @__PURE__ */ jsxs2(
1846
1760
  "button",
1847
1761
  {
1848
1762
  type: "button",
@@ -1861,8 +1775,8 @@ function ModelListDropdown({
1861
1775
  className
1862
1776
  ),
1863
1777
  children: [
1864
- triggerVariant === "settings" ? /* @__PURE__ */ jsx4("div", { className: "flex min-w-0 flex-1 items-center gap-1.5", children: shown ? /* @__PURE__ */ jsxs3(Fragment2, { children: [
1865
- /* @__PURE__ */ jsx4(
1778
+ triggerVariant === "settings" ? /* @__PURE__ */ jsx3("div", { className: "flex min-w-0 flex-1 items-center gap-1.5", children: shown ? /* @__PURE__ */ jsxs2(Fragment2, { children: [
1779
+ /* @__PURE__ */ jsx3(
1866
1780
  MakerBrandGlyph,
1867
1781
  {
1868
1782
  maker: shown.maker,
@@ -1870,15 +1784,15 @@ function ModelListDropdown({
1870
1784
  className: "h-3.5 w-3.5 shrink-0"
1871
1785
  }
1872
1786
  ),
1873
- /* @__PURE__ */ jsxs3("span", { className: "min-w-0 whitespace-normal text-left leading-tight", children: [
1787
+ /* @__PURE__ */ jsxs2("span", { className: "min-w-0 whitespace-normal text-left leading-tight", children: [
1874
1788
  shown.name,
1875
- selectedClassLabel && /* @__PURE__ */ jsxs3("span", { className: "text-muted-foreground", children: [
1789
+ selectedClassLabel && /* @__PURE__ */ jsxs2("span", { className: "text-muted-foreground", children: [
1876
1790
  " \xB7 ",
1877
1791
  selectedClassLabel
1878
1792
  ] })
1879
1793
  ] })
1880
- ] }) : /* @__PURE__ */ jsx4("span", { className: "min-w-0 whitespace-normal text-left leading-tight text-muted-foreground", children: isLoading ? "Loading models\u2026" : emptyOptionLabel && !value ? emptyOptionLabel : placeholder }) }) : /* @__PURE__ */ jsx4("span", { className: "flex min-w-0 flex-1 items-center gap-1.5", children: shown ? /* @__PURE__ */ jsxs3(Fragment2, { children: [
1881
- /* @__PURE__ */ jsx4(
1794
+ ] }) : /* @__PURE__ */ jsx3("span", { className: "min-w-0 whitespace-normal text-left leading-tight text-muted-foreground", children: isLoading ? "Loading models\u2026" : emptyOptionLabel && !value ? emptyOptionLabel : placeholder }) }) : /* @__PURE__ */ jsx3("span", { className: "flex min-w-0 flex-1 items-center gap-1.5", children: shown ? /* @__PURE__ */ jsxs2(Fragment2, { children: [
1795
+ /* @__PURE__ */ jsx3(
1882
1796
  MakerBrandGlyph,
1883
1797
  {
1884
1798
  maker: shown.maker,
@@ -1886,15 +1800,15 @@ function ModelListDropdown({
1886
1800
  className: "h-3.5 w-3.5 shrink-0"
1887
1801
  }
1888
1802
  ),
1889
- /* @__PURE__ */ jsxs3("span", { className: "min-w-0 truncate", children: [
1803
+ /* @__PURE__ */ jsxs2("span", { className: "min-w-0 truncate", children: [
1890
1804
  shown.name,
1891
- selectedClassLabel && /* @__PURE__ */ jsxs3("span", { className: "text-muted-foreground", children: [
1805
+ selectedClassLabel && /* @__PURE__ */ jsxs2("span", { className: "text-muted-foreground", children: [
1892
1806
  " \xB7 ",
1893
1807
  selectedClassLabel
1894
1808
  ] })
1895
1809
  ] })
1896
- ] }) : /* @__PURE__ */ jsx4("span", { className: "min-w-0 truncate text-muted-foreground", children: isLoading ? "Loading models\u2026" : emptyOptionLabel && !value ? emptyOptionLabel : placeholder }) }),
1897
- /* @__PURE__ */ jsx4(
1810
+ ] }) : /* @__PURE__ */ jsx3("span", { className: "min-w-0 truncate text-muted-foreground", children: isLoading ? "Loading models\u2026" : emptyOptionLabel && !value ? emptyOptionLabel : placeholder }) }),
1811
+ /* @__PURE__ */ jsx3(
1898
1812
  ChevronDownIcon,
1899
1813
  {
1900
1814
  className: cn(
@@ -1906,11 +1820,11 @@ function ModelListDropdown({
1906
1820
  ]
1907
1821
  }
1908
1822
  );
1909
- const listPanel = /* @__PURE__ */ jsxs3("div", { className: "flex h-full flex-col", children: [
1910
- /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-1.5 border-b border-border p-2", children: [
1911
- /* @__PURE__ */ jsxs3("div", { className: "relative flex-1", children: [
1912
- /* @__PURE__ */ jsx4(SearchIcon, { className: "absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground" }),
1913
- /* @__PURE__ */ jsx4(
1823
+ const listPanel = /* @__PURE__ */ jsxs2("div", { className: "flex h-full flex-col", children: [
1824
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-1.5 border-b border-border p-2", children: [
1825
+ /* @__PURE__ */ jsxs2("div", { className: "relative flex-1", children: [
1826
+ /* @__PURE__ */ jsx3(SearchIcon, { className: "absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground" }),
1827
+ /* @__PURE__ */ jsx3(
1914
1828
  Input,
1915
1829
  {
1916
1830
  adornment: "start",
@@ -1921,7 +1835,7 @@ function ModelListDropdown({
1921
1835
  }
1922
1836
  )
1923
1837
  ] }),
1924
- /* @__PURE__ */ jsxs3(
1838
+ /* @__PURE__ */ jsxs2(
1925
1839
  "button",
1926
1840
  {
1927
1841
  type: "button",
@@ -1931,14 +1845,14 @@ function ModelListDropdown({
1931
1845
  rightPanel === "filters" ? "border-primary bg-primary/10 text-foreground" : "border-border text-muted-foreground hover:text-foreground"
1932
1846
  ),
1933
1847
  children: [
1934
- /* @__PURE__ */ jsx4(SlidersHorizontalIcon, { className: "h-3.5 w-3.5" }),
1848
+ /* @__PURE__ */ jsx3(SlidersHorizontalIcon, { className: "h-3.5 w-3.5" }),
1935
1849
  "Filters",
1936
- activeFilterCount > 0 && /* @__PURE__ */ jsx4("span", { className: "text-primary", children: activeFilterCount })
1850
+ activeFilterCount > 0 && /* @__PURE__ */ jsx3("span", { className: "text-primary", children: activeFilterCount })
1937
1851
  ]
1938
1852
  }
1939
1853
  )
1940
1854
  ] }),
1941
- /* @__PURE__ */ jsx4("div", { className: "flex items-center gap-1 border-b border-border px-2 py-1", children: ["all", "favorites"].map((t) => /* @__PURE__ */ jsxs3(
1855
+ /* @__PURE__ */ jsx3("div", { className: "flex items-center gap-1 border-b border-border px-2 py-1", children: ["all", "favorites"].map((t) => /* @__PURE__ */ jsxs2(
1942
1856
  "button",
1943
1857
  {
1944
1858
  type: "button",
@@ -1948,7 +1862,7 @@ function ModelListDropdown({
1948
1862
  tab === t ? "bg-accent text-foreground" : "text-muted-foreground hover:text-foreground"
1949
1863
  ),
1950
1864
  children: [
1951
- t === "favorites" && /* @__PURE__ */ jsx4(
1865
+ t === "favorites" && /* @__PURE__ */ jsx3(
1952
1866
  StarIcon,
1953
1867
  {
1954
1868
  className: cn(
@@ -1958,30 +1872,30 @@ function ModelListDropdown({
1958
1872
  }
1959
1873
  ),
1960
1874
  t === "all" ? "All" : "Favorites",
1961
- t === "favorites" && favoriteSet.size > 0 && /* @__PURE__ */ jsx4("span", { className: "text-muted-foreground", children: favoriteSet.size })
1875
+ t === "favorites" && favoriteSet.size > 0 && /* @__PURE__ */ jsx3("span", { className: "text-muted-foreground", children: favoriteSet.size })
1962
1876
  ]
1963
1877
  },
1964
1878
  t
1965
1879
  )) }),
1966
- /* @__PURE__ */ jsxs3("div", { className: "grid grid-cols-[16px_20px_minmax(0,1fr)_2.75rem_3rem_2.75rem] gap-2 border-b border-border px-2 py-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: [
1967
- /* @__PURE__ */ jsx4("span", { className: "w-4" }),
1968
- /* @__PURE__ */ jsx4("span", { className: "w-5", title: "Maker", "aria-label": "Maker" }),
1969
- /* @__PURE__ */ jsx4("span", { children: "Name" }),
1970
- /* @__PURE__ */ jsx4("span", { className: "w-11 text-right", children: "Speed" }),
1971
- /* @__PURE__ */ jsx4(DelayedHint, { label: "How many tokens this model can hold in one conversation", children: /* @__PURE__ */ jsx4("span", { className: "block w-12 text-right", title: "Context window", children: "Window" }) }),
1972
- /* @__PURE__ */ jsx4(DelayedHint, { label: "Relative cost band \u2014 more $ is more expensive. Not your personal usage.", children: /* @__PURE__ */ jsx4("span", { className: "block w-[2.75rem] text-right", children: "Cost" }) })
1880
+ /* @__PURE__ */ jsxs2("div", { className: "grid grid-cols-[16px_20px_minmax(0,1fr)_2.75rem_3rem_2.75rem] gap-2 border-b border-border px-2 py-1 text-[10px] uppercase tracking-wide text-muted-foreground", children: [
1881
+ /* @__PURE__ */ jsx3("span", { className: "w-4" }),
1882
+ /* @__PURE__ */ jsx3("span", { className: "w-5", title: "Maker", "aria-label": "Maker" }),
1883
+ /* @__PURE__ */ jsx3("span", { children: "Name" }),
1884
+ /* @__PURE__ */ jsx3("span", { className: "w-11 text-right", children: "Speed" }),
1885
+ /* @__PURE__ */ jsx3(DelayedHint, { label: "How many tokens this model can hold in one conversation", children: /* @__PURE__ */ jsx3("span", { className: "block w-12 text-right", title: "Context window", children: "Window" }) }),
1886
+ /* @__PURE__ */ jsx3(DelayedHint, { label: "Relative cost band \u2014 more $ is more expensive. Not your personal usage.", children: /* @__PURE__ */ jsx3("span", { className: "block w-[2.75rem] text-right", children: "Cost" }) })
1973
1887
  ] }),
1974
- /* @__PURE__ */ jsx4("div", { className: "min-h-0 flex-1 overflow-y-auto p-1", children: error ? /* @__PURE__ */ jsxs3("div", { className: "p-3 text-xs text-destructive", children: [
1975
- /* @__PURE__ */ jsxs3("div", { className: "font-medium", children: [
1888
+ /* @__PURE__ */ jsx3("div", { className: "min-h-0 flex-1 overflow-y-auto p-1", children: error ? /* @__PURE__ */ jsxs2("div", { className: "p-3 text-xs text-destructive", children: [
1889
+ /* @__PURE__ */ jsxs2("div", { className: "font-medium", children: [
1976
1890
  "Failed to load ",
1977
1891
  variant,
1978
1892
  " catalog"
1979
1893
  ] }),
1980
- /* @__PURE__ */ jsx4("div", { className: "mt-0.5 font-mono text-[11px] opacity-80", children: error }),
1981
- variant === "admin" && /* @__PURE__ */ jsx4("div", { className: "mt-1 text-[11px] text-muted-foreground", children: "If this is a 42501, the admin_model_catalog RPC rejected your role (super admin required)." }),
1894
+ /* @__PURE__ */ jsx3("div", { className: "mt-0.5 font-mono text-[11px] opacity-80", children: error }),
1895
+ variant === "admin" && /* @__PURE__ */ jsx3("div", { className: "mt-1 text-[11px] text-muted-foreground", children: "If this is a 42501, the admin_model_catalog RPC rejected your role (super admin required)." }),
1982
1896
  ports.renderErrorAction?.(void 0)
1983
- ] }) : isLoading ? /* @__PURE__ */ jsx4("div", { className: "p-4 text-center text-xs text-muted-foreground", children: "Loading catalog\u2026" }) : /* @__PURE__ */ jsxs3(Fragment2, { children: [
1984
- emptyOptionLabel && onClear && /* @__PURE__ */ jsx4(
1897
+ ] }) : isLoading ? /* @__PURE__ */ jsx3("div", { className: "p-4 text-center text-xs text-muted-foreground", children: "Loading catalog\u2026" }) : /* @__PURE__ */ jsxs2(Fragment2, { children: [
1898
+ emptyOptionLabel && onClear && /* @__PURE__ */ jsx3(
1985
1899
  "button",
1986
1900
  {
1987
1901
  type: "button",
@@ -1993,14 +1907,14 @@ function ModelListDropdown({
1993
1907
  children: emptyOptionLabel
1994
1908
  }
1995
1909
  ),
1996
- localRows.length > 0 && /* @__PURE__ */ jsxs3(Fragment2, { children: [
1997
- localRunnable.length > 0 && /* @__PURE__ */ jsx4("div", { className: GROUP_HEADING, children: localGroupLabel }),
1998
- localRunnable.map((l) => /* @__PURE__ */ jsx4(LocalModelRow, { model: l, selected: l.id === value, onSelect: () => handleSelectLocal(l) }, l.id)),
1999
- localUnusable.length > 0 && /* @__PURE__ */ jsx4("div", { className: GROUP_HEADING, children: "Cannot run here" }),
2000
- localUnusable.map((l) => /* @__PURE__ */ jsx4(LocalModelRow, { model: l, selected: false, onSelect: () => void 0 }, l.id)),
2001
- filtered.length > 0 && /* @__PURE__ */ jsx4("div", { className: GROUP_HEADING, children: "Cloud" })
1910
+ localRows.length > 0 && /* @__PURE__ */ jsxs2(Fragment2, { children: [
1911
+ localRunnable.length > 0 && /* @__PURE__ */ jsx3("div", { className: GROUP_HEADING, children: localGroupLabel }),
1912
+ localRunnable.map((l) => /* @__PURE__ */ jsx3(LocalModelRow, { model: l, selected: l.id === value, onSelect: () => handleSelectLocal(l) }, l.id)),
1913
+ localUnusable.length > 0 && /* @__PURE__ */ jsx3("div", { className: GROUP_HEADING, children: "Cannot run here" }),
1914
+ localUnusable.map((l) => /* @__PURE__ */ jsx3(LocalModelRow, { model: l, selected: false, onSelect: () => void 0 }, l.id)),
1915
+ filtered.length > 0 && /* @__PURE__ */ jsx3("div", { className: GROUP_HEADING, children: "Cloud" })
2002
1916
  ] }),
2003
- filtered.length === 0 ? localRows.length > 0 ? null : /* @__PURE__ */ jsx4("div", { className: "p-4 text-center text-xs text-muted-foreground", children: "No models match your filters." }) : listRows.map(({ model: m, classTier }) => /* @__PURE__ */ jsx4(
1917
+ filtered.length === 0 ? localRows.length > 0 ? null : /* @__PURE__ */ jsx3("div", { className: "p-4 text-center text-xs text-muted-foreground", children: "No models match your filters." }) : listRows.map(({ model: m, classTier }) => /* @__PURE__ */ jsx3(
2004
1918
  ModelRow,
2005
1919
  {
2006
1920
  model: m,
@@ -2021,26 +1935,26 @@ function ModelListDropdown({
2021
1935
  classTier ? `${m.id}:${classTier.offeringId}` : m.id
2022
1936
  ))
2023
1937
  ] }) }),
2024
- /* @__PURE__ */ jsxs3("div", { className: "flex items-center justify-between gap-2 border-t border-border px-2 py-1 text-[10px] text-muted-foreground", children: [
2025
- /* @__PURE__ */ jsx4("span", { children: error ? /* @__PURE__ */ jsxs3(Fragment2, { children: [
1938
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between gap-2 border-t border-border px-2 py-1 text-[10px] text-muted-foreground", children: [
1939
+ /* @__PURE__ */ jsx3("span", { children: error ? /* @__PURE__ */ jsxs2(Fragment2, { children: [
2026
1940
  "Models couldn't be loaded",
2027
1941
  ports.renderErrorAction?.(String(error))
2028
- ] }) : /* @__PURE__ */ jsxs3(Fragment2, { children: [
1942
+ ] }) : /* @__PURE__ */ jsxs2(Fragment2, { children: [
2029
1943
  listRows.length + localRunnable.length,
2030
1944
  " model",
2031
1945
  listRows.length + localRunnable.length === 1 ? "" : "s",
2032
- variant === "user" && (hiddenModelIds?.length ?? 0) > 0 ? /* @__PURE__ */ jsxs3(Fragment2, { children: [
1946
+ variant === "user" && (hiddenModelIds?.length ?? 0) > 0 ? /* @__PURE__ */ jsxs2(Fragment2, { children: [
2033
1947
  " \xB7 ",
2034
- ports.settingsHref && LinkComponent ? /* @__PURE__ */ jsxs3(LinkComponent, { href: ports.settingsHref, className: "underline hover:text-foreground", children: [
1948
+ ports.settingsHref && LinkComponent ? /* @__PURE__ */ jsxs2(LinkComponent, { href: ports.settingsHref, className: "underline hover:text-foreground", children: [
2035
1949
  hiddenModelIds?.length,
2036
1950
  " hidden by you"
2037
- ] }) : /* @__PURE__ */ jsxs3(Fragment2, { children: [
1951
+ ] }) : /* @__PURE__ */ jsxs2(Fragment2, { children: [
2038
1952
  hiddenModelIds?.length,
2039
1953
  " hidden by you"
2040
1954
  ] })
2041
1955
  ] }) : null
2042
1956
  ] }) }),
2043
- isSuperAdmin && catalogVariant == null && /* @__PURE__ */ jsxs3(
1957
+ isSuperAdmin && catalogVariant == null && /* @__PURE__ */ jsxs2(
2044
1958
  "button",
2045
1959
  {
2046
1960
  type: "button",
@@ -2051,7 +1965,7 @@ function ModelListDropdown({
2051
1965
  variant === "admin" ? "bg-primary/10 text-foreground" : "hover:text-foreground"
2052
1966
  ),
2053
1967
  children: [
2054
- /* @__PURE__ */ jsx4(ShieldIcon, { className: "h-3 w-3" }),
1968
+ /* @__PURE__ */ jsx3(ShieldIcon, { className: "h-3 w-3" }),
2055
1969
  "Admin"
2056
1970
  ]
2057
1971
  }
@@ -2061,19 +1975,19 @@ function ModelListDropdown({
2061
1975
  if (disabled) {
2062
1976
  return trigger;
2063
1977
  }
2064
- const mobileBody = /* @__PURE__ */ jsx4("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden", children: mobileDetail ? /* @__PURE__ */ jsxs3(Fragment2, { children: [
2065
- /* @__PURE__ */ jsxs3(
1978
+ const mobileBody = /* @__PURE__ */ jsx3("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden", children: mobileDetail ? /* @__PURE__ */ jsxs2(Fragment2, { children: [
1979
+ /* @__PURE__ */ jsxs2(
2066
1980
  "button",
2067
1981
  {
2068
1982
  onClick: () => setMobileDetail(null),
2069
1983
  className: "flex shrink-0 items-center gap-1.5 border-b border-border px-3 py-2.5 text-sm font-medium text-primary",
2070
1984
  children: [
2071
- /* @__PURE__ */ jsx4(ChevronRightIcon, { className: "h-4 w-4 rotate-180" }),
1985
+ /* @__PURE__ */ jsx3(ChevronRightIcon, { className: "h-4 w-4 rotate-180" }),
2072
1986
  " Back"
2073
1987
  ]
2074
1988
  }
2075
1989
  ),
2076
- /* @__PURE__ */ jsx4("div", { className: "min-h-0 flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx4(
1990
+ /* @__PURE__ */ jsx3("div", { className: "min-h-0 flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx3(
2077
1991
  ModelDetailCard,
2078
1992
  {
2079
1993
  model: mobileDetail,
@@ -2086,19 +2000,19 @@ function ModelListDropdown({
2086
2000
  includeAdminSection: true
2087
2001
  }
2088
2002
  ) })
2089
- ] }) : mobileFilters ? /* @__PURE__ */ jsxs3(Fragment2, { children: [
2090
- /* @__PURE__ */ jsxs3(
2003
+ ] }) : mobileFilters ? /* @__PURE__ */ jsxs2(Fragment2, { children: [
2004
+ /* @__PURE__ */ jsxs2(
2091
2005
  "button",
2092
2006
  {
2093
2007
  onClick: () => setMobileFilters(false),
2094
2008
  className: "flex shrink-0 items-center gap-1.5 border-b border-border px-3 py-2.5 text-sm font-medium text-primary",
2095
2009
  children: [
2096
- /* @__PURE__ */ jsx4(ChevronRightIcon, { className: "h-4 w-4 rotate-180" }),
2010
+ /* @__PURE__ */ jsx3(ChevronRightIcon, { className: "h-4 w-4 rotate-180" }),
2097
2011
  " Back"
2098
2012
  ]
2099
2013
  }
2100
2014
  ),
2101
- /* @__PURE__ */ jsx4("div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsx4(
2015
+ /* @__PURE__ */ jsx3("div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsx3(
2102
2016
  FiltersPanel,
2103
2017
  {
2104
2018
  filters,
@@ -2112,18 +2026,18 @@ function ModelListDropdown({
2112
2026
  ) })
2113
2027
  ] }) : listPanel });
2114
2028
  if (isMobile && inline) {
2115
- return /* @__PURE__ */ jsx4(TooltipProvider, { delayDuration: HOVER_DELAY_MS, skipDelayDuration: HOVER_DELAY_MS, children: mobileBody });
2029
+ return /* @__PURE__ */ jsx3(TooltipProvider, { delayDuration: HOVER_DELAY_MS, skipDelayDuration: HOVER_DELAY_MS, children: mobileBody });
2116
2030
  }
2117
2031
  if (isMobile) {
2118
- return /* @__PURE__ */ jsxs3(Drawer, { open, onOpenChange: handleOpen, children: [
2119
- /* @__PURE__ */ jsx4(DrawerTrigger, { asChild: true, children: trigger }),
2120
- /* @__PURE__ */ jsx4(DrawerContent, { className: "h-[85dvh]", children: /* @__PURE__ */ jsxs3(
2032
+ return /* @__PURE__ */ jsxs2(Drawer, { open, onOpenChange: handleOpen, children: [
2033
+ /* @__PURE__ */ jsx3(DrawerTrigger, { asChild: true, children: trigger }),
2034
+ /* @__PURE__ */ jsx3(DrawerContent, { className: "h-[85dvh]", children: /* @__PURE__ */ jsxs2(
2121
2035
  TooltipProvider,
2122
2036
  {
2123
2037
  delayDuration: HOVER_DELAY_MS,
2124
2038
  skipDelayDuration: HOVER_DELAY_MS,
2125
2039
  children: [
2126
- /* @__PURE__ */ jsx4(DrawerTitle, { className: "sr-only", children: "Select model" }),
2040
+ /* @__PURE__ */ jsx3(DrawerTitle, { className: "sr-only", children: "Select model" }),
2127
2041
  mobileBody
2128
2042
  ]
2129
2043
  }
@@ -2132,18 +2046,18 @@ function ModelListDropdown({
2132
2046
  }
2133
2047
  const popoverWidth = LIST_WIDTH + DETAIL_WIDTH + (variant === "admin" ? ADMIN_PANEL_WIDTH : 0);
2134
2048
  const adminPanelModel = hovered ?? selected;
2135
- const desktopBody = /* @__PURE__ */ jsx4(
2049
+ const desktopBody = /* @__PURE__ */ jsx3(
2136
2050
  TooltipProvider,
2137
2051
  {
2138
2052
  delayDuration: HOVER_DELAY_MS,
2139
2053
  skipDelayDuration: HOVER_DELAY_MS,
2140
- children: /* @__PURE__ */ jsx4("div", { className: "h-full overflow-x-auto overflow-y-hidden", children: /* @__PURE__ */ jsxs3(
2054
+ children: /* @__PURE__ */ jsx3("div", { className: "h-full overflow-x-auto overflow-y-hidden", children: /* @__PURE__ */ jsxs2(
2141
2055
  "div",
2142
2056
  {
2143
2057
  className: "flex h-full",
2144
2058
  style: inline ? void 0 : { minWidth: popoverWidth },
2145
2059
  children: [
2146
- /* @__PURE__ */ jsx4(
2060
+ /* @__PURE__ */ jsx3(
2147
2061
  "div",
2148
2062
  {
2149
2063
  className: "flex h-full min-h-0 flex-col border-r border-border",
@@ -2151,12 +2065,12 @@ function ModelListDropdown({
2151
2065
  children: listPanel
2152
2066
  }
2153
2067
  ),
2154
- /* @__PURE__ */ jsx4(
2068
+ /* @__PURE__ */ jsx3(
2155
2069
  "div",
2156
2070
  {
2157
2071
  className: "flex h-full min-h-0 flex-col overflow-hidden",
2158
2072
  style: inline ? { flex: "1 1 0", minWidth: INLINE_DETAIL_MIN_WIDTH } : { width: DETAIL_WIDTH, flexShrink: 0 },
2159
- children: rightPanel === "filters" ? /* @__PURE__ */ jsx4(
2073
+ children: rightPanel === "filters" ? /* @__PURE__ */ jsx3(
2160
2074
  FiltersPanel,
2161
2075
  {
2162
2076
  filters,
@@ -2167,11 +2081,11 @@ function ModelListDropdown({
2167
2081
  vendorOptions,
2168
2082
  apiOptions
2169
2083
  }
2170
- ) : rightPanel === "detail" && hovered ? /* @__PURE__ */ jsx4(
2084
+ ) : rightPanel === "detail" && hovered ? /* @__PURE__ */ jsx3(
2171
2085
  "div",
2172
2086
  {
2173
2087
  className: "h-full animate-in fade-in-0 duration-300",
2174
- children: /* @__PURE__ */ jsx4(
2088
+ children: /* @__PURE__ */ jsx3(
2175
2089
  ModelDetailCard,
2176
2090
  {
2177
2091
  model: hovered,
@@ -2185,20 +2099,20 @@ function ModelListDropdown({
2185
2099
  )
2186
2100
  },
2187
2101
  hovered.id
2188
- ) : /* @__PURE__ */ jsxs3("div", { className: "flex flex-1 flex-col items-center justify-center gap-2 px-6 text-center", children: [
2189
- /* @__PURE__ */ jsx4(MousePointerClickIcon, { className: "h-6 w-6 text-muted-foreground/40" }),
2190
- /* @__PURE__ */ jsx4("p", { className: "text-xs leading-relaxed text-muted-foreground/70", children: "Hover a model to preview its details, or click to select." })
2102
+ ) : /* @__PURE__ */ jsxs2("div", { className: "flex flex-1 flex-col items-center justify-center gap-2 px-6 text-center", children: [
2103
+ /* @__PURE__ */ jsx3(MousePointerClickIcon, { className: "h-6 w-6 text-muted-foreground/40" }),
2104
+ /* @__PURE__ */ jsx3("p", { className: "text-xs leading-relaxed text-muted-foreground/70", children: "Hover a model to preview its details, or click to select." })
2191
2105
  ] })
2192
2106
  }
2193
2107
  ),
2194
- variant === "admin" && /* @__PURE__ */ jsx4(
2108
+ variant === "admin" && /* @__PURE__ */ jsx3(
2195
2109
  "div",
2196
2110
  {
2197
2111
  className: "flex h-full min-h-0 shrink-0 flex-col overflow-hidden border-l border-border",
2198
2112
  style: { width: ADMIN_PANEL_WIDTH },
2199
- children: adminPanelModel ? /* @__PURE__ */ jsx4(AdminOfferingsSection, { model: adminPanelModel }) : /* @__PURE__ */ jsxs3("div", { className: "flex flex-1 flex-col items-center justify-center gap-2 px-6 text-center", children: [
2200
- /* @__PURE__ */ jsx4(ShieldIcon, { className: "h-6 w-6 text-muted-foreground/40" }),
2201
- /* @__PURE__ */ jsx4("p", { className: "text-xs leading-relaxed text-muted-foreground/70", children: "Hover a model to see every offering's real vendor, api, provider model id and $ pricing." })
2113
+ children: adminPanelModel ? /* @__PURE__ */ jsx3(AdminOfferingsSection, { model: adminPanelModel }) : /* @__PURE__ */ jsxs2("div", { className: "flex flex-1 flex-col items-center justify-center gap-2 px-6 text-center", children: [
2114
+ /* @__PURE__ */ jsx3(ShieldIcon, { className: "h-6 w-6 text-muted-foreground/40" }),
2115
+ /* @__PURE__ */ jsx3("p", { className: "text-xs leading-relaxed text-muted-foreground/70", children: "Hover a model to see every offering's real vendor, api, provider model id and $ pricing." })
2202
2116
  ] })
2203
2117
  }
2204
2118
  )
@@ -2208,11 +2122,11 @@ function ModelListDropdown({
2208
2122
  }
2209
2123
  );
2210
2124
  if (inline) {
2211
- return /* @__PURE__ */ jsx4("div", { className: "h-full w-full min-w-0", children: desktopBody });
2125
+ return /* @__PURE__ */ jsx3("div", { className: "h-full w-full min-w-0", children: desktopBody });
2212
2126
  }
2213
- return /* @__PURE__ */ jsxs3(Popover, { open, onOpenChange: handleOpen, modal: false, children: [
2214
- /* @__PURE__ */ jsx4(PopoverTrigger, { asChild: true, children: trigger }),
2215
- /* @__PURE__ */ jsx4(
2127
+ return /* @__PURE__ */ jsxs2(Popover, { open, onOpenChange: handleOpen, modal: false, children: [
2128
+ /* @__PURE__ */ jsx3(PopoverTrigger, { asChild: true, children: trigger }),
2129
+ /* @__PURE__ */ jsx3(
2216
2130
  PopoverContent,
2217
2131
  {
2218
2132
  align: "start",
@@ -2483,7 +2397,7 @@ function fromDiscovery(result) {
2483
2397
  }
2484
2398
 
2485
2399
  // models/react/ModelDiscovery.tsx
2486
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
2400
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
2487
2401
  var KINDS = [
2488
2402
  { value: "text", label: "Text" },
2489
2403
  { value: "vision", label: "Vision" },
@@ -2554,8 +2468,8 @@ function ModelDiscovery({
2554
2468
  if (abortRef.current === controller) setResolving(null);
2555
2469
  }
2556
2470
  };
2557
- return /* @__PURE__ */ jsxs4("div", { className: "flex min-w-0 flex-col gap-4", "data-testid": "model-discovery", children: [
2558
- /* @__PURE__ */ jsx5(
2471
+ return /* @__PURE__ */ jsxs3("div", { className: "flex min-w-0 flex-col gap-4", "data-testid": "model-discovery", children: [
2472
+ /* @__PURE__ */ jsx4(
2559
2473
  Tabs,
2560
2474
  {
2561
2475
  "aria-label": "Find a model",
@@ -2567,14 +2481,14 @@ function ModelDiscovery({
2567
2481
  ]
2568
2482
  }
2569
2483
  ),
2570
- tab === "search" ? /* @__PURE__ */ jsx5(SearchTab, { port, onPick: (repo) => void resolve(repo) }) : /* @__PURE__ */ jsx5(LinkTab, { busy: resolving !== null, onResolve: (l) => void resolve(l) }),
2571
- resolving ? /* @__PURE__ */ jsxs4("p", { className: "text-sm text-muted-foreground", children: [
2484
+ tab === "search" ? /* @__PURE__ */ jsx4(SearchTab, { port, onPick: (repo) => void resolve(repo) }) : /* @__PURE__ */ jsx4(LinkTab, { busy: resolving !== null, onResolve: (l) => void resolve(l) }),
2485
+ resolving ? /* @__PURE__ */ jsxs3("p", { className: "text-sm text-muted-foreground", children: [
2572
2486
  "Reading ",
2573
2487
  resolving,
2574
2488
  "\u2026"
2575
2489
  ] }) : null,
2576
- resolveError ? /* @__PURE__ */ jsx5(ErrorNotice, { message: resolveError, size: "compact" }) : null,
2577
- result ? /* @__PURE__ */ jsx5(
2490
+ resolveError ? /* @__PURE__ */ jsx4(ErrorNotice, { message: resolveError, size: "compact" }) : null,
2491
+ result ? /* @__PURE__ */ jsx4(
2578
2492
  DiscoveryResultView,
2579
2493
  {
2580
2494
  result,
@@ -2592,8 +2506,8 @@ function ModelDiscovery({
2592
2506
  }
2593
2507
  function LinkTab({ busy, onResolve }) {
2594
2508
  const [link, setLink] = useState2("");
2595
- return /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-center", children: [
2596
- /* @__PURE__ */ jsx5("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx5(
2509
+ return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-center", children: [
2510
+ /* @__PURE__ */ jsx4("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx4(
2597
2511
  Field,
2598
2512
  {
2599
2513
  "aria-label": "Model link",
@@ -2610,7 +2524,7 @@ function LinkTab({ busy, onResolve }) {
2610
2524
  autoComplete: "off"
2611
2525
  }
2612
2526
  ) }),
2613
- /* @__PURE__ */ jsx5(Button, { variant: "primary", onClick: () => onResolve(link), disabled: busy || !link.trim(), children: busy ? "Finding versions\u2026" : "Find versions" })
2527
+ /* @__PURE__ */ jsx4(Button, { variant: "primary", onClick: () => onResolve(link), disabled: busy || !link.trim(), children: busy ? "Finding versions\u2026" : "Find versions" })
2614
2528
  ] });
2615
2529
  }
2616
2530
  function SearchTab({ port, onPick }) {
@@ -2639,10 +2553,10 @@ function SearchTab({ port, onPick }) {
2639
2553
  useEffect3(() => {
2640
2554
  if (port.search) void run(null);
2641
2555
  }, [kind, sort]);
2642
- if (!port.search) return /* @__PURE__ */ jsx5("p", { className: "text-sm text-muted-foreground", children: "Search is not available here yet. Paste a link instead." });
2643
- return /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-3", children: [
2644
- /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-center", children: [
2645
- /* @__PURE__ */ jsx5("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx5(
2556
+ if (!port.search) return /* @__PURE__ */ jsx4("p", { className: "text-sm text-muted-foreground", children: "Search is not available here yet. Paste a link instead." });
2557
+ return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-3", children: [
2558
+ /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-center", children: [
2559
+ /* @__PURE__ */ jsx4("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx4(
2646
2560
  SearchField,
2647
2561
  {
2648
2562
  placeholder: "Search models",
@@ -2656,26 +2570,26 @@ function SearchTab({ port, onPick }) {
2656
2570
  }
2657
2571
  }
2658
2572
  ) }),
2659
- /* @__PURE__ */ jsx5(Select, { "aria-label": "Kind", value: kind, onValueChange: setKind, options: KINDS.map((k) => ({ value: k.value, label: k.label })) }),
2660
- /* @__PURE__ */ jsx5(Select, { "aria-label": "Order", value: sort, onValueChange: setSort, options: SORTS.map((s) => ({ value: s.value, label: s.label })) }),
2661
- /* @__PURE__ */ jsx5(Button, { onClick: () => void run(null), disabled: busy, children: "Search" })
2573
+ /* @__PURE__ */ jsx4(Select, { "aria-label": "Kind", value: kind, onValueChange: setKind, options: KINDS.map((k) => ({ value: k.value, label: k.label })) }),
2574
+ /* @__PURE__ */ jsx4(Select, { "aria-label": "Order", value: sort, onValueChange: setSort, options: SORTS.map((s) => ({ value: s.value, label: s.label })) }),
2575
+ /* @__PURE__ */ jsx4(Button, { onClick: () => void run(null), disabled: busy, children: "Search" })
2662
2576
  ] }),
2663
- error ? /* @__PURE__ */ jsx5(ErrorNotice, { message: error, size: "compact" }) : null,
2664
- page && page.results.length === 0 && !busy ? /* @__PURE__ */ jsx5("p", { className: "text-sm text-muted-foreground", children: "No models found" }) : null,
2665
- page?.results.length ? /* @__PURE__ */ jsx5("ul", { className: "flex flex-col divide-y divide-border rounded-md border border-border", "aria-label": "Search results", children: page.results.map((hit) => /* @__PURE__ */ jsx5("li", { children: /* @__PURE__ */ jsxs4("button", { type: "button", onClick: () => onPick(hit.repo), className: "flex w-full items-center gap-3 px-3 py-2 text-left hover:bg-accent", children: [
2666
- /* @__PURE__ */ jsxs4(Avatar, { size: "sm", children: [
2667
- hit.maker_avatar_url ? /* @__PURE__ */ jsx5(AvatarImage, { src: hit.maker_avatar_url, alt: hit.maker ?? "" }) : null,
2668
- /* @__PURE__ */ jsx5(AvatarFallback, { children: initials(hit.maker ?? hit.repo) })
2577
+ error ? /* @__PURE__ */ jsx4(ErrorNotice, { message: error, size: "compact" }) : null,
2578
+ page && page.results.length === 0 && !busy ? /* @__PURE__ */ jsx4("p", { className: "text-sm text-muted-foreground", children: "No models found" }) : null,
2579
+ page?.results.length ? /* @__PURE__ */ jsx4("ul", { className: "flex flex-col divide-y divide-border rounded-md border border-border", "aria-label": "Search results", children: page.results.map((hit) => /* @__PURE__ */ jsx4("li", { children: /* @__PURE__ */ jsxs3("button", { type: "button", onClick: () => onPick(hit.repo), className: "flex w-full items-center gap-3 px-3 py-2 text-left hover:bg-accent", children: [
2580
+ /* @__PURE__ */ jsxs3(Avatar, { size: "sm", children: [
2581
+ hit.maker_avatar_url ? /* @__PURE__ */ jsx4(AvatarImage, { src: hit.maker_avatar_url, alt: hit.maker ?? "" }) : null,
2582
+ /* @__PURE__ */ jsx4(AvatarFallback, { children: initials(hit.maker ?? hit.repo) })
2669
2583
  ] }),
2670
- /* @__PURE__ */ jsxs4("span", { className: "flex min-w-0 flex-1 flex-col", children: [
2671
- /* @__PURE__ */ jsx5("span", { className: "truncate text-sm font-medium text-foreground", children: hit.name || hit.repo }),
2672
- /* @__PURE__ */ jsx5("span", { className: "truncate text-xs text-muted-foreground", children: [hit.maker, hit.downloads != null ? `${formatCount2(hit.downloads)} downloads` : null, hit.license, sizeOf(hit.size_bytes)].filter(Boolean).join(" \xB7 ") })
2584
+ /* @__PURE__ */ jsxs3("span", { className: "flex min-w-0 flex-1 flex-col", children: [
2585
+ /* @__PURE__ */ jsx4("span", { className: "truncate text-sm font-medium text-foreground", children: hit.name || hit.repo }),
2586
+ /* @__PURE__ */ jsx4("span", { className: "truncate text-xs text-muted-foreground", children: [hit.maker, hit.downloads != null ? `${formatCount2(hit.downloads)} downloads` : null, hit.license, sizeOf(hit.size_bytes)].filter(Boolean).join(" \xB7 ") })
2673
2587
  ] }),
2674
- hit.has_gguf ? /* @__PURE__ */ jsx5(Badge, { tone: "success", children: "GGUF ready" }) : null,
2675
- hit.gated ? /* @__PURE__ */ jsx5(Badge, { tone: "warning", children: "Needs access" }) : null
2588
+ hit.has_gguf ? /* @__PURE__ */ jsx4(Badge, { tone: "success", children: "GGUF ready" }) : null,
2589
+ hit.gated ? /* @__PURE__ */ jsx4(Badge, { tone: "warning", children: "Needs access" }) : null
2676
2590
  ] }) }, hit.repo)) }) : null,
2677
- busy ? /* @__PURE__ */ jsx5("p", { className: "text-sm text-muted-foreground", children: "Searching\u2026" }) : null,
2678
- page?.next_cursor && !busy ? /* @__PURE__ */ jsx5(Button, { variant: "quiet", onClick: () => void run(page.next_cursor), children: "Show more" }) : null
2591
+ busy ? /* @__PURE__ */ jsx4("p", { className: "text-sm text-muted-foreground", children: "Searching\u2026" }) : null,
2592
+ page?.next_cursor && !busy ? /* @__PURE__ */ jsx4(Button, { variant: "quiet", onClick: () => void run(page.next_cursor), children: "Show more" }) : null
2679
2593
  ] });
2680
2594
  }
2681
2595
  function DiscoveryResultView({ result, device, runtimes, want = DEFAULT_WANT, chooseLabel = "Choose", mode = "device", onChoose, renderVariantActions, renderActions }) {
@@ -2698,21 +2612,21 @@ function DiscoveryResultView({ result, device, runtimes, want = DEFAULT_WANT, ch
2698
2612
  setChoosing(null);
2699
2613
  }
2700
2614
  };
2701
- return /* @__PURE__ */ jsxs4("section", { className: "flex flex-col gap-3", "aria-label": "Model versions", children: [
2702
- /* @__PURE__ */ jsxs4("header", { className: "flex items-start gap-3", children: [
2703
- /* @__PURE__ */ jsxs4(Avatar, { size: "md", children: [
2704
- avatar ? /* @__PURE__ */ jsx5(AvatarImage, { src: avatar, alt: result.maker ?? "" }) : null,
2705
- /* @__PURE__ */ jsx5(AvatarFallback, { children: initials(result.maker ?? result.repo) })
2615
+ return /* @__PURE__ */ jsxs3("section", { className: "flex flex-col gap-3", "aria-label": "Model versions", children: [
2616
+ /* @__PURE__ */ jsxs3("header", { className: "flex items-start gap-3", children: [
2617
+ /* @__PURE__ */ jsxs3(Avatar, { size: "md", children: [
2618
+ avatar ? /* @__PURE__ */ jsx4(AvatarImage, { src: avatar, alt: result.maker ?? "" }) : null,
2619
+ /* @__PURE__ */ jsx4(AvatarFallback, { children: initials(result.maker ?? result.repo) })
2706
2620
  ] }),
2707
- /* @__PURE__ */ jsxs4("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
2708
- /* @__PURE__ */ jsx5("h3", { className: "truncate text-base font-semibold text-foreground", children: result.name || model.common_name || result.repo }),
2709
- /* @__PURE__ */ jsx5("p", { className: "truncate text-xs text-muted-foreground", children: [result.maker, result.repo, result.license_id ? `License ${result.license_id}` : null].filter(Boolean).join(" \xB7 ") }),
2710
- result.summary ? /* @__PURE__ */ jsx5("p", { className: "line-clamp-2 text-sm text-muted-foreground", children: result.summary }) : null
2621
+ /* @__PURE__ */ jsxs3("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
2622
+ /* @__PURE__ */ jsx4("h3", { className: "truncate text-base font-semibold text-foreground", children: result.name || model.common_name || result.repo }),
2623
+ /* @__PURE__ */ jsx4("p", { className: "truncate text-xs text-muted-foreground", children: [result.maker, result.repo, result.license_id ? `License ${result.license_id}` : null].filter(Boolean).join(" \xB7 ") }),
2624
+ result.summary ? /* @__PURE__ */ jsx4("p", { className: "line-clamp-2 text-sm text-muted-foreground", children: result.summary }) : null
2711
2625
  ] })
2712
2626
  ] }),
2713
- source && !source.runnable_as_is && source.why_not ? /* @__PURE__ */ jsx5("p", { className: "rounded-md border border-border px-3 py-2 text-sm text-foreground", children: source.why_not }) : null,
2714
- ranked.length === 0 ? /* @__PURE__ */ jsx5("p", { className: "text-sm text-muted-foreground", children: "No downloadable versions were found at this link." }) : null,
2715
- /* @__PURE__ */ jsx5("ul", { className: "flex flex-col gap-2", "aria-label": "Versions", children: ranked.map((r) => /* @__PURE__ */ jsx5(
2627
+ source && !source.runnable_as_is && source.why_not ? /* @__PURE__ */ jsx4("p", { className: "rounded-md border border-border px-3 py-2 text-sm text-foreground", children: source.why_not }) : null,
2628
+ ranked.length === 0 ? /* @__PURE__ */ jsx4("p", { className: "text-sm text-muted-foreground", children: "No downloadable versions were found at this link." }) : null,
2629
+ /* @__PURE__ */ jsx4("ul", { className: "flex flex-col gap-2", "aria-label": "Versions", children: ranked.map((r) => /* @__PURE__ */ jsx4(
2716
2630
  VariantRow,
2717
2631
  {
2718
2632
  ranked: r,
@@ -2725,7 +2639,7 @@ function DiscoveryResultView({ result, device, runtimes, want = DEFAULT_WANT, ch
2725
2639
  },
2726
2640
  r.variant.key
2727
2641
  )) }),
2728
- done ? done.ok ? /* @__PURE__ */ jsx5("p", { className: "text-sm text-foreground", children: done.text }) : /* @__PURE__ */ jsx5(ErrorNotice, { message: done.text, size: "compact" }) : null,
2642
+ done ? done.ok ? /* @__PURE__ */ jsx4("p", { className: "text-sm text-foreground", children: done.text }) : /* @__PURE__ */ jsx4(ErrorNotice, { message: done.text, size: "compact" }) : null,
2729
2643
  renderActions?.(result, ranked)
2730
2644
  ] });
2731
2645
  }
@@ -2737,29 +2651,29 @@ function VariantRow({ ranked, mode, chooseLabel, busy, choosingThis, onChoose, e
2737
2651
  const label = v.quant || v.key;
2738
2652
  const publisher = v.discovery?.publisher ?? null;
2739
2653
  const size = sizeOf(v.total_bytes);
2740
- return /* @__PURE__ */ jsxs4("li", { className: "flex flex-col gap-2 rounded-md border border-border p-3", "data-testid": "discovery-variant", "data-runs": verdict.runs === null ? void 0 : String(verdict.runs), "data-recommended": ranked.recommended ? "true" : void 0, children: [
2741
- /* @__PURE__ */ jsxs4("div", { className: "flex flex-wrap items-center gap-2", children: [
2742
- /* @__PURE__ */ jsx5("span", { className: "text-sm font-medium text-foreground", children: label }),
2743
- ranked.recommended ? /* @__PURE__ */ jsx5(Badge, { tone: "primary", children: "Recommended" }) : null,
2744
- verdict.badge ? /* @__PURE__ */ jsx5(Badge, { tone: "warning", children: verdict.badge }) : null,
2745
- /* @__PURE__ */ jsx5("span", { className: "text-xs text-muted-foreground", children: [v.format.toUpperCase(), size, publisher ? `by ${publisher}` : null].filter(Boolean).join(" \xB7 ") }),
2746
- /* @__PURE__ */ jsxs4("span", { className: "ml-auto flex items-center gap-2", children: [
2654
+ return /* @__PURE__ */ jsxs3("li", { className: "flex flex-col gap-2 rounded-md border border-border p-3", "data-testid": "discovery-variant", "data-runs": verdict.runs === null ? void 0 : String(verdict.runs), "data-recommended": ranked.recommended ? "true" : void 0, children: [
2655
+ /* @__PURE__ */ jsxs3("div", { className: "flex flex-wrap items-center gap-2", children: [
2656
+ /* @__PURE__ */ jsx4("span", { className: "text-sm font-medium text-foreground", children: label }),
2657
+ ranked.recommended ? /* @__PURE__ */ jsx4(Badge, { tone: "primary", children: "Recommended" }) : null,
2658
+ verdict.badge ? /* @__PURE__ */ jsx4(Badge, { tone: "warning", children: verdict.badge }) : null,
2659
+ /* @__PURE__ */ jsx4("span", { className: "text-xs text-muted-foreground", children: [v.format.toUpperCase(), size, publisher ? `by ${publisher}` : null].filter(Boolean).join(" \xB7 ") }),
2660
+ /* @__PURE__ */ jsxs3("span", { className: "ml-auto flex items-center gap-2", children: [
2747
2661
  extra,
2748
- verdict.reason ? /* @__PURE__ */ jsx5("span", { className: "text-xs text-muted-foreground", "data-testid": "choose-reason", children: verdict.reason }) : null,
2749
- /* @__PURE__ */ jsx5(Button, { variant: ranked.recommended ? "primary" : "outline", disabled: busy || blocked, onClick: onChoose, children: choosingThis ? "Working\u2026" : chooseLabel })
2662
+ verdict.reason ? /* @__PURE__ */ jsx4("span", { className: "text-xs text-muted-foreground", "data-testid": "choose-reason", children: verdict.reason }) : null,
2663
+ /* @__PURE__ */ jsx4(Button, { variant: ranked.recommended ? "primary" : "outline", disabled: busy || blocked, onClick: onChoose, children: choosingThis ? "Working\u2026" : chooseLabel })
2750
2664
  ] })
2751
2665
  ] }),
2752
- verdict.runtime ? /* @__PURE__ */ jsx5("p", { className: "text-xs text-muted-foreground", "data-testid": "variant-runtime", children: verdict.runtime }) : null,
2753
- /* @__PURE__ */ jsx5("ul", { className: "flex flex-col gap-0.5", children: verdict.lines.map((line) => /* @__PURE__ */ jsx5("li", { className: "text-xs text-muted-foreground", children: line }, line)) }),
2754
- v.artifacts.length ? /* @__PURE__ */ jsxs4(Collapsible, { children: [
2755
- /* @__PURE__ */ jsxs4(CollapsibleTrigger, { className: "text-xs text-muted-foreground hover:text-foreground", children: [
2666
+ verdict.runtime ? /* @__PURE__ */ jsx4("p", { className: "text-xs text-muted-foreground", "data-testid": "variant-runtime", children: verdict.runtime }) : null,
2667
+ /* @__PURE__ */ jsx4("ul", { className: "flex flex-col gap-0.5", children: verdict.lines.map((line) => /* @__PURE__ */ jsx4("li", { className: "text-xs text-muted-foreground", children: line }, line)) }),
2668
+ v.artifacts.length ? /* @__PURE__ */ jsxs3(Collapsible, { children: [
2669
+ /* @__PURE__ */ jsxs3(CollapsibleTrigger, { className: "text-xs text-muted-foreground hover:text-foreground", children: [
2756
2670
  "Files in this version (",
2757
2671
  v.artifacts.length,
2758
2672
  ")"
2759
2673
  ] }),
2760
- /* @__PURE__ */ jsx5(CollapsibleContent, { children: /* @__PURE__ */ jsx5("ul", { className: "mt-1 flex flex-col gap-0.5", children: v.artifacts.map((a) => /* @__PURE__ */ jsxs4("li", { className: "flex gap-2 text-xs text-muted-foreground", children: [
2761
- /* @__PURE__ */ jsx5("span", { className: "min-w-0 flex-1 truncate font-mono", children: a.path }),
2762
- /* @__PURE__ */ jsx5("span", { children: sizeOf(a.size_bytes) ?? "" })
2674
+ /* @__PURE__ */ jsx4(CollapsibleContent, { children: /* @__PURE__ */ jsx4("ul", { className: "mt-1 flex flex-col gap-0.5", children: v.artifacts.map((a) => /* @__PURE__ */ jsxs3("li", { className: "flex gap-2 text-xs text-muted-foreground", children: [
2675
+ /* @__PURE__ */ jsx4("span", { className: "min-w-0 flex-1 truncate font-mono", children: a.path }),
2676
+ /* @__PURE__ */ jsx4("span", { children: sizeOf(a.size_bytes) ?? "" })
2763
2677
  ] }, a.path || a.url)) }) })
2764
2678
  ] }) : null
2765
2679
  ] });