@ai-matrx/agents 0.13.16 → 0.14.3
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 +56 -0
- package/dist/catalog/index.cjs +1 -0
- package/dist/catalog/index.cjs.map +1 -1
- package/dist/catalog/index.d.cts +2 -2
- package/dist/catalog/index.d.ts +2 -2
- package/dist/catalog/index.js +1 -0
- package/dist/catalog/index.js.map +1 -1
- package/dist/catalog/native/index.cjs +16 -0
- package/dist/catalog/native/index.cjs.map +1 -1
- package/dist/catalog/native/index.d.cts +2 -2
- package/dist/catalog/native/index.d.ts +2 -2
- package/dist/catalog/native/index.js +16 -0
- package/dist/catalog/native/index.js.map +1 -1
- package/dist/catalog/react/index.cjs +26 -5
- package/dist/catalog/react/index.cjs.map +1 -1
- package/dist/catalog/react/index.d.cts +27 -1
- package/dist/catalog/react/index.d.ts +27 -1
- package/dist/catalog/react/index.js +26 -5
- package/dist/catalog/react/index.js.map +1 -1
- package/dist/content-transfer/index.cjs +2 -0
- package/dist/content-transfer/index.cjs.map +1 -1
- package/dist/content-transfer/index.js +2 -0
- package/dist/content-transfer/index.js.map +1 -1
- package/dist/content-transfer/react/index.cjs +2 -0
- package/dist/content-transfer/react/index.cjs.map +1 -1
- package/dist/content-transfer/react/index.js +2 -0
- package/dist/content-transfer/react/index.js.map +1 -1
- package/dist/mandates/index.cjs +8 -2
- package/dist/mandates/index.cjs.map +1 -1
- package/dist/mandates/index.d.cts +8 -5
- package/dist/mandates/index.d.ts +8 -5
- package/dist/mandates/index.js +8 -2
- package/dist/mandates/index.js.map +1 -1
- package/dist/{orchestra-CVil7T5Y.d.cts → orchestra-BDXdut6Y.d.cts} +6 -0
- package/dist/{orchestra-CVil7T5Y.d.ts → orchestra-BDXdut6Y.d.ts} +6 -0
- package/dist/presentation/decision-answers.cjs +195 -0
- package/dist/presentation/decision-answers.cjs.map +1 -0
- package/dist/presentation/decision-answers.d.cts +113 -0
- package/dist/presentation/decision-answers.d.ts +113 -0
- package/dist/presentation/decision-answers.js +174 -0
- package/dist/presentation/decision-answers.js.map +1 -0
- package/mandates/snapshots/keys.0.14.0.json +619 -0
- package/mandates/snapshots/keys.0.14.3.json +625 -0
- package/package.json +13 -3
|
@@ -280,6 +280,12 @@ interface AgentCatalogLabels {
|
|
|
280
280
|
* Recorded in the CHANGELOG and dropped rather than ported.)
|
|
281
281
|
*/
|
|
282
282
|
systemBadge: string;
|
|
283
|
+
/**
|
|
284
|
+
* Badge on an archived row. Archived agents stay offered (THE ARCHIVED-ITEMS
|
|
285
|
+
* LAW: one or two clicks away) and say so on the row itself. Default
|
|
286
|
+
* `"Archived"`.
|
|
287
|
+
*/
|
|
288
|
+
archivedBadge: string;
|
|
283
289
|
searchPlaceholder: string;
|
|
284
290
|
currentAgentHeading: string;
|
|
285
291
|
emptyDefault: string;
|
|
@@ -823,6 +829,26 @@ declare const PANEL_HEIGHT = "528px";
|
|
|
823
829
|
* the popover is open.
|
|
824
830
|
*/
|
|
825
831
|
declare const LIST_MAX_HEIGHT = "min(528px, var(--radix-popper-available-height, 528px))";
|
|
832
|
+
/**
|
|
833
|
+
* 🚨 OPEN BELOW THE CONTROL WHENEVER THERE IS ROOM TO USE IT.
|
|
834
|
+
*
|
|
835
|
+
* Radix flips a popover to the side with more room using the panel's FULL
|
|
836
|
+
* height, so a trigger in the middle of a dialog (the mandate "Use my own"
|
|
837
|
+
* picker on a 1280x900 screen: 418px below, 528px panel) sent the whole panel
|
|
838
|
+
* ABOVE it — over the dialog's own title and controls, reading as a list
|
|
839
|
+
* floating at the top of the screen (2026-09-26). This measures the room
|
|
840
|
+
* below at open time: when a usable list fits there, the panel is sized to it
|
|
841
|
+
* and pinned to `side="bottom"`; only when it does not is Radix left to flip.
|
|
842
|
+
* The height is fixed for the whole time the panel is open, so nothing moves
|
|
843
|
+
* under the cursor (the reason the footprint is fixed at all).
|
|
844
|
+
*
|
|
845
|
+
* Returns a px height, or `null` for "use the default footprint and placement".
|
|
846
|
+
*/
|
|
847
|
+
declare function panelHeightBelow(trigger: Element | null, options?: {
|
|
848
|
+
full?: number;
|
|
849
|
+
minUsable?: number;
|
|
850
|
+
gap?: number;
|
|
851
|
+
}): string | null;
|
|
826
852
|
|
|
827
853
|
interface AgentListContentProps {
|
|
828
854
|
agents: AgentSummary[];
|
|
@@ -1030,4 +1056,4 @@ declare function orchestraDepthLine(badge: OrchestraBadge): string | null;
|
|
|
1030
1056
|
*/
|
|
1031
1057
|
declare function orchestraDelegatesLine(badge: OrchestraBadge, limit?: number): string | null;
|
|
1032
1058
|
|
|
1033
|
-
export { type AgentCatalogLinkComponent, AgentCatalogProvider, type AgentCatalogProviderProps, type AgentCatalogRenderModelRef, type AgentCatalogUiPorts, AgentCategoriesPanel, type AgentCategoriesPanelProps, AgentDetailCard, type AgentDetailCardProps, AgentFilterBar, type AgentFilterBarProps, AgentListContent, type AgentListContentProps, type AgentListCoreOptions, AgentListDropdown, type AgentListDropdownProps, AgentListInlinePicker, type AgentListInlinePickerProps, type AgentListTabCounts, AgentListTabs, AgentMobileSubView, type AgentMobileSubViewProps, AgentRow, type AgentRowProps, AgentSortPanel, type AgentSortPanelProps, AgentTagsPanel, type AgentTagsPanelProps, CheckRow, FavoriteAgentButton, FilterChip, HOVER_GRACE_MS, type IconProps, LIST_MAX_HEIGHT, Music4Icon, OptionRow, type OrchestraBadge, PANEL_HEIGHT, type RightPanel, SORT_OPTIONS, SearchInput, SidePanelHeader, type UseAgentConsumerReturn, coerceVisibleTab, orchestraDelegatesLine, orchestraDepthLine, orchestraLabel, orchestraModeLabel, useAgentCatalog, useAgentCatalogRows, useAgentCatalogState, useAgentCatalogUiPorts, useAgentConsumer, useAgentListCore };
|
|
1059
|
+
export { type AgentCatalogLinkComponent, AgentCatalogProvider, type AgentCatalogProviderProps, type AgentCatalogRenderModelRef, type AgentCatalogUiPorts, AgentCategoriesPanel, type AgentCategoriesPanelProps, AgentDetailCard, type AgentDetailCardProps, AgentFilterBar, type AgentFilterBarProps, AgentListContent, type AgentListContentProps, type AgentListCoreOptions, AgentListDropdown, type AgentListDropdownProps, AgentListInlinePicker, type AgentListInlinePickerProps, type AgentListTabCounts, AgentListTabs, AgentMobileSubView, type AgentMobileSubViewProps, AgentRow, type AgentRowProps, AgentSortPanel, type AgentSortPanelProps, AgentTagsPanel, type AgentTagsPanelProps, CheckRow, FavoriteAgentButton, FilterChip, HOVER_GRACE_MS, type IconProps, LIST_MAX_HEIGHT, Music4Icon, OptionRow, type OrchestraBadge, PANEL_HEIGHT, type RightPanel, SORT_OPTIONS, SearchInput, SidePanelHeader, type UseAgentConsumerReturn, coerceVisibleTab, orchestraDelegatesLine, orchestraDepthLine, orchestraLabel, orchestraModeLabel, panelHeightBelow, useAgentCatalog, useAgentCatalogRows, useAgentCatalogState, useAgentCatalogUiPorts, useAgentConsumer, useAgentListCore };
|
|
@@ -280,6 +280,12 @@ interface AgentCatalogLabels {
|
|
|
280
280
|
* Recorded in the CHANGELOG and dropped rather than ported.)
|
|
281
281
|
*/
|
|
282
282
|
systemBadge: string;
|
|
283
|
+
/**
|
|
284
|
+
* Badge on an archived row. Archived agents stay offered (THE ARCHIVED-ITEMS
|
|
285
|
+
* LAW: one or two clicks away) and say so on the row itself. Default
|
|
286
|
+
* `"Archived"`.
|
|
287
|
+
*/
|
|
288
|
+
archivedBadge: string;
|
|
283
289
|
searchPlaceholder: string;
|
|
284
290
|
currentAgentHeading: string;
|
|
285
291
|
emptyDefault: string;
|
|
@@ -823,6 +829,26 @@ declare const PANEL_HEIGHT = "528px";
|
|
|
823
829
|
* the popover is open.
|
|
824
830
|
*/
|
|
825
831
|
declare const LIST_MAX_HEIGHT = "min(528px, var(--radix-popper-available-height, 528px))";
|
|
832
|
+
/**
|
|
833
|
+
* 🚨 OPEN BELOW THE CONTROL WHENEVER THERE IS ROOM TO USE IT.
|
|
834
|
+
*
|
|
835
|
+
* Radix flips a popover to the side with more room using the panel's FULL
|
|
836
|
+
* height, so a trigger in the middle of a dialog (the mandate "Use my own"
|
|
837
|
+
* picker on a 1280x900 screen: 418px below, 528px panel) sent the whole panel
|
|
838
|
+
* ABOVE it — over the dialog's own title and controls, reading as a list
|
|
839
|
+
* floating at the top of the screen (2026-09-26). This measures the room
|
|
840
|
+
* below at open time: when a usable list fits there, the panel is sized to it
|
|
841
|
+
* and pinned to `side="bottom"`; only when it does not is Radix left to flip.
|
|
842
|
+
* The height is fixed for the whole time the panel is open, so nothing moves
|
|
843
|
+
* under the cursor (the reason the footprint is fixed at all).
|
|
844
|
+
*
|
|
845
|
+
* Returns a px height, or `null` for "use the default footprint and placement".
|
|
846
|
+
*/
|
|
847
|
+
declare function panelHeightBelow(trigger: Element | null, options?: {
|
|
848
|
+
full?: number;
|
|
849
|
+
minUsable?: number;
|
|
850
|
+
gap?: number;
|
|
851
|
+
}): string | null;
|
|
826
852
|
|
|
827
853
|
interface AgentListContentProps {
|
|
828
854
|
agents: AgentSummary[];
|
|
@@ -1030,4 +1056,4 @@ declare function orchestraDepthLine(badge: OrchestraBadge): string | null;
|
|
|
1030
1056
|
*/
|
|
1031
1057
|
declare function orchestraDelegatesLine(badge: OrchestraBadge, limit?: number): string | null;
|
|
1032
1058
|
|
|
1033
|
-
export { type AgentCatalogLinkComponent, AgentCatalogProvider, type AgentCatalogProviderProps, type AgentCatalogRenderModelRef, type AgentCatalogUiPorts, AgentCategoriesPanel, type AgentCategoriesPanelProps, AgentDetailCard, type AgentDetailCardProps, AgentFilterBar, type AgentFilterBarProps, AgentListContent, type AgentListContentProps, type AgentListCoreOptions, AgentListDropdown, type AgentListDropdownProps, AgentListInlinePicker, type AgentListInlinePickerProps, type AgentListTabCounts, AgentListTabs, AgentMobileSubView, type AgentMobileSubViewProps, AgentRow, type AgentRowProps, AgentSortPanel, type AgentSortPanelProps, AgentTagsPanel, type AgentTagsPanelProps, CheckRow, FavoriteAgentButton, FilterChip, HOVER_GRACE_MS, type IconProps, LIST_MAX_HEIGHT, Music4Icon, OptionRow, type OrchestraBadge, PANEL_HEIGHT, type RightPanel, SORT_OPTIONS, SearchInput, SidePanelHeader, type UseAgentConsumerReturn, coerceVisibleTab, orchestraDelegatesLine, orchestraDepthLine, orchestraLabel, orchestraModeLabel, useAgentCatalog, useAgentCatalogRows, useAgentCatalogState, useAgentCatalogUiPorts, useAgentConsumer, useAgentListCore };
|
|
1059
|
+
export { type AgentCatalogLinkComponent, AgentCatalogProvider, type AgentCatalogProviderProps, type AgentCatalogRenderModelRef, type AgentCatalogUiPorts, AgentCategoriesPanel, type AgentCategoriesPanelProps, AgentDetailCard, type AgentDetailCardProps, AgentFilterBar, type AgentFilterBarProps, AgentListContent, type AgentListContentProps, type AgentListCoreOptions, AgentListDropdown, type AgentListDropdownProps, AgentListInlinePicker, type AgentListInlinePickerProps, type AgentListTabCounts, AgentListTabs, AgentMobileSubView, type AgentMobileSubViewProps, AgentRow, type AgentRowProps, AgentSortPanel, type AgentSortPanelProps, AgentTagsPanel, type AgentTagsPanelProps, CheckRow, FavoriteAgentButton, FilterChip, HOVER_GRACE_MS, type IconProps, LIST_MAX_HEIGHT, Music4Icon, OptionRow, type OrchestraBadge, PANEL_HEIGHT, type RightPanel, SORT_OPTIONS, SearchInput, SidePanelHeader, type UseAgentConsumerReturn, coerceVisibleTab, orchestraDelegatesLine, orchestraDepthLine, orchestraLabel, orchestraModeLabel, panelHeightBelow, useAgentCatalog, useAgentCatalogRows, useAgentCatalogState, useAgentCatalogUiPorts, useAgentConsumer, useAgentListCore };
|
|
@@ -1549,6 +1549,15 @@ import { useEffect as useEffect3, useRef as useRef3 } from "react";
|
|
|
1549
1549
|
// catalog/react/types.ts
|
|
1550
1550
|
var PANEL_HEIGHT = "528px";
|
|
1551
1551
|
var LIST_MAX_HEIGHT = "min(528px, var(--radix-popper-available-height, 528px))";
|
|
1552
|
+
function panelHeightBelow(trigger, options = {}) {
|
|
1553
|
+
if (!trigger || typeof window === "undefined") return null;
|
|
1554
|
+
const full = options.full ?? 528;
|
|
1555
|
+
const minUsable = options.minUsable ?? 300;
|
|
1556
|
+
const gap = options.gap ?? 16;
|
|
1557
|
+
const below = window.innerHeight - trigger.getBoundingClientRect().bottom - gap;
|
|
1558
|
+
if (below >= full) return null;
|
|
1559
|
+
return below >= minUsable ? `${Math.floor(below)}px` : null;
|
|
1560
|
+
}
|
|
1552
1561
|
|
|
1553
1562
|
// catalog/react/AgentFilterBar.tsx
|
|
1554
1563
|
import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
@@ -1747,7 +1756,15 @@ function AgentRow({
|
|
|
1747
1756
|
]
|
|
1748
1757
|
}
|
|
1749
1758
|
),
|
|
1750
|
-
agent.
|
|
1759
|
+
agent.isArchived ? /* @__PURE__ */ jsx10(
|
|
1760
|
+
"span",
|
|
1761
|
+
{
|
|
1762
|
+
"data-testid": `agent-archived-badge-${agent.id}`,
|
|
1763
|
+
className: "text-[9px] font-medium text-muted-foreground bg-muted px-1 py-px rounded shrink-0 ml-auto",
|
|
1764
|
+
children: labels.archivedBadge
|
|
1765
|
+
}
|
|
1766
|
+
) : null,
|
|
1767
|
+
agent.agentType === "builtin" ? /* @__PURE__ */ jsx10("span", { className: cn5("text-[9px] font-medium text-primary bg-primary/10 px-1 py-px rounded shrink-0", !agent.isArchived && "ml-auto"), children: labels.systemBadge }) : agent.isOwner === false ? /* @__PURE__ */ jsx10("span", { className: cn5("text-[9px] text-muted-foreground bg-muted px-1 py-px rounded shrink-0", !agent.isArchived && "ml-auto"), children: "shared" }) : null
|
|
1751
1768
|
]
|
|
1752
1769
|
}
|
|
1753
1770
|
),
|
|
@@ -2178,6 +2195,8 @@ function AgentListDropdown({
|
|
|
2178
2195
|
const [mobileDetailAgent, setMobileDetailAgent] = useState3(null);
|
|
2179
2196
|
const [mobileSubView, setMobileSubView] = useState3(null);
|
|
2180
2197
|
const inputRef = useRef4(null);
|
|
2198
|
+
const triggerRef = useRef4(null);
|
|
2199
|
+
const [fitHeight, setFitHeight] = useState3(null);
|
|
2181
2200
|
const {
|
|
2182
2201
|
agents,
|
|
2183
2202
|
archivedHiddenCount,
|
|
@@ -2217,6 +2236,7 @@ function AgentListDropdown({
|
|
|
2217
2236
|
const handleOpen = (nextOpen) => {
|
|
2218
2237
|
setOpen(nextOpen);
|
|
2219
2238
|
if (nextOpen) {
|
|
2239
|
+
setFitHeight(contentSide || isMobile ? null : panelHeightBelow(triggerRef.current));
|
|
2220
2240
|
ensureLoaded();
|
|
2221
2241
|
if (pinnedAgent && !isMobile) {
|
|
2222
2242
|
setHoveredAgent(pinnedAgent);
|
|
@@ -2288,10 +2308,10 @@ function AgentListDropdown({
|
|
|
2288
2308
|
);
|
|
2289
2309
|
const wrapTrigger = (Trigger) => {
|
|
2290
2310
|
if (!showAssignedTooltip) {
|
|
2291
|
-
return /* @__PURE__ */ jsx15(Trigger, { asChild: true, children: triggerButton });
|
|
2311
|
+
return /* @__PURE__ */ jsx15(Trigger, { asChild: true, ref: triggerRef, children: triggerButton });
|
|
2292
2312
|
}
|
|
2293
2313
|
return /* @__PURE__ */ jsxs12(Tooltip, { ...open ? { open: false } : {}, children: [
|
|
2294
|
-
/* @__PURE__ */ jsx15(Trigger, { asChild: true, children: /* @__PURE__ */ jsx15(TooltipTrigger, { asChild: true, children: triggerButton }) }),
|
|
2314
|
+
/* @__PURE__ */ jsx15(Trigger, { asChild: true, ref: triggerRef, children: /* @__PURE__ */ jsx15(TooltipTrigger, { asChild: true, children: triggerButton }) }),
|
|
2295
2315
|
/* @__PURE__ */ jsx15(TooltipContent, { side: "bottom", className: "max-w-xs", children: displayLabel })
|
|
2296
2316
|
] });
|
|
2297
2317
|
};
|
|
@@ -2378,14 +2398,14 @@ function AgentListDropdown({
|
|
|
2378
2398
|
/* @__PURE__ */ jsx15(
|
|
2379
2399
|
PopoverContent,
|
|
2380
2400
|
{
|
|
2381
|
-
...contentSide ? { side: contentSide } : {},
|
|
2401
|
+
...contentSide ? { side: contentSide } : fitHeight ? { side: "bottom" } : {},
|
|
2382
2402
|
align: "start",
|
|
2383
2403
|
sideOffset: 4,
|
|
2384
2404
|
collisionPadding: 12,
|
|
2385
2405
|
sticky: "always",
|
|
2386
2406
|
...popoverContainer ? { container: popoverContainer } : {},
|
|
2387
2407
|
className: "p-0 overflow-hidden w-[680px]",
|
|
2388
|
-
style: { height: PANEL_HEIGHT, maxHeight: LIST_MAX_HEIGHT },
|
|
2408
|
+
style: { height: fitHeight ?? PANEL_HEIGHT, maxHeight: fitHeight ?? LIST_MAX_HEIGHT },
|
|
2389
2409
|
children: /* @__PURE__ */ jsxs12("div", { className: "flex h-full", children: [
|
|
2390
2410
|
/* @__PURE__ */ jsx15("div", { className: "flex flex-col min-w-0 w-[340px] shrink-0 border-r border-border", children: listPanel }),
|
|
2391
2411
|
/* @__PURE__ */ jsxs12(
|
|
@@ -2621,6 +2641,7 @@ export {
|
|
|
2621
2641
|
orchestraDepthLine,
|
|
2622
2642
|
orchestraLabel,
|
|
2623
2643
|
orchestraModeLabel,
|
|
2644
|
+
panelHeightBelow,
|
|
2624
2645
|
useAgentCatalog,
|
|
2625
2646
|
useAgentCatalogRows,
|
|
2626
2647
|
useAgentCatalogState,
|