@mastra/playground-ui 7.0.0-beta.1 → 7.0.0-beta.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 +47 -0
- package/dist/index.cjs.js +336 -246
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +332 -247
- package/dist/index.es.js.map +1 -1
- package/dist/src/components/ui/elements/notification/notification.d.ts +3 -1
- package/dist/src/domains/agents/components/agent-entity-header.d.ts +1 -3
- package/dist/src/domains/agents/components/agent-information/agent-information.d.ts +25 -0
- package/dist/src/domains/agents/components/agent-metadata/agent-metadata.d.ts +2 -11
- package/dist/src/domains/agents/components/agent-settings.d.ts +2 -4
- package/dist/src/domains/agents/index.d.ts +2 -0
- package/dist/src/domains/observability/components/span-scoring.d.ts +2 -1
- package/dist/src/domains/workflows/context/use-current-run.d.ts +2 -0
- package/dist/src/domains/workflows/workflow/workflow-step-action-bar.d.ts +2 -1
- package/package.json +16 -14
package/dist/index.es.js
CHANGED
|
@@ -3129,10 +3129,18 @@ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
|
3129
3129
|
const TooltipIconButton = forwardRef(
|
|
3130
3130
|
({ children, tooltip, side = "bottom", className, ...rest }, ref) => {
|
|
3131
3131
|
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
3132
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3132
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
3133
|
+
Button$2,
|
|
3134
|
+
{
|
|
3135
|
+
variant: "ghost",
|
|
3136
|
+
size: "icon",
|
|
3137
|
+
...rest,
|
|
3138
|
+
className: cn("size-6 p-1", className),
|
|
3139
|
+
ref,
|
|
3140
|
+
"aria-label": tooltip,
|
|
3141
|
+
children
|
|
3142
|
+
}
|
|
3143
|
+
) }),
|
|
3136
3144
|
/* @__PURE__ */ jsx(TooltipContent, { side, children: tooltip })
|
|
3137
3145
|
] }) });
|
|
3138
3146
|
}
|
|
@@ -4648,6 +4656,8 @@ function convertWorkflowRunStateToStreamResult(runState) {
|
|
|
4648
4656
|
status: result.status,
|
|
4649
4657
|
output: "output" in result ? result.output : void 0,
|
|
4650
4658
|
payload: "payload" in result ? result.payload : void 0,
|
|
4659
|
+
suspendPayload: "suspendPayload" in result ? result.suspendPayload : void 0,
|
|
4660
|
+
suspendOutput: "suspendOutput" in result ? result.suspendOutput : void 0,
|
|
4651
4661
|
resumePayload: "resumePayload" in result ? result.resumePayload : void 0,
|
|
4652
4662
|
error: "error" in result ? result.error : void 0,
|
|
4653
4663
|
startedAt: "startedAt" in result ? result.startedAt : Date.now(),
|
|
@@ -5326,7 +5336,9 @@ const useCurrentRun = () => {
|
|
|
5326
5336
|
status: value.status,
|
|
5327
5337
|
output: "output" in value ? value.output : void 0,
|
|
5328
5338
|
input: value.payload,
|
|
5329
|
-
resumeData: "resumePayload" in value ? value.resumePayload : void 0
|
|
5339
|
+
resumeData: "resumePayload" in value ? value.resumePayload : void 0,
|
|
5340
|
+
suspendOutput: "suspendOutput" in value ? value.suspendOutput : void 0,
|
|
5341
|
+
suspendPayload: "suspendPayload" in value ? value.suspendPayload : void 0
|
|
5330
5342
|
}
|
|
5331
5343
|
};
|
|
5332
5344
|
}, {});
|
|
@@ -5392,6 +5404,7 @@ const WorkflowStepActionBar = ({
|
|
|
5392
5404
|
input,
|
|
5393
5405
|
output,
|
|
5394
5406
|
resumeData,
|
|
5407
|
+
suspendOutput,
|
|
5395
5408
|
error,
|
|
5396
5409
|
mapConfig,
|
|
5397
5410
|
stepName,
|
|
@@ -5452,14 +5465,14 @@ const WorkflowStepActionBar = ({
|
|
|
5452
5465
|
/* @__PURE__ */ jsx("div", { className: "px-4 overflow-hidden", children: /* @__PURE__ */ jsx(CodeDialogContent, { data: resumeData }) })
|
|
5453
5466
|
] }) })
|
|
5454
5467
|
] }),
|
|
5455
|
-
output && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5468
|
+
(output ?? suspendOutput) && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5456
5469
|
/* @__PURE__ */ jsx(Button$1, { onClick: () => setIsOutputOpen(true), children: "Output" }),
|
|
5457
5470
|
/* @__PURE__ */ jsx(Dialog, { open: isOutputOpen, onOpenChange: setIsOutputOpen, children: /* @__PURE__ */ jsxs(DialogContent, { className: dialogContentClass, children: [
|
|
5458
5471
|
/* @__PURE__ */ jsxs(DialogTitle, { className: dialogTitleClass, children: [
|
|
5459
5472
|
stepName,
|
|
5460
5473
|
" output"
|
|
5461
5474
|
] }),
|
|
5462
|
-
/* @__PURE__ */ jsx("div", { className: "px-4 overflow-hidden", children: /* @__PURE__ */ jsx(CodeDialogContent, { data: output }) })
|
|
5475
|
+
/* @__PURE__ */ jsx("div", { className: "px-4 overflow-hidden", children: /* @__PURE__ */ jsx(CodeDialogContent, { data: output ?? suspendOutput }) })
|
|
5463
5476
|
] }) })
|
|
5464
5477
|
] }),
|
|
5465
5478
|
error && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -5639,7 +5652,7 @@ const Clock = ({ startedAt, endedAt }) => {
|
|
|
5639
5652
|
};
|
|
5640
5653
|
|
|
5641
5654
|
function WorkflowDefaultNode({ data, parentWorkflowName }) {
|
|
5642
|
-
const { steps
|
|
5655
|
+
const { steps } = useCurrentRun();
|
|
5643
5656
|
const {
|
|
5644
5657
|
label,
|
|
5645
5658
|
stepId,
|
|
@@ -5729,6 +5742,7 @@ function WorkflowDefaultNode({ data, parentWorkflowName }) {
|
|
|
5729
5742
|
input: step?.input,
|
|
5730
5743
|
resumeData: step?.resumeData,
|
|
5731
5744
|
output: step?.output,
|
|
5745
|
+
suspendOutput: step?.suspendOutput,
|
|
5732
5746
|
error: step?.error,
|
|
5733
5747
|
mapConfig,
|
|
5734
5748
|
status: step?.status
|
|
@@ -6038,6 +6052,7 @@ function WorkflowNestedNode({ data, parentWorkflowName }) {
|
|
|
6038
6052
|
input: step?.input,
|
|
6039
6053
|
resumeData: step?.resumeData,
|
|
6040
6054
|
output: step?.output,
|
|
6055
|
+
suspendOutput: step?.suspendOutput,
|
|
6041
6056
|
error: step?.error,
|
|
6042
6057
|
mapConfig,
|
|
6043
6058
|
onShowNestedGraph: () => showNestedGraph({ label, fullStep: fullLabel, stepGraph }),
|
|
@@ -7467,10 +7482,10 @@ function WorkflowTrigger({
|
|
|
7467
7482
|
setCancelResponse(response);
|
|
7468
7483
|
};
|
|
7469
7484
|
const streamResultToUse = result ?? streamResult;
|
|
7470
|
-
const suspendedSteps = Object.entries(streamResultToUse?.steps || {}).filter(([_, { status }]) => status === "suspended").map(([stepId, {
|
|
7485
|
+
const suspendedSteps = Object.entries(streamResultToUse?.steps || {}).filter(([_, { status }]) => status === "suspended").map(([stepId, { suspendPayload }]) => ({
|
|
7471
7486
|
stepId,
|
|
7472
7487
|
runId: innerRunId,
|
|
7473
|
-
suspendPayload
|
|
7488
|
+
suspendPayload,
|
|
7474
7489
|
isLoading: false
|
|
7475
7490
|
}));
|
|
7476
7491
|
useEffect(() => {
|
|
@@ -7581,11 +7596,23 @@ function WorkflowTrigger({
|
|
|
7581
7596
|
/* @__PURE__ */ jsx(Text, { variant: "secondary", className: "px-4 text-mastra-el-3", size: "xs", children: "Status" }),
|
|
7582
7597
|
/* @__PURE__ */ jsx("div", { className: "px-4 flex flex-col gap-4", children: Object.entries(workflowActivePaths).filter(([key, _]) => key !== "input" && !key.endsWith(".input")).map(([stepId, step]) => {
|
|
7583
7598
|
const { status } = step;
|
|
7584
|
-
let output =
|
|
7599
|
+
let output = void 0;
|
|
7600
|
+
let suspendOutput = void 0;
|
|
7601
|
+
if (step.status === "suspended") {
|
|
7602
|
+
suspendOutput = step.suspendOutput;
|
|
7603
|
+
}
|
|
7585
7604
|
if (step.status === "success") {
|
|
7586
7605
|
output = step.output;
|
|
7587
7606
|
}
|
|
7588
|
-
return /* @__PURE__ */ jsx(
|
|
7607
|
+
return /* @__PURE__ */ jsx(
|
|
7608
|
+
WorkflowStatus,
|
|
7609
|
+
{
|
|
7610
|
+
stepId,
|
|
7611
|
+
status,
|
|
7612
|
+
result: output ?? suspendOutput ?? {}
|
|
7613
|
+
},
|
|
7614
|
+
stepId
|
|
7615
|
+
);
|
|
7589
7616
|
}) })
|
|
7590
7617
|
] })
|
|
7591
7618
|
] })
|
|
@@ -11532,6 +11559,102 @@ const AgentAdvancedSettings = () => {
|
|
|
11532
11559
|
] }) });
|
|
11533
11560
|
};
|
|
11534
11561
|
|
|
11562
|
+
const useAgent = (agentId) => {
|
|
11563
|
+
const client = useMastraClient();
|
|
11564
|
+
const { requestContext } = usePlaygroundStore();
|
|
11565
|
+
return useQuery({
|
|
11566
|
+
queryKey: ["agent", agentId, JSON.stringify(requestContext)],
|
|
11567
|
+
queryFn: () => agentId ? client.getAgent(agentId).details(requestContext) : null,
|
|
11568
|
+
retry: false,
|
|
11569
|
+
enabled: Boolean(agentId)
|
|
11570
|
+
});
|
|
11571
|
+
};
|
|
11572
|
+
|
|
11573
|
+
const useMemory = (agentId) => {
|
|
11574
|
+
const client = useMastraClient();
|
|
11575
|
+
const { requestContext } = usePlaygroundStore();
|
|
11576
|
+
return useQuery({
|
|
11577
|
+
queryKey: ["memory", agentId],
|
|
11578
|
+
queryFn: () => agentId ? client.getMemoryStatus(agentId, requestContext) : null,
|
|
11579
|
+
enabled: Boolean(agentId),
|
|
11580
|
+
staleTime: 5 * 60 * 1e3,
|
|
11581
|
+
// 5 minutes
|
|
11582
|
+
gcTime: 10 * 60 * 1e3,
|
|
11583
|
+
// 10 minutes
|
|
11584
|
+
retry: false
|
|
11585
|
+
});
|
|
11586
|
+
};
|
|
11587
|
+
const useMemoryConfig = (agentId) => {
|
|
11588
|
+
const client = useMastraClient();
|
|
11589
|
+
const { requestContext } = usePlaygroundStore();
|
|
11590
|
+
return useQuery({
|
|
11591
|
+
queryKey: ["memory", "config", agentId],
|
|
11592
|
+
queryFn: () => agentId ? client.getMemoryConfig({ agentId, requestContext }) : null,
|
|
11593
|
+
enabled: Boolean(agentId),
|
|
11594
|
+
staleTime: 5 * 60 * 1e3,
|
|
11595
|
+
// 5 minutes
|
|
11596
|
+
gcTime: 10 * 60 * 1e3,
|
|
11597
|
+
// 10 minutes
|
|
11598
|
+
retry: false,
|
|
11599
|
+
refetchOnWindowFocus: false
|
|
11600
|
+
});
|
|
11601
|
+
};
|
|
11602
|
+
const useThreads = ({
|
|
11603
|
+
resourceId,
|
|
11604
|
+
agentId,
|
|
11605
|
+
isMemoryEnabled
|
|
11606
|
+
}) => {
|
|
11607
|
+
const client = useMastraClient();
|
|
11608
|
+
const { requestContext } = usePlaygroundStore();
|
|
11609
|
+
return useQuery({
|
|
11610
|
+
queryKey: ["memory", "threads", resourceId, agentId],
|
|
11611
|
+
queryFn: async () => {
|
|
11612
|
+
if (!isMemoryEnabled) return null;
|
|
11613
|
+
const result = await client.listMemoryThreads({ resourceId, agentId, requestContext });
|
|
11614
|
+
return result.threads;
|
|
11615
|
+
},
|
|
11616
|
+
enabled: Boolean(isMemoryEnabled),
|
|
11617
|
+
staleTime: 0,
|
|
11618
|
+
gcTime: 0,
|
|
11619
|
+
retry: false,
|
|
11620
|
+
refetchOnWindowFocus: false
|
|
11621
|
+
});
|
|
11622
|
+
};
|
|
11623
|
+
const useDeleteThread = () => {
|
|
11624
|
+
const client = useMastraClient();
|
|
11625
|
+
const queryClient = useQueryClient();
|
|
11626
|
+
const { requestContext } = usePlaygroundStore();
|
|
11627
|
+
return useMutation({
|
|
11628
|
+
mutationFn: ({ threadId, agentId }) => {
|
|
11629
|
+
const thread = client.getMemoryThread({ threadId, agentId });
|
|
11630
|
+
return thread.delete({ requestContext });
|
|
11631
|
+
},
|
|
11632
|
+
onSuccess: (_, variables) => {
|
|
11633
|
+
const { agentId } = variables;
|
|
11634
|
+
if (agentId) {
|
|
11635
|
+
queryClient.invalidateQueries({ queryKey: ["memory", "threads", agentId, agentId] });
|
|
11636
|
+
}
|
|
11637
|
+
toast$1.success("Chat deleted successfully");
|
|
11638
|
+
},
|
|
11639
|
+
onError: () => {
|
|
11640
|
+
toast$1.error("Failed to delete chat");
|
|
11641
|
+
}
|
|
11642
|
+
});
|
|
11643
|
+
};
|
|
11644
|
+
const useMemorySearch = ({
|
|
11645
|
+
agentId,
|
|
11646
|
+
resourceId,
|
|
11647
|
+
threadId
|
|
11648
|
+
}) => {
|
|
11649
|
+
const { requestContext } = usePlaygroundStore();
|
|
11650
|
+
const client = useMastraClient();
|
|
11651
|
+
return useMutation({
|
|
11652
|
+
mutationFn: async ({ searchQuery, memoryConfig }) => {
|
|
11653
|
+
return client.searchMemory({ agentId, resourceId, threadId, searchQuery, memoryConfig, requestContext });
|
|
11654
|
+
}
|
|
11655
|
+
});
|
|
11656
|
+
};
|
|
11657
|
+
|
|
11535
11658
|
const NetworkCheckbox = ({ hasMemory, hasSubAgents }) => {
|
|
11536
11659
|
const isNetworkAvailable = hasMemory && hasSubAgents;
|
|
11537
11660
|
const radio = /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -11564,8 +11687,19 @@ const NetworkCheckbox = ({ hasMemory, hasSubAgents }) => {
|
|
|
11564
11687
|
] }) })
|
|
11565
11688
|
] });
|
|
11566
11689
|
};
|
|
11567
|
-
const AgentSettings = ({
|
|
11690
|
+
const AgentSettings = ({ agentId }) => {
|
|
11691
|
+
const { data: agent, isLoading } = useAgent(agentId);
|
|
11692
|
+
const { data: memory, isLoading: isMemoryLoading } = useMemory(agentId);
|
|
11568
11693
|
const { settings, setSettings, resetAll } = useAgentSettings();
|
|
11694
|
+
if (isLoading || isMemoryLoading) {
|
|
11695
|
+
return /* @__PURE__ */ jsx(Skeleton, { className: "h-full" });
|
|
11696
|
+
}
|
|
11697
|
+
if (!agent) {
|
|
11698
|
+
return /* @__PURE__ */ jsx("div", { children: "Agent not found" });
|
|
11699
|
+
}
|
|
11700
|
+
const hasMemory = Boolean(memory?.result);
|
|
11701
|
+
const hasSubAgents = Boolean(Object.keys(agent.agents || {}).length > 0);
|
|
11702
|
+
const modelVersion = agent.modelVersion;
|
|
11569
11703
|
let radioValue;
|
|
11570
11704
|
if (modelVersion === "v2") {
|
|
11571
11705
|
if (settings?.modelSettings?.chatWithNetwork) {
|
|
@@ -13058,10 +13192,18 @@ function getShortId(id) {
|
|
|
13058
13192
|
return id.slice(0, 8);
|
|
13059
13193
|
}
|
|
13060
13194
|
|
|
13061
|
-
function Notification({
|
|
13195
|
+
function Notification({
|
|
13196
|
+
children,
|
|
13197
|
+
className,
|
|
13198
|
+
isVisible,
|
|
13199
|
+
autoDismiss = true,
|
|
13200
|
+
dismissTime = 5e3,
|
|
13201
|
+
dismissible = true,
|
|
13202
|
+
type = "info"
|
|
13203
|
+
}) {
|
|
13062
13204
|
const [localIsVisible, setLocalIsVisible] = useState(isVisible);
|
|
13063
13205
|
useEffect(() => {
|
|
13064
|
-
if (autoDismiss && isVisible) {
|
|
13206
|
+
if (dismissible && autoDismiss && isVisible) {
|
|
13065
13207
|
const timer = setTimeout(() => {
|
|
13066
13208
|
setLocalIsVisible(false);
|
|
13067
13209
|
}, dismissTime);
|
|
@@ -13076,13 +13218,27 @@ function Notification({ children, className, isVisible, autoDismiss = true, dism
|
|
|
13076
13218
|
"div",
|
|
13077
13219
|
{
|
|
13078
13220
|
className: cn(
|
|
13079
|
-
"grid grid-cols-[1fr_auto] gap-[0.5rem] rounded-
|
|
13080
|
-
|
|
13221
|
+
"grid grid-cols-[1fr_auto] gap-[0.5rem] rounded-lg bg-white/5 p-[1.5rem] py-[1rem] text-[0.875rem] text-icon3 items-center",
|
|
13222
|
+
{
|
|
13223
|
+
"bg-red-900/10 border border-red-900": type === "error"
|
|
13224
|
+
},
|
|
13081
13225
|
className
|
|
13082
13226
|
),
|
|
13083
13227
|
children: [
|
|
13084
|
-
/* @__PURE__ */ jsx(
|
|
13085
|
-
|
|
13228
|
+
/* @__PURE__ */ jsx(
|
|
13229
|
+
"div",
|
|
13230
|
+
{
|
|
13231
|
+
className: cn(
|
|
13232
|
+
"flex gap-[0.5rem] items-start",
|
|
13233
|
+
"[&>svg]:w-[1.2em] [&>svg]:h-[1.2em] [&>svg]:opacity-70 [&>svg]:translate-y-[0.2em]",
|
|
13234
|
+
{
|
|
13235
|
+
"[&>svg]:text-red-400": type === "error"
|
|
13236
|
+
}
|
|
13237
|
+
),
|
|
13238
|
+
children
|
|
13239
|
+
}
|
|
13240
|
+
),
|
|
13241
|
+
dismissible && /* @__PURE__ */ jsxs(Button, { variant: "ghost", onClick: () => setLocalIsVisible(false), children: [
|
|
13086
13242
|
/* @__PURE__ */ jsx(XIcon, {}),
|
|
13087
13243
|
/* @__PURE__ */ jsx(VisuallyHidden$1, { children: "Dismiss" })
|
|
13088
13244
|
] })
|
|
@@ -14492,6 +14648,67 @@ const PromptEnhancerTextarea = ({ agentId }) => {
|
|
|
14492
14648
|
] });
|
|
14493
14649
|
};
|
|
14494
14650
|
|
|
14651
|
+
const useAgents = () => {
|
|
14652
|
+
const client = useMastraClient();
|
|
14653
|
+
const { requestContext } = usePlaygroundStore();
|
|
14654
|
+
return useQuery({
|
|
14655
|
+
queryKey: ["agents", JSON.stringify(requestContext)],
|
|
14656
|
+
queryFn: () => client.listAgents(requestContext)
|
|
14657
|
+
});
|
|
14658
|
+
};
|
|
14659
|
+
const useUpdateAgentModel = (agentId) => {
|
|
14660
|
+
const client = useMastraClient();
|
|
14661
|
+
const queryClient = useQueryClient();
|
|
14662
|
+
return useMutation({
|
|
14663
|
+
mutationFn: async (payload) => client.getAgent(agentId).updateModel(payload),
|
|
14664
|
+
onSuccess: () => {
|
|
14665
|
+
queryClient.invalidateQueries({ queryKey: ["agent", agentId] });
|
|
14666
|
+
},
|
|
14667
|
+
onError: (err) => {
|
|
14668
|
+
console.error("Error updating model", err);
|
|
14669
|
+
}
|
|
14670
|
+
});
|
|
14671
|
+
};
|
|
14672
|
+
const useReorderModelList = (agentId) => {
|
|
14673
|
+
const client = useMastraClient();
|
|
14674
|
+
const queryClient = useQueryClient();
|
|
14675
|
+
return useMutation({
|
|
14676
|
+
mutationFn: async (payload) => client.getAgent(agentId).reorderModelList(payload),
|
|
14677
|
+
onSuccess: () => {
|
|
14678
|
+
queryClient.invalidateQueries({ queryKey: ["agent", agentId] });
|
|
14679
|
+
},
|
|
14680
|
+
onError: (err) => {
|
|
14681
|
+
console.error("Error reordering model list", err);
|
|
14682
|
+
}
|
|
14683
|
+
});
|
|
14684
|
+
};
|
|
14685
|
+
const useUpdateModelInModelList = (agentId) => {
|
|
14686
|
+
const client = useMastraClient();
|
|
14687
|
+
const queryClient = useQueryClient();
|
|
14688
|
+
return useMutation({
|
|
14689
|
+
mutationFn: async (payload) => client.getAgent(agentId).updateModelInModelList(payload),
|
|
14690
|
+
onSuccess: () => {
|
|
14691
|
+
queryClient.invalidateQueries({ queryKey: ["agent", agentId] });
|
|
14692
|
+
},
|
|
14693
|
+
onError: (err) => {
|
|
14694
|
+
console.error("Error updating model in model list", err);
|
|
14695
|
+
}
|
|
14696
|
+
});
|
|
14697
|
+
};
|
|
14698
|
+
const useResetAgentModel = (agentId) => {
|
|
14699
|
+
const client = useMastraClient();
|
|
14700
|
+
const queryClient = useQueryClient();
|
|
14701
|
+
return useMutation({
|
|
14702
|
+
mutationFn: async () => client.getAgent(agentId).resetModel(),
|
|
14703
|
+
onSuccess: () => {
|
|
14704
|
+
queryClient.invalidateQueries({ queryKey: ["agent", agentId] });
|
|
14705
|
+
},
|
|
14706
|
+
onError: (err) => {
|
|
14707
|
+
console.error("Error resetting model", err);
|
|
14708
|
+
}
|
|
14709
|
+
});
|
|
14710
|
+
};
|
|
14711
|
+
|
|
14495
14712
|
const AgentMetadataNetworkList = ({ agents }) => {
|
|
14496
14713
|
const { Link, paths } = useLinkComponent();
|
|
14497
14714
|
if (agents.length === 0) {
|
|
@@ -14499,16 +14716,20 @@ const AgentMetadataNetworkList = ({ agents }) => {
|
|
|
14499
14716
|
}
|
|
14500
14717
|
return /* @__PURE__ */ jsx(AgentMetadataList, { children: agents.map((agent) => /* @__PURE__ */ jsx(AgentMetadataListItem, { children: /* @__PURE__ */ jsx(Link, { href: paths.agentLink(agent.id), "data-testid": "agent-badge", children: /* @__PURE__ */ jsx(Badge, { variant: "success", icon: /* @__PURE__ */ jsx(AgentIcon, {}), children: agent.name }) }) }, agent.id)) });
|
|
14501
14718
|
};
|
|
14502
|
-
const AgentMetadata = ({
|
|
14503
|
-
agentId
|
|
14504
|
-
|
|
14505
|
-
|
|
14506
|
-
|
|
14507
|
-
|
|
14508
|
-
|
|
14509
|
-
|
|
14510
|
-
|
|
14511
|
-
|
|
14719
|
+
const AgentMetadata = ({ agentId }) => {
|
|
14720
|
+
const { data: agent, isLoading } = useAgent(agentId);
|
|
14721
|
+
const { data: memory, isLoading: isMemoryLoading } = useMemory(agentId);
|
|
14722
|
+
const { mutate: reorderModelList } = useReorderModelList(agentId);
|
|
14723
|
+
const { mutateAsync: resetModel } = useResetAgentModel(agentId);
|
|
14724
|
+
const { mutateAsync: updateModelInModelList } = useUpdateModelInModelList(agentId);
|
|
14725
|
+
const { mutateAsync: updateModel } = useUpdateAgentModel(agentId);
|
|
14726
|
+
const hasMemoryEnabled = Boolean(memory?.result);
|
|
14727
|
+
if (isLoading || isMemoryLoading) {
|
|
14728
|
+
return /* @__PURE__ */ jsx(Skeleton, { className: "h-full" });
|
|
14729
|
+
}
|
|
14730
|
+
if (!agent) {
|
|
14731
|
+
return /* @__PURE__ */ jsx("div", { children: "Agent not found" });
|
|
14732
|
+
}
|
|
14512
14733
|
const networkAgentsMap = agent.agents ?? {};
|
|
14513
14734
|
const networkAgents = Object.keys(networkAgentsMap).map((key) => ({ ...networkAgentsMap[key], id: key }));
|
|
14514
14735
|
const agentTools = agent.tools ?? {};
|
|
@@ -14527,7 +14748,7 @@ const AgentMetadata = ({
|
|
|
14527
14748
|
AgentMetadataSection,
|
|
14528
14749
|
{
|
|
14529
14750
|
title: "Model",
|
|
14530
|
-
hint: modelVersion === "v2" ? void 0 : {
|
|
14751
|
+
hint: agent.modelVersion === "v2" ? void 0 : {
|
|
14531
14752
|
link: "https://mastra.ai/guides/migrations/vnext-to-standard-apis",
|
|
14532
14753
|
title: "You are using a legacy v1 model",
|
|
14533
14754
|
icon: /* @__PURE__ */ jsx(AlertTriangleIcon, { fontSize: 14, className: "mb-0.5" })
|
|
@@ -14644,8 +14865,10 @@ const AgentMetadataScorerList = ({ entityId, entityType }) => {
|
|
|
14644
14865
|
return /* @__PURE__ */ jsx(AgentMetadataList, { children: scorerList.map((scorer) => /* @__PURE__ */ jsx(AgentMetadataListItem, { children: /* @__PURE__ */ jsx(Link, { href: paths.scorerLink(scorer.id), "data-testid": "scorer-badge", children: /* @__PURE__ */ jsx(Badge, { icon: /* @__PURE__ */ jsx(GaugeIcon, { className: "text-icon3" }), children: scorer.scorer.config.name }) }) }, scorer.id)) });
|
|
14645
14866
|
};
|
|
14646
14867
|
|
|
14647
|
-
const AgentEntityHeader = ({ agentId
|
|
14868
|
+
const AgentEntityHeader = ({ agentId }) => {
|
|
14869
|
+
const { data: agent, isLoading } = useAgent(agentId);
|
|
14648
14870
|
const { handleCopy } = useCopyToClipboard({ text: agentId });
|
|
14871
|
+
const agentName = agent?.name || "";
|
|
14649
14872
|
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(EntityHeader, { icon: /* @__PURE__ */ jsx(AgentIcon, {}), title: agentName, isLoading, children: /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
14650
14873
|
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("button", { onClick: handleCopy, className: "h-badge-default shrink-0", children: /* @__PURE__ */ jsx(Badge, { icon: /* @__PURE__ */ jsx(CopyIcon, {}), variant: "default", children: agentId }) }) }),
|
|
14651
14874
|
/* @__PURE__ */ jsx(TooltipContent, { children: "Copy Agent ID for use in code" })
|
|
@@ -14849,67 +15072,6 @@ const formatDay = (date) => {
|
|
|
14849
15072
|
return new Date(date).toLocaleString("en-us", options).replace(",", " at");
|
|
14850
15073
|
};
|
|
14851
15074
|
|
|
14852
|
-
const useAgents = () => {
|
|
14853
|
-
const client = useMastraClient();
|
|
14854
|
-
const { requestContext } = usePlaygroundStore();
|
|
14855
|
-
return useQuery({
|
|
14856
|
-
queryKey: ["agents", JSON.stringify(requestContext)],
|
|
14857
|
-
queryFn: () => client.listAgents(requestContext)
|
|
14858
|
-
});
|
|
14859
|
-
};
|
|
14860
|
-
const useUpdateAgentModel = (agentId) => {
|
|
14861
|
-
const client = useMastraClient();
|
|
14862
|
-
const queryClient = useQueryClient();
|
|
14863
|
-
return useMutation({
|
|
14864
|
-
mutationFn: async (payload) => client.getAgent(agentId).updateModel(payload),
|
|
14865
|
-
onSuccess: () => {
|
|
14866
|
-
queryClient.invalidateQueries({ queryKey: ["agent", agentId] });
|
|
14867
|
-
},
|
|
14868
|
-
onError: (err) => {
|
|
14869
|
-
console.error("Error updating model", err);
|
|
14870
|
-
}
|
|
14871
|
-
});
|
|
14872
|
-
};
|
|
14873
|
-
const useReorderModelList = (agentId) => {
|
|
14874
|
-
const client = useMastraClient();
|
|
14875
|
-
const queryClient = useQueryClient();
|
|
14876
|
-
return useMutation({
|
|
14877
|
-
mutationFn: async (payload) => client.getAgent(agentId).reorderModelList(payload),
|
|
14878
|
-
onSuccess: () => {
|
|
14879
|
-
queryClient.invalidateQueries({ queryKey: ["agent", agentId] });
|
|
14880
|
-
},
|
|
14881
|
-
onError: (err) => {
|
|
14882
|
-
console.error("Error reordering model list", err);
|
|
14883
|
-
}
|
|
14884
|
-
});
|
|
14885
|
-
};
|
|
14886
|
-
const useUpdateModelInModelList = (agentId) => {
|
|
14887
|
-
const client = useMastraClient();
|
|
14888
|
-
const queryClient = useQueryClient();
|
|
14889
|
-
return useMutation({
|
|
14890
|
-
mutationFn: async (payload) => client.getAgent(agentId).updateModelInModelList(payload),
|
|
14891
|
-
onSuccess: () => {
|
|
14892
|
-
queryClient.invalidateQueries({ queryKey: ["agent", agentId] });
|
|
14893
|
-
},
|
|
14894
|
-
onError: (err) => {
|
|
14895
|
-
console.error("Error updating model in model list", err);
|
|
14896
|
-
}
|
|
14897
|
-
});
|
|
14898
|
-
};
|
|
14899
|
-
const useResetAgentModel = (agentId) => {
|
|
14900
|
-
const client = useMastraClient();
|
|
14901
|
-
const queryClient = useQueryClient();
|
|
14902
|
-
return useMutation({
|
|
14903
|
-
mutationFn: async () => client.getAgent(agentId).resetModel(),
|
|
14904
|
-
onSuccess: () => {
|
|
14905
|
-
queryClient.invalidateQueries({ queryKey: ["agent", agentId] });
|
|
14906
|
-
},
|
|
14907
|
-
onError: (err) => {
|
|
14908
|
-
console.error("Error resetting model", err);
|
|
14909
|
-
}
|
|
14910
|
-
});
|
|
14911
|
-
};
|
|
14912
|
-
|
|
14913
15075
|
function AgentCombobox({
|
|
14914
15076
|
value,
|
|
14915
15077
|
onValueChange,
|
|
@@ -14957,17 +15119,6 @@ function AgentCombobox({
|
|
|
14957
15119
|
);
|
|
14958
15120
|
}
|
|
14959
15121
|
|
|
14960
|
-
const useAgent = (agentId) => {
|
|
14961
|
-
const client = useMastraClient();
|
|
14962
|
-
const { requestContext } = usePlaygroundStore();
|
|
14963
|
-
return useQuery({
|
|
14964
|
-
queryKey: ["agent", agentId, JSON.stringify(requestContext)],
|
|
14965
|
-
queryFn: () => agentId ? client.getAgent(agentId).details(requestContext) : null,
|
|
14966
|
-
retry: false,
|
|
14967
|
-
enabled: Boolean(agentId)
|
|
14968
|
-
});
|
|
14969
|
-
};
|
|
14970
|
-
|
|
14971
15122
|
const useExecuteAgentTool = () => {
|
|
14972
15123
|
const client = useMastraClient();
|
|
14973
15124
|
return useMutation({
|
|
@@ -15075,91 +15226,6 @@ const AgentToolPanel = ({ toolId, agentId }) => {
|
|
|
15075
15226
|
);
|
|
15076
15227
|
};
|
|
15077
15228
|
|
|
15078
|
-
const useMemory = (agentId) => {
|
|
15079
|
-
const client = useMastraClient();
|
|
15080
|
-
const { requestContext } = usePlaygroundStore();
|
|
15081
|
-
return useQuery({
|
|
15082
|
-
queryKey: ["memory", agentId],
|
|
15083
|
-
queryFn: () => agentId ? client.getMemoryStatus(agentId, requestContext) : null,
|
|
15084
|
-
enabled: Boolean(agentId),
|
|
15085
|
-
staleTime: 5 * 60 * 1e3,
|
|
15086
|
-
// 5 minutes
|
|
15087
|
-
gcTime: 10 * 60 * 1e3,
|
|
15088
|
-
// 10 minutes
|
|
15089
|
-
retry: false
|
|
15090
|
-
});
|
|
15091
|
-
};
|
|
15092
|
-
const useMemoryConfig = (agentId) => {
|
|
15093
|
-
const client = useMastraClient();
|
|
15094
|
-
const { requestContext } = usePlaygroundStore();
|
|
15095
|
-
return useQuery({
|
|
15096
|
-
queryKey: ["memory", "config", agentId],
|
|
15097
|
-
queryFn: () => agentId ? client.getMemoryConfig({ agentId, requestContext }) : null,
|
|
15098
|
-
enabled: Boolean(agentId),
|
|
15099
|
-
staleTime: 5 * 60 * 1e3,
|
|
15100
|
-
// 5 minutes
|
|
15101
|
-
gcTime: 10 * 60 * 1e3,
|
|
15102
|
-
// 10 minutes
|
|
15103
|
-
retry: false,
|
|
15104
|
-
refetchOnWindowFocus: false
|
|
15105
|
-
});
|
|
15106
|
-
};
|
|
15107
|
-
const useThreads = ({
|
|
15108
|
-
resourceId,
|
|
15109
|
-
agentId,
|
|
15110
|
-
isMemoryEnabled
|
|
15111
|
-
}) => {
|
|
15112
|
-
const client = useMastraClient();
|
|
15113
|
-
const { requestContext } = usePlaygroundStore();
|
|
15114
|
-
return useQuery({
|
|
15115
|
-
queryKey: ["memory", "threads", resourceId, agentId],
|
|
15116
|
-
queryFn: async () => {
|
|
15117
|
-
if (!isMemoryEnabled) return null;
|
|
15118
|
-
const result = await client.listMemoryThreads({ resourceId, agentId, requestContext });
|
|
15119
|
-
return result.threads;
|
|
15120
|
-
},
|
|
15121
|
-
enabled: Boolean(isMemoryEnabled),
|
|
15122
|
-
staleTime: 0,
|
|
15123
|
-
gcTime: 0,
|
|
15124
|
-
retry: false,
|
|
15125
|
-
refetchOnWindowFocus: false
|
|
15126
|
-
});
|
|
15127
|
-
};
|
|
15128
|
-
const useDeleteThread = () => {
|
|
15129
|
-
const client = useMastraClient();
|
|
15130
|
-
const queryClient = useQueryClient();
|
|
15131
|
-
const { requestContext } = usePlaygroundStore();
|
|
15132
|
-
return useMutation({
|
|
15133
|
-
mutationFn: ({ threadId, agentId }) => {
|
|
15134
|
-
const thread = client.getMemoryThread({ threadId, agentId });
|
|
15135
|
-
return thread.delete({ requestContext });
|
|
15136
|
-
},
|
|
15137
|
-
onSuccess: (_, variables) => {
|
|
15138
|
-
const { agentId } = variables;
|
|
15139
|
-
if (agentId) {
|
|
15140
|
-
queryClient.invalidateQueries({ queryKey: ["memory", "threads", agentId, agentId] });
|
|
15141
|
-
}
|
|
15142
|
-
toast$1.success("Chat deleted successfully");
|
|
15143
|
-
},
|
|
15144
|
-
onError: () => {
|
|
15145
|
-
toast$1.error("Failed to delete chat");
|
|
15146
|
-
}
|
|
15147
|
-
});
|
|
15148
|
-
};
|
|
15149
|
-
const useMemorySearch = ({
|
|
15150
|
-
agentId,
|
|
15151
|
-
resourceId,
|
|
15152
|
-
threadId
|
|
15153
|
-
}) => {
|
|
15154
|
-
const { requestContext } = usePlaygroundStore();
|
|
15155
|
-
const client = useMastraClient();
|
|
15156
|
-
return useMutation({
|
|
15157
|
-
mutationFn: async ({ searchQuery, memoryConfig }) => {
|
|
15158
|
-
return client.searchMemory({ agentId, resourceId, threadId, searchQuery, memoryConfig, requestContext });
|
|
15159
|
-
}
|
|
15160
|
-
});
|
|
15161
|
-
};
|
|
15162
|
-
|
|
15163
15229
|
function MarkdownRenderer({ children }) {
|
|
15164
15230
|
const processedText = children.replace(/\\n/g, "\n");
|
|
15165
15231
|
return /* @__PURE__ */ jsx(Markdown, { remarkPlugins: [remarkGfm], components: COMPONENTS, className: "space-y-3", children: processedText });
|
|
@@ -15941,14 +16007,24 @@ const TabContent$1 = ({ children, value }) => {
|
|
|
15941
16007
|
};
|
|
15942
16008
|
|
|
15943
16009
|
function AgentInformation({ agentId, threadId }) {
|
|
15944
|
-
const { data:
|
|
15945
|
-
const
|
|
15946
|
-
|
|
15947
|
-
|
|
15948
|
-
|
|
15949
|
-
|
|
15950
|
-
|
|
15951
|
-
|
|
16010
|
+
const { data: memory } = useMemory(agentId);
|
|
16011
|
+
const hasMemory = Boolean(memory?.result);
|
|
16012
|
+
return /* @__PURE__ */ jsxs(AgentInformationLayout, { agentId, children: [
|
|
16013
|
+
/* @__PURE__ */ jsx(AgentEntityHeader, { agentId }),
|
|
16014
|
+
/* @__PURE__ */ jsxs(AgentInformationTabLayout, { agentId, children: [
|
|
16015
|
+
/* @__PURE__ */ jsxs(TabList$1, { children: [
|
|
16016
|
+
/* @__PURE__ */ jsx(Tab$1, { value: "overview", children: "Overview" }),
|
|
16017
|
+
/* @__PURE__ */ jsx(Tab$1, { value: "model-settings", children: "Model Settings" }),
|
|
16018
|
+
hasMemory && /* @__PURE__ */ jsx(Tab$1, { value: "memory", children: "Memory" })
|
|
16019
|
+
] }),
|
|
16020
|
+
/* @__PURE__ */ jsx(TabContent$1, { value: "overview", children: /* @__PURE__ */ jsx(AgentMetadata, { agentId }) }),
|
|
16021
|
+
/* @__PURE__ */ jsx(TabContent$1, { value: "model-settings", children: /* @__PURE__ */ jsx(AgentSettings, { agentId }) }),
|
|
16022
|
+
hasMemory && /* @__PURE__ */ jsx(TabContent$1, { value: "memory", children: /* @__PURE__ */ jsx(AgentMemory, { agentId, threadId }) })
|
|
16023
|
+
] })
|
|
16024
|
+
] });
|
|
16025
|
+
}
|
|
16026
|
+
const STORAGE_KEY = "agent-info-selected-tab";
|
|
16027
|
+
const useAgentInformationTab = ({ isMemoryLoading, hasMemory }) => {
|
|
15952
16028
|
const [selectedTab, setSelectedTab] = useState(() => {
|
|
15953
16029
|
return sessionStorage.getItem(STORAGE_KEY) || "overview";
|
|
15954
16030
|
});
|
|
@@ -15957,7 +16033,20 @@ function AgentInformation({ agentId, threadId }) {
|
|
|
15957
16033
|
sessionStorage.setItem(STORAGE_KEY, value);
|
|
15958
16034
|
};
|
|
15959
16035
|
useEffect(() => {
|
|
15960
|
-
if (
|
|
16036
|
+
if (!isMemoryLoading && !hasMemory && selectedTab === "memory") {
|
|
16037
|
+
setSelectedTab("overview");
|
|
16038
|
+
sessionStorage.setItem(STORAGE_KEY, "overview");
|
|
16039
|
+
}
|
|
16040
|
+
}, [isMemoryLoading, hasMemory, selectedTab]);
|
|
16041
|
+
return {
|
|
16042
|
+
selectedTab,
|
|
16043
|
+
handleTabChange
|
|
16044
|
+
};
|
|
16045
|
+
};
|
|
16046
|
+
const useAgentInformationSettings = ({ modelId }) => {
|
|
16047
|
+
const { settings, setSettings } = useAgentSettings();
|
|
16048
|
+
useEffect(() => {
|
|
16049
|
+
if (modelId?.includes("gpt-5")) {
|
|
15961
16050
|
setSettings({
|
|
15962
16051
|
...settings || {},
|
|
15963
16052
|
modelSettings: {
|
|
@@ -15966,51 +16055,26 @@ function AgentInformation({ agentId, threadId }) {
|
|
|
15966
16055
|
}
|
|
15967
16056
|
});
|
|
15968
16057
|
}
|
|
15969
|
-
}, [
|
|
15970
|
-
|
|
15971
|
-
|
|
15972
|
-
|
|
15973
|
-
|
|
15974
|
-
|
|
15975
|
-
|
|
15976
|
-
|
|
15977
|
-
|
|
15978
|
-
|
|
15979
|
-
|
|
15980
|
-
|
|
15981
|
-
|
|
15982
|
-
|
|
15983
|
-
|
|
15984
|
-
|
|
15985
|
-
|
|
15986
|
-
|
|
15987
|
-
|
|
15988
|
-
|
|
15989
|
-
agent,
|
|
15990
|
-
updateModel,
|
|
15991
|
-
resetModel,
|
|
15992
|
-
updateModelInModelList,
|
|
15993
|
-
reorderModelList,
|
|
15994
|
-
hasMemoryEnabled: Boolean(memory?.result),
|
|
15995
|
-
modelVersion: agent.modelVersion
|
|
15996
|
-
}
|
|
15997
|
-
)
|
|
15998
|
-
] }),
|
|
15999
|
-
/* @__PURE__ */ jsxs(TabContent$1, { value: "model-settings", children: [
|
|
16000
|
-
isLoading && /* @__PURE__ */ jsx(Skeleton, { className: "h-full" }),
|
|
16001
|
-
agent && /* @__PURE__ */ jsx(
|
|
16002
|
-
AgentSettings,
|
|
16003
|
-
{
|
|
16004
|
-
modelVersion: agent.modelVersion,
|
|
16005
|
-
hasMemory: Boolean(memory?.result),
|
|
16006
|
-
hasSubAgents: Boolean(Object.keys(agent.agents || {}).length > 0)
|
|
16007
|
-
}
|
|
16008
|
-
)
|
|
16009
|
-
] }),
|
|
16010
|
-
/* @__PURE__ */ jsx(TabContent$1, { value: "memory", children: isLoading ? /* @__PURE__ */ jsx(Skeleton, { className: "h-full" }) : /* @__PURE__ */ jsx(AgentMemory, { agentId, threadId }) })
|
|
16011
|
-
] }) })
|
|
16012
|
-
] });
|
|
16013
|
-
}
|
|
16058
|
+
}, [modelId]);
|
|
16059
|
+
return {
|
|
16060
|
+
settings,
|
|
16061
|
+
setSettings
|
|
16062
|
+
};
|
|
16063
|
+
};
|
|
16064
|
+
const AgentInformationLayout = ({ children, agentId }) => {
|
|
16065
|
+
const { data: agent } = useAgent(agentId);
|
|
16066
|
+
useAgentInformationSettings({ modelId: agent?.modelId || "" });
|
|
16067
|
+
return /* @__PURE__ */ jsx("div", { className: "grid grid-rows-[auto_1fr] h-full items-start overflow-y-auto border-l-sm border-border1", children });
|
|
16068
|
+
};
|
|
16069
|
+
const AgentInformationTabLayout = ({ children, agentId }) => {
|
|
16070
|
+
const { data: memory, isLoading: isMemoryLoading } = useMemory(agentId);
|
|
16071
|
+
const hasMemory = Boolean(memory?.result);
|
|
16072
|
+
const { selectedTab, handleTabChange } = useAgentInformationTab({
|
|
16073
|
+
isMemoryLoading,
|
|
16074
|
+
hasMemory
|
|
16075
|
+
});
|
|
16076
|
+
return /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-hidden border-t-sm border-border1 flex flex-col", children: /* @__PURE__ */ jsx(PlaygroundTabs, { defaultTab: "overview", value: selectedTab, onValueChange: handleTabChange, children }) });
|
|
16077
|
+
};
|
|
16014
16078
|
|
|
16015
16079
|
const NameCell$1 = ({ row }) => {
|
|
16016
16080
|
const { Link, paths } = useLinkComponent();
|
|
@@ -17684,7 +17748,15 @@ function SpanTabs({
|
|
|
17684
17748
|
/* @__PURE__ */ jsx(CircleGaugeIcon, {}),
|
|
17685
17749
|
" Scoring"
|
|
17686
17750
|
] }) }),
|
|
17687
|
-
/* @__PURE__ */ jsx(
|
|
17751
|
+
/* @__PURE__ */ jsx(
|
|
17752
|
+
SpanScoring,
|
|
17753
|
+
{
|
|
17754
|
+
traceId: trace?.traceId,
|
|
17755
|
+
isTopLevelSpan: span?.parentSpanId === null,
|
|
17756
|
+
spanId: span?.spanId,
|
|
17757
|
+
entityType
|
|
17758
|
+
}
|
|
17759
|
+
)
|
|
17688
17760
|
] }),
|
|
17689
17761
|
/* @__PURE__ */ jsxs(Section, { children: [
|
|
17690
17762
|
/* @__PURE__ */ jsx(Section.Header, { children: /* @__PURE__ */ jsxs(Section.Heading, { children: [
|
|
@@ -18281,8 +18353,8 @@ const useTriggerScorer = () => {
|
|
|
18281
18353
|
});
|
|
18282
18354
|
};
|
|
18283
18355
|
|
|
18284
|
-
const SpanScoring = ({ traceId, spanId, entityType }) => {
|
|
18285
|
-
const { data: scorers = {}, isLoading } = useScorers();
|
|
18356
|
+
const SpanScoring = ({ traceId, spanId, entityType, isTopLevelSpan }) => {
|
|
18357
|
+
const { data: scorers = {}, isLoading, error } = useScorers();
|
|
18286
18358
|
const [selectedScorer, setSelectedScorer] = useState(null);
|
|
18287
18359
|
const { mutate: triggerScorer, isPending, isSuccess } = useTriggerScorer();
|
|
18288
18360
|
const [notificationIsVisible, setNotificationIsVisible] = useState(false);
|
|
@@ -18298,7 +18370,7 @@ const SpanScoring = ({ traceId, spanId, entityType }) => {
|
|
|
18298
18370
|
isRegistered: scorer.isRegistered,
|
|
18299
18371
|
type: scorer.scorer.config.type
|
|
18300
18372
|
})).filter((scorer) => scorer.isRegistered);
|
|
18301
|
-
if (entityType !== "Agent" ||
|
|
18373
|
+
if (entityType !== "Agent" || !isTopLevelSpan) {
|
|
18302
18374
|
scorerList = scorerList.filter((scorer) => scorer.type !== "agent");
|
|
18303
18375
|
}
|
|
18304
18376
|
const isWaiting = isPending || isLoading;
|
|
@@ -18317,6 +18389,19 @@ const SpanScoring = ({ traceId, spanId, entityType }) => {
|
|
|
18317
18389
|
setNotificationIsVisible(false);
|
|
18318
18390
|
};
|
|
18319
18391
|
const selectedScorerDescription = scorerList.find((s) => s.name === selectedScorer)?.description || "";
|
|
18392
|
+
if (error) {
|
|
18393
|
+
return /* @__PURE__ */ jsxs(Notification, { isVisible: true, autoDismiss: false, type: "error", children: [
|
|
18394
|
+
/* @__PURE__ */ jsx(InfoIcon$1, {}),
|
|
18395
|
+
" ",
|
|
18396
|
+
error?.message ? error.message : "Failed to load scorers."
|
|
18397
|
+
] });
|
|
18398
|
+
}
|
|
18399
|
+
if (scorerList.length === 0) {
|
|
18400
|
+
return /* @__PURE__ */ jsxs(Notification, { isVisible: true, dismissible: false, children: [
|
|
18401
|
+
/* @__PURE__ */ jsx(InfoIcon$1, {}),
|
|
18402
|
+
" No eligible scorers have been defined to run."
|
|
18403
|
+
] });
|
|
18404
|
+
}
|
|
18320
18405
|
return /* @__PURE__ */ jsxs("div", { children: [
|
|
18321
18406
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[3fr_1fr] gap-[1rem] items-start", children: [
|
|
18322
18407
|
/* @__PURE__ */ jsxs("div", { className: "grid gap-[0.5rem]", children: [
|
|
@@ -18913,5 +18998,5 @@ function MCPServerCombobox({
|
|
|
18913
18998
|
);
|
|
18914
18999
|
}
|
|
18915
19000
|
|
|
18916
|
-
export { AgentChat, AgentCoinIcon, AgentCombobox, AgentEntityHeader, AgentIcon, AgentInformation, AgentMetadata, AgentMetadataList, AgentMetadataListEmpty, AgentMetadataListItem, AgentMetadataNetworkList, AgentMetadataScorerList, AgentMetadataSection, AgentMetadataToolList, AgentMetadataWorkflowList, AgentMetadataWrapper, AgentNetworkCoinIcon, AgentPromptExperimentProvider, AgentSettings, AgentSettingsContext, AgentSettingsProvider, AgentToolPanel, AgentsTable, AiIcon, Alert$1 as Alert, AlertDescription$1 as AlertDescription, AlertDialog, AlertTitle$1 as AlertTitle, ApiIcon, Badge, BranchIcon, Breadcrumb, Button$1 as Button, ButtonsGroup, Cell, ChatThreads, CheckIcon, ChevronIcon, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, CommitIcon, CrossIcon, Crumb, DateTimeCell, DateTimePicker, DateTimePickerContent, DbIcon, DebugIcon, DefaultTrigger, DeploymentIcon, DividerIcon, DocsIcon, DynamicForm, EmptyState, Entity, EntityContent, EntityDescription, EntityHeader, EntityIcon, EntityName, Entry, EntryCell, EntryList, EntryListSkeleton, EnvIcon, FiltersIcon, FolderIcon, GithubCoinIcon, GithubIcon, GoogleIcon, Header, HeaderAction, HeaderGroup, HeaderTitle, HomeIcon, Icon, InfoIcon, InputField, JudgeIcon, Kbd, KeyValueList, LatencyIcon, LinkComponentProvider, LogoWithoutText, LogsIcon, MCPDetail, MCPServerCombobox, MCPTable, MCPToolPanel, MainContentContent, MainContentLayout, MainSidebar, MainSidebarProvider, McpCoinIcon, McpServerIcon, MemoryIcon, MemorySearch, Notification, OpenAIIcon, PageHeader, PlaygroundQueryClient, PlaygroundTabs, PromptIcon, RadioGroup, RadioGroupItem, RepoIcon, RequestContext, RequestContextWrapper, Row, ScoreDialog, ScorerCombobox, ScorersTable, ScoresList, ScoresTools, SearchField, Searchbar, SearchbarWrapper, Section, Sections, SelectField, SettingsIcon, SideDialog, Skeleton, SlashIcon, SpanScoreList, SpanScoring, SpanTabs, Tab$1 as Tab, TabContent$1 as TabContent, TabList$1 as TabList, Table, Tbody, TemplateFailure, TemplateForm, TemplateInfo, TemplateInstallation, TemplateSuccess, TemplatesList, TemplatesTools, TextAndIcon, Th, Thead, ThreadDeleteButton, ThreadInputProvider, ThreadItem, ThreadLink, ThreadList, Threads, ToolCoinIcon, ToolCombobox, ToolFallback, ToolIconMap, ToolInformation, ToolPanel, ToolTable, ToolsIcon, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TraceDialog, TraceIcon, TraceTimeline, TraceTimelineLegend, TraceTimelineSpan, TracesList, TracesTools, TsIcon, Txt, TxtCell, VariablesIcon, WorkflowCoinIcon, WorkflowCombobox, WorkflowGraph, WorkflowIcon, WorkflowInformation, WorkflowRunContext, WorkflowRunDetail, WorkflowRunList, WorkflowRunProvider, WorkflowTable, WorkflowTrigger, WorkingMemoryContext, WorkingMemoryProvider, convertWorkflowRunStateToStreamResult, extractPrompt, formatHierarchicalSpans, getColumnTemplate, getShortId, getSpanTypeUi, getToNextEntryFn, getToPreviousEntryFn, parseError, providerMapToIcon, scoresListColumns, spanTypePrefixes, toast, traceScoresListColumns, tracesListColumns, useAgent, useAgentPromptExperiment, useAgentSettings, useAgents, useCancelWorkflowRun, useCurrentRun, useDeleteThread, useExecuteAgentTool, useExecuteMCPTool, useExecuteTool, useExecuteWorkflow, useInView, useLinkComponent, useMCPServerTool, useMCPServerTools, useMCPServers, useMainSidebar, useMemory, useMemoryConfig, useMemorySearch, usePlaygroundStore, useReorderModelList, useResetAgentModel, useScorer, useScorers, useScoresByScorerId, useSpeechRecognition, useStreamWorkflow, useThreadInput, useThreads, useTool, useTools, useTraceSpanScores, useUpdateAgentModel, useUpdateModelInModelList, useWorkflow, useWorkflowRunExecutionResult, useWorkflowRuns, useWorkflows, useWorkingMemory };
|
|
19001
|
+
export { AgentChat, AgentCoinIcon, AgentCombobox, AgentEntityHeader, AgentIcon, AgentInformation, AgentInformationLayout, AgentInformationTabLayout, AgentMemory, AgentMetadata, AgentMetadataList, AgentMetadataListEmpty, AgentMetadataListItem, AgentMetadataNetworkList, AgentMetadataScorerList, AgentMetadataSection, AgentMetadataToolList, AgentMetadataWorkflowList, AgentMetadataWrapper, AgentNetworkCoinIcon, AgentPromptExperimentProvider, AgentSettings, AgentSettingsContext, AgentSettingsProvider, AgentToolPanel, AgentsTable, AiIcon, Alert$1 as Alert, AlertDescription$1 as AlertDescription, AlertDialog, AlertTitle$1 as AlertTitle, ApiIcon, Badge, BranchIcon, Breadcrumb, Button$1 as Button, ButtonsGroup, Cell, ChatThreads, CheckIcon, ChevronIcon, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, CommitIcon, CrossIcon, Crumb, DateTimeCell, DateTimePicker, DateTimePickerContent, DbIcon, DebugIcon, DefaultTrigger, DeploymentIcon, DividerIcon, DocsIcon, DynamicForm, EmptyState, Entity, EntityContent, EntityDescription, EntityHeader, EntityIcon, EntityName, Entry, EntryCell, EntryList, EntryListSkeleton, EnvIcon, FiltersIcon, FolderIcon, GithubCoinIcon, GithubIcon, GoogleIcon, Header, HeaderAction, HeaderGroup, HeaderTitle, HomeIcon, Icon, InfoIcon, InputField, JudgeIcon, Kbd, KeyValueList, LatencyIcon, LinkComponentProvider, LogoWithoutText, LogsIcon, MCPDetail, MCPServerCombobox, MCPTable, MCPToolPanel, MainContentContent, MainContentLayout, MainSidebar, MainSidebarProvider, McpCoinIcon, McpServerIcon, MemoryIcon, MemorySearch, Notification, OpenAIIcon, PageHeader, PlaygroundQueryClient, PlaygroundTabs, PromptIcon, RadioGroup, RadioGroupItem, RepoIcon, RequestContext, RequestContextWrapper, Row, ScoreDialog, ScorerCombobox, ScorersTable, ScoresList, ScoresTools, SearchField, Searchbar, SearchbarWrapper, Section, Sections, SelectField, SettingsIcon, SideDialog, Skeleton, SlashIcon, SpanScoreList, SpanScoring, SpanTabs, Tab$1 as Tab, TabContent$1 as TabContent, TabList$1 as TabList, Table, Tbody, TemplateFailure, TemplateForm, TemplateInfo, TemplateInstallation, TemplateSuccess, TemplatesList, TemplatesTools, TextAndIcon, Th, Thead, ThreadDeleteButton, ThreadInputProvider, ThreadItem, ThreadLink, ThreadList, Threads, ToolCoinIcon, ToolCombobox, ToolFallback, ToolIconMap, ToolInformation, ToolPanel, ToolTable, ToolsIcon, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TraceDialog, TraceIcon, TraceTimeline, TraceTimelineLegend, TraceTimelineSpan, TracesList, TracesTools, TsIcon, Txt, TxtCell, VariablesIcon, WorkflowCoinIcon, WorkflowCombobox, WorkflowGraph, WorkflowIcon, WorkflowInformation, WorkflowRunContext, WorkflowRunDetail, WorkflowRunList, WorkflowRunProvider, WorkflowTable, WorkflowTrigger, WorkingMemoryContext, WorkingMemoryProvider, convertWorkflowRunStateToStreamResult, extractPrompt, formatHierarchicalSpans, getColumnTemplate, getShortId, getSpanTypeUi, getToNextEntryFn, getToPreviousEntryFn, parseError, providerMapToIcon, scoresListColumns, spanTypePrefixes, toast, traceScoresListColumns, tracesListColumns, useAgent, useAgentInformationSettings, useAgentInformationTab, useAgentPromptExperiment, useAgentSettings, useAgents, useCancelWorkflowRun, useCurrentRun, useDeleteThread, useExecuteAgentTool, useExecuteMCPTool, useExecuteTool, useExecuteWorkflow, useInView, useLinkComponent, useMCPServerTool, useMCPServerTools, useMCPServers, useMainSidebar, useMemory, useMemoryConfig, useMemorySearch, usePlaygroundStore, useReorderModelList, useResetAgentModel, useScorer, useScorers, useScoresByScorerId, useSpeechRecognition, useStreamWorkflow, useThreadInput, useThreads, useTool, useTools, useTraceSpanScores, useUpdateAgentModel, useUpdateModelInModelList, useWorkflow, useWorkflowRunExecutionResult, useWorkflowRuns, useWorkflows, useWorkingMemory };
|
|
18917
19002
|
//# sourceMappingURL=index.es.js.map
|