@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.
- package/CHANGELOG.md +16 -2
- package/dist/catalog/react/index.cjs +29 -31
- package/dist/catalog/react/index.js +1 -3
- package/dist/content-transfer/index.cjs +1 -0
- package/dist/content-transfer/index.js +1 -0
- package/dist/content-transfer/react/index.cjs +1 -0
- package/dist/content-transfer/react/index.js +1 -0
- package/dist/context/react/index.cjs +171 -205
- package/dist/context/react/index.js +172 -201
- package/dist/mandates/index.cjs +3 -2
- package/dist/mandates/index.d.cts +6 -5
- package/dist/mandates/index.d.ts +6 -5
- package/dist/mandates/index.js +3 -2
- package/dist/models/index.cjs +5 -1
- package/dist/models/index.d.cts +6 -1
- package/dist/models/index.d.ts +6 -1
- package/dist/models/index.js +5 -1
- package/dist/models/react/index.cjs +339 -436
- package/dist/models/react/index.js +346 -432
- package/dist/settings/react/index.cjs +116 -173
- package/dist/settings/react/index.js +126 -172
- package/dist/versions/react/index.cjs +15 -68
- package/dist/versions/react/index.js +83 -121
- package/package.json +2 -2
|
@@ -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
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
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
|
|
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__ */
|
|
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__ */
|
|
597
|
-
/* @__PURE__ */
|
|
598
|
-
[0, 1, 2, 3, 4].map((i) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
641
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
650
|
-
/* @__PURE__ */
|
|
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__ */
|
|
663
|
-
/* @__PURE__ */
|
|
664
|
-
/* @__PURE__ */
|
|
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__ */
|
|
693
|
-
/* @__PURE__ */
|
|
694
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
713
|
-
/* @__PURE__ */
|
|
714
|
-
/* @__PURE__ */
|
|
715
|
-
/* @__PURE__ */
|
|
716
|
-
/* @__PURE__ */
|
|
717
|
-
/* @__PURE__ */
|
|
718
|
-
/* @__PURE__ */
|
|
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__ */
|
|
726
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
751
|
-
band.maxTokens != null && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
797
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
828
|
-
/* @__PURE__ */
|
|
829
|
-
/* @__PURE__ */
|
|
830
|
-
/* @__PURE__ */
|
|
831
|
-
/* @__PURE__ */
|
|
832
|
-
model.maker && /* @__PURE__ */
|
|
833
|
-
/* @__PURE__ */
|
|
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__ */
|
|
755
|
+
/* @__PURE__ */ jsx3("span", { children: model.maker })
|
|
842
756
|
] })
|
|
843
757
|
] }),
|
|
844
|
-
/* @__PURE__ */
|
|
845
|
-
model.isPrimary && /* @__PURE__ */
|
|
846
|
-
model.isPremium && /* @__PURE__ */
|
|
847
|
-
model.isDeprecated && !model.retiredAt && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
866
|
-
/* @__PURE__ */
|
|
867
|
-
/* @__PURE__ */
|
|
868
|
-
/* @__PURE__ */
|
|
869
|
-
/* @__PURE__ */
|
|
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__ */
|
|
872
|
-
/* @__PURE__ */
|
|
873
|
-
/* @__PURE__ */
|
|
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__ */
|
|
876
|
-
/* @__PURE__ */
|
|
877
|
-
/* @__PURE__ */
|
|
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__ */
|
|
888
|
-
/* @__PURE__ */
|
|
889
|
-
/* @__PURE__ */
|
|
890
|
-
/* @__PURE__ */
|
|
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__ */
|
|
900
|
-
/* @__PURE__ */
|
|
901
|
-
/* @__PURE__ */
|
|
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__ */
|
|
904
|
-
/* @__PURE__ */
|
|
905
|
-
/* @__PURE__ */
|
|
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__ */
|
|
908
|
-
/* @__PURE__ */
|
|
909
|
-
/* @__PURE__ */
|
|
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__ */
|
|
912
|
-
/* @__PURE__ */
|
|
913
|
-
/* @__PURE__ */
|
|
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__ */
|
|
916
|
-
/* @__PURE__ */
|
|
917
|
-
/* @__PURE__ */
|
|
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__ */
|
|
921
|
-
/* @__PURE__ */
|
|
922
|
-
/* @__PURE__ */
|
|
923
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
973
|
-
/* @__PURE__ */
|
|
974
|
-
/* @__PURE__ */
|
|
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__ */
|
|
977
|
-
/* @__PURE__ */
|
|
978
|
-
/* @__PURE__ */
|
|
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__ */
|
|
895
|
+
includeAdminSection && variant === "admin" && /* @__PURE__ */ jsx3("div", { className: "mt-3 rounded-md border border-border", children: /* @__PURE__ */ jsx3(AdminOfferingsSection, { model }) })
|
|
982
896
|
] }),
|
|
983
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1000
|
-
/* @__PURE__ */
|
|
1001
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1045
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1068
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1098
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1144
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1163
|
-
/* @__PURE__ */
|
|
1164
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1174
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1101
|
+
children: /* @__PURE__ */ jsx3("span", { className: "capitalize", children: m })
|
|
1188
1102
|
},
|
|
1189
1103
|
m
|
|
1190
1104
|
))
|
|
1191
1105
|
] }) }),
|
|
1192
|
-
/* @__PURE__ */
|
|
1193
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1120
|
+
children: /* @__PURE__ */ jsx3("span", { className: "capitalize", children: m })
|
|
1207
1121
|
},
|
|
1208
1122
|
m
|
|
1209
1123
|
))
|
|
1210
1124
|
] }) }),
|
|
1211
|
-
variant === "admin" && /* @__PURE__ */
|
|
1212
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1240
|
-
/* @__PURE__ */
|
|
1153
|
+
/* @__PURE__ */ jsx3(FilterSection, { label: "Vendor", children: setChip("vendors") }),
|
|
1154
|
+
/* @__PURE__ */ jsx3(FilterSection, { label: "API", children: setChip("apis") })
|
|
1241
1155
|
] }),
|
|
1242
|
-
/* @__PURE__ */
|
|
1243
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1263
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1292
|
-
(i) => /* @__PURE__ */
|
|
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__ */
|
|
1304
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1311
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1297
|
+
children: /* @__PURE__ */ jsx3(StarIcon, { className: cn("h-3 w-3", isFavorite && "fill-amber-400") })
|
|
1384
1298
|
}
|
|
1385
1299
|
),
|
|
1386
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1305
|
+
children: /* @__PURE__ */ jsx3(MakerBrandGlyph, { maker: model.maker, colored: true, className: "h-3.5 w-3.5" })
|
|
1392
1306
|
}
|
|
1393
1307
|
),
|
|
1394
|
-
/* @__PURE__ */
|
|
1395
|
-
/* @__PURE__ */
|
|
1396
|
-
isDecisionModelCapability(model) && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1445
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1490
|
-
/* @__PURE__ */
|
|
1491
|
-
/* @__PURE__ */
|
|
1492
|
-
/* @__PURE__ */
|
|
1493
|
-
/* @__PURE__ */
|
|
1494
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1418
|
+
unusable && /* @__PURE__ */ jsx3("span", { "data-local-model-reason": true, className: "truncate text-[11px] text-muted-foreground", children: unusable })
|
|
1505
1419
|
] }),
|
|
1506
|
-
/* @__PURE__ */
|
|
1507
|
-
/* @__PURE__ */
|
|
1508
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1865
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1787
|
+
/* @__PURE__ */ jsxs2("span", { className: "min-w-0 whitespace-normal text-left leading-tight", children: [
|
|
1874
1788
|
shown.name,
|
|
1875
|
-
selectedClassLabel && /* @__PURE__ */
|
|
1789
|
+
selectedClassLabel && /* @__PURE__ */ jsxs2("span", { className: "text-muted-foreground", children: [
|
|
1876
1790
|
" \xB7 ",
|
|
1877
1791
|
selectedClassLabel
|
|
1878
1792
|
] })
|
|
1879
1793
|
] })
|
|
1880
|
-
] }) : /* @__PURE__ */
|
|
1881
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1803
|
+
/* @__PURE__ */ jsxs2("span", { className: "min-w-0 truncate", children: [
|
|
1890
1804
|
shown.name,
|
|
1891
|
-
selectedClassLabel && /* @__PURE__ */
|
|
1805
|
+
selectedClassLabel && /* @__PURE__ */ jsxs2("span", { className: "text-muted-foreground", children: [
|
|
1892
1806
|
" \xB7 ",
|
|
1893
1807
|
selectedClassLabel
|
|
1894
1808
|
] })
|
|
1895
1809
|
] })
|
|
1896
|
-
] }) : /* @__PURE__ */
|
|
1897
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1910
|
-
/* @__PURE__ */
|
|
1911
|
-
/* @__PURE__ */
|
|
1912
|
-
/* @__PURE__ */
|
|
1913
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1848
|
+
/* @__PURE__ */ jsx3(SlidersHorizontalIcon, { className: "h-3.5 w-3.5" }),
|
|
1935
1849
|
"Filters",
|
|
1936
|
-
activeFilterCount > 0 && /* @__PURE__ */
|
|
1850
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsx3("span", { className: "text-primary", children: activeFilterCount })
|
|
1937
1851
|
]
|
|
1938
1852
|
}
|
|
1939
1853
|
)
|
|
1940
1854
|
] }),
|
|
1941
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1967
|
-
/* @__PURE__ */
|
|
1968
|
-
/* @__PURE__ */
|
|
1969
|
-
/* @__PURE__ */
|
|
1970
|
-
/* @__PURE__ */
|
|
1971
|
-
/* @__PURE__ */
|
|
1972
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1975
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1981
|
-
variant === "admin" && /* @__PURE__ */
|
|
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__ */
|
|
1984
|
-
emptyOptionLabel && onClear && /* @__PURE__ */
|
|
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__ */
|
|
1997
|
-
localRunnable.length > 0 && /* @__PURE__ */
|
|
1998
|
-
localRunnable.map((l) => /* @__PURE__ */
|
|
1999
|
-
localUnusable.length > 0 && /* @__PURE__ */
|
|
2000
|
-
localUnusable.map((l) => /* @__PURE__ */
|
|
2001
|
-
filtered.length > 0 && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2025
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1946
|
+
variant === "user" && (hiddenModelIds?.length ?? 0) > 0 ? /* @__PURE__ */ jsxs2(Fragment2, { children: [
|
|
2033
1947
|
" \xB7 ",
|
|
2034
|
-
ports.settingsHref && LinkComponent ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2065
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1985
|
+
/* @__PURE__ */ jsx3(ChevronRightIcon, { className: "h-4 w-4 rotate-180" }),
|
|
2072
1986
|
" Back"
|
|
2073
1987
|
]
|
|
2074
1988
|
}
|
|
2075
1989
|
),
|
|
2076
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2090
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2010
|
+
/* @__PURE__ */ jsx3(ChevronRightIcon, { className: "h-4 w-4 rotate-180" }),
|
|
2097
2011
|
" Back"
|
|
2098
2012
|
]
|
|
2099
2013
|
}
|
|
2100
2014
|
),
|
|
2101
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2029
|
+
return /* @__PURE__ */ jsx3(TooltipProvider, { delayDuration: HOVER_DELAY_MS, skipDelayDuration: HOVER_DELAY_MS, children: mobileBody });
|
|
2116
2030
|
}
|
|
2117
2031
|
if (isMobile) {
|
|
2118
|
-
return /* @__PURE__ */
|
|
2119
|
-
/* @__PURE__ */
|
|
2120
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2189
|
-
/* @__PURE__ */
|
|
2190
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2200
|
-
/* @__PURE__ */
|
|
2201
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2125
|
+
return /* @__PURE__ */ jsx3("div", { className: "h-full w-full min-w-0", children: desktopBody });
|
|
2212
2126
|
}
|
|
2213
|
-
return /* @__PURE__ */
|
|
2214
|
-
/* @__PURE__ */
|
|
2215
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
2558
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2571
|
-
resolving ? /* @__PURE__ */
|
|
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__ */
|
|
2577
|
-
result ? /* @__PURE__ */
|
|
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__ */
|
|
2596
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2643
|
-
return /* @__PURE__ */
|
|
2644
|
-
/* @__PURE__ */
|
|
2645
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2660
|
-
/* @__PURE__ */
|
|
2661
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2664
|
-
page && page.results.length === 0 && !busy ? /* @__PURE__ */
|
|
2665
|
-
page?.results.length ? /* @__PURE__ */
|
|
2666
|
-
/* @__PURE__ */
|
|
2667
|
-
hit.maker_avatar_url ? /* @__PURE__ */
|
|
2668
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2671
|
-
/* @__PURE__ */
|
|
2672
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2675
|
-
hit.gated ? /* @__PURE__ */
|
|
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__ */
|
|
2678
|
-
page?.next_cursor && !busy ? /* @__PURE__ */
|
|
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__ */
|
|
2702
|
-
/* @__PURE__ */
|
|
2703
|
-
/* @__PURE__ */
|
|
2704
|
-
avatar ? /* @__PURE__ */
|
|
2705
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2708
|
-
/* @__PURE__ */
|
|
2709
|
-
/* @__PURE__ */
|
|
2710
|
-
result.summary ? /* @__PURE__ */
|
|
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__ */
|
|
2714
|
-
ranked.length === 0 ? /* @__PURE__ */
|
|
2715
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2741
|
-
/* @__PURE__ */
|
|
2742
|
-
/* @__PURE__ */
|
|
2743
|
-
ranked.recommended ? /* @__PURE__ */
|
|
2744
|
-
verdict.badge ? /* @__PURE__ */
|
|
2745
|
-
/* @__PURE__ */
|
|
2746
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2749
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2753
|
-
/* @__PURE__ */
|
|
2754
|
-
v.artifacts.length ? /* @__PURE__ */
|
|
2755
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2761
|
-
/* @__PURE__ */
|
|
2762
|
-
/* @__PURE__ */
|
|
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
|
] });
|