@mastra/playground-ui 5.0.1-alpha.1 → 5.0.1-alpha.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/dist/domains/agents/agent/agent-traces.d.ts +2 -4
- package/dist/domains/networks/index.d.ts +1 -0
- package/dist/domains/networks/network-context.d.ts +13 -0
- package/dist/domains/traces/context/trace-context.d.ts +0 -2
- package/dist/domains/traces/trace-details.d.ts +1 -1
- package/dist/domains/traces/trace-span-details.d.ts +1 -1
- package/dist/domains/traces/trace-span-view.d.ts +4 -6
- package/dist/domains/traces/traces-sidebar.d.ts +1 -4
- package/dist/domains/traces/utils/getSpanVariant.d.ts +4 -0
- package/dist/domains/traces/utils.d.ts +1 -1
- package/dist/domains/workflows/workflow/workflow-traces.d.ts +1 -4
- package/dist/ds/components/TraceTree/Span.d.ts +22 -1
- package/dist/ds/components/TraceTree/Trace.d.ts +4 -1
- package/dist/ds/icons/LatencyIcon.d.ts +3 -0
- package/dist/ds/icons/index.d.ts +1 -0
- package/dist/index.cjs.js +489 -491
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +488 -493
- package/dist/index.es.js.map +1 -1
- package/dist/lib/mastra-client.d.ts +3 -0
- package/dist/services/network-runtime-provider.d.ts +1 -1
- package/package.json +3 -3
- package/dist/domains/traces/trace-tree-view.d.ts +0 -6
package/dist/index.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useMessage, MessagePrimitive, ActionBarPrimitive, ThreadPrimitive, ComposerPrimitive, useExternalStoreRuntime, AssistantRuntimeProvider } from '@assistant-ui/react';
|
|
3
|
-
import { CheckIcon as CheckIcon$1, CopyIcon, ChevronUpIcon, ArrowUp, Copy, Search, RefreshCcwIcon, ChevronRight, SortAsc, SortDesc,
|
|
3
|
+
import { CheckIcon as CheckIcon$1, CopyIcon, ChevronUpIcon, ArrowUp, Copy, Search, RefreshCcwIcon, ChevronRight, SortAsc, SortDesc, ChevronUp, ChevronDown, Check, LoaderCircle, ChevronDownIcon, ExternalLinkIcon, X, Footprints, CircleCheck, CircleX, Workflow, AlertCircleIcon, AlertCircle, CalendarIcon, PlusIcon, TrashIcon, Plus, Loader2 } from 'lucide-react';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import React__default, { forwardRef, memo, useState, useMemo, useRef, useEffect, createContext, useContext, useCallback, Suspense, Fragment as Fragment$1 } from 'react';
|
|
6
6
|
import { Slot } from '@radix-ui/react-slot';
|
|
@@ -3116,7 +3116,7 @@ const Icon = ({ children, className, size = "default", ...props }) => {
|
|
|
3116
3116
|
return /* @__PURE__ */ jsx("span", { className: clsx("block", sizes[size], className), ...props, children });
|
|
3117
3117
|
};
|
|
3118
3118
|
|
|
3119
|
-
const variantClasses$
|
|
3119
|
+
const variantClasses$2 = {
|
|
3120
3120
|
default: "text-icon3",
|
|
3121
3121
|
success: "text-accent1",
|
|
3122
3122
|
error: "text-accent2",
|
|
@@ -3129,12 +3129,12 @@ const Badge$1 = ({ icon, variant = "default", className, children, ...props }) =
|
|
|
3129
3129
|
className: clsx(
|
|
3130
3130
|
"bg-surface4 text-ui-sm gap-md h-badge-default inline-flex items-center rounded-md",
|
|
3131
3131
|
icon ? "pl-md pr-1.5" : "px-1.5",
|
|
3132
|
-
icon || variant === "default" ? "text-icon5" : variantClasses$
|
|
3132
|
+
icon || variant === "default" ? "text-icon5" : variantClasses$2[variant],
|
|
3133
3133
|
className
|
|
3134
3134
|
),
|
|
3135
3135
|
...props,
|
|
3136
3136
|
children: [
|
|
3137
|
-
icon && /* @__PURE__ */ jsx("span", { className: variantClasses$
|
|
3137
|
+
icon && /* @__PURE__ */ jsx("span", { className: variantClasses$2[variant], children: /* @__PURE__ */ jsx(Icon, { children: icon }) }),
|
|
3138
3138
|
children
|
|
3139
3139
|
]
|
|
3140
3140
|
}
|
|
@@ -3757,6 +3757,30 @@ const WorkflowCoinIcon = (props) => /* @__PURE__ */ jsxs("svg", { width: "126",
|
|
|
3757
3757
|
)
|
|
3758
3758
|
] });
|
|
3759
3759
|
|
|
3760
|
+
const LatencyIcon = (props) => /* @__PURE__ */ jsxs("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
|
|
3761
|
+
/* @__PURE__ */ jsx(
|
|
3762
|
+
"path",
|
|
3763
|
+
{
|
|
3764
|
+
d: "M2.0625 5.99976C2.0625 3.82513 3.82538 2.06226 6 2.06226C6.58712 2.06226 7.14423 2.19076 7.64473 2.42117V1.21042C7.12905 1.03337 6.57575 0.937256 6 0.937256C3.20406 0.937256 0.9375 3.20381 0.9375 5.99976C0.9375 8.7957 3.20406 11.0623 6 11.0623C8.79594 11.0623 11.0625 8.7957 11.0625 5.99976H9.9375C9.9375 8.17438 8.17462 9.93726 6 9.93726C3.82538 9.93726 2.0625 8.17438 2.0625 5.99976Z",
|
|
3765
|
+
fill: "currentColor"
|
|
3766
|
+
}
|
|
3767
|
+
),
|
|
3768
|
+
/* @__PURE__ */ jsx(
|
|
3769
|
+
"path",
|
|
3770
|
+
{
|
|
3771
|
+
d: "M9.28577 4.3986C9.08709 4.3986 8.92603 4.23753 8.92603 4.03885V0.978563C8.92603 0.681899 9.16652 0.441406 9.46318 0.441406C9.75985 0.441406 10.0003 0.6819 10.0003 0.978564V3.25858C10.0003 3.33638 10.0634 3.39944 10.1412 3.39944H11.2091C11.485 3.39944 11.7087 3.62311 11.7087 3.89902C11.7087 4.17493 11.485 4.3986 11.2091 4.3986H9.28577Z",
|
|
3772
|
+
fill: "currentColor"
|
|
3773
|
+
}
|
|
3774
|
+
),
|
|
3775
|
+
/* @__PURE__ */ jsx(
|
|
3776
|
+
"path",
|
|
3777
|
+
{
|
|
3778
|
+
d: "M6.57568 3.69244C6.57568 3.38178 6.32384 3.12994 6.01318 3.12994C5.70252 3.12994 5.45068 3.38178 5.45068 3.69244V6.22272L6.7242 7.88675C6.91301 8.13346 7.26606 8.18039 7.51276 7.99159C7.75946 7.80278 7.8064 7.44973 7.61759 7.20303L6.57568 5.84162V3.69244Z",
|
|
3779
|
+
fill: "currentColor"
|
|
3780
|
+
}
|
|
3781
|
+
)
|
|
3782
|
+
] });
|
|
3783
|
+
|
|
3760
3784
|
const useCodemirrorTheme$1 = () => {
|
|
3761
3785
|
return useMemo(
|
|
3762
3786
|
() => draculaInit({
|
|
@@ -3898,31 +3922,23 @@ const Thread = ({ ToolFallback }) => {
|
|
|
3898
3922
|
const WrappedAssistantMessage = (props) => {
|
|
3899
3923
|
return /* @__PURE__ */ jsx(AssistantMessage, { ...props, ToolFallback });
|
|
3900
3924
|
};
|
|
3901
|
-
return /* @__PURE__ */ jsxs(ThreadPrimitive.Root, { className: "max-w-[568px] w-full mx-auto h-[calc(100%-100px)]", children: [
|
|
3902
|
-
/* @__PURE__ */ jsxs(
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
}
|
|
3919
|
-
}
|
|
3920
|
-
)
|
|
3921
|
-
] }),
|
|
3922
|
-
/* @__PURE__ */ jsx(ThreadPrimitive.If, { empty: false, children: /* @__PURE__ */ jsx("div", {}) })
|
|
3923
|
-
]
|
|
3924
|
-
}
|
|
3925
|
-
),
|
|
3925
|
+
return /* @__PURE__ */ jsxs(ThreadPrimitive.Root, { className: "max-w-[568px] w-full mx-auto h-[calc(100%-100px)] px-4", children: [
|
|
3926
|
+
/* @__PURE__ */ jsxs(ThreadPrimitive.Viewport, { className: "py-10 overflow-y-auto scroll-smooth h-full", ref: areaRef, autoScroll: false, children: [
|
|
3927
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
3928
|
+
/* @__PURE__ */ jsx(ThreadWelcome, {}),
|
|
3929
|
+
/* @__PURE__ */ jsx(
|
|
3930
|
+
ThreadPrimitive.Messages,
|
|
3931
|
+
{
|
|
3932
|
+
components: {
|
|
3933
|
+
UserMessage,
|
|
3934
|
+
EditComposer,
|
|
3935
|
+
AssistantMessage: WrappedAssistantMessage
|
|
3936
|
+
}
|
|
3937
|
+
}
|
|
3938
|
+
)
|
|
3939
|
+
] }),
|
|
3940
|
+
/* @__PURE__ */ jsx(ThreadPrimitive.If, { empty: false, children: /* @__PURE__ */ jsx("div", {}) })
|
|
3941
|
+
] }),
|
|
3926
3942
|
/* @__PURE__ */ jsx(Composer, {})
|
|
3927
3943
|
] });
|
|
3928
3944
|
};
|
|
@@ -3974,6 +3990,14 @@ const CircleStopIcon = () => {
|
|
|
3974
3990
|
return /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", fill: "currentColor", width: "16", height: "16", children: /* @__PURE__ */ jsx("rect", { width: "10", height: "10", x: "3", y: "3", rx: "2" }) });
|
|
3975
3991
|
};
|
|
3976
3992
|
|
|
3993
|
+
const createMastraClient = (baseUrl) => {
|
|
3994
|
+
return new MastraClient({
|
|
3995
|
+
baseUrl: baseUrl || "",
|
|
3996
|
+
// only add the header if the baseUrl is not provided i.e it's a local dev environment
|
|
3997
|
+
headers: !baseUrl ? { "x-mastra-dev-playground": "true" } : {}
|
|
3998
|
+
});
|
|
3999
|
+
};
|
|
4000
|
+
|
|
3977
4001
|
const convertMessage$1 = (message) => {
|
|
3978
4002
|
return message;
|
|
3979
4003
|
};
|
|
@@ -4017,9 +4041,7 @@ function MastraRuntimeProvider({
|
|
|
4017
4041
|
}
|
|
4018
4042
|
}
|
|
4019
4043
|
}, [initialMessages, threadId, memory]);
|
|
4020
|
-
const mastra =
|
|
4021
|
-
baseUrl: baseUrl || ""
|
|
4022
|
-
});
|
|
4044
|
+
const mastra = createMastraClient(baseUrl);
|
|
4023
4045
|
const agent = mastra.getAgent(agentId);
|
|
4024
4046
|
const onNew = async (message) => {
|
|
4025
4047
|
if (message.content[0]?.type !== "text") throw new Error("Only text messages are supported");
|
|
@@ -4263,7 +4285,7 @@ function MastraRuntimeProvider({
|
|
|
4263
4285
|
] });
|
|
4264
4286
|
}
|
|
4265
4287
|
|
|
4266
|
-
const defaultModelSettings = {
|
|
4288
|
+
const defaultModelSettings$1 = {
|
|
4267
4289
|
maxRetries: 2,
|
|
4268
4290
|
maxSteps: 5,
|
|
4269
4291
|
temperature: 0.5,
|
|
@@ -4271,10 +4293,10 @@ const defaultModelSettings = {
|
|
|
4271
4293
|
};
|
|
4272
4294
|
const AgentContext = createContext({});
|
|
4273
4295
|
function AgentProvider({ children }) {
|
|
4274
|
-
const [modelSettings, setModelSettings] = useState(defaultModelSettings);
|
|
4296
|
+
const [modelSettings, setModelSettings] = useState(defaultModelSettings$1);
|
|
4275
4297
|
const [chatWithGenerate, setChatWithGenerate] = useState(false);
|
|
4276
4298
|
const resetModelSettings = () => {
|
|
4277
|
-
setModelSettings(defaultModelSettings);
|
|
4299
|
+
setModelSettings(defaultModelSettings$1);
|
|
4278
4300
|
};
|
|
4279
4301
|
return /* @__PURE__ */ jsx(
|
|
4280
4302
|
AgentContext.Provider,
|
|
@@ -4491,9 +4513,7 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
|
4491
4513
|
const useEvalsByAgentId = (agentId, type, baseUrl) => {
|
|
4492
4514
|
const [evals, setEvals] = useState([]);
|
|
4493
4515
|
const [isLoading, setIsLoading] = useState(true);
|
|
4494
|
-
const client =
|
|
4495
|
-
baseUrl: baseUrl || ""
|
|
4496
|
-
});
|
|
4516
|
+
const client = createMastraClient(baseUrl);
|
|
4497
4517
|
const fetchEvals = async (_agentId) => {
|
|
4498
4518
|
setIsLoading(true);
|
|
4499
4519
|
const activeAgentId = _agentId ?? agentId;
|
|
@@ -4772,7 +4792,6 @@ function TraceProvider({ children }) {
|
|
|
4772
4792
|
const [traces, setTraces] = useState([]);
|
|
4773
4793
|
const [currentTraceIndex, setCurrentTraceIndex] = useState(0);
|
|
4774
4794
|
const [span, setSpan] = useState(null);
|
|
4775
|
-
const [openDetail, setOpenDetail] = useState(false);
|
|
4776
4795
|
const nextTrace = () => {
|
|
4777
4796
|
if (currentTraceIndex < traces.length - 1) {
|
|
4778
4797
|
const nextIndex = currentTraceIndex + 1;
|
|
@@ -4797,7 +4816,6 @@ function TraceProvider({ children }) {
|
|
|
4797
4816
|
setOpen(false);
|
|
4798
4817
|
setTrace(null);
|
|
4799
4818
|
setSpan(null);
|
|
4800
|
-
setOpenDetail(false);
|
|
4801
4819
|
};
|
|
4802
4820
|
return /* @__PURE__ */ jsx(
|
|
4803
4821
|
TraceContext.Provider,
|
|
@@ -4815,8 +4833,6 @@ function TraceProvider({ children }) {
|
|
|
4815
4833
|
prevTrace,
|
|
4816
4834
|
span,
|
|
4817
4835
|
setSpan,
|
|
4818
|
-
openDetail,
|
|
4819
|
-
setOpenDetail,
|
|
4820
4836
|
clearData
|
|
4821
4837
|
},
|
|
4822
4838
|
children
|
|
@@ -4966,10 +4982,8 @@ function transformKey(key) {
|
|
|
4966
4982
|
if (key.includes(".result")) {
|
|
4967
4983
|
return "Output";
|
|
4968
4984
|
}
|
|
4969
|
-
|
|
4970
|
-
|
|
4971
|
-
function cleanString(string) {
|
|
4972
|
-
return string.replace(/\\n/g, "").replace(/\n/g, "").replace(/\s+/g, " ").trim();
|
|
4985
|
+
const newKey = key.split(".").join(" ").split("_").join(" ").replaceAll("ai", "AI");
|
|
4986
|
+
return newKey.substring(0, 1).toUpperCase() + newKey.substring(1);
|
|
4973
4987
|
}
|
|
4974
4988
|
const refineTraces = (traces, isWorkflow = false) => {
|
|
4975
4989
|
const listOfSpanIds = /* @__PURE__ */ new Set();
|
|
@@ -5006,35 +5020,11 @@ const refineTraces = (traces, isWorkflow = false) => {
|
|
|
5006
5020
|
});
|
|
5007
5021
|
return tracesData;
|
|
5008
5022
|
};
|
|
5009
|
-
const allowedAiSpanAttributes = [
|
|
5010
|
-
"operation.name",
|
|
5011
|
-
"ai.operationId",
|
|
5012
|
-
"ai.model.provider",
|
|
5013
|
-
"ai.model.id",
|
|
5014
|
-
"ai.prompt.format",
|
|
5015
|
-
"ai.prompt.messages",
|
|
5016
|
-
"ai.prompt.tools",
|
|
5017
|
-
"ai.prompt.toolChoice",
|
|
5018
|
-
"ai.settings.toolChoice",
|
|
5019
|
-
"ai.schema",
|
|
5020
|
-
"ai.settings.output",
|
|
5021
|
-
"ai.response.object",
|
|
5022
|
-
"ai.response.text",
|
|
5023
|
-
"ai.response.timestamp",
|
|
5024
|
-
"componentName",
|
|
5025
|
-
"ai.usage.promptTokens",
|
|
5026
|
-
"ai.usage.completionTokens"
|
|
5027
|
-
];
|
|
5028
5023
|
|
|
5029
5024
|
const useTraces = (componentName, baseUrl, isWorkflow = false) => {
|
|
5030
5025
|
const [traces, setTraces] = useState([]);
|
|
5031
5026
|
const { setTraces: setTraceContextTraces } = useContext(TraceContext);
|
|
5032
|
-
const client = useMemo(
|
|
5033
|
-
() => new MastraClient({
|
|
5034
|
-
baseUrl: baseUrl || ""
|
|
5035
|
-
}),
|
|
5036
|
-
[baseUrl]
|
|
5037
|
-
);
|
|
5027
|
+
const client = useMemo(() => createMastraClient(baseUrl), [baseUrl]);
|
|
5038
5028
|
const fetchFn = useCallback(async () => {
|
|
5039
5029
|
try {
|
|
5040
5030
|
const res = await client.getTelemetry({
|
|
@@ -5091,7 +5081,10 @@ const Th = ({ className, children, ...props }) => {
|
|
|
5091
5081
|
return /* @__PURE__ */ jsx(
|
|
5092
5082
|
"th",
|
|
5093
5083
|
{
|
|
5094
|
-
className: clsx(
|
|
5084
|
+
className: clsx(
|
|
5085
|
+
"text-icon3 text-ui-sm h-full text-left font-normal uppercase first:pl-5 last:pr-5 whitespace-nowrap",
|
|
5086
|
+
className
|
|
5087
|
+
),
|
|
5095
5088
|
...props,
|
|
5096
5089
|
children
|
|
5097
5090
|
}
|
|
@@ -5170,7 +5163,6 @@ const useOpenTrace = () => {
|
|
|
5170
5163
|
setIsOpen: setOpen,
|
|
5171
5164
|
trace: currentTrace,
|
|
5172
5165
|
setSpan,
|
|
5173
|
-
setOpenDetail,
|
|
5174
5166
|
setCurrentTraceIndex
|
|
5175
5167
|
} = useContext(TraceContext);
|
|
5176
5168
|
const openTrace = (trace, traceIndex) => {
|
|
@@ -5180,7 +5172,6 @@ const useOpenTrace = () => {
|
|
|
5180
5172
|
setCurrentTraceIndex(traceIndex);
|
|
5181
5173
|
if (open && currentTrace?.[0]?.id !== trace[0].id) return;
|
|
5182
5174
|
setOpen((prev) => !prev);
|
|
5183
|
-
setOpenDetail((prev) => !prev);
|
|
5184
5175
|
};
|
|
5185
5176
|
return { openTrace };
|
|
5186
5177
|
};
|
|
@@ -5194,12 +5185,12 @@ const TracesTableEmpty = ({ colsCount }) => {
|
|
|
5194
5185
|
const TracesTableError = ({ error, colsCount }) => {
|
|
5195
5186
|
return /* @__PURE__ */ jsx(Tbody, { children: /* @__PURE__ */ jsx(Row, { children: /* @__PURE__ */ jsx(Cell, { colSpan: colsCount, className: "text-center py-4", children: /* @__PURE__ */ jsx(Txt, { children: error.message }) }) }) });
|
|
5196
5187
|
};
|
|
5197
|
-
const TraceRow = ({ trace, index }) => {
|
|
5188
|
+
const TraceRow = ({ trace, index, isActive }) => {
|
|
5198
5189
|
const { openTrace } = useOpenTrace();
|
|
5199
|
-
return /* @__PURE__ */ jsxs(Row, { children: [
|
|
5190
|
+
return /* @__PURE__ */ jsxs(Row, { className: isActive ? "bg-surface4" : "", children: [
|
|
5200
5191
|
/* @__PURE__ */ jsx(DateTimeCell, { dateTime: new Date(trace.started / 1e3) }),
|
|
5201
5192
|
/* @__PURE__ */ jsx(TxtCell, { children: trace.traceId }),
|
|
5202
|
-
/* @__PURE__ */ jsx(UnitCell, { unit: "ms", children: trace.duration }),
|
|
5193
|
+
/* @__PURE__ */ jsx(UnitCell, { unit: "ms", children: trace.duration / 1e3 }),
|
|
5203
5194
|
/* @__PURE__ */ jsx(Cell, { children: /* @__PURE__ */ jsx("button", { onClick: () => openTrace(trace.trace, index), children: /* @__PURE__ */ jsxs(Badge$1, { icon: /* @__PURE__ */ jsx(TraceIcon, {}), children: [
|
|
5204
5195
|
trace.trace.length,
|
|
5205
5196
|
" span",
|
|
@@ -5209,6 +5200,7 @@ const TraceRow = ({ trace, index }) => {
|
|
|
5209
5200
|
};
|
|
5210
5201
|
const TracesTable = ({ traces, isLoading, error }) => {
|
|
5211
5202
|
const hasNoTraces = !traces || traces.length === 0;
|
|
5203
|
+
const { currentTraceIndex } = useContext(TraceContext);
|
|
5212
5204
|
const colsCount = 4;
|
|
5213
5205
|
return /* @__PURE__ */ jsxs(Table, { size: "small", children: [
|
|
5214
5206
|
/* @__PURE__ */ jsxs(Thead, { children: [
|
|
@@ -5217,7 +5209,7 @@ const TracesTable = ({ traces, isLoading, error }) => {
|
|
|
5217
5209
|
/* @__PURE__ */ jsx(Th, { width: 160, children: "Duration" }),
|
|
5218
5210
|
/* @__PURE__ */ jsx(Th, { width: 160, children: "Spans" })
|
|
5219
5211
|
] }),
|
|
5220
|
-
isLoading ? /* @__PURE__ */ jsx(TracesTableSkeleton, { colsCount }) : error ? /* @__PURE__ */ jsx(TracesTableError, { error, colsCount }) : hasNoTraces ? /* @__PURE__ */ jsx(TracesTableEmpty, { colsCount }) : /* @__PURE__ */ jsx(Tbody, { children: traces.map((trace, index) => /* @__PURE__ */ jsx(TraceRow, { trace, index }, trace.traceId)) })
|
|
5212
|
+
isLoading ? /* @__PURE__ */ jsx(TracesTableSkeleton, { colsCount }) : error ? /* @__PURE__ */ jsx(TracesTableError, { error, colsCount }) : hasNoTraces ? /* @__PURE__ */ jsx(TracesTableEmpty, { colsCount }) : /* @__PURE__ */ jsx(Tbody, { children: traces.map((trace, index) => /* @__PURE__ */ jsx(TraceRow, { trace, index, isActive: index === currentTraceIndex }, trace.traceId)) })
|
|
5221
5213
|
] });
|
|
5222
5214
|
};
|
|
5223
5215
|
|
|
@@ -5287,8 +5279,8 @@ const MastraResizablePanel = ({
|
|
|
5287
5279
|
!disabled && dividerPosition === "left" ? /* @__PURE__ */ jsx(
|
|
5288
5280
|
"div",
|
|
5289
5281
|
{
|
|
5290
|
-
className: `w-
|
|
5291
|
-
${isDragging ? "bg-
|
|
5282
|
+
className: `w-px bg-border1 h-full cursor-col-resize hover:w-1.5 hover:bg-mastra-border-2 hover:bg-[#424242] active:bg-mastra-border-3 active:bg-[#3e3e3e] transition-colors absolute inset-y-0 z-10
|
|
5283
|
+
${isDragging ? "bg-border2 w-1.5 cursor- col-resize" : ""}`,
|
|
5292
5284
|
onMouseDown: handleMouseDown
|
|
5293
5285
|
}
|
|
5294
5286
|
) : null,
|
|
@@ -5296,183 +5288,257 @@ const MastraResizablePanel = ({
|
|
|
5296
5288
|
!disabled && dividerPosition === "right" ? /* @__PURE__ */ jsx(
|
|
5297
5289
|
"div",
|
|
5298
5290
|
{
|
|
5299
|
-
className: `w-
|
|
5300
|
-
${isDragging ? "bg-
|
|
5291
|
+
className: `w-px bg-border1 h-full cursor-col-resize hover:w-1.5 hover:bg-border2 active:bg-border3 transition-colors absolute inset-y-0 z-10
|
|
5292
|
+
${isDragging ? "bg-border2 w-1.5 cursor- col-resize" : ""}`,
|
|
5301
5293
|
onMouseDown: handleMouseDown
|
|
5302
5294
|
}
|
|
5303
5295
|
) : null
|
|
5304
5296
|
] });
|
|
5305
5297
|
};
|
|
5306
5298
|
|
|
5307
|
-
|
|
5308
|
-
|
|
5309
|
-
|
|
5310
|
-
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
|
|
5318
|
-
|
|
5319
|
-
|
|
5320
|
-
|
|
5321
|
-
|
|
5322
|
-
|
|
5323
|
-
|
|
5324
|
-
|
|
5325
|
-
|
|
5326
|
-
|
|
5327
|
-
|
|
5328
|
-
|
|
5329
|
-
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
|
|
5333
|
-
|
|
5334
|
-
|
|
5335
|
-
|
|
5336
|
-
|
|
5337
|
-
|
|
5338
|
-
|
|
5339
|
-
|
|
5340
|
-
|
|
5341
|
-
|
|
5342
|
-
|
|
5343
|
-
|
|
5344
|
-
|
|
5345
|
-
|
|
5346
|
-
|
|
5347
|
-
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5351
|
-
|
|
5352
|
-
)
|
|
5353
|
-
}
|
|
5354
|
-
) : null,
|
|
5355
|
-
/* @__PURE__ */ jsxs("div", { className: "flex w-full gap-4 pr-4", children: [
|
|
5356
|
-
/* @__PURE__ */ jsx(
|
|
5357
|
-
"p",
|
|
5358
|
-
{
|
|
5359
|
-
className: cn("max-w-[250px] text-sm", {
|
|
5360
|
-
"text-white": node?.status?.code === 0,
|
|
5361
|
-
"text-[#FF4500]": node?.status?.code !== 0,
|
|
5362
|
-
"px-1": depth === 0,
|
|
5363
|
-
truncate: containerRef.current?.offsetWidth && containerRef.current?.offsetWidth < 450 && depth > 1 && node.name?.length > 16
|
|
5364
|
-
}),
|
|
5365
|
-
children: node.name
|
|
5366
|
-
}
|
|
5367
|
-
),
|
|
5368
|
-
node.duration > 0 && /* @__PURE__ */ jsxs("div", { className: "relative w-full", children: [
|
|
5369
|
-
/* @__PURE__ */ jsx("div", { className: "absolute top-[11px] h-px w-full bg-[hsl(220,14%,19%)]" }),
|
|
5370
|
-
/* @__PURE__ */ jsx(
|
|
5371
|
-
"div",
|
|
5372
|
-
{
|
|
5373
|
-
style: {
|
|
5374
|
-
width: `${widthPercentage}%`,
|
|
5375
|
-
left: 0
|
|
5376
|
-
},
|
|
5377
|
-
className: cn(
|
|
5378
|
-
"absolute top-[9px] z-0 h-[5px] rounded-[5px] bg-white transition-all",
|
|
5379
|
-
node.name.includes("agent") && "left-1/2 bg-green-500",
|
|
5380
|
-
node.name.includes("llm") && "bg-[#5699A8]",
|
|
5381
|
-
node.name.includes("ai") && "left-2/4 w-5 bg-[#F09A56]"
|
|
5382
|
-
)
|
|
5383
|
-
}
|
|
5384
|
-
),
|
|
5385
|
-
/* @__PURE__ */ jsxs("span", { className: "absolute left-0 top-3 text-[0.63rem] text-mastra-el-3", children: [
|
|
5386
|
-
formatDuration(node.duration),
|
|
5387
|
-
"ms"
|
|
5388
|
-
] })
|
|
5389
|
-
] })
|
|
5390
|
-
] })
|
|
5391
|
-
]
|
|
5392
|
-
}
|
|
5393
|
-
),
|
|
5394
|
-
hasChildren && isExpanded && /* @__PURE__ */ jsx(Fragment, { children: node.children.map((child) => /* @__PURE__ */ jsx(TreeNode, { node: child, depth: depth + 1 }, child.id)) })
|
|
5299
|
+
const sizeClasses = {
|
|
5300
|
+
md: "h-button-md gap-md",
|
|
5301
|
+
lg: "h-button-lg gap-lg"
|
|
5302
|
+
};
|
|
5303
|
+
const variantClasses$1 = {
|
|
5304
|
+
default: "bg-surface2 hover:bg-surface4 text-icon3 hover:text-icon6",
|
|
5305
|
+
light: "bg-surface3 hover:bg-surface5 text-icon6"
|
|
5306
|
+
};
|
|
5307
|
+
const Button = ({ className, as, size = "md", variant = "default", ...props }) => {
|
|
5308
|
+
const Component = as || "button";
|
|
5309
|
+
return /* @__PURE__ */ jsx(
|
|
5310
|
+
Component,
|
|
5311
|
+
{
|
|
5312
|
+
className: clsx(
|
|
5313
|
+
"bg-surface2 border-sm border-border1 px-lg text-ui-md inline-flex items-center justify-center rounded-md border",
|
|
5314
|
+
variantClasses$1[variant],
|
|
5315
|
+
sizeClasses[size],
|
|
5316
|
+
className
|
|
5317
|
+
),
|
|
5318
|
+
...props
|
|
5319
|
+
}
|
|
5320
|
+
);
|
|
5321
|
+
};
|
|
5322
|
+
|
|
5323
|
+
const TraceTree = ({ children }) => {
|
|
5324
|
+
return /* @__PURE__ */ jsx("ol", { children });
|
|
5325
|
+
};
|
|
5326
|
+
|
|
5327
|
+
const variantClasses = {
|
|
5328
|
+
agent: "bg-accent1"
|
|
5329
|
+
};
|
|
5330
|
+
const Time = ({ durationMs, tokenCount, variant, progressPercent }) => {
|
|
5331
|
+
const variantClass = variant ? variantClasses[variant] : "bg-accent3";
|
|
5332
|
+
return /* @__PURE__ */ jsxs("div", { className: "w-[166px] shrink-0", children: [
|
|
5333
|
+
/* @__PURE__ */ jsx("div", { className: "bg-surface4 relative h-[6px] w-full rounded-full p-px overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: clsx("absolute h-1 rounded-full", variantClass), style: { width: `${progressPercent}%` } }) }),
|
|
5334
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4 pt-0.5", children: [
|
|
5335
|
+
/* @__PURE__ */ jsxs(Txt, { variant: "ui-sm", className: "text-icon2 font-medium", children: [
|
|
5336
|
+
durationMs,
|
|
5337
|
+
"ms"
|
|
5338
|
+
] }),
|
|
5339
|
+
tokenCount && /* @__PURE__ */ jsxs(Txt, { variant: "ui-sm", className: "text-icon2 font-medium", children: [
|
|
5340
|
+
tokenCount,
|
|
5341
|
+
"t"
|
|
5342
|
+
] })
|
|
5343
|
+
] })
|
|
5395
5344
|
] });
|
|
5396
|
-
}
|
|
5345
|
+
};
|
|
5346
|
+
|
|
5347
|
+
const TraceDurationContext = createContext(0);
|
|
5348
|
+
const useTraceDuration = () => {
|
|
5349
|
+
return useContext(TraceDurationContext);
|
|
5350
|
+
};
|
|
5351
|
+
const TraceDurationProvider = ({ children, durationMs }) => {
|
|
5352
|
+
return /* @__PURE__ */ jsx(TraceDurationContext.Provider, { value: durationMs, children });
|
|
5353
|
+
};
|
|
5354
|
+
|
|
5355
|
+
const spanIconMap = {
|
|
5356
|
+
tool: ToolsIcon,
|
|
5357
|
+
agent: AgentIcon,
|
|
5358
|
+
workflow: WorkflowIcon,
|
|
5359
|
+
memory: MemoryIcon,
|
|
5360
|
+
rag: TraceIcon,
|
|
5361
|
+
storage: DbIcon,
|
|
5362
|
+
eval: ScoreIcon,
|
|
5363
|
+
other: TraceIcon
|
|
5364
|
+
};
|
|
5365
|
+
const spanVariantClasses = {
|
|
5366
|
+
tool: "text-[#ECB047]",
|
|
5367
|
+
agent: "text-accent1",
|
|
5368
|
+
workflow: "text-accent3",
|
|
5369
|
+
memory: "text-accent2",
|
|
5370
|
+
rag: "text-accent2",
|
|
5371
|
+
storage: "text-accent2",
|
|
5372
|
+
eval: "text-accent4",
|
|
5373
|
+
other: "text-icon6"
|
|
5374
|
+
};
|
|
5375
|
+
const Span = ({ children, durationMs, variant, tokenCount, spans, isRoot, onClick, isActive }) => {
|
|
5376
|
+
const [isExpanded, setIsExpanded] = useState(true);
|
|
5377
|
+
const traceDuration = useTraceDuration();
|
|
5378
|
+
const VariantIcon = spanIconMap[variant];
|
|
5379
|
+
const variantClass = spanVariantClasses[variant];
|
|
5380
|
+
const progressPercent = durationMs / traceDuration * 100;
|
|
5381
|
+
const TextEl = onClick ? "button" : "div";
|
|
5382
|
+
return /* @__PURE__ */ jsx(TraceDurationProvider, { durationMs, children: /* @__PURE__ */ jsxs("li", { children: [
|
|
5383
|
+
/* @__PURE__ */ jsxs("div", { className: clsx("flex justify-between items-center gap-2 rounded-md pl-2", isActive && "bg-surface4"), children: [
|
|
5384
|
+
/* @__PURE__ */ jsxs("div", { className: "flex h-8 items-center gap-1 min-w-0", children: [
|
|
5385
|
+
spans ? /* @__PURE__ */ jsx(
|
|
5386
|
+
"button",
|
|
5387
|
+
{
|
|
5388
|
+
type: "button",
|
|
5389
|
+
"aria-label": isExpanded ? "Collapse span" : "Expand span",
|
|
5390
|
+
"aria-expanded": isExpanded,
|
|
5391
|
+
className: "text-icon3 flex h-4 w-4",
|
|
5392
|
+
onClick: () => setIsExpanded(!isExpanded),
|
|
5393
|
+
children: /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(ChevronIcon, { className: clsx("transition-transform -rotate-90", { "rotate-0": isExpanded }) }) })
|
|
5394
|
+
}
|
|
5395
|
+
) : /* @__PURE__ */ jsx("div", { "aria-hidden": true, className: "h-full w-4", children: !isRoot && /* @__PURE__ */ jsx("div", { className: "ml-[7px] h-full w-px rounded-full" }) }),
|
|
5396
|
+
/* @__PURE__ */ jsxs(TextEl, { className: "flex items-center gap-2 min-w-0", onClick, children: [
|
|
5397
|
+
/* @__PURE__ */ jsx("div", { className: clsx("bg-surface4 flex items-center justify-center rounded-md p-[3px]", variantClass), children: /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(VariantIcon, {}) }) }),
|
|
5398
|
+
/* @__PURE__ */ jsx(Txt, { variant: "ui-md", className: "text-icon6 truncate", children })
|
|
5399
|
+
] })
|
|
5400
|
+
] }),
|
|
5401
|
+
/* @__PURE__ */ jsx(
|
|
5402
|
+
Time,
|
|
5403
|
+
{
|
|
5404
|
+
durationMs,
|
|
5405
|
+
tokenCount,
|
|
5406
|
+
variant: variant === "agent" ? "agent" : void 0,
|
|
5407
|
+
progressPercent
|
|
5408
|
+
}
|
|
5409
|
+
)
|
|
5410
|
+
] }),
|
|
5411
|
+
isExpanded && spans && /* @__PURE__ */ jsx("div", { className: "ml-4", children: spans })
|
|
5412
|
+
] }) });
|
|
5413
|
+
};
|
|
5414
|
+
|
|
5415
|
+
const Spans = ({ children }) => {
|
|
5416
|
+
return /* @__PURE__ */ jsx("ol", { children });
|
|
5417
|
+
};
|
|
5418
|
+
|
|
5419
|
+
const Trace = ({ name, spans, durationMs, tokenCount, onClick, variant, isActive }) => {
|
|
5420
|
+
return /* @__PURE__ */ jsx(TraceDurationProvider, { durationMs, children: /* @__PURE__ */ jsx(
|
|
5421
|
+
Span,
|
|
5422
|
+
{
|
|
5423
|
+
isRoot: true,
|
|
5424
|
+
durationMs,
|
|
5425
|
+
variant,
|
|
5426
|
+
spans: /* @__PURE__ */ jsx(Spans, { children: spans }),
|
|
5427
|
+
onClick,
|
|
5428
|
+
isActive,
|
|
5429
|
+
children: name
|
|
5430
|
+
}
|
|
5431
|
+
) });
|
|
5432
|
+
};
|
|
5433
|
+
|
|
5434
|
+
const getSpanVariant = (span) => {
|
|
5435
|
+
const attributes = Object.keys(span.attributes || {}).map((k) => k.toLowerCase());
|
|
5436
|
+
const lowerCaseName = span.name.toLowerCase();
|
|
5437
|
+
const isAiSpan = lowerCaseName.startsWith("ai.");
|
|
5438
|
+
if (isAiSpan) {
|
|
5439
|
+
const isAiAboutTool = lowerCaseName.includes("tool");
|
|
5440
|
+
if (isAiAboutTool) return "tool";
|
|
5441
|
+
return "other";
|
|
5442
|
+
}
|
|
5443
|
+
const hasMemoryRelatedAttributes = attributes.some((key) => key.includes("memory") || key.includes("storage"));
|
|
5444
|
+
if (hasMemoryRelatedAttributes) return "memory";
|
|
5445
|
+
const hasToolRelatedAttributes = attributes.some((key) => key.includes("tool"));
|
|
5446
|
+
if (hasToolRelatedAttributes) return "tool";
|
|
5447
|
+
const hasAgentRelatedAttributes = attributes.some((key) => key.includes("agent."));
|
|
5448
|
+
if (hasAgentRelatedAttributes) return "agent";
|
|
5449
|
+
if (lowerCaseName.includes(".insert")) {
|
|
5450
|
+
const evalRelatedAttribute = attributes.find((key) => String(span.attributes?.[key])?.includes("mastra_evals"));
|
|
5451
|
+
if (evalRelatedAttribute) return "eval";
|
|
5452
|
+
}
|
|
5453
|
+
return "other";
|
|
5454
|
+
};
|
|
5397
5455
|
|
|
5398
|
-
function TreeView({ tree }) {
|
|
5399
|
-
return /* @__PURE__ */ jsx("ul", { children: tree.map((node) => /* @__PURE__ */ jsx(TreeNode, { node }, node.id)) });
|
|
5400
|
-
}
|
|
5401
5456
|
function buildTree(items, parentSpanId = null) {
|
|
5402
5457
|
return items.filter((item) => item.parentSpanId === parentSpanId).map((item) => ({
|
|
5403
5458
|
...item,
|
|
5404
5459
|
children: buildTree(items, item.id)
|
|
5405
5460
|
}));
|
|
5406
5461
|
}
|
|
5462
|
+
const NestedSpans = ({ spans }) => {
|
|
5463
|
+
const { span: activeSpan, setSpan } = useContext(TraceContext);
|
|
5464
|
+
return /* @__PURE__ */ jsx(Spans, { children: spans.map((span) => {
|
|
5465
|
+
const isActive = span.id === activeSpan?.id;
|
|
5466
|
+
return /* @__PURE__ */ jsx(
|
|
5467
|
+
Span,
|
|
5468
|
+
{
|
|
5469
|
+
spans: span.children.length > 0 && /* @__PURE__ */ jsx(NestedSpans, { spans: span.children }),
|
|
5470
|
+
durationMs: span.duration / 1e3,
|
|
5471
|
+
variant: getSpanVariant(span),
|
|
5472
|
+
isActive,
|
|
5473
|
+
onClick: () => setSpan(span),
|
|
5474
|
+
children: span.name
|
|
5475
|
+
},
|
|
5476
|
+
span.id
|
|
5477
|
+
);
|
|
5478
|
+
}) });
|
|
5479
|
+
};
|
|
5407
5480
|
function SpanView({ trace }) {
|
|
5408
|
-
const
|
|
5409
|
-
|
|
5481
|
+
const shallowCopy = [...trace];
|
|
5482
|
+
const tree = buildTree(shallowCopy.reverse());
|
|
5483
|
+
const { span: activeSpan, setSpan } = useContext(TraceContext);
|
|
5484
|
+
return /* @__PURE__ */ jsx(TraceTree, { children: tree.map((node) => /* @__PURE__ */ jsx(
|
|
5485
|
+
Trace,
|
|
5486
|
+
{
|
|
5487
|
+
name: node.name,
|
|
5488
|
+
durationMs: node.duration / 1e3,
|
|
5489
|
+
spans: /* @__PURE__ */ jsx(NestedSpans, { spans: node.children }),
|
|
5490
|
+
variant: getSpanVariant(node),
|
|
5491
|
+
isActive: node.id === activeSpan?.id,
|
|
5492
|
+
onClick: () => setSpan(node)
|
|
5493
|
+
}
|
|
5494
|
+
)) });
|
|
5410
5495
|
}
|
|
5411
5496
|
|
|
5497
|
+
const Header = ({ children, border = true }) => {
|
|
5498
|
+
return /* @__PURE__ */ jsx(
|
|
5499
|
+
"header",
|
|
5500
|
+
{
|
|
5501
|
+
className: clsx("h-header-default z-50 flex w-full items-center gap-[18px] bg-transparent px-5", {
|
|
5502
|
+
"border-b-sm border-border1": border
|
|
5503
|
+
}),
|
|
5504
|
+
children
|
|
5505
|
+
}
|
|
5506
|
+
);
|
|
5507
|
+
};
|
|
5508
|
+
const HeaderTitle = ({ children }) => {
|
|
5509
|
+
return /* @__PURE__ */ jsx(Txt, { as: "h1", variant: "ui-lg", className: "font-medium text-white", children });
|
|
5510
|
+
};
|
|
5511
|
+
const HeaderAction = ({ children }) => {
|
|
5512
|
+
return /* @__PURE__ */ jsx("div", { className: "ml-auto", children });
|
|
5513
|
+
};
|
|
5514
|
+
const HeaderGroup = ({ children }) => {
|
|
5515
|
+
return /* @__PURE__ */ jsx("div", { className: "gap-lg flex items-center", children });
|
|
5516
|
+
};
|
|
5517
|
+
|
|
5412
5518
|
function TraceDetails() {
|
|
5413
5519
|
const { trace, currentTraceIndex, prevTrace, nextTrace, traces, clearData } = useContext(TraceContext);
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
|
|
5419
|
-
|
|
5420
|
-
] }),
|
|
5421
|
-
/* @__PURE__ */ jsxs("span", { className: "text-xs text-mastra-el-3", children: [
|
|
5422
|
-
trace?.length ? trace.length : 0,
|
|
5423
|
-
" span",
|
|
5424
|
-
trace?.length && trace.length > 1 ? "s" : ""
|
|
5425
|
-
] })
|
|
5426
|
-
] }),
|
|
5427
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
5428
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
5429
|
-
/* @__PURE__ */ jsx(
|
|
5430
|
-
Button$1,
|
|
5431
|
-
{
|
|
5432
|
-
onClick: () => {
|
|
5433
|
-
prevTrace();
|
|
5434
|
-
},
|
|
5435
|
-
disabled: currentTraceIndex === 0,
|
|
5436
|
-
variant: "secondary",
|
|
5437
|
-
size: "icon",
|
|
5438
|
-
className: "!h-3 !w-3 rotate-180 !px-3 py-3 text-mastra-el-3 transition-colors hover:text-white",
|
|
5439
|
-
children: /* @__PURE__ */ jsx(ChevronDown, {})
|
|
5440
|
-
}
|
|
5441
|
-
),
|
|
5442
|
-
" ",
|
|
5443
|
-
/* @__PURE__ */ jsx(
|
|
5444
|
-
Button$1,
|
|
5445
|
-
{
|
|
5446
|
-
onClick: () => {
|
|
5447
|
-
nextTrace();
|
|
5448
|
-
},
|
|
5449
|
-
disabled: currentTraceIndex === traces.length - 1,
|
|
5450
|
-
variant: "secondary",
|
|
5451
|
-
size: "icon",
|
|
5452
|
-
className: "!h-3 !w-3 !px-3 py-3 text-mastra-el-3 transition-colors hover:text-white",
|
|
5453
|
-
children: /* @__PURE__ */ jsx(ChevronDown, {})
|
|
5454
|
-
}
|
|
5455
|
-
)
|
|
5456
|
-
] }),
|
|
5457
|
-
/* @__PURE__ */ jsx("span", { className: "bg-secondary inline-block h-5 w-px" }),
|
|
5520
|
+
const actualTrace = traces[currentTraceIndex];
|
|
5521
|
+
if (!actualTrace || !trace) return null;
|
|
5522
|
+
return /* @__PURE__ */ jsxs("aside", { children: [
|
|
5523
|
+
/* @__PURE__ */ jsxs(Header, { children: [
|
|
5524
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
5525
|
+
/* @__PURE__ */ jsx(Button, { className: "bg-transparent border-none", onClick: prevTrace, disabled: currentTraceIndex === 0, children: /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(ChevronUp, {}) }) }),
|
|
5458
5526
|
/* @__PURE__ */ jsx(
|
|
5459
|
-
Button
|
|
5527
|
+
Button,
|
|
5460
5528
|
{
|
|
5461
|
-
|
|
5462
|
-
|
|
5463
|
-
|
|
5464
|
-
|
|
5465
|
-
size: "icon",
|
|
5466
|
-
className: "!h-3 !w-3 !px-3 py-3 text-mastra-el-3 transition-colors hover:text-white",
|
|
5467
|
-
children: /* @__PURE__ */ jsx(XIcon, {})
|
|
5529
|
+
className: "bg-transparent border-none",
|
|
5530
|
+
onClick: nextTrace,
|
|
5531
|
+
disabled: currentTraceIndex === traces.length - 1,
|
|
5532
|
+
children: /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(ChevronDown, {}) })
|
|
5468
5533
|
}
|
|
5469
5534
|
)
|
|
5470
|
-
] })
|
|
5535
|
+
] }),
|
|
5536
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(Txt, { variant: "ui-lg", className: "font-medium text-icon5", children: [
|
|
5537
|
+
"Trace ",
|
|
5538
|
+
/* @__PURE__ */ jsx("span", { className: "ml-2 text-icon3", children: actualTrace.traceId.substring(0, 5) })
|
|
5539
|
+
] }) })
|
|
5471
5540
|
] }),
|
|
5472
|
-
/* @__PURE__ */
|
|
5473
|
-
" ",
|
|
5474
|
-
trace && /* @__PURE__ */ jsx(SpanView, { trace })
|
|
5475
|
-
] })
|
|
5541
|
+
/* @__PURE__ */ jsx("div", { className: "p-5", children: /* @__PURE__ */ jsx(SpanView, { trace }) })
|
|
5476
5542
|
] });
|
|
5477
5543
|
}
|
|
5478
5544
|
|
|
@@ -5499,179 +5565,135 @@ const SyntaxHighlighter = ({ data }) => {
|
|
|
5499
5565
|
};
|
|
5500
5566
|
|
|
5501
5567
|
function SpanDetail() {
|
|
5502
|
-
const { span } = useContext(TraceContext);
|
|
5503
|
-
|
|
5504
|
-
const
|
|
5505
|
-
|
|
5506
|
-
|
|
5507
|
-
[
|
|
5508
|
-
}
|
|
5509
|
-
}
|
|
5510
|
-
|
|
5511
|
-
|
|
5512
|
-
|
|
5513
|
-
|
|
5514
|
-
|
|
5515
|
-
|
|
5516
|
-
|
|
5517
|
-
|
|
5518
|
-
|
|
5519
|
-
|
|
5520
|
-
|
|
5521
|
-
|
|
5568
|
+
const { span, setSpan, trace } = useContext(TraceContext);
|
|
5569
|
+
if (!span || !trace) return null;
|
|
5570
|
+
const prevSpan = () => {
|
|
5571
|
+
const currentIndex = trace.findIndex((t) => t.id === span.id);
|
|
5572
|
+
if (currentIndex !== -1 && currentIndex < trace.length - 1) {
|
|
5573
|
+
setSpan(trace[currentIndex + 1]);
|
|
5574
|
+
}
|
|
5575
|
+
};
|
|
5576
|
+
const nextSpan = () => {
|
|
5577
|
+
const currentIndex = trace.findIndex((t) => t.id === span.id);
|
|
5578
|
+
if (currentIndex !== -1 && currentIndex > 0) {
|
|
5579
|
+
setSpan(trace[currentIndex - 1]);
|
|
5580
|
+
}
|
|
5581
|
+
};
|
|
5582
|
+
const SpanIcon = spanIconMap[getSpanVariant(span)];
|
|
5583
|
+
const variantClass = spanVariantClasses[getSpanVariant(span)];
|
|
5584
|
+
return /* @__PURE__ */ jsxs("aside", { children: [
|
|
5585
|
+
/* @__PURE__ */ jsxs(Header, { children: [
|
|
5586
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
5587
|
+
/* @__PURE__ */ jsx(Button, { className: "bg-transparent border-none", onClick: prevSpan, children: /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(ChevronUp, {}) }) }),
|
|
5588
|
+
/* @__PURE__ */ jsx(Button, { className: "bg-transparent border-none", onClick: nextSpan, children: /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(ChevronDown, {}) }) })
|
|
5589
|
+
] }),
|
|
5590
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(Txt, { variant: "ui-lg", className: "font-medium text-icon5", as: "h2", children: [
|
|
5591
|
+
"Span ",
|
|
5592
|
+
/* @__PURE__ */ jsx("span", { className: "ml-2 text-icon3", children: span.id.substring(0, 5) })
|
|
5593
|
+
] }) })
|
|
5522
5594
|
] }),
|
|
5523
|
-
/* @__PURE__ */ jsxs("div", { className: "
|
|
5524
|
-
/* @__PURE__ */ jsxs("
|
|
5525
|
-
/* @__PURE__ */ jsx("
|
|
5526
|
-
|
|
5527
|
-
" ",
|
|
5528
|
-
span?.duration ? formatDuration(span?.duration) : "",
|
|
5529
|
-
"ms"
|
|
5530
|
-
] })
|
|
5595
|
+
/* @__PURE__ */ jsxs("div", { className: "p-5", children: [
|
|
5596
|
+
/* @__PURE__ */ jsxs(Txt, { variant: "header-md", as: "h3", className: "text-icon-6 flex items-center gap-4 pb-3", children: [
|
|
5597
|
+
/* @__PURE__ */ jsx(Icon, { size: "lg", className: "bg-surface4 p-1 rounded-md", children: /* @__PURE__ */ jsx(SpanIcon, { className: variantClass }) }),
|
|
5598
|
+
span.name
|
|
5531
5599
|
] }),
|
|
5532
|
-
/* @__PURE__ */
|
|
5533
|
-
|
|
5534
|
-
|
|
5600
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-row gap-2 items-center", children: /* @__PURE__ */ jsxs(Badge$1, { icon: /* @__PURE__ */ jsx(LatencyIcon, {}), children: [
|
|
5601
|
+
formatDuration(span.duration),
|
|
5602
|
+
"ms"
|
|
5603
|
+
] }) }),
|
|
5604
|
+
/* @__PURE__ */ jsx("hr", { className: "border-border1 border-sm my-5" }),
|
|
5605
|
+
/* @__PURE__ */ jsxs("dl", { className: "grid grid-cols-2 justify-between gap-2", children: [
|
|
5606
|
+
/* @__PURE__ */ jsx("dt", { className: "font-medium text-ui-md text-icon3", children: "ID" }),
|
|
5607
|
+
/* @__PURE__ */ jsx("dd", { className: "text-ui-md text-icon6", children: span.id }),
|
|
5608
|
+
/* @__PURE__ */ jsx("dt", { className: "font-medium text-ui-md text-icon3", children: "Created at" }),
|
|
5609
|
+
/* @__PURE__ */ jsx("dd", { className: "text-ui-md text-icon6", children: span.startTime ? formatOtelTimestamp(span.startTime) : "" })
|
|
5535
5610
|
] }),
|
|
5536
|
-
/* @__PURE__ */
|
|
5537
|
-
|
|
5538
|
-
|
|
5539
|
-
] })
|
|
5540
|
-
] }),
|
|
5541
|
-
span?.status?.code !== 0 ? /* @__PURE__ */ jsx("div", { className: "border-t-[0.5px] px-6 pt-4", children: span && span?.events?.length > 0 && /* @__PURE__ */ jsx(Events, { span }) }) : null,
|
|
5542
|
-
/* @__PURE__ */ jsx("div", { className: "border-t-[0.5px] px-6 pt-4", children: span && /* @__PURE__ */ jsx(Attributes, { span: { ...span, attributes: isAiSpan ? aiSpanAttributes : span?.attributes } }) }),
|
|
5543
|
-
span?.status?.code === 0 ? /* @__PURE__ */ jsx("div", { className: "border-t-[0.5px] px-6 pt-4", children: span && span?.events?.length > 0 && /* @__PURE__ */ jsx(Events, { span }) }) : null
|
|
5611
|
+
span.attributes && /* @__PURE__ */ jsx(Attributes, { attributes: span.attributes }),
|
|
5612
|
+
span.events?.length > 0 && /* @__PURE__ */ jsx(Events, { span })
|
|
5613
|
+
] })
|
|
5544
5614
|
] });
|
|
5545
5615
|
}
|
|
5616
|
+
function Attributes({ attributes }) {
|
|
5617
|
+
if (!attributes) return null;
|
|
5618
|
+
const entries = Object.entries(attributes);
|
|
5619
|
+
if (entries.length === 0) return null;
|
|
5620
|
+
const keysToHide = ["http.request_id", "componentName"];
|
|
5621
|
+
return /* @__PURE__ */ jsx("div", { children: entries.filter(([key]) => !keysToHide.includes(key)).map(([key, val]) => {
|
|
5622
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
5623
|
+
/* @__PURE__ */ jsx("hr", { className: "border-border1 border-sm my-5" }),
|
|
5624
|
+
/* @__PURE__ */ jsx(Txt, { as: "h4", variant: "ui-md", className: "text-icon3 pb-2", children: transformKey(key) }),
|
|
5625
|
+
/* @__PURE__ */ jsx(AttributeValue, { value: val })
|
|
5626
|
+
] }, key);
|
|
5627
|
+
}) });
|
|
5628
|
+
}
|
|
5629
|
+
const AttributeValue = ({ value }) => {
|
|
5630
|
+
if (!value)
|
|
5631
|
+
return /* @__PURE__ */ jsx(Txt, { as: "p", variant: "ui-md", className: "text-icon6", children: "N/A" });
|
|
5632
|
+
if (typeof value === "number" || typeof value === "boolean") {
|
|
5633
|
+
return /* @__PURE__ */ jsx(Txt, { as: "p", variant: "ui-md", className: "text-icon6", children: String(value) });
|
|
5634
|
+
}
|
|
5635
|
+
if (typeof value === "object") {
|
|
5636
|
+
return /* @__PURE__ */ jsx(SyntaxHighlighter, { data: value });
|
|
5637
|
+
}
|
|
5638
|
+
try {
|
|
5639
|
+
return /* @__PURE__ */ jsx(SyntaxHighlighter, { data: JSON.parse(value) });
|
|
5640
|
+
} catch {
|
|
5641
|
+
return /* @__PURE__ */ jsx(Txt, { as: "p", variant: "ui-md", className: "text-icon6", children: String(value) });
|
|
5642
|
+
}
|
|
5643
|
+
};
|
|
5546
5644
|
function Events({ span }) {
|
|
5547
5645
|
if (!span.events) return null;
|
|
5548
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
5549
|
-
/* @__PURE__ */ jsx("
|
|
5646
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
5647
|
+
/* @__PURE__ */ jsx("hr", { className: "border-border1 border-sm my-5" }),
|
|
5648
|
+
/* @__PURE__ */ jsx(Txt, { as: "p", variant: "ui-md", className: "text-icon6 pb-2", children: "Events" }),
|
|
5550
5649
|
span.events.map((event) => {
|
|
5551
|
-
const
|
|
5552
|
-
return /* @__PURE__ */ jsxs(
|
|
5553
|
-
"div",
|
|
5554
|
-
|
|
5555
|
-
|
|
5556
|
-
|
|
5557
|
-
/* @__PURE__ */ jsx("
|
|
5558
|
-
/* @__PURE__ */ jsx("
|
|
5559
|
-
|
|
5560
|
-
|
|
5561
|
-
|
|
5562
|
-
|
|
5563
|
-
|
|
5564
|
-
event.name
|
|
5565
|
-
|
|
5650
|
+
const isLast = event === span.events[span.events.length - 1];
|
|
5651
|
+
return /* @__PURE__ */ jsxs(React__default.Fragment, { children: [
|
|
5652
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
5653
|
+
/* @__PURE__ */ jsxs("dl", { className: "grid grid-cols-2 justify-between gap-2 pb-2", children: [
|
|
5654
|
+
/* @__PURE__ */ jsx("dt", { className: "font-medium text-ui-md text-icon3", children: "Name" }),
|
|
5655
|
+
/* @__PURE__ */ jsx("dd", { className: "text-ui-md text-icon6", children: event.name }),
|
|
5656
|
+
/* @__PURE__ */ jsx("dt", { className: "font-medium text-ui-md text-icon3", children: "Time" }),
|
|
5657
|
+
/* @__PURE__ */ jsx("dd", { className: "text-ui-md text-icon6", children: event.timeUnixNano ? formatOtelTimestamp2(Number(event.timeUnixNano)) : "N/A" })
|
|
5658
|
+
] }),
|
|
5659
|
+
event.attributes?.length > 0 ? /* @__PURE__ */ jsx("ul", { className: "space-y-2", children: event.attributes.filter((attribute) => attribute !== null).map((attribute) => /* @__PURE__ */ jsxs("li", { children: [
|
|
5660
|
+
/* @__PURE__ */ jsx(Txt, { as: "h4", variant: "ui-md", className: "text-icon3 pb-2", children: transformKey(attribute.key) }),
|
|
5661
|
+
/* @__PURE__ */ jsx(AttributeValue, { value: attribute.value })
|
|
5662
|
+
] }, attribute.key)) }) : null
|
|
5663
|
+
] }, event.name),
|
|
5664
|
+
!isLast && /* @__PURE__ */ jsx("hr", { className: "border-border1 border-sm my-5" })
|
|
5665
|
+
] }, event.name);
|
|
5566
5666
|
})
|
|
5567
5667
|
] });
|
|
5568
5668
|
}
|
|
5569
|
-
function Attributes({ span }) {
|
|
5570
|
-
if (!span.attributes) return null;
|
|
5571
|
-
return /* @__PURE__ */ jsx(AttributesValues, { attributes: span.attributes });
|
|
5572
|
-
}
|
|
5573
|
-
function AttributesValues({
|
|
5574
|
-
attributes,
|
|
5575
|
-
depth = 0,
|
|
5576
|
-
keyName
|
|
5577
|
-
}) {
|
|
5578
|
-
if (attributes === null || attributes === void 0 || Array.isArray(attributes) && attributes.length === 0 || typeof attributes === "object" && attributes !== null && Object.keys(attributes).length === 0) {
|
|
5579
|
-
return /* @__PURE__ */ jsx("span", { className: "text-sm overflow-x-scroll", children: "N/A" });
|
|
5580
|
-
}
|
|
5581
|
-
if (typeof attributes === "string") {
|
|
5582
|
-
try {
|
|
5583
|
-
const attr = JSON.parse(attributes);
|
|
5584
|
-
if (typeof attr === "object" || Array.isArray(attr)) {
|
|
5585
|
-
return /* @__PURE__ */ jsx(SyntaxHighlighter, { data: attr });
|
|
5586
|
-
}
|
|
5587
|
-
} catch {
|
|
5588
|
-
const val = attributes ? cleanString(attributes.toString()) : "N/A";
|
|
5589
|
-
if (keyName === "Input" && val === "[Not Serializable]") {
|
|
5590
|
-
return /* @__PURE__ */ jsx("span", { className: "text-sm overflow-x-scroll", children: "No input" });
|
|
5591
|
-
}
|
|
5592
|
-
return /* @__PURE__ */ jsx("span", { className: "text-sm overflow-x-scroll", children: attributes ? cleanString(attributes.toString()) : "N/A" });
|
|
5593
|
-
}
|
|
5594
|
-
}
|
|
5595
|
-
const processedValue = attributes;
|
|
5596
|
-
if (Array.isArray(processedValue)) {
|
|
5597
|
-
if (processedValue.length === 0) return null;
|
|
5598
|
-
return /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx("div", { className: "mt-1 gap-3", children: processedValue.map((item, index) => /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-1", children: /* @__PURE__ */ jsx(AttributesValues, { attributes: item, depth: depth + 1 }, index) }, index)) }) });
|
|
5599
|
-
}
|
|
5600
|
-
if (typeof processedValue === "object") {
|
|
5601
|
-
const entries = Object.entries(processedValue);
|
|
5602
|
-
if (entries.length === 0) return null;
|
|
5603
|
-
return /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx("div", { className: "mt-1", children: entries.map(([key, val]) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 p-2 pl-0", children: [
|
|
5604
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm capitalize text-mastra-el-3", children: transformKey(key) }),
|
|
5605
|
-
/* @__PURE__ */ jsx(AttributesValues, { attributes: val, depth: depth + 1, keyName: transformKey(key) })
|
|
5606
|
-
] }, key)) }) });
|
|
5607
|
-
}
|
|
5608
|
-
if (typeof processedValue === "boolean")
|
|
5609
|
-
return /* @__PURE__ */ jsx("span", { className: "font-mono text-sm", children: processedValue.toString() || "N/A" });
|
|
5610
|
-
if (typeof processedValue === "number") return /* @__PURE__ */ jsx("span", { className: "font-mono text-sm", children: processedValue.toString() });
|
|
5611
|
-
if (typeof processedValue === "string")
|
|
5612
|
-
return /* @__PURE__ */ jsx("span", { className: "font-mono text-sm", children: processedValue ? cleanString(processedValue.toString()) : "N/A" });
|
|
5613
|
-
return /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: String(processedValue) });
|
|
5614
|
-
}
|
|
5615
5669
|
|
|
5616
|
-
const TracesSidebar = ({
|
|
5617
|
-
|
|
5618
|
-
return /* @__PURE__ */ jsxs(
|
|
5670
|
+
const TracesSidebar = ({ onResize }) => {
|
|
5671
|
+
return /* @__PURE__ */ jsx(
|
|
5619
5672
|
MastraResizablePanel,
|
|
5620
5673
|
{
|
|
5621
|
-
className:
|
|
5622
|
-
|
|
5623
|
-
|
|
5624
|
-
|
|
5625
|
-
defaultWidth: open ? 50 : 30,
|
|
5626
|
-
minimumWidth: open ? 50 : 30,
|
|
5627
|
-
maximumWidth: open ? 90 : 50,
|
|
5674
|
+
className: "h-full",
|
|
5675
|
+
defaultWidth: 70,
|
|
5676
|
+
minimumWidth: 50,
|
|
5677
|
+
maximumWidth: 70,
|
|
5628
5678
|
setCurrentWidth: onResize,
|
|
5629
|
-
children: [
|
|
5630
|
-
|
|
5631
|
-
|
|
5632
|
-
|
|
5633
|
-
className: "h-full overflow-x-scroll px-0 absolute left-0 top-0 min-w-[50%] bg-mastra-bg-1 bg-[#121212]",
|
|
5634
|
-
style: { width: `${width}%` },
|
|
5635
|
-
children: /* @__PURE__ */ jsx(TraceDetails, {})
|
|
5636
|
-
}
|
|
5637
|
-
),
|
|
5638
|
-
/* @__PURE__ */ jsx(
|
|
5639
|
-
MastraResizablePanel,
|
|
5640
|
-
{
|
|
5641
|
-
defaultWidth: 50,
|
|
5642
|
-
minimumWidth: 30,
|
|
5643
|
-
maximumWidth: 80,
|
|
5644
|
-
className: cn("h-full overflow-y-hidden border-l-[0.5px] right-0 top-0 z-20 bg-mastra-bg-1 bg-[#121212]", {
|
|
5645
|
-
absolute: open,
|
|
5646
|
-
"unset-position": !open
|
|
5647
|
-
}),
|
|
5648
|
-
disabled: !open,
|
|
5649
|
-
children: /* @__PURE__ */ jsx("div", { className: "h-full overflow-y-scroll", children: !openDetail ? children : /* @__PURE__ */ jsx(SpanDetail, {}) })
|
|
5650
|
-
}
|
|
5651
|
-
)
|
|
5652
|
-
]
|
|
5679
|
+
children: /* @__PURE__ */ jsxs("div", { className: "h-full grid grid-cols-2", children: [
|
|
5680
|
+
/* @__PURE__ */ jsx("div", { className: "overflow-x-scroll w-full h-[calc(100%-40px)]", children: /* @__PURE__ */ jsx(TraceDetails, {}) }),
|
|
5681
|
+
/* @__PURE__ */ jsx("div", { className: "h-[calc(100%-40px)] overflow-x-scroll w-full border-l border-border1", children: /* @__PURE__ */ jsx(SpanDetail, {}) })
|
|
5682
|
+
] })
|
|
5653
5683
|
}
|
|
5654
5684
|
);
|
|
5655
5685
|
};
|
|
5656
5686
|
|
|
5657
|
-
function AgentTraces({ agentName, baseUrl,
|
|
5658
|
-
return /* @__PURE__ */ jsx(TraceProvider, { children: /* @__PURE__ */ jsx(AgentTracesInner, { agentName, baseUrl,
|
|
5687
|
+
function AgentTraces({ agentName, baseUrl, className }) {
|
|
5688
|
+
return /* @__PURE__ */ jsx(TraceProvider, { children: /* @__PURE__ */ jsx(AgentTracesInner, { agentName, baseUrl, className }) });
|
|
5659
5689
|
}
|
|
5660
|
-
function AgentTracesInner({ agentName, baseUrl,
|
|
5661
|
-
const [sidebarWidth, setSidebarWidth] = useState(
|
|
5690
|
+
function AgentTracesInner({ agentName, baseUrl, className }) {
|
|
5691
|
+
const [sidebarWidth, setSidebarWidth] = useState(100);
|
|
5662
5692
|
const { traces, firstCallLoading, error } = useTraces(agentName, baseUrl);
|
|
5663
5693
|
const { isOpen: open } = useContext(TraceContext);
|
|
5664
|
-
return /* @__PURE__ */ jsxs("
|
|
5665
|
-
/* @__PURE__ */ jsx("div", { className: "
|
|
5666
|
-
/* @__PURE__ */ jsx(
|
|
5667
|
-
TracesSidebar,
|
|
5668
|
-
{
|
|
5669
|
-
className: cn(open ? "grid grid-cols-2 w-[60%]" : "min-w-[325px]"),
|
|
5670
|
-
width: 100 - sidebarWidth,
|
|
5671
|
-
onResize: setSidebarWidth,
|
|
5672
|
-
children: sidebarChild
|
|
5673
|
-
}
|
|
5674
|
-
)
|
|
5694
|
+
return /* @__PURE__ */ jsxs("div", { className: clsx("h-full relative overflow-hidden flex", className), children: [
|
|
5695
|
+
/* @__PURE__ */ jsx("div", { className: clsx("h-full overflow-y-scroll", open ? "w-auto" : "w-full"), children: /* @__PURE__ */ jsx(TracesTable, { traces, isLoading: firstCallLoading, error }) }),
|
|
5696
|
+
open && /* @__PURE__ */ jsx(TracesSidebar, { width: sidebarWidth, onResize: setSidebarWidth })
|
|
5675
5697
|
] });
|
|
5676
5698
|
}
|
|
5677
5699
|
|
|
@@ -5685,11 +5707,13 @@ function MastraNetworkRuntimeProvider({
|
|
|
5685
5707
|
memory,
|
|
5686
5708
|
threadId,
|
|
5687
5709
|
baseUrl,
|
|
5688
|
-
refreshThreadList
|
|
5710
|
+
refreshThreadList,
|
|
5711
|
+
modelSettings = {}
|
|
5689
5712
|
}) {
|
|
5690
5713
|
const [isRunning, setIsRunning] = useState(false);
|
|
5691
5714
|
const [messages, setMessages] = useState(initialMessages || []);
|
|
5692
5715
|
const [currentThreadId, setCurrentThreadId] = useState(threadId);
|
|
5716
|
+
const { frequencyPenalty, presencePenalty, maxRetries, maxSteps, maxTokens, temperature, topK, topP, instructions } = modelSettings;
|
|
5693
5717
|
useEffect(() => {
|
|
5694
5718
|
if (messages.length === 0 || currentThreadId !== threadId) {
|
|
5695
5719
|
if (initialMessages && threadId && memory) {
|
|
@@ -5698,11 +5722,7 @@ function MastraNetworkRuntimeProvider({
|
|
|
5698
5722
|
}
|
|
5699
5723
|
}
|
|
5700
5724
|
}, [initialMessages, threadId, memory, messages]);
|
|
5701
|
-
const mastra =
|
|
5702
|
-
baseUrl: baseUrl || ""
|
|
5703
|
-
});
|
|
5704
|
-
console.log("MastraClient initialized");
|
|
5705
|
-
console.log(messages, "###");
|
|
5725
|
+
const mastra = createMastraClient(baseUrl);
|
|
5706
5726
|
const network = mastra.getNetwork(agentId);
|
|
5707
5727
|
const onNew = async (message) => {
|
|
5708
5728
|
if (message.content[0]?.type !== "text") throw new Error("Only text messages are supported");
|
|
@@ -5731,6 +5751,15 @@ function MastraNetworkRuntimeProvider({
|
|
|
5731
5751
|
}
|
|
5732
5752
|
],
|
|
5733
5753
|
runId: agentId,
|
|
5754
|
+
frequencyPenalty,
|
|
5755
|
+
presencePenalty,
|
|
5756
|
+
maxRetries,
|
|
5757
|
+
maxSteps,
|
|
5758
|
+
maxTokens,
|
|
5759
|
+
temperature,
|
|
5760
|
+
topK,
|
|
5761
|
+
topP,
|
|
5762
|
+
instructions,
|
|
5734
5763
|
...memory ? { threadId, resourceId: agentId } : {}
|
|
5735
5764
|
});
|
|
5736
5765
|
if (!response.body) {
|
|
@@ -6085,28 +6114,46 @@ const ToolFallback = (props) => {
|
|
|
6085
6114
|
}) });
|
|
6086
6115
|
};
|
|
6087
6116
|
|
|
6117
|
+
const defaultModelSettings = {
|
|
6118
|
+
maxRetries: 2,
|
|
6119
|
+
maxSteps: 5,
|
|
6120
|
+
temperature: 0.5,
|
|
6121
|
+
topP: 1
|
|
6122
|
+
};
|
|
6123
|
+
const NetworkContext = createContext({});
|
|
6124
|
+
function NetworkProvider({ children }) {
|
|
6125
|
+
const [modelSettings, setModelSettings] = useState(defaultModelSettings);
|
|
6126
|
+
const resetModelSettings = () => {
|
|
6127
|
+
setModelSettings(defaultModelSettings);
|
|
6128
|
+
};
|
|
6129
|
+
return /* @__PURE__ */ jsx(
|
|
6130
|
+
NetworkContext.Provider,
|
|
6131
|
+
{
|
|
6132
|
+
value: {
|
|
6133
|
+
modelSettings,
|
|
6134
|
+
setModelSettings,
|
|
6135
|
+
resetModelSettings
|
|
6136
|
+
},
|
|
6137
|
+
children
|
|
6138
|
+
}
|
|
6139
|
+
);
|
|
6140
|
+
}
|
|
6141
|
+
|
|
6088
6142
|
const NetworkChat = ({ agentId, memory }) => {
|
|
6089
|
-
|
|
6143
|
+
const { modelSettings } = useContext(NetworkContext);
|
|
6144
|
+
return /* @__PURE__ */ jsx(MastraNetworkRuntimeProvider, { agentId, memory, modelSettings, children: /* @__PURE__ */ jsx("div", { className: "h-full pb-4", children: /* @__PURE__ */ jsx(Thread, { ToolFallback }) }) });
|
|
6090
6145
|
};
|
|
6091
6146
|
|
|
6092
|
-
function WorkflowTraces({ workflowName, baseUrl
|
|
6093
|
-
return /* @__PURE__ */ jsx(TraceProvider, { children: /* @__PURE__ */ jsx(WorkflowTracesInner, { workflowName, baseUrl
|
|
6147
|
+
function WorkflowTraces({ workflowName, baseUrl }) {
|
|
6148
|
+
return /* @__PURE__ */ jsx(TraceProvider, { children: /* @__PURE__ */ jsx(WorkflowTracesInner, { workflowName, baseUrl }) });
|
|
6094
6149
|
}
|
|
6095
|
-
function WorkflowTracesInner({ workflowName, baseUrl
|
|
6096
|
-
const [sidebarWidth, setSidebarWidth] = useState(
|
|
6150
|
+
function WorkflowTracesInner({ workflowName, baseUrl }) {
|
|
6151
|
+
const [sidebarWidth, setSidebarWidth] = useState(100);
|
|
6097
6152
|
const { traces, error, firstCallLoading } = useTraces(workflowName, baseUrl, true);
|
|
6098
6153
|
const { isOpen: open } = useContext(TraceContext);
|
|
6099
|
-
return /* @__PURE__ */ jsxs("main", { className: "h-full relative overflow-hidden flex
|
|
6100
|
-
/* @__PURE__ */ jsx("div", { className: "
|
|
6101
|
-
/* @__PURE__ */ jsx(
|
|
6102
|
-
TracesSidebar,
|
|
6103
|
-
{
|
|
6104
|
-
className: cn(open ? "grid grid-cols-2 w-[60%]" : "min-w-[325px]"),
|
|
6105
|
-
width: 100 - sidebarWidth,
|
|
6106
|
-
onResize: setSidebarWidth,
|
|
6107
|
-
children: sidebarChild
|
|
6108
|
-
}
|
|
6109
|
-
)
|
|
6154
|
+
return /* @__PURE__ */ jsxs("main", { className: "h-full relative overflow-hidden flex", children: [
|
|
6155
|
+
/* @__PURE__ */ jsx("div", { className: clsx("h-full", open ? "w-auto" : "w-full"), children: /* @__PURE__ */ jsx(TracesTable, { traces, isLoading: firstCallLoading, error }) }),
|
|
6156
|
+
open && /* @__PURE__ */ jsx(TracesSidebar, { width: sidebarWidth, onResize: setSidebarWidth })
|
|
6110
6157
|
] });
|
|
6111
6158
|
}
|
|
6112
6159
|
|
|
@@ -6148,9 +6195,7 @@ const sanitizeVNexWorkflowWatchResult = (record) => {
|
|
|
6148
6195
|
const useWorkflow = (workflowId, baseUrl) => {
|
|
6149
6196
|
const [workflow, setWorkflow] = useState(null);
|
|
6150
6197
|
const [isLoading, setIsLoading] = useState(true);
|
|
6151
|
-
const client =
|
|
6152
|
-
baseUrl: baseUrl || ""
|
|
6153
|
-
});
|
|
6198
|
+
const client = createMastraClient(baseUrl);
|
|
6154
6199
|
useEffect(() => {
|
|
6155
6200
|
const fetchWorkflow = async () => {
|
|
6156
6201
|
setIsLoading(true);
|
|
@@ -6195,9 +6240,7 @@ const useWorkflow = (workflowId, baseUrl) => {
|
|
|
6195
6240
|
const useVNextWorkflow = (workflowId, baseUrl) => {
|
|
6196
6241
|
const [vNextWorkflow, setVNextWorkflow] = useState(null);
|
|
6197
6242
|
const [isLoading, setIsLoading] = useState(true);
|
|
6198
|
-
const client =
|
|
6199
|
-
baseUrl: baseUrl || ""
|
|
6200
|
-
});
|
|
6243
|
+
const client = createMastraClient(baseUrl);
|
|
6201
6244
|
useEffect(() => {
|
|
6202
6245
|
const fetchWorkflow = async () => {
|
|
6203
6246
|
setIsLoading(true);
|
|
@@ -6222,9 +6265,7 @@ const useVNextWorkflow = (workflowId, baseUrl) => {
|
|
|
6222
6265
|
return { vNextWorkflow, isLoading };
|
|
6223
6266
|
};
|
|
6224
6267
|
const useExecuteWorkflow = (baseUrl) => {
|
|
6225
|
-
const client =
|
|
6226
|
-
baseUrl: baseUrl || ""
|
|
6227
|
-
});
|
|
6268
|
+
const client = createMastraClient(baseUrl);
|
|
6228
6269
|
const createWorkflowRun = async ({ workflowId, prevRunId }) => {
|
|
6229
6270
|
try {
|
|
6230
6271
|
const workflow = client.getWorkflow(workflowId);
|
|
@@ -6322,12 +6363,9 @@ const useWatchWorkflow = (baseUrl) => {
|
|
|
6322
6363
|
const watchWorkflow = async ({ workflowId, runId }) => {
|
|
6323
6364
|
try {
|
|
6324
6365
|
setIsWatchingWorkflow(true);
|
|
6325
|
-
const client =
|
|
6326
|
-
baseUrl
|
|
6327
|
-
});
|
|
6366
|
+
const client = createMastraClient(baseUrl);
|
|
6328
6367
|
const workflow = client.getWorkflow(workflowId);
|
|
6329
6368
|
await workflow.watch({ runId }, (record) => {
|
|
6330
|
-
console.log("record in use-workflows==", record);
|
|
6331
6369
|
try {
|
|
6332
6370
|
debouncedSetWatchResult(record);
|
|
6333
6371
|
} catch (err) {
|
|
@@ -6351,12 +6389,9 @@ const useWatchWorkflow = (baseUrl) => {
|
|
|
6351
6389
|
const watchVNextWorkflow = async ({ workflowId, runId }) => {
|
|
6352
6390
|
try {
|
|
6353
6391
|
setIsWatchingVNextWorkflow(true);
|
|
6354
|
-
const client =
|
|
6355
|
-
baseUrl
|
|
6356
|
-
});
|
|
6392
|
+
const client = createMastraClient(baseUrl);
|
|
6357
6393
|
const workflow = client.getVNextWorkflow(workflowId);
|
|
6358
6394
|
await workflow.watch({ runId }, (record) => {
|
|
6359
|
-
console.log("record in use-workflows===", record);
|
|
6360
6395
|
try {
|
|
6361
6396
|
debouncedSetVNextWatchResult(record);
|
|
6362
6397
|
} catch (err) {
|
|
@@ -6393,9 +6428,7 @@ const useResumeWorkflow = (baseUrl) => {
|
|
|
6393
6428
|
}) => {
|
|
6394
6429
|
try {
|
|
6395
6430
|
setIsResumingWorkflow(true);
|
|
6396
|
-
const client =
|
|
6397
|
-
baseUrl: baseUrl || ""
|
|
6398
|
-
});
|
|
6431
|
+
const client = createMastraClient(baseUrl);
|
|
6399
6432
|
const response = await client.getWorkflow(workflowId).resume({ stepId, runId, context });
|
|
6400
6433
|
return response;
|
|
6401
6434
|
} catch (error) {
|
|
@@ -6414,9 +6447,7 @@ const useResumeWorkflow = (baseUrl) => {
|
|
|
6414
6447
|
}) => {
|
|
6415
6448
|
try {
|
|
6416
6449
|
setIsResumingVNextWorkflow(true);
|
|
6417
|
-
const client =
|
|
6418
|
-
baseUrl: baseUrl || ""
|
|
6419
|
-
});
|
|
6450
|
+
const client = createMastraClient(baseUrl);
|
|
6420
6451
|
const response = await client.getVNextWorkflow(workflowId).resume({ step, runId, resumeData, runtimeContext });
|
|
6421
6452
|
return response;
|
|
6422
6453
|
} catch (error) {
|
|
@@ -7507,12 +7538,12 @@ const ErrorMessage = ({ error }) => /* @__PURE__ */ jsxs(Alert, { variant: "dest
|
|
|
7507
7538
|
|
|
7508
7539
|
const SubmitButton = ({ children }) => /* @__PURE__ */ jsx(Button$1, { type: "submit", children });
|
|
7509
7540
|
|
|
7510
|
-
const StringField = ({ inputProps, error, id }) => {
|
|
7541
|
+
const StringField = ({ inputProps, error, field, id }) => {
|
|
7511
7542
|
const { key, ...props } = inputProps;
|
|
7512
|
-
return /* @__PURE__ */ jsx(Input, { id, className: error ? "border-destructive" : "", ...props });
|
|
7543
|
+
return /* @__PURE__ */ jsx(Input, { id, className: error ? "border-destructive" : "", ...props, defaultValue: field.default });
|
|
7513
7544
|
};
|
|
7514
7545
|
|
|
7515
|
-
const NumberField = ({ inputProps, error, id }) => {
|
|
7546
|
+
const NumberField = ({ inputProps, error, field, id }) => {
|
|
7516
7547
|
const { key, ...props } = inputProps;
|
|
7517
7548
|
return /* @__PURE__ */ jsx(
|
|
7518
7549
|
Input,
|
|
@@ -7521,6 +7552,7 @@ const NumberField = ({ inputProps, error, id }) => {
|
|
|
7521
7552
|
type: "number",
|
|
7522
7553
|
className: error ? "border-destructive" : "",
|
|
7523
7554
|
...props,
|
|
7555
|
+
defaultValue: field.default,
|
|
7524
7556
|
onChange: (e) => {
|
|
7525
7557
|
const value = e.target.value;
|
|
7526
7558
|
if (value !== "" && !isNaN(Number(value))) {
|
|
@@ -7555,7 +7587,7 @@ const Checkbox = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
7555
7587
|
));
|
|
7556
7588
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
7557
7589
|
|
|
7558
|
-
const BooleanField = ({ field, label, id, inputProps }) => /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
7590
|
+
const BooleanField = ({ field, label, id, inputProps, value }) => /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
7559
7591
|
/* @__PURE__ */ jsx(
|
|
7560
7592
|
Checkbox,
|
|
7561
7593
|
{
|
|
@@ -7563,13 +7595,13 @@ const BooleanField = ({ field, label, id, inputProps }) => /* @__PURE__ */ jsxs(
|
|
|
7563
7595
|
onCheckedChange: (checked) => {
|
|
7564
7596
|
const event = {
|
|
7565
7597
|
target: {
|
|
7566
|
-
name:
|
|
7598
|
+
name: inputProps.name,
|
|
7567
7599
|
value: checked
|
|
7568
7600
|
}
|
|
7569
7601
|
};
|
|
7570
7602
|
inputProps.onChange(event);
|
|
7571
7603
|
},
|
|
7572
|
-
|
|
7604
|
+
defaultChecked: field.default
|
|
7573
7605
|
}
|
|
7574
7606
|
),
|
|
7575
7607
|
/* @__PURE__ */ jsxs(Label, { htmlFor: id, children: [
|
|
@@ -7806,9 +7838,17 @@ const DefaultButton = React.forwardRef(
|
|
|
7806
7838
|
);
|
|
7807
7839
|
DefaultButton.displayName = "DefaultButton";
|
|
7808
7840
|
|
|
7809
|
-
const DateField = ({ inputProps, error, id }) => {
|
|
7841
|
+
const DateField = ({ inputProps, field, error, id }) => {
|
|
7810
7842
|
const { key, ...props } = inputProps;
|
|
7811
7843
|
const [value, setValue] = useState(null);
|
|
7844
|
+
useEffect(() => {
|
|
7845
|
+
if (field.default) {
|
|
7846
|
+
const date = new Date(field.default);
|
|
7847
|
+
if (isValid(date)) {
|
|
7848
|
+
setValue(date);
|
|
7849
|
+
}
|
|
7850
|
+
}
|
|
7851
|
+
}, [field]);
|
|
7812
7852
|
return /* @__PURE__ */ jsx(
|
|
7813
7853
|
DatePicker,
|
|
7814
7854
|
{
|
|
@@ -7888,16 +7928,16 @@ const SelectItem = React.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
7888
7928
|
));
|
|
7889
7929
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
7890
7930
|
|
|
7891
|
-
const SelectField = ({ field, inputProps, error, id }) => {
|
|
7931
|
+
const SelectField = ({ field, inputProps, error, id, value }) => {
|
|
7892
7932
|
const { key, ...props } = inputProps;
|
|
7893
7933
|
return /* @__PURE__ */ jsxs(
|
|
7894
7934
|
Select,
|
|
7895
7935
|
{
|
|
7896
7936
|
...props,
|
|
7897
|
-
onValueChange: (
|
|
7937
|
+
onValueChange: (value2) => {
|
|
7898
7938
|
const syntheticEvent = {
|
|
7899
7939
|
target: {
|
|
7900
|
-
value,
|
|
7940
|
+
value: value2,
|
|
7901
7941
|
name: inputProps.name
|
|
7902
7942
|
}
|
|
7903
7943
|
};
|
|
@@ -7944,10 +7984,10 @@ const ArrayElementWrapper = ({ children, onRemove }) => {
|
|
|
7944
7984
|
] });
|
|
7945
7985
|
};
|
|
7946
7986
|
|
|
7947
|
-
const RecordField = ({ inputProps, error, id }) => {
|
|
7948
|
-
const { key,
|
|
7987
|
+
const RecordField = ({ inputProps, field, error, id }) => {
|
|
7988
|
+
const { key, onChange, ...props } = inputProps;
|
|
7949
7989
|
const [pairs, setPairs] = React.useState(
|
|
7950
|
-
() => Object.entries(
|
|
7990
|
+
() => Object.entries(field.default || {}).map(([key2, val]) => ({
|
|
7951
7991
|
id: key2 || v4(),
|
|
7952
7992
|
key: key2,
|
|
7953
7993
|
value: val
|
|
@@ -7975,8 +8015,8 @@ const RecordField = ({ inputProps, error, id }) => {
|
|
|
7975
8015
|
},
|
|
7976
8016
|
[onChange, inputProps.name]
|
|
7977
8017
|
);
|
|
7978
|
-
const handleChange = (id2,
|
|
7979
|
-
setPairs((prev) => prev.map((pair) => pair.id === id2 ? { ...pair, [
|
|
8018
|
+
const handleChange = (id2, field2, newValue) => {
|
|
8019
|
+
setPairs((prev) => prev.map((pair) => pair.id === id2 ? { ...pair, [field2]: newValue } : pair));
|
|
7980
8020
|
};
|
|
7981
8021
|
const handleBlur = () => {
|
|
7982
8022
|
updateForm(pairs);
|
|
@@ -8161,7 +8201,7 @@ function DynamicForm({
|
|
|
8161
8201
|
onSubmit: async (values) => {
|
|
8162
8202
|
await onSubmit(values[""]);
|
|
8163
8203
|
},
|
|
8164
|
-
defaultValues,
|
|
8204
|
+
defaultValues: defaultValues ? { "": defaultValues } : void 0,
|
|
8165
8205
|
formProps: {
|
|
8166
8206
|
className: "space-y-4 p-4"
|
|
8167
8207
|
},
|
|
@@ -8642,9 +8682,9 @@ function VNextWorkflowTrigger({
|
|
|
8642
8682
|
] }) }, stepId) });
|
|
8643
8683
|
}) })
|
|
8644
8684
|
] }),
|
|
8645
|
-
isSuspendedSteps && suspendedSteps?.map((step) => {
|
|
8685
|
+
!isWatchingVNextWorkflow && isSuspendedSteps && suspendedSteps?.map((step) => {
|
|
8646
8686
|
const stepDefinition = vNextWorkflow.steps[step.stepId];
|
|
8647
|
-
const stepSchema = stepDefinition?.
|
|
8687
|
+
const stepSchema = stepDefinition?.resumeSchema ? resolveSerializedZodOutput(jsonSchemaToZod(parse(stepDefinition.resumeSchema))) : z.record(z.string(), z.any());
|
|
8648
8688
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col px-4", children: [
|
|
8649
8689
|
/* @__PURE__ */ jsx(Text, { variant: "secondary", className: "text-mastra-el-3", size: "xs", children: step.stepId }),
|
|
8650
8690
|
step.suspendPayload && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
|
|
@@ -8766,30 +8806,6 @@ const DataTable = ({
|
|
|
8766
8806
|
] });
|
|
8767
8807
|
};
|
|
8768
8808
|
|
|
8769
|
-
const sizeClasses = {
|
|
8770
|
-
md: "h-button-md gap-md",
|
|
8771
|
-
lg: "h-button-lg gap-lg"
|
|
8772
|
-
};
|
|
8773
|
-
const variantClasses = {
|
|
8774
|
-
default: "bg-surface2 hover:bg-surface4 text-icon3 hover:text-icon6",
|
|
8775
|
-
light: "bg-surface3 hover:bg-surface5 text-icon6"
|
|
8776
|
-
};
|
|
8777
|
-
const Button = ({ className, as, size = "md", variant = "default", ...props }) => {
|
|
8778
|
-
const Component = as || "button";
|
|
8779
|
-
return /* @__PURE__ */ jsx(
|
|
8780
|
-
Component,
|
|
8781
|
-
{
|
|
8782
|
-
className: clsx(
|
|
8783
|
-
"bg-surface2 border-sm border-border1 px-lg text-ui-md inline-flex items-center justify-center rounded-md border",
|
|
8784
|
-
variantClasses[variant],
|
|
8785
|
-
sizeClasses[size],
|
|
8786
|
-
className
|
|
8787
|
-
),
|
|
8788
|
-
...props
|
|
8789
|
-
}
|
|
8790
|
-
);
|
|
8791
|
-
};
|
|
8792
|
-
|
|
8793
8809
|
const Breadcrumb = ({ children, label }) => {
|
|
8794
8810
|
return /* @__PURE__ */ jsx("nav", { "aria-label": label, children: /* @__PURE__ */ jsx("ol", { className: "gap-sm flex items-center", children }) });
|
|
8795
8811
|
};
|
|
@@ -8808,27 +8824,6 @@ const Crumb = ({ className, as, isCurrent, ...props }) => {
|
|
|
8808
8824
|
] });
|
|
8809
8825
|
};
|
|
8810
8826
|
|
|
8811
|
-
const Header = ({ children, border = true }) => {
|
|
8812
|
-
return /* @__PURE__ */ jsx(
|
|
8813
|
-
"header",
|
|
8814
|
-
{
|
|
8815
|
-
className: clsx("h-header-default z-50 flex w-full items-center gap-[18px] bg-transparent px-5", {
|
|
8816
|
-
"border-b-sm border-border1": border
|
|
8817
|
-
}),
|
|
8818
|
-
children
|
|
8819
|
-
}
|
|
8820
|
-
);
|
|
8821
|
-
};
|
|
8822
|
-
const HeaderTitle = ({ children }) => {
|
|
8823
|
-
return /* @__PURE__ */ jsx(Txt, { as: "h1", variant: "ui-lg", className: "font-medium text-white", children });
|
|
8824
|
-
};
|
|
8825
|
-
const HeaderAction = ({ children }) => {
|
|
8826
|
-
return /* @__PURE__ */ jsx("div", { className: "ml-auto", children });
|
|
8827
|
-
};
|
|
8828
|
-
const HeaderGroup = ({ children }) => {
|
|
8829
|
-
return /* @__PURE__ */ jsx("div", { className: "gap-lg flex items-center", children });
|
|
8830
|
-
};
|
|
8831
|
-
|
|
8832
8827
|
const DarkLogo = (props) => /* @__PURE__ */ jsxs("svg", { width: "100", height: "100", viewBox: "0 0 100 100", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
|
|
8833
8828
|
/* @__PURE__ */ jsx(
|
|
8834
8829
|
"path",
|
|
@@ -8886,5 +8881,5 @@ const DarkLogo = (props) => /* @__PURE__ */ jsxs("svg", { width: "100", height:
|
|
|
8886
8881
|
)
|
|
8887
8882
|
] });
|
|
8888
8883
|
|
|
8889
|
-
export { AgentChat, AgentCoinIcon, AgentContext, AgentEvals, AgentIcon, AgentProvider, AgentTraces, AiIcon, ApiIcon, Badge$1 as Badge, BranchIcon, Breadcrumb, Button, Cell, CheckIcon, ChevronIcon, CommitIcon, CrossIcon, Crumb, DarkLogo, DataTable, DateTimeCell, DbIcon, DebugIcon, DeploymentIcon, DividerIcon, DocsIcon, DynamicForm, EntryCell, EnvIcon, EvaluatorCoinIcon, FiltersIcon, GithubCoinIcon, GithubIcon, GoogleIcon, Header, HeaderAction, HeaderGroup, HeaderTitle, HomeIcon, Icon, InfoIcon, JudgeIcon, LogsIcon, MastraResizablePanel, MemoryIcon, NetworkChat, OpenAIIcon, PromptIcon, RepoIcon, Row, ScoreIcon, SettingsIcon, SlashIcon, Table, Tbody, Th, Thead, ToolsIcon, TraceIcon, TsIcon, Txt, TxtCell, UnitCell, VNextWorkflowGraph, VNextWorkflowTrigger, VariablesIcon, WorkflowCoinIcon, WorkflowGraph, WorkflowIcon, WorkflowRunContext, WorkflowRunProvider, WorkflowTraces, WorkflowTrigger };
|
|
8884
|
+
export { AgentChat, AgentCoinIcon, AgentContext, AgentEvals, AgentIcon, AgentProvider, AgentTraces, AiIcon, ApiIcon, Badge$1 as Badge, BranchIcon, Breadcrumb, Button, Cell, CheckIcon, ChevronIcon, CommitIcon, CrossIcon, Crumb, DarkLogo, DataTable, DateTimeCell, DbIcon, DebugIcon, DeploymentIcon, DividerIcon, DocsIcon, DynamicForm, EntryCell, EnvIcon, EvaluatorCoinIcon, FiltersIcon, GithubCoinIcon, GithubIcon, GoogleIcon, Header, HeaderAction, HeaderGroup, HeaderTitle, HomeIcon, Icon, InfoIcon, JudgeIcon, LatencyIcon, LogsIcon, MastraResizablePanel, MemoryIcon, NetworkChat, NetworkContext, NetworkProvider, OpenAIIcon, PromptIcon, RepoIcon, Row, ScoreIcon, SettingsIcon, SlashIcon, Table, Tbody, Th, Thead, ToolsIcon, TraceIcon, TsIcon, Txt, TxtCell, UnitCell, VNextWorkflowGraph, VNextWorkflowTrigger, VariablesIcon, WorkflowCoinIcon, WorkflowGraph, WorkflowIcon, WorkflowRunContext, WorkflowRunProvider, WorkflowTraces, WorkflowTrigger };
|
|
8890
8885
|
//# sourceMappingURL=index.es.js.map
|