@mastra/playground-ui 21.0.0 → 21.0.1-alpha.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @mastra/playground-ui
2
2
 
3
+ ## 21.0.1-alpha.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Added gateway memory indicator in Studio agent memory panel. When an agent uses gateway-backed memory, the panel hides local-only sections (search, working memory, config) and shows a "Memory Gateway" badge instead. ([#14952](https://github.com/mastra-ai/mastra/pull/14952))
8
+
9
+ - Updated dependencies [[`2b4ea10`](https://github.com/mastra-ai/mastra/commit/2b4ea10b053e4ea1ab232d536933a4a3c4cba999), [`c8c86aa`](https://github.com/mastra-ai/mastra/commit/c8c86aa1458017fbd1c0776fdc0c520d129df8a6), [`a0544f0`](https://github.com/mastra-ai/mastra/commit/a0544f0a1e6bd52ac12676228967c1938e43648d), [`c8c86aa`](https://github.com/mastra-ai/mastra/commit/c8c86aa1458017fbd1c0776fdc0c520d129df8a6)]:
10
+ - @mastra/core@1.22.0-alpha.0
11
+ - @mastra/client-js@1.12.1-alpha.0
12
+ - @mastra/react@0.2.22-alpha.0
13
+
3
14
  ## 21.0.0
4
15
 
5
16
  ### Patch Changes
package/dist/index.cjs.js CHANGED
@@ -14644,6 +14644,14 @@ const GroqIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs(
14644
14644
  }
14645
14645
  );
14646
14646
 
14647
+ const MastraIcon = (props) => /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 34 21", fill: "none", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(
14648
+ "path",
14649
+ {
14650
+ d: "M4.49805 11.6934C6.98237 11.6934 8.99609 13.7081 8.99609 16.1924C8.9959 18.6765 6.98225 20.6904 4.49805 20.6904C2.01394 20.6903 0.000196352 18.6765 0 16.1924C0 13.7081 2.01382 11.6935 4.49805 11.6934ZM10.3867 0C12.8709 0 14.8846 2.01388 14.8848 4.49805C14.8848 4.8377 14.847 5.16846 14.7755 5.48643C14.4618 6.88139 14.1953 8.4633 14.9928 9.65L16.2575 11.5319C16.3363 11.6491 16.4727 11.7115 16.6137 11.703C16.7369 11.6957 16.8525 11.6343 16.9214 11.5318L18.1876 9.64717C18.9772 8.47198 18.7236 6.90783 18.4205 5.52484C18.3523 5.21392 18.3164 4.89094 18.3164 4.55957C18.3167 2.07546 20.3313 0.0615234 22.8154 0.0615234C25.2994 0.0617476 27.3132 2.0756 27.3135 4.55957C27.3135 4.93883 27.2665 5.30712 27.178 5.65896C26.8547 6.94441 26.5817 8.37932 27.2446 9.52714L28.459 11.6301C28.4819 11.6697 28.5245 11.6934 28.5703 11.6934C31.0545 11.6935 33.0684 13.7081 33.0684 16.1924C33.0682 18.6765 31.0544 20.6903 28.5703 20.6904C26.0861 20.6904 24.0725 18.6765 24.0723 16.1924C24.0723 15.8049 24.1212 15.4288 24.2133 15.0701C24.5458 13.7746 24.8298 12.3251 24.1609 11.1668L23.0044 9.16384C22.9656 9.09659 22.8931 9.05859 22.8154 9.05859C22.7983 9.05859 22.7824 9.06614 22.7728 9.08033L21.4896 10.9895C20.686 12.1851 20.9622 13.781 21.284 15.1851C21.3582 15.5089 21.3975 15.8461 21.3975 16.1924C21.3973 18.6764 19.3834 20.6902 16.8994 20.6904C14.4152 20.6904 12.4006 18.6765 12.4004 16.1924C12.4004 15.932 12.4226 15.6768 12.4651 15.4286C12.6859 14.14 12.8459 12.7122 12.1167 11.6271L11.2419 10.3253C10.6829 9.49347 9.71913 9.05932 8.78286 8.70188C7.0906 8.05584 5.88867 6.41734 5.88867 4.49805C5.88886 2.0139 7.90254 3.29835e-05 10.3867 0Z",
14651
+ fill: props.fill || "currentColor"
14652
+ }
14653
+ ) });
14654
+
14647
14655
  const MistralIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs(
14648
14656
  "svg",
14649
14657
  {
@@ -14878,7 +14886,8 @@ const providerMapToIcon = {
14878
14886
  GROQ: /* @__PURE__ */ jsxRuntime.jsx(GroqIcon, {}),
14879
14887
  X_GROK: /* @__PURE__ */ jsxRuntime.jsx(XGroqIcon, {}),
14880
14888
  MISTRAL: /* @__PURE__ */ jsxRuntime.jsx(MistralIcon, {}),
14881
- netlify: /* @__PURE__ */ jsxRuntime.jsx(NetlifyIcon, {})
14889
+ netlify: /* @__PURE__ */ jsxRuntime.jsx(NetlifyIcon, {}),
14890
+ mastra: /* @__PURE__ */ jsxRuntime.jsx(MastraIcon, {})
14882
14891
  };
14883
14892
 
14884
14893
  const cleanProviderId$1 = (providerId) => {
@@ -14902,12 +14911,13 @@ const ProviderLogo$1 = ({ providerId, className = "", size = 20 }) => {
14902
14911
  perplexity: "perplexity",
14903
14912
  fireworks_ai: "fireworks",
14904
14913
  openrouter: "openrouter",
14905
- netlify: "netlify"
14914
+ netlify: "netlify",
14915
+ mastra: "mastra"
14906
14916
  };
14907
14917
  return iconMap[id] || "DEFAULT";
14908
14918
  };
14909
14919
  const fallbackIcon = getFallbackProviderIcon(cleanedProviderId);
14910
- const isGateway = ["netlify"].includes(cleanProviderId);
14920
+ const isGateway = ["netlify", "mastra"].includes(cleanProviderId);
14911
14921
  if (isGateway || imageError || !providerId) {
14912
14922
  if (providerMapToIcon[fallbackIcon]) {
14913
14923
  return /* @__PURE__ */ jsxRuntime.jsx(Icon, { children: providerMapToIcon[fallbackIcon] });
@@ -15550,12 +15560,13 @@ const ProviderLogo = ({ providerId, className = "", size = 20 }) => {
15550
15560
  perplexity: "perplexity",
15551
15561
  fireworks_ai: "fireworks",
15552
15562
  openrouter: "openrouter",
15553
- netlify: "netlify"
15563
+ netlify: "netlify",
15564
+ mastra: "mastra"
15554
15565
  };
15555
15566
  return iconMap[id] || "DEFAULT";
15556
15567
  };
15557
15568
  const fallbackIcon = getFallbackProviderIcon(cleanedProviderId);
15558
- const isGateway = ["netlify"].includes(cleanProviderId$1);
15569
+ const isGateway = ["netlify", "mastra"].includes(cleanProviderId$1);
15559
15570
  if (isGateway || imageError || !providerId) {
15560
15571
  if (providerMapToIcon[fallbackIcon]) {
15561
15572
  return /* @__PURE__ */ jsxRuntime.jsx(Icon, { children: providerMapToIcon[fallbackIcon] });
@@ -23265,11 +23276,11 @@ const AgentObservationalMemory = ({ agentId, resourceId, threadId }) => {
23265
23276
  return threshold.min;
23266
23277
  };
23267
23278
  const isAdaptiveMode = omAgentConfig?.messageTokens !== void 0 && typeof omAgentConfig.messageTokens !== "number";
23268
- const totalBudget = isAdaptiveMode ? getThresholdValue(omAgentConfig?.messageTokens, 1e4) : 0;
23269
- const baseMessageTokens = isAdaptiveMode ? getBaseThresholdValue(omAgentConfig?.messageTokens, 1e4) : void 0;
23270
- const baseObservationTokens = isAdaptiveMode ? getBaseThresholdValue(omAgentConfig?.observationTokens, 3e4) : void 0;
23271
- const messageTokensThreshold = streamProgress?.windows?.active?.messages?.threshold ?? recordConfig?.observation?.messageTokens ?? getThresholdValue(omAgentConfig?.messageTokens, 1e4);
23272
- const configObservationTokens = getThresholdValue(omAgentConfig?.observationTokens, 3e4);
23279
+ const totalBudget = isAdaptiveMode ? getThresholdValue(omAgentConfig?.messageTokens, 3e4) : 0;
23280
+ const baseMessageTokens = isAdaptiveMode ? getBaseThresholdValue(omAgentConfig?.messageTokens, 3e4) : void 0;
23281
+ const baseObservationTokens = isAdaptiveMode ? getBaseThresholdValue(omAgentConfig?.observationTokens, 4e4) : void 0;
23282
+ const messageTokensThreshold = streamProgress?.windows?.active?.messages?.threshold ?? recordConfig?.observation?.messageTokens ?? getThresholdValue(omAgentConfig?.messageTokens, 3e4);
23283
+ const configObservationTokens = getThresholdValue(omAgentConfig?.observationTokens, 4e4);
23273
23284
  const observationTokensThreshold = streamProgress?.windows?.active?.observations?.threshold ?? recordConfig?.reflection?.observationTokens ?? configObservationTokens;
23274
23285
  const pendingMessageTokens = streamProgress?.windows?.active?.messages?.tokens ?? record?.pendingMessageTokens ?? 0;
23275
23286
  const observationTokenCount = streamProgress?.windows?.active?.observations?.tokens ?? record?.observationTokenCount ?? 0;
@@ -23900,7 +23911,8 @@ const MemorySearch = ({
23900
23911
  ] });
23901
23912
  };
23902
23913
 
23903
- function AgentMemory({ agentId, threadId }) {
23914
+ function AgentMemory({ agentId, threadId, memoryType }) {
23915
+ const isGatewayMemory = memoryType === "gateway";
23904
23916
  const { threadInput: chatInputValue } = useThreadInput();
23905
23917
  const { paths, navigate } = useLinkComponent();
23906
23918
  const { data: thread } = useThread({ threadId, agentId });
@@ -23964,7 +23976,7 @@ function AgentMemory({ agentId, threadId }) {
23964
23976
  ] })
23965
23977
  ] }) }),
23966
23978
  isOMEnabled && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border1 min-w-0 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(AgentObservationalMemory, { agentId, resourceId: effectiveResourceId, threadId }) }),
23967
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4 border-b border-border1", children: [
23979
+ !isGatewayMemory && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4 border-b border-border1", children: [
23968
23980
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
23969
23981
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-medium text-neutral5", children: "Semantic Recall" }),
23970
23982
  searchMemoryData?.searchScope && /* @__PURE__ */ jsxRuntime.jsx(
@@ -24005,10 +24017,17 @@ function AgentMemory({ agentId, threadId }) {
24005
24017
  )
24006
24018
  ] })
24007
24019
  ] }),
24008
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 overflow-y-auto", children: [
24020
+ !isGatewayMemory && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 overflow-y-auto", children: [
24009
24021
  /* @__PURE__ */ jsxRuntime.jsx(AgentWorkingMemory, { agentId }),
24010
24022
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t border-border1", children: /* @__PURE__ */ jsxRuntime.jsx(AgentMemoryConfig, { agentId }) })
24011
- ] })
24023
+ ] }),
24024
+ isGatewayMemory && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 border-b border-border1", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-surface3 border border-border1 rounded-lg p-4", children: [
24025
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-1", children: [
24026
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium px-2 py-0.5 rounded bg-green-500/20 text-green-400", children: "Gateway" }),
24027
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-medium text-neutral5", children: "Memory Gateway" })
24028
+ ] }),
24029
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-neutral3", children: "Memory is managed by the Memory Gateway. Threads and observations are stored remotely." })
24030
+ ] }) })
24012
24031
  ] });
24013
24032
  }
24014
24033
 
@@ -24033,7 +24052,7 @@ function AgentInformation({ agentId, threadId }) {
24033
24052
  /* @__PURE__ */ jsxRuntime.jsx(TabContent, { value: "overview", children: /* @__PURE__ */ jsxRuntime.jsx(AgentMetadata, { agentId }) }),
24034
24053
  /* @__PURE__ */ jsxRuntime.jsx(TabContent, { value: "model-settings", children: /* @__PURE__ */ jsxRuntime.jsx(AgentSettings, { agentId }) }),
24035
24054
  agent?.requestContextSchema && /* @__PURE__ */ jsxRuntime.jsx(TabContent, { value: "request-context", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntime.jsx(RequestContextSchemaForm, { requestContextSchema: agent.requestContextSchema }) }) }),
24036
- hasMemory && /* @__PURE__ */ jsxRuntime.jsx(TabContent, { value: "memory", children: /* @__PURE__ */ jsxRuntime.jsx(AgentMemory, { agentId, threadId }) }),
24055
+ hasMemory && /* @__PURE__ */ jsxRuntime.jsx(TabContent, { value: "memory", children: /* @__PURE__ */ jsxRuntime.jsx(AgentMemory, { agentId, threadId, memoryType: memory?.memoryType }) }),
24037
24056
  /* @__PURE__ */ jsxRuntime.jsx(TabContent, { value: "tracing-options", children: /* @__PURE__ */ jsxRuntime.jsx(TracingRunOptions, {}) })
24038
24057
  ] }) })
24039
24058
  ] });