@ai-matrx/agents 0.15.0 → 0.16.18

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.
Files changed (52) hide show
  1. package/CHANGELOG.md +160 -0
  2. package/README.md +8 -4
  3. package/dist/catalog/index.cjs +82 -50
  4. package/dist/catalog/index.cjs.map +1 -1
  5. package/dist/catalog/index.d.cts +21 -10
  6. package/dist/catalog/index.d.ts +21 -10
  7. package/dist/catalog/index.js +82 -50
  8. package/dist/catalog/index.js.map +1 -1
  9. package/dist/catalog/native/index.cjs +2 -3
  10. package/dist/catalog/native/index.cjs.map +1 -1
  11. package/dist/catalog/native/index.d.cts +4 -5
  12. package/dist/catalog/native/index.d.ts +4 -5
  13. package/dist/catalog/native/index.js +2 -3
  14. package/dist/catalog/native/index.js.map +1 -1
  15. package/dist/catalog/react/index.cjs +10 -10
  16. package/dist/catalog/react/index.cjs.map +1 -1
  17. package/dist/catalog/react/index.d.cts +11 -11
  18. package/dist/catalog/react/index.d.ts +11 -11
  19. package/dist/catalog/react/index.js +10 -10
  20. package/dist/catalog/react/index.js.map +1 -1
  21. package/dist/content-transfer/index.cjs.map +1 -1
  22. package/dist/content-transfer/index.js.map +1 -1
  23. package/dist/content-transfer/react/index.cjs.map +1 -1
  24. package/dist/content-transfer/react/index.js.map +1 -1
  25. package/dist/mandates/index.cjs +2 -2
  26. package/dist/mandates/index.cjs.map +1 -1
  27. package/dist/mandates/index.d.cts +4 -4
  28. package/dist/mandates/index.d.ts +4 -4
  29. package/dist/mandates/index.js +2 -2
  30. package/dist/mandates/index.js.map +1 -1
  31. package/dist/{orchestra-BDXdut6Y.d.cts → orchestra-PbGGooqJ.d.cts} +50 -25
  32. package/dist/{orchestra-BDXdut6Y.d.ts → orchestra-PbGGooqJ.d.ts} +50 -25
  33. package/mandates/snapshots/keys.0.15.1.json +625 -0
  34. package/mandates/snapshots/keys.0.16.1.json +625 -0
  35. package/mandates/snapshots/keys.0.16.10.json +625 -0
  36. package/mandates/snapshots/keys.0.16.11.json +625 -0
  37. package/mandates/snapshots/keys.0.16.12.json +625 -0
  38. package/mandates/snapshots/keys.0.16.13.json +625 -0
  39. package/mandates/snapshots/keys.0.16.14.json +625 -0
  40. package/mandates/snapshots/keys.0.16.15.json +625 -0
  41. package/mandates/snapshots/keys.0.16.16.json +625 -0
  42. package/mandates/snapshots/keys.0.16.17.json +625 -0
  43. package/mandates/snapshots/keys.0.16.18.json +625 -0
  44. package/mandates/snapshots/keys.0.16.2.json +625 -0
  45. package/mandates/snapshots/keys.0.16.3.json +625 -0
  46. package/mandates/snapshots/keys.0.16.4.json +625 -0
  47. package/mandates/snapshots/keys.0.16.5.json +625 -0
  48. package/mandates/snapshots/keys.0.16.6.json +625 -0
  49. package/mandates/snapshots/keys.0.16.7.json +625 -0
  50. package/mandates/snapshots/keys.0.16.8.json +625 -0
  51. package/mandates/snapshots/keys.0.16.9.json +625 -0
  52. package/package.json +4 -3
@@ -314,7 +314,8 @@ type AgentCatalogOpenPeek = (agent: AgentSummary) => void;
314
314
  *
315
315
  * THE DEMANDED SCHEMA PROBE (the `@ai-matrx/associations` `assertDemandedSchema`
316
316
  * precedent). It proves that the database a host pointed this catalog at can
317
- * actually answer the three functions the picker demands.
317
+ * actually answer the functions the picker demands — the three `agx_*` reads
318
+ * and `ues_get_bulk`, the star read (`platform.user_entity_state`).
318
319
  *
319
320
  * 🚨 IT MUST BE ABLE TO FAIL. A probe whose green result is unconditional
320
321
  * proves nothing, so `selfTest: true` also probes a fabricated function name
@@ -335,8 +336,6 @@ interface AgentCatalogSchemaReport {
335
336
  }[];
336
337
  /** Functions that answered (success or any non-missing refusal). */
337
338
  answered: string[];
338
- /** True when `agent.definition.is_favorite` is writable by this caller. */
339
- favoriteWritable: boolean | null;
340
339
  /**
341
340
  * Whether `agx_get_list_full` carries the `orchestra` badge column (added to
342
341
  * the platform 2026-09-08).
@@ -358,12 +357,6 @@ interface AssertAgentCatalogSchemaOptions {
358
357
  selfTest?: boolean;
359
358
  /** Return the report instead of throwing. The self-test failure ALWAYS throws. */
360
359
  throwOnViolation?: boolean;
361
- /**
362
- * Also probe the ONE write (`agent.definition.is_favorite`) against an
363
- * impossible id, so a 42501/permission refusal is seen at boot rather than
364
- * on a user's first click. Default: on.
365
- */
366
- probeWrite?: boolean;
367
360
  }
368
361
 
369
362
  /**
@@ -792,6 +785,12 @@ interface AgentListPanelBodyProps extends AgentListPanelDisplayProps {
792
785
  /** The picker body over a core the host already holds. Fills its parent. */
793
786
  declare function AgentListPanelBody({ core, visibleTabs, systemTabLabel, includeSystemInAll, resolveAgentHref, showPinnedAgent, autoFocusSearch, onAfterSelect, className, }: AgentListPanelBodyProps): react.JSX.Element;
794
787
  interface AgentListPanelProps extends AgentListPanelDisplayProps {
788
+ /**
789
+ * Fill the parent instead of the fixed `PANEL_WIDTH` × `PANEL_HEIGHT`
790
+ * footprint — for a resizable host (a window). The list column takes the
791
+ * extra width; the peek column stays 340px.
792
+ */
793
+ fill?: boolean;
795
794
  /** Unique consumer id for this picker's filter/tab state. */
796
795
  consumerId: string;
797
796
  /** The chosen agent's id (`mandate:<key>` for a mandate default row). */
@@ -809,9 +808,10 @@ interface AgentListPanelProps extends AgentListPanelDisplayProps {
809
808
  }
810
809
  /**
811
810
  * The self-contained picker: owns its list core. Desktop renders at the fixed
812
- * `PANEL_WIDTH` × `PANEL_HEIGHT` footprint; mobile fills its parent.
811
+ * `PANEL_WIDTH` × `PANEL_HEIGHT` footprint (or fills its parent with `fill`);
812
+ * mobile fills its parent.
813
813
  */
814
- declare function AgentListPanel({ consumerId, onSelect, navigateTo, activeAgentId, initialTab, includeSystemInAll, visibleTabs, excludeAgentIds, defaultMandateKey, resolveAgentHref: resolveAgentHrefProp, className, ...display }: AgentListPanelProps): react.JSX.Element;
814
+ declare function AgentListPanel({ consumerId, onSelect, navigateTo, activeAgentId, initialTab, includeSystemInAll, visibleTabs, excludeAgentIds, defaultMandateKey, resolveAgentHref: resolveAgentHrefProp, className, fill, ...display }: AgentListPanelProps): react.JSX.Element;
815
815
 
816
816
  interface AgentListInlinePickerProps {
817
817
  /** Unique consumer id for filter/tab state (see `useAgentConsumer`). */
@@ -314,7 +314,8 @@ type AgentCatalogOpenPeek = (agent: AgentSummary) => void;
314
314
  *
315
315
  * THE DEMANDED SCHEMA PROBE (the `@ai-matrx/associations` `assertDemandedSchema`
316
316
  * precedent). It proves that the database a host pointed this catalog at can
317
- * actually answer the three functions the picker demands.
317
+ * actually answer the functions the picker demands — the three `agx_*` reads
318
+ * and `ues_get_bulk`, the star read (`platform.user_entity_state`).
318
319
  *
319
320
  * 🚨 IT MUST BE ABLE TO FAIL. A probe whose green result is unconditional
320
321
  * proves nothing, so `selfTest: true` also probes a fabricated function name
@@ -335,8 +336,6 @@ interface AgentCatalogSchemaReport {
335
336
  }[];
336
337
  /** Functions that answered (success or any non-missing refusal). */
337
338
  answered: string[];
338
- /** True when `agent.definition.is_favorite` is writable by this caller. */
339
- favoriteWritable: boolean | null;
340
339
  /**
341
340
  * Whether `agx_get_list_full` carries the `orchestra` badge column (added to
342
341
  * the platform 2026-09-08).
@@ -358,12 +357,6 @@ interface AssertAgentCatalogSchemaOptions {
358
357
  selfTest?: boolean;
359
358
  /** Return the report instead of throwing. The self-test failure ALWAYS throws. */
360
359
  throwOnViolation?: boolean;
361
- /**
362
- * Also probe the ONE write (`agent.definition.is_favorite`) against an
363
- * impossible id, so a 42501/permission refusal is seen at boot rather than
364
- * on a user's first click. Default: on.
365
- */
366
- probeWrite?: boolean;
367
360
  }
368
361
 
369
362
  /**
@@ -792,6 +785,12 @@ interface AgentListPanelBodyProps extends AgentListPanelDisplayProps {
792
785
  /** The picker body over a core the host already holds. Fills its parent. */
793
786
  declare function AgentListPanelBody({ core, visibleTabs, systemTabLabel, includeSystemInAll, resolveAgentHref, showPinnedAgent, autoFocusSearch, onAfterSelect, className, }: AgentListPanelBodyProps): react.JSX.Element;
794
787
  interface AgentListPanelProps extends AgentListPanelDisplayProps {
788
+ /**
789
+ * Fill the parent instead of the fixed `PANEL_WIDTH` × `PANEL_HEIGHT`
790
+ * footprint — for a resizable host (a window). The list column takes the
791
+ * extra width; the peek column stays 340px.
792
+ */
793
+ fill?: boolean;
795
794
  /** Unique consumer id for this picker's filter/tab state. */
796
795
  consumerId: string;
797
796
  /** The chosen agent's id (`mandate:<key>` for a mandate default row). */
@@ -809,9 +808,10 @@ interface AgentListPanelProps extends AgentListPanelDisplayProps {
809
808
  }
810
809
  /**
811
810
  * The self-contained picker: owns its list core. Desktop renders at the fixed
812
- * `PANEL_WIDTH` × `PANEL_HEIGHT` footprint; mobile fills its parent.
811
+ * `PANEL_WIDTH` × `PANEL_HEIGHT` footprint (or fills its parent with `fill`);
812
+ * mobile fills its parent.
813
813
  */
814
- declare function AgentListPanel({ consumerId, onSelect, navigateTo, activeAgentId, initialTab, includeSystemInAll, visibleTabs, excludeAgentIds, defaultMandateKey, resolveAgentHref: resolveAgentHrefProp, className, ...display }: AgentListPanelProps): react.JSX.Element;
814
+ declare function AgentListPanel({ consumerId, onSelect, navigateTo, activeAgentId, initialTab, includeSystemInAll, visibleTabs, excludeAgentIds, defaultMandateKey, resolveAgentHref: resolveAgentHrefProp, className, fill, ...display }: AgentListPanelProps): react.JSX.Element;
815
815
 
816
816
  interface AgentListInlinePickerProps {
817
817
  /** Unique consumer id for filter/tab state (see `useAgentConsumer`). */
@@ -1311,14 +1311,13 @@ function FavoriteAgentButton({
1311
1311
  );
1312
1312
  const record = useAgentCatalogState(select);
1313
1313
  const isFavorite2 = record?.isFavorite ?? false;
1314
- const isOwner = record?.isOwner ?? true;
1315
1314
  const handleClick = (e) => {
1316
1315
  e.stopPropagation();
1317
- if (disabled || !isOwner) return;
1316
+ if (disabled) return;
1318
1317
  void catalog.setFavorite(id, !isFavorite2).catch(() => {
1319
1318
  });
1320
1319
  };
1321
- const title = isOwner ? isFavorite2 ? "Remove from favorites" : "Add to favorites" : "Shared \u2014 cannot favorite";
1320
+ const title = isFavorite2 ? "Remove from favorites" : "Add to favorites";
1322
1321
  if (variant === "list") {
1323
1322
  return /* @__PURE__ */ jsx6(
1324
1323
  "button",
@@ -1327,10 +1326,10 @@ function FavoriteAgentButton({
1327
1326
  className: cn2(
1328
1327
  "flex-shrink-0 p-0.5 rounded transition-all duration-150",
1329
1328
  "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary",
1330
- disabled || !isOwner ? "cursor-not-allowed" : "hover:scale-110 cursor-pointer"
1329
+ disabled ? "cursor-not-allowed" : "hover:scale-110 cursor-pointer"
1331
1330
  ),
1332
1331
  onClick: handleClick,
1333
- disabled: disabled || !isOwner,
1332
+ disabled,
1334
1333
  title,
1335
1334
  "aria-label": isFavorite2 ? "Remove from favorites" : "Add to favorites",
1336
1335
  children: /* @__PURE__ */ jsx6(
@@ -1353,11 +1352,11 @@ function FavoriteAgentButton({
1353
1352
  className: cn2(
1354
1353
  "absolute top-2.5 right-2.5 z-10 p-0.5 rounded transition-all duration-150",
1355
1354
  "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary",
1356
- disabled || !isOwner ? "cursor-not-allowed" : "hover:scale-110 cursor-pointer",
1355
+ disabled ? "cursor-not-allowed" : "hover:scale-110 cursor-pointer",
1357
1356
  isFavorite2 ? "matrx-agent-star-on" : "text-muted-foreground/40 hover:matrx-agent-star-on"
1358
1357
  ),
1359
1358
  onClick: handleClick,
1360
- disabled: disabled || !isOwner,
1359
+ disabled,
1361
1360
  title,
1362
1361
  "aria-label": isFavorite2 ? "Remove from favorites" : "Add to favorites",
1363
1362
  children: /* @__PURE__ */ jsx6(StarIcon, { filled: isFavorite2, className: "w-4 h-4 transition-all duration-150" })
@@ -2328,7 +2327,7 @@ function AgentListPanelBody({
2328
2327
  ) : listPanel });
2329
2328
  }
2330
2329
  return /* @__PURE__ */ jsxs12("div", { className: cn6("flex h-full", className), children: [
2331
- /* @__PURE__ */ jsx15("div", { className: "flex flex-col min-w-0 w-[340px] shrink-0 border-r border-border", children: listPanel }),
2330
+ /* @__PURE__ */ jsx15("div", { className: "flex flex-col min-w-[340px] flex-1 border-r border-border", children: listPanel }),
2332
2331
  /* @__PURE__ */ jsxs12(
2333
2332
  "div",
2334
2333
  {
@@ -2397,6 +2396,7 @@ function AgentListPanel({
2397
2396
  defaultMandateKey,
2398
2397
  resolveAgentHref: resolveAgentHrefProp,
2399
2398
  className,
2399
+ fill = false,
2400
2400
  ...display
2401
2401
  }) {
2402
2402
  const isMobile = useIsMobile();
@@ -2419,8 +2419,8 @@ function AgentListPanel({
2419
2419
  return /* @__PURE__ */ jsx15(
2420
2420
  "div",
2421
2421
  {
2422
- className: cn6("flex min-h-0 flex-col overflow-hidden", isMobile && "h-full w-full", className),
2423
- style: isMobile ? void 0 : { width: PANEL_WIDTH, height: PANEL_HEIGHT },
2422
+ className: cn6("flex min-h-0 flex-col overflow-hidden", (isMobile || fill) && "h-full w-full", className),
2423
+ style: isMobile || fill ? void 0 : { width: PANEL_WIDTH, height: PANEL_HEIGHT },
2424
2424
  children: /* @__PURE__ */ jsx15(
2425
2425
  AgentListPanelBody,
2426
2426
  {