@ai-matrx/agents 0.8.0 → 0.9.0

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.
@@ -2,6 +2,9 @@
2
2
  "use client";
3
3
 
4
4
  // catalog/react/context.tsx
5
+ import { useMemo as useMemo2 } from "react";
6
+
7
+ // catalog/shared/context.tsx
5
8
  import {
6
9
  createContext,
7
10
  useCallback,
@@ -11,17 +14,19 @@ import {
11
14
  } from "react";
12
15
  import { jsx } from "react/jsx-runtime";
13
16
  var AgentCatalogContext = createContext(null);
14
- function AgentCatalogProvider({
17
+ function AgentCatalogProviderCore({
15
18
  catalog,
19
+ platform,
16
20
  children,
17
21
  ...ports
18
22
  }) {
19
23
  const value = useMemo(
20
- () => ({ catalog, ...ports }),
24
+ () => ({ catalog, platform, ...ports }),
21
25
  // The ports are plain values a host declares once; re-binding on identity
22
26
  // change is correct and cheap.
23
27
  [
24
28
  catalog,
29
+ platform,
25
30
  ports.navigate,
26
31
  ports.LinkComponent,
27
32
  ports.renderModelRef,
@@ -35,7 +40,7 @@ function useBinding() {
35
40
  const binding = useContext(AgentCatalogContext);
36
41
  if (!binding) {
37
42
  throw new Error(
38
- "@ai-matrx/agents/catalog/react: no <AgentCatalogProvider> is mounted above this component. Create the catalog once with createAgentCatalog({ client, identity }) and mount <AgentCatalogProvider catalog={catalog}> at the top of your tree."
43
+ "@ai-matrx/agents/catalog: no <AgentCatalogProvider> is mounted above this component. Create the catalog once with createAgentCatalog({ client, identity }) and mount <AgentCatalogProvider catalog={catalog}> at the top of your tree."
39
44
  );
40
45
  }
41
46
  return binding;
@@ -45,29 +50,26 @@ function useAgentCatalog() {
45
50
  }
46
51
  function useAgentCatalogUiPorts() {
47
52
  const binding = useBinding();
53
+ const hostNavigate = binding.navigate;
54
+ const platformNavigate = binding.platform.navigate;
48
55
  const navigate = useCallback(
49
56
  (href) => {
50
- if (binding.navigate) {
51
- binding.navigate(href);
57
+ if (hostNavigate) {
58
+ hostNavigate(href);
52
59
  return;
53
60
  }
54
- if (typeof window !== "undefined") window.location.assign(href);
61
+ platformNavigate(href);
55
62
  },
56
- [binding.navigate]
63
+ [hostNavigate, platformNavigate]
57
64
  );
58
65
  return {
59
66
  navigate,
60
- LinkComponent: binding.LinkComponent ?? DefaultLink,
61
- renderModelRef: binding.renderModelRef ?? defaultRenderModelRef,
67
+ LinkComponent: binding.LinkComponent ?? binding.platform.LinkComponent,
68
+ renderModelRef: binding.renderModelRef ?? binding.platform.renderModelRef,
62
69
  openPeek: binding.openPeek,
63
70
  popoverContainer: binding.popoverContainer
64
71
  };
65
72
  }
66
- var DefaultLink = ({ children, ...props }) => /* @__PURE__ */ jsx("a", { ...props, children });
67
- var defaultRenderModelRef = ({
68
- modelId,
69
- className
70
- }) => /* @__PURE__ */ jsx("span", { className, children: modelId });
71
73
  function useAgentCatalogState(select) {
72
74
  const catalog = useAgentCatalog();
73
75
  const getSnapshot = useCallback(
@@ -81,7 +83,39 @@ function useAgentCatalogRows() {
81
83
  }
82
84
  var selectRows = (state) => state.rows;
83
85
 
84
- // catalog/react/useAgentConsumer.ts
86
+ // catalog/react/context.tsx
87
+ import { jsx as jsx2 } from "react/jsx-runtime";
88
+ var DefaultLink = ({ children, ...props }) => /* @__PURE__ */ jsx2("a", { ...props, children });
89
+ var defaultRenderModelRef = ({
90
+ modelId,
91
+ className
92
+ }) => /* @__PURE__ */ jsx2("span", { className, children: modelId });
93
+ var webNavigate = (href) => {
94
+ if (typeof window !== "undefined") window.location.assign(href);
95
+ };
96
+ var WEB_PLATFORM_DEFAULTS = {
97
+ navigate: webNavigate,
98
+ LinkComponent: DefaultLink,
99
+ renderModelRef: defaultRenderModelRef
100
+ };
101
+ function AgentCatalogProvider({
102
+ catalog,
103
+ children,
104
+ ...ports
105
+ }) {
106
+ const platform = useMemo2(() => WEB_PLATFORM_DEFAULTS, []);
107
+ return /* @__PURE__ */ jsx2(
108
+ AgentCatalogProviderCore,
109
+ {
110
+ catalog,
111
+ platform,
112
+ ...ports,
113
+ children
114
+ }
115
+ );
116
+ }
117
+
118
+ // catalog/shared/useAgentConsumer.ts
85
119
  import { useCallback as useCallback2, useEffect, useRef, useState } from "react";
86
120
 
87
121
  // catalog/types.ts
@@ -113,7 +147,7 @@ var DEFAULT_AGENT_CONSUMER_STATE = {
113
147
  deepSearch: false
114
148
  };
115
149
 
116
- // catalog/react/useAgentConsumer.ts
150
+ // catalog/shared/useAgentConsumer.ts
117
151
  var DEBOUNCE_MS = 250;
118
152
  var MIN_QUERY_LENGTH = 2;
119
153
  function useAgentConsumer(consumerId, options) {
@@ -287,11 +321,11 @@ function useAgentConsumer(consumerId, options) {
287
321
  };
288
322
  }
289
323
 
290
- // catalog/react/useAgentListCore.ts
324
+ // catalog/shared/useAgentListCore.ts
291
325
  import {
292
326
  useCallback as useCallback3,
293
327
  useEffect as useEffect2,
294
- useMemo as useMemo2,
328
+ useMemo as useMemo3,
295
329
  useRef as useRef2,
296
330
  useState as useState2
297
331
  } from "react";
@@ -582,7 +616,7 @@ var selectTotalFavoriteAgentsCount = memoize1(
582
616
  (agents) => selectUserTypeAgents(agents).filter((a) => a.isFavorite).length
583
617
  );
584
618
 
585
- // catalog/react/useAgentListCore.ts
619
+ // catalog/shared/useAgentListCore.ts
586
620
  var HOVER_GRACE_MS = 900;
587
621
  function coerceVisibleTab(current, allowed, initialTab) {
588
622
  if (allowed.length === 0) return null;
@@ -611,12 +645,12 @@ function useAgentListCore({
611
645
  const rows = useAgentCatalogRows();
612
646
  const userId = catalog.getUserIdOrNull();
613
647
  const ownedCount = selectTotalOwnedAgentsCount(rows);
614
- const selectFiltered = useMemo2(
648
+ const selectFiltered = useMemo3(
615
649
  () => makeSelectFilteredAgents(includeSystemInAll),
616
650
  [includeSystemInAll]
617
651
  );
618
652
  const filteredAgents = selectFiltered(rows, consumer.state);
619
- const excludedAgentIds = useMemo2(
653
+ const excludedAgentIds = useMemo3(
620
654
  () => new Set(excludeAgentIds),
621
655
  [excludeAgentIds]
622
656
  );
@@ -791,15 +825,111 @@ import {
791
825
  TooltipTrigger,
792
826
  useIsMobile
793
827
  } from "@ai-matrx/design-system";
794
- import { useCallback as useCallback5, useMemo as useMemo3, useRef as useRef4, useState as useState3 } from "react";
828
+ import { useCallback as useCallback5, useMemo as useMemo4, useRef as useRef4, useState as useState3 } from "react";
795
829
 
796
830
  // catalog/react/primitives.tsx
797
831
  import { cn } from "@ai-matrx/design-system";
798
832
 
833
+ // catalog/shared/icon-paths.ts
834
+ var SHAPES = {
835
+ star: {
836
+ paths: [
837
+ "M11.5 3.2a.6.6 0 0 1 1 0l2.3 4.7 5.2.8a.6.6 0 0 1 .3 1l-3.8 3.7.9 5.2a.6.6 0 0 1-.9.6L12 16.8l-4.6 2.4a.6.6 0 0 1-.9-.6l.9-5.2-3.8-3.7a.6.6 0 0 1 .3-1l5.2-.8Z"
838
+ ],
839
+ fillable: true
840
+ },
841
+ chevronRight: { paths: ["m9 18 6-6-6-6"] },
842
+ chevronDown: { paths: ["m6 9 6 6 6-6"] },
843
+ search: {
844
+ paths: ["m21 21-4.3-4.3"],
845
+ circles: [{ cx: 11, cy: 11, r: 8 }]
846
+ },
847
+ x: { paths: ["M18 6 6 18", "m6 6 12 12"] },
848
+ check: { paths: ["M20 6 9 17l-5-5"] },
849
+ arrowUpDown: {
850
+ paths: ["m21 16-4 4-4-4", "M17 20V4", "m3 8 4-4 4 4", "M7 4v16"]
851
+ },
852
+ folder: {
853
+ paths: [
854
+ "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"
855
+ ]
856
+ },
857
+ tag: {
858
+ paths: [
859
+ "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z"
860
+ ],
861
+ circles: [{ cx: 7.5, cy: 7.5, r: 0.5, filled: true }]
862
+ },
863
+ rotateCcw: {
864
+ paths: [
865
+ "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",
866
+ "M3 3v5h5"
867
+ ]
868
+ },
869
+ loader: { paths: ["M21 12a9 9 0 1 1-6.219-8.56"] },
870
+ alertTriangle: {
871
+ paths: [
872
+ "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
873
+ "M12 9v4",
874
+ "M12 17h.01"
875
+ ]
876
+ },
877
+ /**
878
+ * The Orchestra marker (Lucide `music-4`): the glyph the Workflow Studio's
879
+ * picker used for a conductor, kept identical so the same agent wears the
880
+ * same mark in every client.
881
+ */
882
+ music4: {
883
+ paths: ["M9 18V5l12-2v13", "m9 9 12-2"],
884
+ circles: [
885
+ { cx: 6, cy: 18, r: 3 },
886
+ { cx: 18, cy: 16, r: 3 }
887
+ ]
888
+ },
889
+ clock: {
890
+ paths: ["M12 6v6l4 2"],
891
+ circles: [{ cx: 12, cy: 12, r: 10 }]
892
+ },
893
+ globe: {
894
+ paths: ["M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", "M2 12h20"],
895
+ circles: [{ cx: 12, cy: 12, r: 10 }]
896
+ },
897
+ users: {
898
+ paths: [
899
+ "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",
900
+ "M22 21v-2a4 4 0 0 0-3-3.87",
901
+ "M16 3.13a4 4 0 0 1 0 7.75"
902
+ ],
903
+ circles: [{ cx: 9, cy: 7, r: 4 }]
904
+ },
905
+ externalLink: {
906
+ paths: [
907
+ "M15 3h6v6",
908
+ "M10 14 21 3",
909
+ "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"
910
+ ]
911
+ },
912
+ messageCircle: { paths: ["M7.9 20A9 9 0 1 0 4 16.1L2 22Z"] },
913
+ rocket: {
914
+ paths: [
915
+ "M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91 0",
916
+ "m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2",
917
+ "M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",
918
+ "M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"
919
+ ]
920
+ },
921
+ circleCheck: {
922
+ paths: ["m9 12 2 2 4-4"],
923
+ circles: [{ cx: 12, cy: 12, r: 10 }]
924
+ }
925
+ };
926
+ var ICON_PATHS = SHAPES;
927
+ var ICON_NAMES = Object.keys(ICON_PATHS);
928
+
799
929
  // catalog/react/icons.tsx
800
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
930
+ import { Fragment, jsx as jsx3, jsxs } from "react/jsx-runtime";
801
931
  function Svg({ children, ...props }) {
802
- return /* @__PURE__ */ jsx2(
932
+ return /* @__PURE__ */ jsx3(
803
933
  "svg",
804
934
  {
805
935
  xmlns: "http://www.w3.org/2000/svg",
@@ -815,133 +945,79 @@ function Svg({ children, ...props }) {
815
945
  }
816
946
  );
817
947
  }
948
+ function Shape({ name, filled }) {
949
+ const shape = ICON_PATHS[name];
950
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
951
+ shape.paths.map((d, index) => /* @__PURE__ */ jsx3(
952
+ "path",
953
+ {
954
+ d,
955
+ ...filled && shape.fillable ? { fill: "currentColor" } : {}
956
+ },
957
+ `p${index}`
958
+ )),
959
+ (shape.circles ?? []).map((circle, index) => /* @__PURE__ */ jsx3(
960
+ "circle",
961
+ {
962
+ cx: circle.cx,
963
+ cy: circle.cy,
964
+ r: circle.r,
965
+ ...circle.filled ? { fill: "currentColor" } : {}
966
+ },
967
+ `c${index}`
968
+ ))
969
+ ] });
970
+ }
971
+ function makeIcon(name) {
972
+ return function Icon(props) {
973
+ return /* @__PURE__ */ jsx3(Svg, { ...props, children: /* @__PURE__ */ jsx3(Shape, { name, filled: false }) });
974
+ };
975
+ }
818
976
  function StarIcon({
819
977
  filled = false,
820
978
  ...props
821
979
  }) {
822
- return /* @__PURE__ */ jsx2(Svg, { ...props, fill: filled ? "currentColor" : "none", children: /* @__PURE__ */ jsx2("path", { d: "M11.5 3.2a.6.6 0 0 1 1 0l2.3 4.7 5.2.8a.6.6 0 0 1 .3 1l-3.8 3.7.9 5.2a.6.6 0 0 1-.9.6L12 16.8l-4.6 2.4a.6.6 0 0 1-.9-.6l.9-5.2-3.8-3.7a.6.6 0 0 1 .3-1l5.2-.8Z" }) });
823
- }
824
- function ChevronRightIcon(props) {
825
- return /* @__PURE__ */ jsx2(Svg, { ...props, children: /* @__PURE__ */ jsx2("path", { d: "m9 18 6-6-6-6" }) });
826
- }
827
- function ChevronDownIcon(props) {
828
- return /* @__PURE__ */ jsx2(Svg, { ...props, children: /* @__PURE__ */ jsx2("path", { d: "m6 9 6 6 6-6" }) });
829
- }
830
- function SearchIcon(props) {
831
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
832
- /* @__PURE__ */ jsx2("circle", { cx: "11", cy: "11", r: "8" }),
833
- /* @__PURE__ */ jsx2("path", { d: "m21 21-4.3-4.3" })
834
- ] });
835
- }
836
- function XIcon(props) {
837
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
838
- /* @__PURE__ */ jsx2("path", { d: "M18 6 6 18" }),
839
- /* @__PURE__ */ jsx2("path", { d: "m6 6 12 12" })
840
- ] });
841
- }
842
- function CheckIcon(props) {
843
- return /* @__PURE__ */ jsx2(Svg, { ...props, children: /* @__PURE__ */ jsx2("path", { d: "M20 6 9 17l-5-5" }) });
844
- }
845
- function ArrowUpDownIcon(props) {
846
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
847
- /* @__PURE__ */ jsx2("path", { d: "m21 16-4 4-4-4" }),
848
- /* @__PURE__ */ jsx2("path", { d: "M17 20V4" }),
849
- /* @__PURE__ */ jsx2("path", { d: "m3 8 4-4 4 4" }),
850
- /* @__PURE__ */ jsx2("path", { d: "M7 4v16" })
851
- ] });
852
- }
853
- function FolderIcon(props) {
854
- return /* @__PURE__ */ jsx2(Svg, { ...props, children: /* @__PURE__ */ jsx2("path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }) });
855
- }
856
- function TagIcon(props) {
857
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
858
- /* @__PURE__ */ jsx2("path", { d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z" }),
859
- /* @__PURE__ */ jsx2("circle", { cx: "7.5", cy: "7.5", r: ".5", fill: "currentColor" })
860
- ] });
861
- }
862
- function RotateCcwIcon(props) {
863
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
864
- /* @__PURE__ */ jsx2("path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }),
865
- /* @__PURE__ */ jsx2("path", { d: "M3 3v5h5" })
866
- ] });
867
- }
868
- function LoaderIcon(props) {
869
- return /* @__PURE__ */ jsx2(Svg, { ...props, children: /* @__PURE__ */ jsx2("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }) });
980
+ return /* @__PURE__ */ jsx3(Svg, { ...props, fill: filled ? "currentColor" : "none", children: /* @__PURE__ */ jsx3(Shape, { name: "star", filled }) });
870
981
  }
982
+ var ChevronRightIcon = makeIcon("chevronRight");
983
+ var ChevronDownIcon = makeIcon("chevronDown");
984
+ var SearchIcon = makeIcon("search");
985
+ var XIcon = makeIcon("x");
986
+ var CheckIcon = makeIcon("check");
987
+ var ArrowUpDownIcon = makeIcon("arrowUpDown");
988
+ var FolderIcon = makeIcon("folder");
989
+ var TagIcon = makeIcon("tag");
990
+ var RotateCcwIcon = makeIcon("rotateCcw");
991
+ var LoaderIcon = makeIcon("loader");
992
+ var UsersIcon = makeIcon("users");
993
+ var ClockIcon = makeIcon("clock");
994
+ var GlobeIcon = makeIcon("globe");
995
+ var ExternalLinkIcon = makeIcon("externalLink");
996
+ var MessageCircleIcon = makeIcon("messageCircle");
997
+ var RocketIcon = makeIcon("rocket");
998
+ var CircleCheckIcon = makeIcon("circleCheck");
999
+ var AlertTriangleIcon = makeIcon("alertTriangle");
1000
+ var Music4Icon = makeIcon("music4");
871
1001
  function MousePointerClickIcon(props) {
872
1002
  return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
873
- /* @__PURE__ */ jsx2("path", { d: "M14 4.1 12 6" }),
874
- /* @__PURE__ */ jsx2("path", { d: "m5.1 8-2.9-.8" }),
875
- /* @__PURE__ */ jsx2("path", { d: "m6 12-1.9 2" }),
876
- /* @__PURE__ */ jsx2("path", { d: "M7.2 2.2 8 5.1" }),
877
- /* @__PURE__ */ jsx2("path", { d: "M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z" })
878
- ] });
879
- }
880
- function UsersIcon(props) {
881
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
882
- /* @__PURE__ */ jsx2("path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }),
883
- /* @__PURE__ */ jsx2("circle", { cx: "9", cy: "7", r: "4" }),
884
- /* @__PURE__ */ jsx2("path", { d: "M22 21v-2a4 4 0 0 0-3-3.87" }),
885
- /* @__PURE__ */ jsx2("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
886
- ] });
887
- }
888
- function ClockIcon(props) {
889
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
890
- /* @__PURE__ */ jsx2("circle", { cx: "12", cy: "12", r: "10" }),
891
- /* @__PURE__ */ jsx2("path", { d: "M12 6v6l4 2" })
892
- ] });
893
- }
894
- function GlobeIcon(props) {
895
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
896
- /* @__PURE__ */ jsx2("circle", { cx: "12", cy: "12", r: "10" }),
897
- /* @__PURE__ */ jsx2("path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" }),
898
- /* @__PURE__ */ jsx2("path", { d: "M2 12h20" })
899
- ] });
900
- }
901
- function ExternalLinkIcon(props) {
902
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
903
- /* @__PURE__ */ jsx2("path", { d: "M15 3h6v6" }),
904
- /* @__PURE__ */ jsx2("path", { d: "M10 14 21 3" }),
905
- /* @__PURE__ */ jsx2("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" })
906
- ] });
907
- }
908
- function MessageCircleIcon(props) {
909
- return /* @__PURE__ */ jsx2(Svg, { ...props, children: /* @__PURE__ */ jsx2("path", { d: "M7.9 20A9 9 0 1 0 4 16.1L2 22Z" }) });
910
- }
911
- function RocketIcon(props) {
912
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
913
- /* @__PURE__ */ jsx2("path", { d: "M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91 0" }),
914
- /* @__PURE__ */ jsx2("path", { d: "m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2" }),
915
- /* @__PURE__ */ jsx2("path", { d: "M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0" }),
916
- /* @__PURE__ */ jsx2("path", { d: "M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5" })
917
- ] });
918
- }
919
- function AlertTriangleIcon(props) {
920
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
921
- /* @__PURE__ */ jsx2("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }),
922
- /* @__PURE__ */ jsx2("path", { d: "M12 9v4" }),
923
- /* @__PURE__ */ jsx2("path", { d: "M12 17h.01" })
924
- ] });
925
- }
926
- function Music4Icon(props) {
927
- return /* @__PURE__ */ jsxs(Svg, { ...props, children: [
928
- /* @__PURE__ */ jsx2("path", { d: "M9 18V5l12-2v13" }),
929
- /* @__PURE__ */ jsx2("path", { d: "m9 9 12-2" }),
930
- /* @__PURE__ */ jsx2("circle", { cx: "6", cy: "18", r: "3" }),
931
- /* @__PURE__ */ jsx2("circle", { cx: "18", cy: "16", r: "3" })
1003
+ /* @__PURE__ */ jsx3("path", { d: "M14 4.1 12 6" }),
1004
+ /* @__PURE__ */ jsx3("path", { d: "m5.1 8-2.9-.8" }),
1005
+ /* @__PURE__ */ jsx3("path", { d: "m6 12-1.9 2" }),
1006
+ /* @__PURE__ */ jsx3("path", { d: "M7.2 2.2 8 5.1" }),
1007
+ /* @__PURE__ */ jsx3("path", { d: "M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z" })
932
1008
  ] });
933
1009
  }
934
1010
 
935
1011
  // catalog/react/primitives.tsx
936
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
1012
+ import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
937
1013
  var SearchInput = ({
938
1014
  ref,
939
1015
  value,
940
1016
  onChange,
941
1017
  placeholder
942
1018
  }) => /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-1.5 h-7 px-2 rounded-md bg-muted/40 border border-border/50", children: [
943
- /* @__PURE__ */ jsx3(SearchIcon, { className: "w-3 h-3 text-muted-foreground shrink-0" }),
944
- /* @__PURE__ */ jsx3(
1019
+ /* @__PURE__ */ jsx4(SearchIcon, { className: "w-3 h-3 text-muted-foreground shrink-0" }),
1020
+ /* @__PURE__ */ jsx4(
945
1021
  "input",
946
1022
  {
947
1023
  ref,
@@ -953,14 +1029,14 @@ var SearchInput = ({
953
1029
  style: { fontSize: "16px" }
954
1030
  }
955
1031
  ),
956
- value && /* @__PURE__ */ jsx3(
1032
+ value && /* @__PURE__ */ jsx4(
957
1033
  "button",
958
1034
  {
959
1035
  type: "button",
960
1036
  onClick: () => onChange(""),
961
1037
  className: "text-muted-foreground hover:text-foreground",
962
1038
  "aria-label": "Clear search",
963
- children: /* @__PURE__ */ jsx3(XIcon, { className: "w-3 h-3" })
1039
+ children: /* @__PURE__ */ jsx4(XIcon, { className: "w-3 h-3" })
964
1040
  }
965
1041
  )
966
1042
  ] });
@@ -981,8 +1057,8 @@ function FilterChip({
981
1057
  focused ? "bg-primary/15 text-primary border border-primary/30 ring-1 ring-primary/20" : active ? "bg-primary/10 text-primary border border-primary/20" : "text-muted-foreground hover:text-foreground hover:bg-muted/50 border border-transparent"
982
1058
  ),
983
1059
  children: [
984
- /* @__PURE__ */ jsx3(Icon, { className: "w-3 h-3" }),
985
- /* @__PURE__ */ jsx3("span", { children: label })
1060
+ /* @__PURE__ */ jsx4(Icon, { className: "w-3 h-3" }),
1061
+ /* @__PURE__ */ jsx4("span", { children: label })
986
1062
  ]
987
1063
  }
988
1064
  );
@@ -1003,8 +1079,8 @@ function OptionRow({
1003
1079
  selected && "text-primary font-medium"
1004
1080
  ),
1005
1081
  children: [
1006
- /* @__PURE__ */ jsx3("span", { className: "flex-1 text-left", children: label }),
1007
- selected && /* @__PURE__ */ jsx3(CheckIcon, { className: "w-3.5 h-3.5 text-primary shrink-0" })
1082
+ /* @__PURE__ */ jsx4("span", { className: "flex-1 text-left", children: label }),
1083
+ selected && /* @__PURE__ */ jsx4(CheckIcon, { className: "w-3.5 h-3.5 text-primary shrink-0" })
1008
1084
  ]
1009
1085
  }
1010
1086
  );
@@ -1021,17 +1097,17 @@ function CheckRow({
1021
1097
  onClick,
1022
1098
  className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs hover:bg-muted/50 active:bg-muted/70 transition-colors",
1023
1099
  children: [
1024
- /* @__PURE__ */ jsx3(
1100
+ /* @__PURE__ */ jsx4(
1025
1101
  "div",
1026
1102
  {
1027
1103
  className: cn(
1028
1104
  "w-3.5 h-3.5 rounded-sm border flex items-center justify-center shrink-0 transition-colors",
1029
1105
  checked ? "bg-primary border-primary" : "border-muted-foreground/30"
1030
1106
  ),
1031
- children: checked && /* @__PURE__ */ jsx3(CheckIcon, { className: "w-2.5 h-2.5 text-primary-foreground" })
1107
+ children: checked && /* @__PURE__ */ jsx4(CheckIcon, { className: "w-2.5 h-2.5 text-primary-foreground" })
1032
1108
  }
1033
1109
  ),
1034
- /* @__PURE__ */ jsx3("span", { className: "flex-1 text-left truncate", children: label })
1110
+ /* @__PURE__ */ jsx4("span", { className: "flex-1 text-left truncate", children: label })
1035
1111
  ]
1036
1112
  }
1037
1113
  );
@@ -1041,22 +1117,22 @@ function SidePanelHeader({
1041
1117
  onClose
1042
1118
  }) {
1043
1119
  return /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between px-3 py-2 border-b border-border shrink-0", children: [
1044
- /* @__PURE__ */ jsx3("span", { className: "text-xs font-semibold text-foreground", children: title }),
1045
- /* @__PURE__ */ jsx3(
1120
+ /* @__PURE__ */ jsx4("span", { className: "text-xs font-semibold text-foreground", children: title }),
1121
+ /* @__PURE__ */ jsx4(
1046
1122
  "button",
1047
1123
  {
1048
1124
  type: "button",
1049
1125
  onClick: onClose,
1050
1126
  className: "w-5 h-5 rounded flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors",
1051
1127
  "aria-label": "Close",
1052
- children: /* @__PURE__ */ jsx3(XIcon, { className: "w-3.5 h-3.5" })
1128
+ children: /* @__PURE__ */ jsx4(XIcon, { className: "w-3.5 h-3.5" })
1053
1129
  }
1054
1130
  )
1055
1131
  ] });
1056
1132
  }
1057
1133
 
1058
1134
  // catalog/react/AgentCategoriesPanel.tsx
1059
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
1135
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
1060
1136
  function AgentCategoriesPanel({
1061
1137
  consumer,
1062
1138
  allCategories,
@@ -1068,8 +1144,8 @@ function AgentCategoriesPanel({
1068
1144
  (c) => !search || c.toLowerCase().includes(search.toLowerCase())
1069
1145
  );
1070
1146
  return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col h-full", children: [
1071
- /* @__PURE__ */ jsx4(SidePanelHeader, { title: "Categories", onClose }),
1072
- /* @__PURE__ */ jsx4("div", { className: "px-2 pt-2 pb-1 shrink-0", children: /* @__PURE__ */ jsx4(
1147
+ /* @__PURE__ */ jsx5(SidePanelHeader, { title: "Categories", onClose }),
1148
+ /* @__PURE__ */ jsx5("div", { className: "px-2 pt-2 pb-1 shrink-0", children: /* @__PURE__ */ jsx5(
1073
1149
  SearchInput,
1074
1150
  {
1075
1151
  value: search,
@@ -1090,7 +1166,7 @@ function AgentCategoriesPanel({
1090
1166
  ]
1091
1167
  }
1092
1168
  ),
1093
- /* @__PURE__ */ jsx4("div", { className: "overflow-y-auto flex-1", children: filtered.length === 0 ? /* @__PURE__ */ jsx4("p", { className: "text-xs text-muted-foreground text-center py-6", children: "No categories" }) : filtered.map((cat) => /* @__PURE__ */ jsx4(
1169
+ /* @__PURE__ */ jsx5("div", { className: "overflow-y-auto flex-1", children: filtered.length === 0 ? /* @__PURE__ */ jsx5("p", { className: "text-xs text-muted-foreground text-center py-6", children: "No categories" }) : filtered.map((cat) => /* @__PURE__ */ jsx5(
1094
1170
  CheckRow,
1095
1171
  {
1096
1172
  label: cat,
@@ -1108,7 +1184,7 @@ import { cn as cn3 } from "@ai-matrx/design-system";
1108
1184
  // catalog/react/FavoriteAgentButton.tsx
1109
1185
  import { cn as cn2 } from "@ai-matrx/design-system";
1110
1186
  import { useCallback as useCallback4 } from "react";
1111
- import { jsx as jsx5 } from "react/jsx-runtime";
1187
+ import { jsx as jsx6 } from "react/jsx-runtime";
1112
1188
  function FavoriteAgentButton({
1113
1189
  id,
1114
1190
  variant = "card",
@@ -1130,7 +1206,7 @@ function FavoriteAgentButton({
1130
1206
  };
1131
1207
  const title = isOwner ? isFavorite ? "Remove from favorites" : "Add to favorites" : "Shared \u2014 cannot favorite";
1132
1208
  if (variant === "list") {
1133
- return /* @__PURE__ */ jsx5(
1209
+ return /* @__PURE__ */ jsx6(
1134
1210
  "button",
1135
1211
  {
1136
1212
  type: "button",
@@ -1143,7 +1219,7 @@ function FavoriteAgentButton({
1143
1219
  disabled: disabled || !isOwner,
1144
1220
  title,
1145
1221
  "aria-label": isFavorite ? "Remove from favorites" : "Add to favorites",
1146
- children: /* @__PURE__ */ jsx5(
1222
+ children: /* @__PURE__ */ jsx6(
1147
1223
  StarIcon,
1148
1224
  {
1149
1225
  filled: isFavorite,
@@ -1156,7 +1232,7 @@ function FavoriteAgentButton({
1156
1232
  }
1157
1233
  );
1158
1234
  }
1159
- return /* @__PURE__ */ jsx5(
1235
+ return /* @__PURE__ */ jsx6(
1160
1236
  "button",
1161
1237
  {
1162
1238
  type: "button",
@@ -1170,7 +1246,7 @@ function FavoriteAgentButton({
1170
1246
  disabled: disabled || !isOwner,
1171
1247
  title,
1172
1248
  "aria-label": isFavorite ? "Remove from favorites" : "Add to favorites",
1173
- children: /* @__PURE__ */ jsx5(StarIcon, { filled: isFavorite, className: "w-4 h-4 transition-all duration-150" })
1249
+ children: /* @__PURE__ */ jsx6(StarIcon, { filled: isFavorite, className: "w-4 h-4 transition-all duration-150" })
1174
1250
  }
1175
1251
  );
1176
1252
  }
@@ -1203,7 +1279,7 @@ function orchestraDelegatesLine(badge, limit = 3) {
1203
1279
  }
1204
1280
 
1205
1281
  // catalog/react/AgentDetailCard.tsx
1206
- import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
1282
+ import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
1207
1283
  function AgentDetailCard({ agent, onSelect }) {
1208
1284
  const { LinkComponent, renderModelRef, openPeek } = useAgentCatalogUiPorts();
1209
1285
  const updatedDate = agent.updatedAt ? new Date(agent.updatedAt) : null;
@@ -1218,23 +1294,23 @@ function AgentDetailCard({ agent, onSelect }) {
1218
1294
  });
1219
1295
  };
1220
1296
  return /* @__PURE__ */ jsxs4("div", { className: "flex flex-col h-full", children: [
1221
- /* @__PURE__ */ jsx6("div", { className: "px-4 pt-4 pb-3", children: /* @__PURE__ */ jsxs4("div", { className: "flex items-start gap-3", children: [
1222
- /* @__PURE__ */ jsx6("div", { className: "w-9 h-9 rounded-lg bg-primary/10 flex items-center justify-center shrink-0" }),
1297
+ /* @__PURE__ */ jsx7("div", { className: "px-4 pt-4 pb-3", children: /* @__PURE__ */ jsxs4("div", { className: "flex items-start gap-3", children: [
1298
+ /* @__PURE__ */ jsx7("div", { className: "w-9 h-9 rounded-lg bg-primary/10 flex items-center justify-center shrink-0" }),
1223
1299
  /* @__PURE__ */ jsxs4("div", { className: "flex-1 min-w-0", children: [
1224
- /* @__PURE__ */ jsx6("h3", { className: "text-sm font-semibold text-foreground leading-tight truncate", children: agent.name || "Untitled" }),
1225
- agent.isFavorite && /* @__PURE__ */ jsx6("div", { className: "flex items-center gap-1 mt-0.5", children: /* @__PURE__ */ jsx6("span", { className: "text-[11px] matrx-agent-star-on", children: "Pinned to favorites" }) })
1300
+ /* @__PURE__ */ jsx7("h3", { className: "text-sm font-semibold text-foreground leading-tight truncate", children: agent.name || "Untitled" }),
1301
+ agent.isFavorite && /* @__PURE__ */ jsx7("div", { className: "flex items-center gap-1 mt-0.5", children: /* @__PURE__ */ jsx7("span", { className: "text-[11px] matrx-agent-star-on", children: "Pinned to favorites" }) })
1226
1302
  ] }),
1227
- !isDefaultRow && /* @__PURE__ */ jsx6(FavoriteAgentButton, { id: agent.id, variant: "list" })
1303
+ !isDefaultRow && /* @__PURE__ */ jsx7(FavoriteAgentButton, { id: agent.id, variant: "list" })
1228
1304
  ] }) }),
1229
- /* @__PURE__ */ jsx6("div", { className: "h-px bg-border mx-3" }),
1305
+ /* @__PURE__ */ jsx7("div", { className: "h-px bg-border mx-3" }),
1230
1306
  /* @__PURE__ */ jsxs4("div", { className: "flex-1 overflow-y-auto px-4 py-3 space-y-3", children: [
1231
1307
  agent.orchestra && /* @__PURE__ */ jsxs4("div", { className: "rounded-md border border-primary/20 bg-primary/5 px-2.5 py-2", children: [
1232
1308
  /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-1.5", children: [
1233
- /* @__PURE__ */ jsx6(Music4Icon, { className: "w-3.5 h-3.5 text-primary shrink-0" }),
1234
- /* @__PURE__ */ jsx6("span", { className: "text-[11px] font-medium text-primary", children: orchestraLabel(agent.orchestra) })
1309
+ /* @__PURE__ */ jsx7(Music4Icon, { className: "w-3.5 h-3.5 text-primary shrink-0" }),
1310
+ /* @__PURE__ */ jsx7("span", { className: "text-[11px] font-medium text-primary", children: orchestraLabel(agent.orchestra) })
1235
1311
  ] }),
1236
- agent.orchestra.tagline && /* @__PURE__ */ jsx6("p", { className: "mt-1 text-xs text-foreground/80 leading-relaxed", children: agent.orchestra.tagline }),
1237
- orchestraDelegatesLine(agent.orchestra) && /* @__PURE__ */ jsx6(
1312
+ agent.orchestra.tagline && /* @__PURE__ */ jsx7("p", { className: "mt-1 text-xs text-foreground/80 leading-relaxed", children: agent.orchestra.tagline }),
1313
+ orchestraDelegatesLine(agent.orchestra) && /* @__PURE__ */ jsx7(
1238
1314
  "p",
1239
1315
  {
1240
1316
  className: "mt-1 text-[11px] text-muted-foreground",
@@ -1242,22 +1318,22 @@ function AgentDetailCard({ agent, onSelect }) {
1242
1318
  children: orchestraDelegatesLine(agent.orchestra)
1243
1319
  }
1244
1320
  ),
1245
- orchestraDepthLine(agent.orchestra) && /* @__PURE__ */ jsx6("p", { className: "mt-0.5 text-[11px] text-muted-foreground", children: orchestraDepthLine(agent.orchestra) })
1321
+ orchestraDepthLine(agent.orchestra) && /* @__PURE__ */ jsx7("p", { className: "mt-0.5 text-[11px] text-muted-foreground", children: orchestraDepthLine(agent.orchestra) })
1246
1322
  ] }),
1247
1323
  agent.description && /* @__PURE__ */ jsxs4("div", { children: [
1248
- /* @__PURE__ */ jsx6("p", { className: "text-[11px] font-medium text-muted-foreground uppercase tracking-wider mb-1", children: "Description" }),
1249
- /* @__PURE__ */ jsx6("p", { className: "text-xs text-foreground/80 leading-relaxed", children: agent.description })
1324
+ /* @__PURE__ */ jsx7("p", { className: "text-[11px] font-medium text-muted-foreground uppercase tracking-wider mb-1", children: "Description" }),
1325
+ /* @__PURE__ */ jsx7("p", { className: "text-xs text-foreground/80 leading-relaxed", children: agent.description })
1250
1326
  ] }),
1251
1327
  agent.category && /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2", children: [
1252
- /* @__PURE__ */ jsx6(FolderIcon, { className: "w-3.5 h-3.5 text-muted-foreground shrink-0" }),
1253
- /* @__PURE__ */ jsx6("span", { className: "text-xs text-foreground/80", children: agent.category })
1328
+ /* @__PURE__ */ jsx7(FolderIcon, { className: "w-3.5 h-3.5 text-muted-foreground shrink-0" }),
1329
+ /* @__PURE__ */ jsx7("span", { className: "text-xs text-foreground/80", children: agent.category })
1254
1330
  ] }),
1255
1331
  agent.tags && agent.tags.length > 0 && /* @__PURE__ */ jsxs4("div", { children: [
1256
1332
  /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-1.5 mb-1.5", children: [
1257
- /* @__PURE__ */ jsx6(TagIcon, { className: "w-3.5 h-3.5 text-muted-foreground shrink-0" }),
1258
- /* @__PURE__ */ jsx6("span", { className: "text-[11px] font-medium text-muted-foreground", children: "Tags" })
1333
+ /* @__PURE__ */ jsx7(TagIcon, { className: "w-3.5 h-3.5 text-muted-foreground shrink-0" }),
1334
+ /* @__PURE__ */ jsx7("span", { className: "text-[11px] font-medium text-muted-foreground", children: "Tags" })
1259
1335
  ] }),
1260
- /* @__PURE__ */ jsx6("div", { className: "flex flex-wrap gap-1", children: agent.tags.map((tag) => /* @__PURE__ */ jsx6(
1336
+ /* @__PURE__ */ jsx7("div", { className: "flex flex-wrap gap-1", children: agent.tags.map((tag) => /* @__PURE__ */ jsx7(
1261
1337
  "span",
1262
1338
  {
1263
1339
  className: "inline-flex items-center h-5 px-1.5 rounded text-[10px] font-medium bg-muted text-muted-foreground",
@@ -1267,29 +1343,29 @@ function AgentDetailCard({ agent, onSelect }) {
1267
1343
  )) })
1268
1344
  ] }),
1269
1345
  agent.accessLevel && /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2", children: [
1270
- agent.isOwner === false ? /* @__PURE__ */ jsx6(UsersIcon, { className: "w-3.5 h-3.5 text-muted-foreground shrink-0" }) : /* @__PURE__ */ jsx6(GlobeIcon, { className: "w-3.5 h-3.5 text-muted-foreground shrink-0" }),
1346
+ agent.isOwner === false ? /* @__PURE__ */ jsx7(UsersIcon, { className: "w-3.5 h-3.5 text-muted-foreground shrink-0" }) : /* @__PURE__ */ jsx7(GlobeIcon, { className: "w-3.5 h-3.5 text-muted-foreground shrink-0" }),
1271
1347
  /* @__PURE__ */ jsxs4("div", { className: "flex flex-col", children: [
1272
- /* @__PURE__ */ jsx6("span", { className: "text-xs text-foreground/80 capitalize", children: agent.accessLevel === "owner" ? "You own this" : `Shared \u2014 ${agent.accessLevel}` }),
1348
+ /* @__PURE__ */ jsx7("span", { className: "text-xs text-foreground/80 capitalize", children: agent.accessLevel === "owner" ? "You own this" : `Shared \u2014 ${agent.accessLevel}` }),
1273
1349
  agent.sharedByEmail && /* @__PURE__ */ jsxs4("span", { className: "text-[10px] text-muted-foreground", children: [
1274
1350
  "by ",
1275
1351
  agent.sharedByEmail
1276
1352
  ] })
1277
1353
  ] })
1278
1354
  ] }),
1279
- agent.modelId && /* @__PURE__ */ jsx6("div", { className: "flex items-center gap-2", children: renderModelRef({
1355
+ agent.modelId && /* @__PURE__ */ jsx7("div", { className: "flex items-center gap-2", children: renderModelRef({
1280
1356
  modelId: agent.modelId,
1281
1357
  className: "max-w-full text-xs text-foreground/80"
1282
1358
  }) }),
1283
1359
  (updatedDate || createdDate) && /* @__PURE__ */ jsxs4("div", { className: "pt-1 space-y-1", children: [
1284
1360
  updatedDate && /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2", children: [
1285
- /* @__PURE__ */ jsx6(ClockIcon, { className: "w-3.5 h-3.5 text-muted-foreground shrink-0" }),
1361
+ /* @__PURE__ */ jsx7(ClockIcon, { className: "w-3.5 h-3.5 text-muted-foreground shrink-0" }),
1286
1362
  /* @__PURE__ */ jsxs4("span", { className: "text-[11px] text-muted-foreground", children: [
1287
1363
  "Updated ",
1288
1364
  formatDate(updatedDate)
1289
1365
  ] })
1290
1366
  ] }),
1291
1367
  createdDate && /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2", children: [
1292
- /* @__PURE__ */ jsx6(ClockIcon, { className: "w-3.5 h-3.5 text-muted-foreground/50 shrink-0" }),
1368
+ /* @__PURE__ */ jsx7(ClockIcon, { className: "w-3.5 h-3.5 text-muted-foreground/50 shrink-0" }),
1293
1369
  /* @__PURE__ */ jsxs4("span", { className: "text-[11px] text-muted-foreground/70", children: [
1294
1370
  "Created ",
1295
1371
  formatDate(createdDate)
@@ -1297,9 +1373,9 @@ function AgentDetailCard({ agent, onSelect }) {
1297
1373
  ] })
1298
1374
  ] })
1299
1375
  ] }),
1300
- /* @__PURE__ */ jsx6("div", { className: "h-px bg-border mx-3 mt-auto" }),
1376
+ /* @__PURE__ */ jsx7("div", { className: "h-px bg-border mx-3 mt-auto" }),
1301
1377
  /* @__PURE__ */ jsxs4("div", { className: "px-3 py-2 shrink-0 flex items-center gap-1.5", children: [
1302
- /* @__PURE__ */ jsx6(
1378
+ /* @__PURE__ */ jsx7(
1303
1379
  "button",
1304
1380
  {
1305
1381
  type: "button",
@@ -1308,7 +1384,7 @@ function AgentDetailCard({ agent, onSelect }) {
1308
1384
  children: "Select"
1309
1385
  }
1310
1386
  ),
1311
- openPeek && /* @__PURE__ */ jsx6(
1387
+ openPeek && /* @__PURE__ */ jsx7(
1312
1388
  "button",
1313
1389
  {
1314
1390
  type: "button",
@@ -1319,11 +1395,11 @@ function AgentDetailCard({ agent, onSelect }) {
1319
1395
  title: "Sneak Peek",
1320
1396
  "aria-label": "Sneak Peek",
1321
1397
  className: iconButtonClass,
1322
- children: /* @__PURE__ */ jsx6(RocketIcon, { className: "w-3.5 h-3.5" })
1398
+ children: /* @__PURE__ */ jsx7(RocketIcon, { className: "w-3.5 h-3.5" })
1323
1399
  }
1324
1400
  ),
1325
- !isDefaultRow && /* @__PURE__ */ jsxs4(Fragment, { children: [
1326
- /* @__PURE__ */ jsx6(
1401
+ !isDefaultRow && /* @__PURE__ */ jsxs4(Fragment2, { children: [
1402
+ /* @__PURE__ */ jsx7(
1327
1403
  LinkComponent,
1328
1404
  {
1329
1405
  href: `/chat/a/${agent.id}`,
@@ -1331,10 +1407,10 @@ function AgentDetailCard({ agent, onSelect }) {
1331
1407
  title: "Open in chat",
1332
1408
  "aria-label": "Open in chat",
1333
1409
  className: iconButtonClass,
1334
- children: /* @__PURE__ */ jsx6(MessageCircleIcon, { className: "w-3.5 h-3.5" })
1410
+ children: /* @__PURE__ */ jsx7(MessageCircleIcon, { className: "w-3.5 h-3.5" })
1335
1411
  }
1336
1412
  ),
1337
- /* @__PURE__ */ jsx6(
1413
+ /* @__PURE__ */ jsx7(
1338
1414
  LinkComponent,
1339
1415
  {
1340
1416
  href: `/agents/go/${agent.id}`,
@@ -1347,7 +1423,7 @@ function AgentDetailCard({ agent, onSelect }) {
1347
1423
  iconButtonClass,
1348
1424
  "hover:text-foreground"
1349
1425
  ),
1350
- children: /* @__PURE__ */ jsx6(ExternalLinkIcon, { className: "w-3.5 h-3.5" })
1426
+ children: /* @__PURE__ */ jsx7(ExternalLinkIcon, { className: "w-3.5 h-3.5" })
1351
1427
  }
1352
1428
  )
1353
1429
  ] })
@@ -1364,7 +1440,7 @@ var PANEL_HEIGHT = "528px";
1364
1440
  var LIST_MAX_HEIGHT = "min(528px, var(--radix-popper-available-height, 528px))";
1365
1441
 
1366
1442
  // catalog/react/AgentFilterBar.tsx
1367
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
1443
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
1368
1444
  function AgentFilterBar({
1369
1445
  consumer,
1370
1446
  allCategories,
@@ -1376,7 +1452,7 @@ function AgentFilterBar({
1376
1452
  onReset
1377
1453
  }) {
1378
1454
  return /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-1 px-2 pb-1.5 overflow-x-auto matrx-agent-scrollbar-none shrink-0", children: [
1379
- /* @__PURE__ */ jsx7(
1455
+ /* @__PURE__ */ jsx8(
1380
1456
  FilterChip,
1381
1457
  {
1382
1458
  icon: ArrowUpDownIcon,
@@ -1386,7 +1462,7 @@ function AgentFilterBar({
1386
1462
  onClick: () => onFilterChipClick("sort")
1387
1463
  }
1388
1464
  ),
1389
- /* @__PURE__ */ jsx7(
1465
+ /* @__PURE__ */ jsx8(
1390
1466
  FilterChip,
1391
1467
  {
1392
1468
  icon: StarIcon,
@@ -1398,7 +1474,7 @@ function AgentFilterBar({
1398
1474
  }
1399
1475
  }
1400
1476
  ),
1401
- allCategories.length > 0 && /* @__PURE__ */ jsx7(
1477
+ allCategories.length > 0 && /* @__PURE__ */ jsx8(
1402
1478
  FilterChip,
1403
1479
  {
1404
1480
  icon: FolderIcon,
@@ -1408,7 +1484,7 @@ function AgentFilterBar({
1408
1484
  onClick: () => onFilterChipClick("categories")
1409
1485
  }
1410
1486
  ),
1411
- allTags.length > 0 && /* @__PURE__ */ jsx7(
1487
+ allTags.length > 0 && /* @__PURE__ */ jsx8(
1412
1488
  FilterChip,
1413
1489
  {
1414
1490
  icon: TagIcon,
@@ -1418,14 +1494,14 @@ function AgentFilterBar({
1418
1494
  onClick: () => onFilterChipClick("tags")
1419
1495
  }
1420
1496
  ),
1421
- activeFilterCount > 0 && /* @__PURE__ */ jsx7(
1497
+ activeFilterCount > 0 && /* @__PURE__ */ jsx8(
1422
1498
  "button",
1423
1499
  {
1424
1500
  type: "button",
1425
1501
  onClick: onReset,
1426
1502
  "aria-label": "Reset filters",
1427
1503
  className: "flex items-center gap-0.5 h-6 px-1.5 rounded text-[11px] text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors shrink-0",
1428
- children: /* @__PURE__ */ jsx7(RotateCcwIcon, { className: "w-3 h-3" })
1504
+ children: /* @__PURE__ */ jsx8(RotateCcwIcon, { className: "w-3 h-3" })
1429
1505
  }
1430
1506
  )
1431
1507
  ] });
@@ -1433,7 +1509,7 @@ function AgentFilterBar({
1433
1509
 
1434
1510
  // catalog/react/AgentListTabs.tsx
1435
1511
  import { cn as cn4 } from "@ai-matrx/design-system";
1436
- import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
1512
+ import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
1437
1513
  function AgentListTabs({
1438
1514
  consumer,
1439
1515
  tabCounts,
@@ -1447,7 +1523,7 @@ function AgentListTabs({
1447
1523
  { value: "all", label: "All", countKey: "all" },
1448
1524
  { value: "system", label: labels.publicTab, countKey: "system" }
1449
1525
  ];
1450
- return /* @__PURE__ */ jsx8(
1526
+ return /* @__PURE__ */ jsx9(
1451
1527
  "div",
1452
1528
  {
1453
1529
  className: "flex items-center gap-0.5 px-2 pb-1 overflow-x-auto matrx-agent-scrollbar-none shrink-0",
@@ -1469,8 +1545,8 @@ function AgentListTabs({
1469
1545
  active ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:text-foreground hover:bg-muted/50"
1470
1546
  ),
1471
1547
  children: [
1472
- /* @__PURE__ */ jsx8("span", { children: label }),
1473
- /* @__PURE__ */ jsx8(
1548
+ /* @__PURE__ */ jsx9("span", { children: label }),
1549
+ /* @__PURE__ */ jsx9(
1474
1550
  "span",
1475
1551
  {
1476
1552
  className: cn4("tabular-nums opacity-70", active && "opacity-90"),
@@ -1488,7 +1564,7 @@ function AgentListTabs({
1488
1564
 
1489
1565
  // catalog/react/AgentRow.tsx
1490
1566
  import { cn as cn5 } from "@ai-matrx/design-system";
1491
- import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
1567
+ import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
1492
1568
  function AgentRow({
1493
1569
  agent,
1494
1570
  isActive,
@@ -1526,8 +1602,8 @@ function AgentRow({
1526
1602
  },
1527
1603
  className: "flex items-center gap-2 flex-1 min-w-0 px-3 py-2",
1528
1604
  children: [
1529
- agent.isFavorite && /* @__PURE__ */ jsx9(StarIcon, { filled: true, className: "w-3 h-3 matrx-agent-star-on shrink-0" }),
1530
- /* @__PURE__ */ jsx9(
1605
+ agent.isFavorite && /* @__PURE__ */ jsx10(StarIcon, { filled: true, className: "w-3 h-3 matrx-agent-star-on shrink-0" }),
1606
+ /* @__PURE__ */ jsx10(
1531
1607
  "span",
1532
1608
  {
1533
1609
  className: cn5(
@@ -1543,16 +1619,16 @@ function AgentRow({
1543
1619
  className: "flex shrink-0 items-center gap-0.5 rounded-sm bg-primary/10 px-1 py-px text-[9px] font-medium text-primary",
1544
1620
  title: orchestraDelegatesLine(agent.orchestra) ?? orchestraLabel(agent.orchestra),
1545
1621
  children: [
1546
- /* @__PURE__ */ jsx9(Music4Icon, { className: "w-2.5 h-2.5" }),
1622
+ /* @__PURE__ */ jsx10(Music4Icon, { className: "w-2.5 h-2.5" }),
1547
1623
  agent.orchestra.memberCount
1548
1624
  ]
1549
1625
  }
1550
1626
  ),
1551
- agent.agentType === "builtin" ? /* @__PURE__ */ jsx9("span", { className: "text-[9px] font-medium text-primary bg-primary/10 px-1 py-px rounded shrink-0 ml-auto", children: labels.systemBadge }) : agent.isOwner === false ? /* @__PURE__ */ jsx9("span", { className: "text-[9px] text-muted-foreground bg-muted px-1 py-px rounded shrink-0 ml-auto", children: "shared" }) : null
1627
+ agent.agentType === "builtin" ? /* @__PURE__ */ jsx10("span", { className: "text-[9px] font-medium text-primary bg-primary/10 px-1 py-px rounded shrink-0 ml-auto", children: labels.systemBadge }) : agent.isOwner === false ? /* @__PURE__ */ jsx10("span", { className: "text-[9px] text-muted-foreground bg-muted px-1 py-px rounded shrink-0 ml-auto", children: "shared" }) : null
1552
1628
  ]
1553
1629
  }
1554
1630
  ),
1555
- isMobile && /* @__PURE__ */ jsx9(
1631
+ isMobile && /* @__PURE__ */ jsx10(
1556
1632
  "button",
1557
1633
  {
1558
1634
  type: "button",
@@ -1562,7 +1638,7 @@ function AgentRow({
1562
1638
  onDetailPress();
1563
1639
  },
1564
1640
  className: "flex items-center justify-center w-10 h-full shrink-0 text-muted-foreground/40 active:text-muted-foreground",
1565
- children: /* @__PURE__ */ jsx9(ChevronRightIcon, { className: "w-4 h-4" })
1641
+ children: /* @__PURE__ */ jsx10(ChevronRightIcon, { className: "w-4 h-4" })
1566
1642
  }
1567
1643
  )
1568
1644
  ]
@@ -1571,7 +1647,7 @@ function AgentRow({
1571
1647
  }
1572
1648
 
1573
1649
  // catalog/react/AgentListContent.tsx
1574
- import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
1650
+ import { Fragment as Fragment3, jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
1575
1651
  function AgentListContent({
1576
1652
  agents,
1577
1653
  isLoading,
@@ -1609,7 +1685,7 @@ function AgentListContent({
1609
1685
  const emptyLabel = agentListEmptyLabel(consumer.tab, labels);
1610
1686
  const defaultAgent = defaultRow?.row ?? null;
1611
1687
  return /* @__PURE__ */ jsxs8("div", { className: "flex flex-col h-full", children: [
1612
- /* @__PURE__ */ jsx10("div", { className: "px-2 pt-2 pb-1 shrink-0", children: /* @__PURE__ */ jsx10(
1688
+ /* @__PURE__ */ jsx11("div", { className: "px-2 pt-2 pb-1 shrink-0", children: /* @__PURE__ */ jsx11(
1613
1689
  SearchInput,
1614
1690
  {
1615
1691
  ref: inputRef,
@@ -1618,7 +1694,7 @@ function AgentListContent({
1618
1694
  placeholder: labels.searchPlaceholder
1619
1695
  }
1620
1696
  ) }),
1621
- /* @__PURE__ */ jsx10(
1697
+ /* @__PURE__ */ jsx11(
1622
1698
  AgentListTabs,
1623
1699
  {
1624
1700
  consumer,
@@ -1627,7 +1703,7 @@ function AgentListContent({
1627
1703
  visibleTabs
1628
1704
  }
1629
1705
  ),
1630
- /* @__PURE__ */ jsx10(
1706
+ /* @__PURE__ */ jsx11(
1631
1707
  AgentFilterBar,
1632
1708
  {
1633
1709
  consumer,
@@ -1646,16 +1722,16 @@ function AgentListContent({
1646
1722
  role: "status",
1647
1723
  className: "matrx-agent-drift-banner mx-2 mb-1.5 flex items-start gap-2 rounded-md px-2 py-1.5 shrink-0",
1648
1724
  children: [
1649
- /* @__PURE__ */ jsx10(AlertTriangleIcon, { className: "w-3.5 h-3.5 shrink-0 mt-px" }),
1650
- /* @__PURE__ */ jsx10("span", { className: "text-[11px] leading-snug flex-1", children: defaultRow.drift }),
1651
- /* @__PURE__ */ jsx10(
1725
+ /* @__PURE__ */ jsx11(AlertTriangleIcon, { className: "w-3.5 h-3.5 shrink-0 mt-px" }),
1726
+ /* @__PURE__ */ jsx11("span", { className: "text-[11px] leading-snug flex-1", children: defaultRow.drift }),
1727
+ /* @__PURE__ */ jsx11(
1652
1728
  "button",
1653
1729
  {
1654
1730
  type: "button",
1655
1731
  "aria-label": "Dismiss",
1656
1732
  onClick: () => catalog.dismissDefaultRowDrift(defaultRow.mandateKey),
1657
1733
  className: "shrink-0 opacity-70 hover:opacity-100",
1658
- children: /* @__PURE__ */ jsx10(XIcon, { className: "w-3 h-3" })
1734
+ children: /* @__PURE__ */ jsx11(XIcon, { className: "w-3 h-3" })
1659
1735
  }
1660
1736
  )
1661
1737
  ]
@@ -1667,19 +1743,19 @@ function AgentListContent({
1667
1743
  role: "alert",
1668
1744
  className: "matrx-agent-drift-banner mx-2 mb-1.5 flex items-start gap-2 rounded-md px-2 py-1.5 shrink-0",
1669
1745
  children: [
1670
- /* @__PURE__ */ jsx10(AlertTriangleIcon, { className: "w-3.5 h-3.5 shrink-0 mt-px" }),
1671
- /* @__PURE__ */ jsx10("span", { className: "text-[11px] leading-snug flex-1", children: defaultRow.error })
1746
+ /* @__PURE__ */ jsx11(AlertTriangleIcon, { className: "w-3.5 h-3.5 shrink-0 mt-px" }),
1747
+ /* @__PURE__ */ jsx11("span", { className: "text-[11px] leading-snug flex-1", children: defaultRow.error })
1672
1748
  ]
1673
1749
  }
1674
1750
  ),
1675
- /* @__PURE__ */ jsx10("div", { className: "h-px bg-border shrink-0" }),
1676
- /* @__PURE__ */ jsx10("div", { ref: listScrollRef, className: "overflow-y-auto flex-1 min-h-0", children: isLoading ? /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-center py-8 gap-2 text-muted-foreground", children: [
1677
- /* @__PURE__ */ jsx10(LoaderIcon, { className: "w-4 h-4 matrx-agent-spin" }),
1678
- /* @__PURE__ */ jsx10("span", { className: "text-xs", children: labels.loading })
1679
- ] }) : agents.length === 0 && !pinnedAgent && !defaultAgent ? /* @__PURE__ */ jsx10("div", { className: "flex flex-col items-center py-8 text-muted-foreground", children: /* @__PURE__ */ jsx10("span", { className: "text-xs", children: emptyLabel }) }) : /* @__PURE__ */ jsxs8("div", { className: "py-0.5", children: [
1680
- defaultAgent && /* @__PURE__ */ jsxs8(Fragment2, { children: [
1681
- /* @__PURE__ */ jsx10("div", { className: "px-3 pt-1.5 pb-0.5", children: /* @__PURE__ */ jsx10("span", { className: "text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: "Default" }) }),
1682
- /* @__PURE__ */ jsx10(
1751
+ /* @__PURE__ */ jsx11("div", { className: "h-px bg-border shrink-0" }),
1752
+ /* @__PURE__ */ jsx11("div", { ref: listScrollRef, className: "overflow-y-auto flex-1 min-h-0", children: isLoading ? /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-center py-8 gap-2 text-muted-foreground", children: [
1753
+ /* @__PURE__ */ jsx11(LoaderIcon, { className: "w-4 h-4 matrx-agent-spin" }),
1754
+ /* @__PURE__ */ jsx11("span", { className: "text-xs", children: labels.loading })
1755
+ ] }) : agents.length === 0 && !pinnedAgent && !defaultAgent ? /* @__PURE__ */ jsx11("div", { className: "flex flex-col items-center py-8 text-muted-foreground", children: /* @__PURE__ */ jsx11("span", { className: "text-xs", children: emptyLabel }) }) : /* @__PURE__ */ jsxs8("div", { className: "py-0.5", children: [
1756
+ defaultAgent && /* @__PURE__ */ jsxs8(Fragment3, { children: [
1757
+ /* @__PURE__ */ jsx11("div", { className: "px-3 pt-1.5 pb-0.5", children: /* @__PURE__ */ jsx11("span", { className: "text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: "Default" }) }),
1758
+ /* @__PURE__ */ jsx11(
1683
1759
  AgentRow,
1684
1760
  {
1685
1761
  agent: defaultAgent,
@@ -1694,11 +1770,11 @@ function AgentListContent({
1694
1770
  },
1695
1771
  `default-${defaultAgent.id}`
1696
1772
  ),
1697
- /* @__PURE__ */ jsx10("div", { className: "mx-2 my-0.5 h-px bg-border" })
1773
+ /* @__PURE__ */ jsx11("div", { className: "mx-2 my-0.5 h-px bg-border" })
1698
1774
  ] }),
1699
- pinnedAgent && /* @__PURE__ */ jsxs8(Fragment2, { children: [
1700
- /* @__PURE__ */ jsx10("div", { className: "px-3 pt-1.5 pb-0.5", children: /* @__PURE__ */ jsx10("span", { className: "text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: labels.currentAgentHeading }) }),
1701
- /* @__PURE__ */ jsx10(
1775
+ pinnedAgent && /* @__PURE__ */ jsxs8(Fragment3, { children: [
1776
+ /* @__PURE__ */ jsx11("div", { className: "px-3 pt-1.5 pb-0.5", children: /* @__PURE__ */ jsx11("span", { className: "text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: labels.currentAgentHeading }) }),
1777
+ /* @__PURE__ */ jsx11(
1702
1778
  AgentRow,
1703
1779
  {
1704
1780
  agent: pinnedAgent,
@@ -1713,9 +1789,9 @@ function AgentListContent({
1713
1789
  },
1714
1790
  `pinned-${pinnedAgent.id}`
1715
1791
  ),
1716
- /* @__PURE__ */ jsx10("div", { className: "mx-2 my-0.5 h-px bg-border" })
1792
+ /* @__PURE__ */ jsx11("div", { className: "mx-2 my-0.5 h-px bg-border" })
1717
1793
  ] }),
1718
- agents.map((agent) => /* @__PURE__ */ jsx10(
1794
+ agents.map((agent) => /* @__PURE__ */ jsx11(
1719
1795
  AgentRow,
1720
1796
  {
1721
1797
  agent,
@@ -1730,16 +1806,16 @@ function AgentListContent({
1730
1806
  },
1731
1807
  agent.id
1732
1808
  )),
1733
- agents.length === 0 && (pinnedAgent || defaultAgent) && /* @__PURE__ */ jsx10("div", { className: "flex flex-col items-center py-4 text-muted-foreground", children: /* @__PURE__ */ jsx10("span", { className: "text-xs", children: emptyLabel }) })
1809
+ agents.length === 0 && (pinnedAgent || defaultAgent) && /* @__PURE__ */ jsx11("div", { className: "flex flex-col items-center py-4 text-muted-foreground", children: /* @__PURE__ */ jsx11("span", { className: "text-xs", children: emptyLabel }) })
1734
1810
  ] }) }),
1735
- /* @__PURE__ */ jsx10("div", { className: "h-px bg-border shrink-0" }),
1811
+ /* @__PURE__ */ jsx11("div", { className: "h-px bg-border shrink-0" }),
1736
1812
  /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between px-2.5 py-1.5 shrink-0", children: [
1737
1813
  /* @__PURE__ */ jsxs8("span", { className: "text-[10px] text-muted-foreground tabular-nums", children: [
1738
1814
  agents.length,
1739
1815
  " agent",
1740
1816
  agents.length !== 1 ? "s" : ""
1741
1817
  ] }),
1742
- consumer.searchTerm && /* @__PURE__ */ jsx10(
1818
+ consumer.searchTerm && /* @__PURE__ */ jsx11(
1743
1819
  "button",
1744
1820
  {
1745
1821
  type: "button",
@@ -1753,7 +1829,7 @@ function AgentListContent({
1753
1829
  }
1754
1830
 
1755
1831
  // catalog/react/AgentMobileSubView.tsx
1756
- import { Fragment as Fragment3, jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
1832
+ import { Fragment as Fragment4, jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
1757
1833
  function AgentMobileSubView({
1758
1834
  view,
1759
1835
  consumer,
@@ -1774,12 +1850,12 @@ function AgentMobileSubView({
1774
1850
  onClick: onBack,
1775
1851
  className: "flex items-center gap-1.5 px-3 py-2.5 text-sm font-medium text-primary hover:bg-muted/30 transition-colors border-b border-border shrink-0",
1776
1852
  children: [
1777
- /* @__PURE__ */ jsx11(ChevronRightIcon, { className: "w-4 h-4 rotate-180" }),
1853
+ /* @__PURE__ */ jsx12(ChevronRightIcon, { className: "w-4 h-4 rotate-180" }),
1778
1854
  title
1779
1855
  ]
1780
1856
  }
1781
1857
  ),
1782
- view === "sort" && SORT_OPTIONS.map((opt) => /* @__PURE__ */ jsx11(
1858
+ view === "sort" && SORT_OPTIONS.map((opt) => /* @__PURE__ */ jsx12(
1783
1859
  OptionRow,
1784
1860
  {
1785
1861
  label: opt.label,
@@ -1791,8 +1867,8 @@ function AgentMobileSubView({
1791
1867
  },
1792
1868
  opt.value
1793
1869
  )),
1794
- view === "categories" && /* @__PURE__ */ jsxs9(Fragment3, { children: [
1795
- /* @__PURE__ */ jsx11("div", { className: "px-2 pt-2 pb-1", children: /* @__PURE__ */ jsx11(
1870
+ view === "categories" && /* @__PURE__ */ jsxs9(Fragment4, { children: [
1871
+ /* @__PURE__ */ jsx12("div", { className: "px-2 pt-2 pb-1", children: /* @__PURE__ */ jsx12(
1796
1872
  SearchInput,
1797
1873
  {
1798
1874
  value: catSearch,
@@ -1813,9 +1889,9 @@ function AgentMobileSubView({
1813
1889
  ]
1814
1890
  }
1815
1891
  ),
1816
- /* @__PURE__ */ jsx11("div", { className: "overflow-y-auto max-h-[300px]", children: allCategories.filter(
1892
+ /* @__PURE__ */ jsx12("div", { className: "overflow-y-auto max-h-[300px]", children: allCategories.filter(
1817
1893
  (c) => !catSearch || c.toLowerCase().includes(catSearch.toLowerCase())
1818
- ).map((cat) => /* @__PURE__ */ jsx11(
1894
+ ).map((cat) => /* @__PURE__ */ jsx12(
1819
1895
  CheckRow,
1820
1896
  {
1821
1897
  label: cat,
@@ -1825,8 +1901,8 @@ function AgentMobileSubView({
1825
1901
  cat
1826
1902
  )) })
1827
1903
  ] }),
1828
- view === "tags" && /* @__PURE__ */ jsxs9(Fragment3, { children: [
1829
- /* @__PURE__ */ jsx11("div", { className: "px-2 pt-2 pb-1", children: /* @__PURE__ */ jsx11(
1904
+ view === "tags" && /* @__PURE__ */ jsxs9(Fragment4, { children: [
1905
+ /* @__PURE__ */ jsx12("div", { className: "px-2 pt-2 pb-1", children: /* @__PURE__ */ jsx12(
1830
1906
  SearchInput,
1831
1907
  {
1832
1908
  value: tagSearch,
@@ -1847,9 +1923,9 @@ function AgentMobileSubView({
1847
1923
  ]
1848
1924
  }
1849
1925
  ),
1850
- /* @__PURE__ */ jsx11("div", { className: "overflow-y-auto max-h-[300px]", children: allTags.filter(
1926
+ /* @__PURE__ */ jsx12("div", { className: "overflow-y-auto max-h-[300px]", children: allTags.filter(
1851
1927
  (t) => !tagSearch || t.toLowerCase().includes(tagSearch.toLowerCase())
1852
- ).map((tag) => /* @__PURE__ */ jsx11(
1928
+ ).map((tag) => /* @__PURE__ */ jsx12(
1853
1929
  CheckRow,
1854
1930
  {
1855
1931
  label: tag,
@@ -1863,11 +1939,11 @@ function AgentMobileSubView({
1863
1939
  }
1864
1940
 
1865
1941
  // catalog/react/AgentSortPanel.tsx
1866
- import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
1942
+ import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
1867
1943
  function AgentSortPanel({ consumer, onClose }) {
1868
1944
  return /* @__PURE__ */ jsxs10("div", { className: "flex flex-col h-full", children: [
1869
- /* @__PURE__ */ jsx12(SidePanelHeader, { title: "Sort By", onClose }),
1870
- /* @__PURE__ */ jsx12("div", { className: "overflow-y-auto flex-1", children: SORT_OPTIONS.map((opt) => /* @__PURE__ */ jsx12(
1945
+ /* @__PURE__ */ jsx13(SidePanelHeader, { title: "Sort By", onClose }),
1946
+ /* @__PURE__ */ jsx13("div", { className: "overflow-y-auto flex-1", children: SORT_OPTIONS.map((opt) => /* @__PURE__ */ jsx13(
1871
1947
  OptionRow,
1872
1948
  {
1873
1949
  label: opt.label,
@@ -1880,7 +1956,7 @@ function AgentSortPanel({ consumer, onClose }) {
1880
1956
  }
1881
1957
 
1882
1958
  // catalog/react/AgentTagsPanel.tsx
1883
- import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
1959
+ import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
1884
1960
  function AgentTagsPanel({
1885
1961
  consumer,
1886
1962
  allTags,
@@ -1892,8 +1968,8 @@ function AgentTagsPanel({
1892
1968
  (t) => !search || t.toLowerCase().includes(search.toLowerCase())
1893
1969
  );
1894
1970
  return /* @__PURE__ */ jsxs11("div", { className: "flex flex-col h-full", children: [
1895
- /* @__PURE__ */ jsx13(SidePanelHeader, { title: "Tags", onClose }),
1896
- /* @__PURE__ */ jsx13("div", { className: "px-2 pt-2 pb-1 shrink-0", children: /* @__PURE__ */ jsx13(
1971
+ /* @__PURE__ */ jsx14(SidePanelHeader, { title: "Tags", onClose }),
1972
+ /* @__PURE__ */ jsx14("div", { className: "px-2 pt-2 pb-1 shrink-0", children: /* @__PURE__ */ jsx14(
1897
1973
  SearchInput,
1898
1974
  {
1899
1975
  value: search,
@@ -1914,7 +1990,7 @@ function AgentTagsPanel({
1914
1990
  ]
1915
1991
  }
1916
1992
  ),
1917
- /* @__PURE__ */ jsx13("div", { className: "overflow-y-auto flex-1", children: filtered.length === 0 ? /* @__PURE__ */ jsx13("p", { className: "text-xs text-muted-foreground text-center py-6", children: "No tags" }) : filtered.map((tag) => /* @__PURE__ */ jsx13(
1993
+ /* @__PURE__ */ jsx14("div", { className: "overflow-y-auto flex-1", children: filtered.length === 0 ? /* @__PURE__ */ jsx14("p", { className: "text-xs text-muted-foreground text-center py-6", children: "No tags" }) : filtered.map((tag) => /* @__PURE__ */ jsx14(
1918
1994
  CheckRow,
1919
1995
  {
1920
1996
  label: tag,
@@ -1927,7 +2003,7 @@ function AgentTagsPanel({
1927
2003
  }
1928
2004
 
1929
2005
  // catalog/react/AgentListDropdown.tsx
1930
- import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
2006
+ import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
1931
2007
  var CONSUMER_ID = "agent-list-dropdown";
1932
2008
  function AgentListDropdown({
1933
2009
  onSelect,
@@ -2041,7 +2117,7 @@ function AgentListDropdown({
2041
2117
  const handleDetailPanelMouseLeave = useCallback5(() => {
2042
2118
  coreDetailMouseLeave(() => setRightPanel(null));
2043
2119
  }, [coreDetailMouseLeave]);
2044
- const resolveAgentHref = useMemo3(() => {
2120
+ const resolveAgentHref = useMemo4(() => {
2045
2121
  if (resolveAgentHrefProp) return resolveAgentHrefProp;
2046
2122
  if (!navigateTo) return void 0;
2047
2123
  return (agent) => navigateTo.replace("{id}", agent.id);
@@ -2059,22 +2135,22 @@ function AgentListDropdown({
2059
2135
  className
2060
2136
  ),
2061
2137
  children: [
2062
- /* @__PURE__ */ jsx14("span", { className: "min-w-0 max-w-[200px] flex-1 truncate text-left", children: displayLabel }),
2063
- activeFilterCount > 0 && /* @__PURE__ */ jsx14("span", { className: "flex items-center justify-center w-4 h-4 rounded-md bg-primary text-primary-foreground text-[10px]", children: activeFilterCount }),
2064
- /* @__PURE__ */ jsx14(ChevronDownIcon, { className: "w-3 h-3 text-muted-foreground/60" })
2138
+ /* @__PURE__ */ jsx15("span", { className: "min-w-0 max-w-[200px] flex-1 truncate text-left", children: displayLabel }),
2139
+ activeFilterCount > 0 && /* @__PURE__ */ jsx15("span", { className: "flex items-center justify-center w-4 h-4 rounded-md bg-primary text-primary-foreground text-[10px]", children: activeFilterCount }),
2140
+ /* @__PURE__ */ jsx15(ChevronDownIcon, { className: "w-3 h-3 text-muted-foreground/60" })
2065
2141
  ]
2066
2142
  }
2067
2143
  );
2068
2144
  const wrapTrigger = (Trigger) => {
2069
2145
  if (!showAssignedTooltip) {
2070
- return /* @__PURE__ */ jsx14(Trigger, { asChild: true, children: triggerButton });
2146
+ return /* @__PURE__ */ jsx15(Trigger, { asChild: true, children: triggerButton });
2071
2147
  }
2072
2148
  return /* @__PURE__ */ jsxs12(Tooltip, { ...open ? { open: false } : {}, children: [
2073
- /* @__PURE__ */ jsx14(Trigger, { asChild: true, children: /* @__PURE__ */ jsx14(TooltipTrigger, { asChild: true, children: triggerButton }) }),
2074
- /* @__PURE__ */ jsx14(TooltipContent, { side: "bottom", className: "max-w-xs", children: displayLabel })
2149
+ /* @__PURE__ */ jsx15(Trigger, { asChild: true, children: /* @__PURE__ */ jsx15(TooltipTrigger, { asChild: true, children: triggerButton }) }),
2150
+ /* @__PURE__ */ jsx15(TooltipContent, { side: "bottom", className: "max-w-xs", children: displayLabel })
2075
2151
  ] });
2076
2152
  };
2077
- const listPanel = /* @__PURE__ */ jsx14(
2153
+ const listPanel = /* @__PURE__ */ jsx15(
2078
2154
  AgentListContent,
2079
2155
  {
2080
2156
  agents,
@@ -2109,8 +2185,8 @@ function AgentListDropdown({
2109
2185
  return /* @__PURE__ */ jsxs12(Drawer, { open, onOpenChange: handleOpen, children: [
2110
2186
  wrapTrigger(DrawerTrigger),
2111
2187
  /* @__PURE__ */ jsxs12(DrawerContent, { className: "h-[85dvh]", children: [
2112
- /* @__PURE__ */ jsx14(DrawerTitle, { className: "sr-only", children: "Select Agent" }),
2113
- /* @__PURE__ */ jsx14("div", { className: "flex flex-col overflow-hidden flex-1 min-h-0", children: mobileDetailAgent ? /* @__PURE__ */ jsxs12("div", { className: "flex flex-col overflow-hidden", children: [
2188
+ /* @__PURE__ */ jsx15(DrawerTitle, { className: "sr-only", children: "Select Agent" }),
2189
+ /* @__PURE__ */ jsx15("div", { className: "flex flex-col overflow-hidden flex-1 min-h-0", children: mobileDetailAgent ? /* @__PURE__ */ jsxs12("div", { className: "flex flex-col overflow-hidden", children: [
2114
2190
  /* @__PURE__ */ jsxs12(
2115
2191
  "button",
2116
2192
  {
@@ -2118,19 +2194,19 @@ function AgentListDropdown({
2118
2194
  onClick: () => setMobileDetailAgent(null),
2119
2195
  className: "flex items-center gap-1.5 px-3 py-2.5 text-sm font-medium text-primary hover:bg-muted/30 transition-colors border-b border-border shrink-0",
2120
2196
  children: [
2121
- /* @__PURE__ */ jsx14(ChevronRightIcon, { className: "w-4 h-4 rotate-180" }),
2197
+ /* @__PURE__ */ jsx15(ChevronRightIcon, { className: "w-4 h-4 rotate-180" }),
2122
2198
  "Back"
2123
2199
  ]
2124
2200
  }
2125
2201
  ),
2126
- /* @__PURE__ */ jsx14("div", { className: "overflow-y-auto", children: /* @__PURE__ */ jsx14(
2202
+ /* @__PURE__ */ jsx15("div", { className: "overflow-y-auto", children: /* @__PURE__ */ jsx15(
2127
2203
  AgentDetailCard,
2128
2204
  {
2129
2205
  agent: mobileDetailAgent,
2130
2206
  onSelect: () => handleSelectAgent(mobileDetailAgent)
2131
2207
  }
2132
2208
  ) })
2133
- ] }) : mobileSubView ? /* @__PURE__ */ jsx14(
2209
+ ] }) : mobileSubView ? /* @__PURE__ */ jsx15(
2134
2210
  AgentMobileSubView,
2135
2211
  {
2136
2212
  view: mobileSubView,
@@ -2153,7 +2229,7 @@ function AgentListDropdown({
2153
2229
  }
2154
2230
  return /* @__PURE__ */ jsxs12(Popover, { open, onOpenChange: handleOpen, modal: false, children: [
2155
2231
  wrapTrigger(PopoverTrigger),
2156
- /* @__PURE__ */ jsx14(
2232
+ /* @__PURE__ */ jsx15(
2157
2233
  PopoverContent,
2158
2234
  {
2159
2235
  ...contentSide ? { side: contentSide } : {},
@@ -2165,7 +2241,7 @@ function AgentListDropdown({
2165
2241
  className: "p-0 overflow-hidden w-[680px]",
2166
2242
  style: { height: PANEL_HEIGHT, maxHeight: LIST_MAX_HEIGHT },
2167
2243
  children: /* @__PURE__ */ jsxs12("div", { className: "flex h-full", children: [
2168
- /* @__PURE__ */ jsx14("div", { className: "flex flex-col min-w-0 w-[340px] shrink-0 border-r border-border", children: listPanel }),
2244
+ /* @__PURE__ */ jsx15("div", { className: "flex flex-col min-w-0 w-[340px] shrink-0 border-r border-border", children: listPanel }),
2169
2245
  /* @__PURE__ */ jsxs12(
2170
2246
  "div",
2171
2247
  {
@@ -2173,21 +2249,21 @@ function AgentListDropdown({
2173
2249
  onMouseEnter: rightPanel === "detail" ? handleDetailPanelMouseEnter : void 0,
2174
2250
  onMouseLeave: rightPanel === "detail" ? handleDetailPanelMouseLeave : void 0,
2175
2251
  children: [
2176
- rightPanel === "detail" && hoveredAgent && /* @__PURE__ */ jsx14("div", { className: "h-full matrx-agent-fade-in", children: /* @__PURE__ */ jsx14(
2252
+ rightPanel === "detail" && hoveredAgent && /* @__PURE__ */ jsx15("div", { className: "h-full matrx-agent-fade-in", children: /* @__PURE__ */ jsx15(
2177
2253
  AgentDetailCard,
2178
2254
  {
2179
2255
  agent: hoveredAgent,
2180
2256
  onSelect: () => handleSelectAgent(hoveredAgent)
2181
2257
  }
2182
2258
  ) }, hoveredAgent.id),
2183
- rightPanel === "sort" && /* @__PURE__ */ jsx14(
2259
+ rightPanel === "sort" && /* @__PURE__ */ jsx15(
2184
2260
  AgentSortPanel,
2185
2261
  {
2186
2262
  consumer,
2187
2263
  onClose: () => setRightPanel(null)
2188
2264
  }
2189
2265
  ),
2190
- rightPanel === "categories" && /* @__PURE__ */ jsx14(
2266
+ rightPanel === "categories" && /* @__PURE__ */ jsx15(
2191
2267
  AgentCategoriesPanel,
2192
2268
  {
2193
2269
  consumer,
@@ -2200,7 +2276,7 @@ function AgentListDropdown({
2200
2276
  }
2201
2277
  }
2202
2278
  ),
2203
- rightPanel === "tags" && /* @__PURE__ */ jsx14(
2279
+ rightPanel === "tags" && /* @__PURE__ */ jsx15(
2204
2280
  AgentTagsPanel,
2205
2281
  {
2206
2282
  consumer,
@@ -2214,8 +2290,8 @@ function AgentListDropdown({
2214
2290
  }
2215
2291
  ),
2216
2292
  !hasRightPanel && /* @__PURE__ */ jsxs12("div", { className: "flex flex-1 flex-col items-center justify-center gap-2 px-6 text-center", children: [
2217
- /* @__PURE__ */ jsx14(MousePointerClickIcon, { className: "h-6 w-6 text-muted-foreground/40" }),
2218
- /* @__PURE__ */ jsx14("p", { className: "text-xs text-muted-foreground/70 leading-relaxed", children: labels.hoverHint })
2293
+ /* @__PURE__ */ jsx15(MousePointerClickIcon, { className: "h-6 w-6 text-muted-foreground/40" }),
2294
+ /* @__PURE__ */ jsx15("p", { className: "text-xs text-muted-foreground/70 leading-relaxed", children: labels.hoverHint })
2219
2295
  ] })
2220
2296
  ]
2221
2297
  }
@@ -2229,7 +2305,7 @@ function AgentListDropdown({
2229
2305
  // catalog/react/AgentListInlinePicker.tsx
2230
2306
  import { cn as cn7 } from "@ai-matrx/design-system";
2231
2307
  import { useEffect as useEffect4, useRef as useRef5, useState as useState4 } from "react";
2232
- import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
2308
+ import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
2233
2309
  function AgentListInlinePicker({
2234
2310
  consumerId,
2235
2311
  onSelect,
@@ -2301,12 +2377,12 @@ function AgentListInlinePicker({
2301
2377
  onClick: () => setMobileDetailAgent(null),
2302
2378
  className: "flex shrink-0 items-center gap-1.5 border-b border-border px-3 py-2 text-sm font-medium text-primary transition-colors hover:bg-muted/30",
2303
2379
  children: [
2304
- /* @__PURE__ */ jsx15(ChevronRightIcon, { className: "h-4 w-4 rotate-180" }),
2380
+ /* @__PURE__ */ jsx16(ChevronRightIcon, { className: "h-4 w-4 rotate-180" }),
2305
2381
  "Back"
2306
2382
  ]
2307
2383
  }
2308
2384
  ),
2309
- /* @__PURE__ */ jsx15("div", { className: "min-h-0 flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx15(
2385
+ /* @__PURE__ */ jsx16("div", { className: "min-h-0 flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx16(
2310
2386
  AgentDetailCard,
2311
2387
  {
2312
2388
  agent: mobileDetailAgent,
@@ -2316,7 +2392,7 @@ function AgentListInlinePicker({
2316
2392
  ] });
2317
2393
  }
2318
2394
  if (mobileSubView) {
2319
- return /* @__PURE__ */ jsx15("div", { className: cn7("flex h-full min-h-0 flex-col", className), children: /* @__PURE__ */ jsx15(
2395
+ return /* @__PURE__ */ jsx16("div", { className: cn7("flex h-full min-h-0 flex-col", className), children: /* @__PURE__ */ jsx16(
2320
2396
  AgentMobileSubView,
2321
2397
  {
2322
2398
  view: mobileSubView,
@@ -2335,7 +2411,7 @@ function AgentListInlinePicker({
2335
2411
  }
2336
2412
  ) });
2337
2413
  }
2338
- return /* @__PURE__ */ jsx15("div", { className: cn7("flex h-full min-h-0 flex-col", className), children: /* @__PURE__ */ jsx15(
2414
+ return /* @__PURE__ */ jsx16("div", { className: cn7("flex h-full min-h-0 flex-col", className), children: /* @__PURE__ */ jsx16(
2339
2415
  AgentListContent,
2340
2416
  {
2341
2417
  agents,