@mastra/playground-ui 7.0.0-beta.24 → 7.0.0-beta.25
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 +63 -0
- package/dist/index.cjs.js +542 -26
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +536 -28
- package/dist/index.es.js.map +1 -1
- package/dist/src/domains/agents/components/agent-metadata/agent-metadata.d.ts +11 -0
- package/dist/src/domains/processors/components/index.d.ts +2 -0
- package/dist/src/domains/processors/components/processor-panel.d.ts +8 -0
- package/dist/src/domains/processors/components/processor-table/columns.d.ts +12 -0
- package/dist/src/domains/processors/components/processor-table/index.d.ts +2 -0
- package/dist/src/domains/processors/components/processor-table/processor-table.d.ts +7 -0
- package/dist/src/domains/processors/hooks/index.d.ts +1 -0
- package/dist/src/domains/processors/hooks/use-processors.d.ts +50 -0
- package/dist/src/domains/processors/index.d.ts +2 -0
- package/dist/src/domains/workflows/hooks/use-workflows.d.ts +3 -1
- package/dist/src/domains/workflows/workflow/workflow-input-data.d.ts +2 -1
- package/dist/src/ds/icons/ProcessorIcon.d.ts +2 -0
- package/dist/src/ds/icons/index.d.ts +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/lib/ai-ui/tools/badges/tool-approval-buttons.d.ts +2 -1
- package/dist/src/lib/framework.d.ts +2 -0
- package/dist/src/services/tool-call-provider.d.ts +5 -1
- package/package.json +10 -10
package/dist/index.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useAssistantState, useMessage, MessagePrimitive, ActionBarPrimitive, useComposerRuntime, useAttachment, ComposerPrimitive, AttachmentPrimitive, useComposer, ThreadPrimitive, CompositeAttachmentAdapter, SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, WebSpeechSynthesisAdapter, useExternalStoreRuntime, AssistantRuntimeProvider } from '@assistant-ui/react';
|
|
3
|
-
import { CheckIcon as CheckIcon$1, CopyIcon, ShieldAlert, ChevronDown, ChevronRight, RefreshCw, Tag, InfoIcon as InfoIcon$1, AlertCircle, TriangleAlert, ChevronUpIcon, CheckCircleIcon, X, Share2, Check, Clock as Clock$1, PlayCircle, Workflow, Layers, List, CalendarClock, Timer, CornerDownRight, GitBranch, Repeat, Repeat1, Network, TriangleAlertIcon, XIcon, CalendarIcon, CircleAlertIcon, Braces, ChevronDownIcon, Brackets, PlusIcon, TrashIcon, Plus, Loader2, Circle, EyeOffIcon, EyeIcon, PauseIcon, HourglassIcon, CircleDashed, Footprints, CircleCheck, CircleX, Minus, Maximize, AlertCircleIcon, CirclePause, StopCircle,
|
|
3
|
+
import { CheckIcon as CheckIcon$1, CopyIcon, ShieldAlert, ChevronDown, ChevronRight, RefreshCw, Tag, InfoIcon as InfoIcon$1, AlertCircle, TriangleAlert, ChevronUpIcon, CheckCircleIcon, X, Share2, Check, Clock as Clock$1, PlayCircle, Workflow, Layers, List, CalendarClock, Timer, CornerDownRight, GitBranch, Repeat, Repeat1, Network, TriangleAlertIcon, XIcon, CalendarIcon, CircleAlertIcon, Braces, ChevronDownIcon, Brackets, PlusIcon, TrashIcon, Plus, Loader2, Circle, EyeOffIcon, EyeIcon, PauseIcon, HourglassIcon, CircleDashed, Footprints, CircleCheck, CircleX, Minus, Maximize, AlertCircleIcon, CirclePause, StopCircle, SearchIcon, Cpu, ChevronsUpDown, Search, ArrowRight, ArrowLeft, BrainIcon, AudioLinesIcon, StopCircleIcon, FileText, CircleXIcon, Link, CloudUpload, Mic, ArrowUp, SaveIcon, Info, ExternalLink, ArrowLeftIcon, ArrowRightIcon, ChevronsRightIcon, AlignLeftIcon, AlignJustifyIcon, ArrowUpIcon, ArrowDownIcon, ChevronRightIcon, GaugeIcon, ChevronsLeftRightEllipsisIcon, CalculatorIcon, HashIcon, FileInputIcon, FileOutputIcon, ReceiptText, RotateCcw, GripVertical, RefreshCcwIcon, AlertTriangleIcon, Copy, NetworkIcon, WorkflowIcon as WorkflowIcon$1, PackageIcon, GitBranchIcon, PackageOpenIcon, OctagonXIcon, FrownIcon, CircleChevronUpIcon, CircleChevronDownIcon, FileIcon, ChevronsUpIcon, ChevronsDownIcon, TimerIcon, ChevronsLeftRightIcon, ChevronFirstIcon, ChevronLastIcon, CircleDashedIcon, ArrowRightToLineIcon, CoinsIcon, BracesIcon, CircleGaugeIcon, PanelTopIcon, ListTreeIcon, PanelLeftIcon, PanelRightIcon, KeyboardIcon, CircleSlash, Trash, Link2, MoveRight } from 'lucide-react';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import React__default, { forwardRef, memo, useState, useEffect, useRef, useCallback, useMemo, createContext, useContext, Fragment as Fragment$1, useId, useEffectEvent, Suspense, useLayoutEffect } from 'react';
|
|
6
6
|
import { S as Shadows, G as Glows, B as BorderColors, C as Colors, a as Sizes, F as FontSizes, L as LineHeights, b as BorderRadius, c as Spacings } from './spacings-Ddc7umGk.js';
|
|
@@ -4306,6 +4306,36 @@ const AgentNetworkCoinIcon = (props) => /* @__PURE__ */ jsxs("svg", { width: "12
|
|
|
4306
4306
|
) }) })
|
|
4307
4307
|
] });
|
|
4308
4308
|
|
|
4309
|
+
function ProcessorIcon(props) {
|
|
4310
|
+
return /* @__PURE__ */ jsxs(
|
|
4311
|
+
"svg",
|
|
4312
|
+
{
|
|
4313
|
+
width: "24",
|
|
4314
|
+
height: "24",
|
|
4315
|
+
viewBox: "0 0 24 24",
|
|
4316
|
+
fill: "none",
|
|
4317
|
+
stroke: "currentColor",
|
|
4318
|
+
strokeWidth: "2",
|
|
4319
|
+
strokeLinecap: "round",
|
|
4320
|
+
strokeLinejoin: "round",
|
|
4321
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4322
|
+
...props,
|
|
4323
|
+
children: [
|
|
4324
|
+
/* @__PURE__ */ jsx("rect", { width: "16", height: "16", x: "4", y: "4", rx: "2" }),
|
|
4325
|
+
/* @__PURE__ */ jsx("rect", { width: "6", height: "6", x: "9", y: "9", rx: "1" }),
|
|
4326
|
+
/* @__PURE__ */ jsx("path", { d: "M15 2v2" }),
|
|
4327
|
+
/* @__PURE__ */ jsx("path", { d: "M15 20v2" }),
|
|
4328
|
+
/* @__PURE__ */ jsx("path", { d: "M2 15h2" }),
|
|
4329
|
+
/* @__PURE__ */ jsx("path", { d: "M2 9h2" }),
|
|
4330
|
+
/* @__PURE__ */ jsx("path", { d: "M20 15h2" }),
|
|
4331
|
+
/* @__PURE__ */ jsx("path", { d: "M20 9h2" }),
|
|
4332
|
+
/* @__PURE__ */ jsx("path", { d: "M9 2v2" }),
|
|
4333
|
+
/* @__PURE__ */ jsx("path", { d: "M9 20v2" })
|
|
4334
|
+
]
|
|
4335
|
+
}
|
|
4336
|
+
);
|
|
4337
|
+
}
|
|
4338
|
+
|
|
4309
4339
|
const variantClasses$1 = {
|
|
4310
4340
|
warning: "bg-accent6Darker border-accent6/30 text-accent6",
|
|
4311
4341
|
destructive: "bg-accent2Darker border-accent2/30 text-accent2",
|
|
@@ -4726,6 +4756,8 @@ function ToolCallProvider({
|
|
|
4726
4756
|
children,
|
|
4727
4757
|
approveToolcall,
|
|
4728
4758
|
declineToolcall,
|
|
4759
|
+
approveToolcallGenerate,
|
|
4760
|
+
declineToolcallGenerate,
|
|
4729
4761
|
approveNetworkToolcall,
|
|
4730
4762
|
declineNetworkToolcall,
|
|
4731
4763
|
isRunning,
|
|
@@ -4738,6 +4770,8 @@ function ToolCallProvider({
|
|
|
4738
4770
|
value: {
|
|
4739
4771
|
approveToolcall,
|
|
4740
4772
|
declineToolcall,
|
|
4773
|
+
approveToolcallGenerate,
|
|
4774
|
+
declineToolcallGenerate,
|
|
4741
4775
|
approveNetworkToolcall,
|
|
4742
4776
|
declineNetworkToolcall,
|
|
4743
4777
|
isRunning,
|
|
@@ -4761,11 +4795,14 @@ const ToolApprovalButtons = ({
|
|
|
4761
4795
|
toolCallId,
|
|
4762
4796
|
toolApprovalMetadata,
|
|
4763
4797
|
toolName,
|
|
4764
|
-
isNetwork
|
|
4798
|
+
isNetwork,
|
|
4799
|
+
isGenerateMode
|
|
4765
4800
|
}) => {
|
|
4766
4801
|
const {
|
|
4767
4802
|
approveToolcall,
|
|
4768
4803
|
declineToolcall,
|
|
4804
|
+
approveToolcallGenerate,
|
|
4805
|
+
declineToolcallGenerate,
|
|
4769
4806
|
isRunning,
|
|
4770
4807
|
toolCallApprovals,
|
|
4771
4808
|
approveNetworkToolcall,
|
|
@@ -4775,6 +4812,8 @@ const ToolApprovalButtons = ({
|
|
|
4775
4812
|
const handleApprove = () => {
|
|
4776
4813
|
if (isNetwork) {
|
|
4777
4814
|
approveNetworkToolcall(toolName, toolApprovalMetadata?.runId);
|
|
4815
|
+
} else if (isGenerateMode) {
|
|
4816
|
+
approveToolcallGenerate(toolCallId);
|
|
4778
4817
|
} else {
|
|
4779
4818
|
approveToolcall(toolCallId);
|
|
4780
4819
|
}
|
|
@@ -4782,6 +4821,8 @@ const ToolApprovalButtons = ({
|
|
|
4782
4821
|
const handleDecline = () => {
|
|
4783
4822
|
if (isNetwork) {
|
|
4784
4823
|
declineNetworkToolcall(toolName, toolApprovalMetadata?.runId);
|
|
4824
|
+
} else if (isGenerateMode) {
|
|
4825
|
+
declineToolcallGenerate(toolCallId);
|
|
4785
4826
|
} else {
|
|
4786
4827
|
declineToolcall(toolCallId);
|
|
4787
4828
|
}
|
|
@@ -4883,7 +4924,8 @@ const ToolBadge = ({
|
|
|
4883
4924
|
toolCallId,
|
|
4884
4925
|
toolApprovalMetadata,
|
|
4885
4926
|
toolName,
|
|
4886
|
-
isNetwork
|
|
4927
|
+
isNetwork,
|
|
4928
|
+
isGenerateMode: metadata?.mode === "generate"
|
|
4887
4929
|
}
|
|
4888
4930
|
)
|
|
4889
4931
|
] })
|
|
@@ -4961,7 +5003,10 @@ const useWorkflows = () => {
|
|
|
4961
5003
|
const { requestContext } = usePlaygroundStore();
|
|
4962
5004
|
return useQuery({
|
|
4963
5005
|
queryKey: ["workflows", requestContext],
|
|
4964
|
-
queryFn: () =>
|
|
5006
|
+
queryFn: async () => {
|
|
5007
|
+
const workflows = await client.listWorkflows(requestContext);
|
|
5008
|
+
return Object.fromEntries(Object.entries(workflows).filter(([_, workflow]) => !workflow.isProcessorWorkflow));
|
|
5009
|
+
}
|
|
4965
5010
|
});
|
|
4966
5011
|
};
|
|
4967
5012
|
|
|
@@ -8137,9 +8182,10 @@ const WorkflowInputData = ({
|
|
|
8137
8182
|
isSubmitLoading,
|
|
8138
8183
|
submitButtonLabel,
|
|
8139
8184
|
onSubmit,
|
|
8140
|
-
children
|
|
8185
|
+
children,
|
|
8186
|
+
isProcessorWorkflow
|
|
8141
8187
|
}) => {
|
|
8142
|
-
const [type, setType] = useState("form");
|
|
8188
|
+
const [type, setType] = useState(isProcessorWorkflow ? "simple" : "form");
|
|
8143
8189
|
return /* @__PURE__ */ jsxs("div", { children: [
|
|
8144
8190
|
/* @__PURE__ */ jsx(
|
|
8145
8191
|
RadioGroup,
|
|
@@ -8149,6 +8195,10 @@ const WorkflowInputData = ({
|
|
|
8149
8195
|
onValueChange: (value) => setType(value),
|
|
8150
8196
|
className: "pb-4",
|
|
8151
8197
|
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row gap-4", children: [
|
|
8198
|
+
isProcessorWorkflow && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
8199
|
+
/* @__PURE__ */ jsx(RadioGroupItem, { value: "simple", id: "simple" }),
|
|
8200
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "simple", className: "!text-neutral3 text-ui-sm", children: "Simple" })
|
|
8201
|
+
] }),
|
|
8152
8202
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
8153
8203
|
/* @__PURE__ */ jsx(RadioGroupItem, { value: "form", id: "form" }),
|
|
8154
8204
|
/* @__PURE__ */ jsx(Label, { htmlFor: "form", className: "!text-neutral3 text-ui-sm", children: "Form" })
|
|
@@ -8166,7 +8216,18 @@ const WorkflowInputData = ({
|
|
|
8166
8216
|
className: cn({
|
|
8167
8217
|
"opacity-50 pointer-events-none": isSubmitLoading
|
|
8168
8218
|
}),
|
|
8169
|
-
children: type === "
|
|
8219
|
+
children: type === "simple" && isProcessorWorkflow ? /* @__PURE__ */ jsx(
|
|
8220
|
+
SimpleProcessorInput,
|
|
8221
|
+
{
|
|
8222
|
+
schema,
|
|
8223
|
+
defaultValues,
|
|
8224
|
+
isSubmitLoading,
|
|
8225
|
+
submitButtonLabel,
|
|
8226
|
+
onSubmit,
|
|
8227
|
+
withoutSubmit,
|
|
8228
|
+
children
|
|
8229
|
+
}
|
|
8230
|
+
) : type === "form" ? /* @__PURE__ */ jsx(
|
|
8170
8231
|
DynamicForm,
|
|
8171
8232
|
{
|
|
8172
8233
|
schema,
|
|
@@ -8235,6 +8296,87 @@ const JSONInput = ({
|
|
|
8235
8296
|
withoutSubmit ? null : /* @__PURE__ */ jsx(Button, { variant: "light", onClick: handleSubmit, className: "w-full", size: "lg", children: isSubmitLoading ? /* @__PURE__ */ jsx(Loader2, { className: "animate-spin" }) : submitButtonLabel })
|
|
8236
8297
|
] });
|
|
8237
8298
|
};
|
|
8299
|
+
const PROCESSOR_PHASES = [
|
|
8300
|
+
{ value: "input", label: "Input - Process input messages before LLM" },
|
|
8301
|
+
{ value: "inputStep", label: "Input Step - Process at each agentic loop step" },
|
|
8302
|
+
{ value: "outputStream", label: "Output Stream - Process streaming chunks" },
|
|
8303
|
+
{ value: "outputResult", label: "Output Result - Process complete output" },
|
|
8304
|
+
{ value: "outputStep", label: "Output Step - Process after each LLM response" }
|
|
8305
|
+
];
|
|
8306
|
+
const SimpleProcessorInput = ({
|
|
8307
|
+
schema,
|
|
8308
|
+
defaultValues,
|
|
8309
|
+
isSubmitLoading,
|
|
8310
|
+
submitButtonLabel,
|
|
8311
|
+
onSubmit,
|
|
8312
|
+
withoutSubmit,
|
|
8313
|
+
children
|
|
8314
|
+
}) => {
|
|
8315
|
+
const [message, setMessage] = useState("Hello, this is a test message.");
|
|
8316
|
+
const [phase, setPhase] = useState("input");
|
|
8317
|
+
const [errors, setErrors] = useState([]);
|
|
8318
|
+
const handleSubmit = () => {
|
|
8319
|
+
setErrors([]);
|
|
8320
|
+
const isOutputPhase = phase === "outputStep" || phase === "outputResult";
|
|
8321
|
+
const messageRole = isOutputPhase ? "assistant" : "user";
|
|
8322
|
+
const data = {
|
|
8323
|
+
messages: [
|
|
8324
|
+
{
|
|
8325
|
+
id: crypto.randomUUID(),
|
|
8326
|
+
role: messageRole,
|
|
8327
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
8328
|
+
content: {
|
|
8329
|
+
format: 2,
|
|
8330
|
+
parts: [{ type: "text", text: message }]
|
|
8331
|
+
}
|
|
8332
|
+
}
|
|
8333
|
+
],
|
|
8334
|
+
phase
|
|
8335
|
+
};
|
|
8336
|
+
try {
|
|
8337
|
+
const result = schema.safeParse(data);
|
|
8338
|
+
if (!result.success) {
|
|
8339
|
+
setErrors(result.error.issues.map((e) => `[${e.path.join(".")}] ${e.message}`));
|
|
8340
|
+
} else {
|
|
8341
|
+
onSubmit(result.data);
|
|
8342
|
+
}
|
|
8343
|
+
} catch (e) {
|
|
8344
|
+
setErrors(["Error processing input"]);
|
|
8345
|
+
}
|
|
8346
|
+
};
|
|
8347
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
8348
|
+
errors.length > 0 && /* @__PURE__ */ jsxs("div", { className: "border border-accent2 rounded-lg p-2", children: [
|
|
8349
|
+
/* @__PURE__ */ jsxs(Txt, { as: "p", variant: "ui-md", className: "text-accent2 font-semibold", children: [
|
|
8350
|
+
errors.length,
|
|
8351
|
+
" errors found"
|
|
8352
|
+
] }),
|
|
8353
|
+
/* @__PURE__ */ jsx("ul", { className: "list-disc list-inside", children: errors.map((error, idx) => /* @__PURE__ */ jsx("li", { className: "text-ui-sm text-accent2", children: error }, idx)) })
|
|
8354
|
+
] }),
|
|
8355
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
8356
|
+
/* @__PURE__ */ jsx(Txt, { as: "label", variant: "ui-sm", className: "text-neutral3", children: "Phase" }),
|
|
8357
|
+
/* @__PURE__ */ jsxs(Select, { value: phase, onValueChange: setPhase, children: [
|
|
8358
|
+
/* @__PURE__ */ jsx(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select phase" }) }),
|
|
8359
|
+
/* @__PURE__ */ jsx(SelectContent, { children: PROCESSOR_PHASES.map((p) => /* @__PURE__ */ jsx(SelectItem, { value: p.value, children: p.value }, p.value)) })
|
|
8360
|
+
] }),
|
|
8361
|
+
/* @__PURE__ */ jsx(Txt, { variant: "ui-xs", className: "text-icon4", children: PROCESSOR_PHASES.find((p) => p.value === phase)?.label })
|
|
8362
|
+
] }),
|
|
8363
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
8364
|
+
/* @__PURE__ */ jsx(Txt, { as: "label", variant: "ui-sm", className: "text-neutral3", children: "Test Message" }),
|
|
8365
|
+
/* @__PURE__ */ jsx(
|
|
8366
|
+
"textarea",
|
|
8367
|
+
{
|
|
8368
|
+
value: message,
|
|
8369
|
+
onChange: (e) => setMessage(e.target.value),
|
|
8370
|
+
placeholder: "Enter a test message...",
|
|
8371
|
+
rows: 4,
|
|
8372
|
+
className: "w-full bg-transparent border border-border1 rounded-md p-3 text-ui-sm text-neutral6 placeholder:text-neutral3 focus:outline-none focus:ring-2 focus:ring-accent1"
|
|
8373
|
+
}
|
|
8374
|
+
)
|
|
8375
|
+
] }),
|
|
8376
|
+
children,
|
|
8377
|
+
withoutSubmit ? null : /* @__PURE__ */ jsx(Button, { variant: "light", onClick: handleSubmit, className: "w-full", size: "lg", children: isSubmitLoading ? /* @__PURE__ */ jsx(Loader2, { className: "animate-spin" }) : submitButtonLabel })
|
|
8378
|
+
] });
|
|
8379
|
+
};
|
|
8238
8380
|
|
|
8239
8381
|
const formatJSON = async (code) => {
|
|
8240
8382
|
const formatted = await prettier.format(code, {
|
|
@@ -9615,7 +9757,8 @@ function WorkflowTrigger({
|
|
|
9615
9757
|
setPayload(data);
|
|
9616
9758
|
handleExecuteWorkflow(data);
|
|
9617
9759
|
},
|
|
9618
|
-
withoutSubmit: !!paramsRunId
|
|
9760
|
+
withoutSubmit: !!paramsRunId,
|
|
9761
|
+
isProcessorWorkflow: workflow?.isProcessorWorkflow
|
|
9619
9762
|
}
|
|
9620
9763
|
) : !!paramsRunId ? null : /* @__PURE__ */ jsx(
|
|
9621
9764
|
Button,
|
|
@@ -10046,6 +10189,8 @@ const LinkComponentContext = createContext({
|
|
|
10046
10189
|
networkThreadLink: () => "",
|
|
10047
10190
|
scorerLink: () => "",
|
|
10048
10191
|
toolLink: () => "",
|
|
10192
|
+
processorsLink: () => "",
|
|
10193
|
+
processorLink: () => "",
|
|
10049
10194
|
mcpServerLink: () => "",
|
|
10050
10195
|
mcpServerToolLink: () => "",
|
|
10051
10196
|
workflowRunLink: () => ""
|
|
@@ -10062,7 +10207,7 @@ const useLinkComponent = () => {
|
|
|
10062
10207
|
return ctx;
|
|
10063
10208
|
};
|
|
10064
10209
|
|
|
10065
|
-
const columns$
|
|
10210
|
+
const columns$5 = [
|
|
10066
10211
|
{
|
|
10067
10212
|
id: "name",
|
|
10068
10213
|
header: "Name",
|
|
@@ -10072,10 +10217,7 @@ const columns$4 = [
|
|
|
10072
10217
|
return /* @__PURE__ */ jsx(
|
|
10073
10218
|
EntryCell,
|
|
10074
10219
|
{
|
|
10075
|
-
name: /* @__PURE__ */
|
|
10076
|
-
/* @__PURE__ */ jsx(Link, { href: paths.workflowLink(row.original.id), children: row.original.name }),
|
|
10077
|
-
workflow.isProcessorWorkflow && /* @__PURE__ */ jsx(Badge, { icon: /* @__PURE__ */ jsx(Cpu, { className: "h-3 w-3" }), className: "!h-badge-sm bg-violet-500/20 text-violet-400", children: "Processor" })
|
|
10078
|
-
] }),
|
|
10220
|
+
name: /* @__PURE__ */ jsx(Link, { href: paths.workflowLink(row.original.id), children: row.original.name }),
|
|
10079
10221
|
description: workflow.description,
|
|
10080
10222
|
meta: void 0
|
|
10081
10223
|
}
|
|
@@ -10188,7 +10330,7 @@ function WorkflowTable({ workflows, isLoading }) {
|
|
|
10188
10330
|
}, [workflows]);
|
|
10189
10331
|
const table = useReactTable({
|
|
10190
10332
|
data: workflowData,
|
|
10191
|
-
columns: columns$
|
|
10333
|
+
columns: columns$5,
|
|
10192
10334
|
getCoreRowModel: getCoreRowModel()
|
|
10193
10335
|
});
|
|
10194
10336
|
const ths = table.getHeaderGroups()[0];
|
|
@@ -11081,7 +11223,8 @@ const WorkflowBadge = ({
|
|
|
11081
11223
|
toolCallId,
|
|
11082
11224
|
toolApprovalMetadata,
|
|
11083
11225
|
toolName,
|
|
11084
|
-
isNetwork
|
|
11226
|
+
isNetwork,
|
|
11227
|
+
isGenerateMode: metadata?.mode === "generate"
|
|
11085
11228
|
}
|
|
11086
11229
|
)
|
|
11087
11230
|
]
|
|
@@ -11185,7 +11328,8 @@ const AgentBadge = ({
|
|
|
11185
11328
|
toolCallId,
|
|
11186
11329
|
toolApprovalMetadata,
|
|
11187
11330
|
toolName,
|
|
11188
|
-
isNetwork
|
|
11331
|
+
isNetwork,
|
|
11332
|
+
isGenerateMode: metadata?.mode === "generate"
|
|
11189
11333
|
}
|
|
11190
11334
|
)
|
|
11191
11335
|
]
|
|
@@ -11253,8 +11397,8 @@ const ToolFallbackInner = ({ toolName, result, args, metadata, toolCallId, ...pr
|
|
|
11253
11397
|
const isNetwork = metadata?.mode === "network";
|
|
11254
11398
|
const agentToolName = toolName.startsWith("agent-") ? toolName.substring("agent-".length) : toolName;
|
|
11255
11399
|
const workflowToolName = toolName.startsWith("workflow-") ? toolName.substring("workflow-".length) : toolName;
|
|
11256
|
-
const requireApprovalMetadata = (metadata?.mode === "stream" || metadata?.mode === "network") && metadata?.requireApprovalMetadata;
|
|
11257
|
-
const suspendedTools = (metadata?.mode === "stream" || metadata?.mode === "network") && metadata?.suspendedTools;
|
|
11400
|
+
const requireApprovalMetadata = (metadata?.mode === "stream" || metadata?.mode === "network" || metadata?.mode === "generate") && metadata?.requireApprovalMetadata;
|
|
11401
|
+
const suspendedTools = (metadata?.mode === "stream" || metadata?.mode === "network" || metadata?.mode === "generate") && metadata?.suspendedTools;
|
|
11258
11402
|
const toolApprovalMetadata = requireApprovalMetadata ? requireApprovalMetadata?.[toolName] ?? requireApprovalMetadata?.[toolCallId] : void 0;
|
|
11259
11403
|
const suspendedToolMetadata = suspendedTools ? suspendedTools?.[toolName] : void 0;
|
|
11260
11404
|
const toolCalled = metadata?.mode === "network" && metadata?.hasMoreMessages ? true : void 0;
|
|
@@ -13000,6 +13144,8 @@ function MastraRuntimeProvider({
|
|
|
13000
13144
|
setMessages,
|
|
13001
13145
|
approveToolCall,
|
|
13002
13146
|
declineToolCall,
|
|
13147
|
+
approveToolCallGenerate,
|
|
13148
|
+
declineToolCallGenerate,
|
|
13003
13149
|
toolCallApprovals,
|
|
13004
13150
|
approveNetworkToolCall,
|
|
13005
13151
|
declineNetworkToolCall,
|
|
@@ -13451,6 +13597,8 @@ function MastraRuntimeProvider({
|
|
|
13451
13597
|
{
|
|
13452
13598
|
approveToolcall: approveToolCall,
|
|
13453
13599
|
declineToolcall: declineToolCall,
|
|
13600
|
+
approveToolcallGenerate: approveToolCallGenerate,
|
|
13601
|
+
declineToolcallGenerate: declineToolCallGenerate,
|
|
13454
13602
|
isRunning: isRunningStream,
|
|
13455
13603
|
toolCallApprovals,
|
|
13456
13604
|
approveNetworkToolcall: approveNetworkToolCall,
|
|
@@ -14054,7 +14202,7 @@ const AgentSettings = ({ agentId }) => {
|
|
|
14054
14202
|
] });
|
|
14055
14203
|
};
|
|
14056
14204
|
|
|
14057
|
-
const NameCell$
|
|
14205
|
+
const NameCell$4 = ({ row }) => {
|
|
14058
14206
|
const { Link, paths } = useLinkComponent();
|
|
14059
14207
|
return /* @__PURE__ */ jsx(
|
|
14060
14208
|
EntryCell,
|
|
@@ -14064,11 +14212,11 @@ const NameCell$3 = ({ row }) => {
|
|
|
14064
14212
|
}
|
|
14065
14213
|
);
|
|
14066
14214
|
};
|
|
14067
|
-
const columns$
|
|
14215
|
+
const columns$4 = [
|
|
14068
14216
|
{
|
|
14069
14217
|
header: "Name",
|
|
14070
14218
|
accessorKey: "name",
|
|
14071
|
-
cell: NameCell$
|
|
14219
|
+
cell: NameCell$4
|
|
14072
14220
|
},
|
|
14073
14221
|
{
|
|
14074
14222
|
header: "Model",
|
|
@@ -14110,7 +14258,9 @@ const columns$3 = [
|
|
|
14110
14258
|
const agentsCount = Object.keys(agent.agents || {}).length;
|
|
14111
14259
|
const toolsCount = Object.keys(agent.tools || {}).length;
|
|
14112
14260
|
const workflowsCount = Object.keys(agent.workflows || {}).length;
|
|
14113
|
-
|
|
14261
|
+
const inputProcessorsCount = (agent.inputProcessors || []).length;
|
|
14262
|
+
const outputProcessorsCount = (agent.outputProcessors || []).length;
|
|
14263
|
+
return /* @__PURE__ */ jsx(Cell, { children: /* @__PURE__ */ jsxs("span", { className: "flex flex-row gap-2 w-full items-center flex-wrap", children: [
|
|
14114
14264
|
/* @__PURE__ */ jsxs(Badge, { variant: "default", icon: /* @__PURE__ */ jsx(AgentIcon, { className: "text-accent1" }), children: [
|
|
14115
14265
|
agentsCount,
|
|
14116
14266
|
" agent",
|
|
@@ -14125,6 +14275,22 @@ const columns$3 = [
|
|
|
14125
14275
|
workflowsCount,
|
|
14126
14276
|
" workflow",
|
|
14127
14277
|
workflowsCount > 1 ? "s" : ""
|
|
14278
|
+
] }),
|
|
14279
|
+
(inputProcessorsCount > 0 || outputProcessorsCount > 0) && /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
14280
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Badge, { variant: "default", icon: /* @__PURE__ */ jsx(ProcessorIcon, { className: "text-accent4" }) }) }),
|
|
14281
|
+
/* @__PURE__ */ jsxs(TooltipContent, { className: "flex flex-col gap-1", children: [
|
|
14282
|
+
/* @__PURE__ */ jsx(
|
|
14283
|
+
"a",
|
|
14284
|
+
{
|
|
14285
|
+
href: "https://mastra.ai/docs/agents/processors",
|
|
14286
|
+
target: "_blank",
|
|
14287
|
+
rel: "noopener noreferrer",
|
|
14288
|
+
className: "text-accent1 hover:underline",
|
|
14289
|
+
children: "Processors"
|
|
14290
|
+
}
|
|
14291
|
+
),
|
|
14292
|
+
/* @__PURE__ */ jsx("span", { className: "text-icon3", children: [inputProcessorsCount > 0 && "input", outputProcessorsCount > 0 && "output"].filter(Boolean).join(", ") })
|
|
14293
|
+
] })
|
|
14128
14294
|
] })
|
|
14129
14295
|
] }) });
|
|
14130
14296
|
}
|
|
@@ -14137,7 +14303,7 @@ function AgentsTable({ agents, isLoading }) {
|
|
|
14137
14303
|
const projectData = useMemo(() => Object.values(agents), [agents]);
|
|
14138
14304
|
const table = useReactTable({
|
|
14139
14305
|
data: projectData,
|
|
14140
|
-
columns: columns$
|
|
14306
|
+
columns: columns$4,
|
|
14141
14307
|
getCoreRowModel: getCoreRowModel()
|
|
14142
14308
|
});
|
|
14143
14309
|
const ths = table.getHeaderGroups()[0];
|
|
@@ -15183,7 +15349,7 @@ function ScorerCombobox({
|
|
|
15183
15349
|
);
|
|
15184
15350
|
}
|
|
15185
15351
|
|
|
15186
|
-
const NameCell$
|
|
15352
|
+
const NameCell$3 = ({ row }) => {
|
|
15187
15353
|
const { Link, paths } = useLinkComponent();
|
|
15188
15354
|
const scorer = row.original;
|
|
15189
15355
|
return /* @__PURE__ */ jsx(
|
|
@@ -15194,11 +15360,11 @@ const NameCell$2 = ({ row }) => {
|
|
|
15194
15360
|
}
|
|
15195
15361
|
);
|
|
15196
15362
|
};
|
|
15197
|
-
const columns$
|
|
15363
|
+
const columns$3 = [
|
|
15198
15364
|
{
|
|
15199
15365
|
header: "Name",
|
|
15200
15366
|
accessorKey: "name",
|
|
15201
|
-
cell: NameCell$
|
|
15367
|
+
cell: NameCell$3
|
|
15202
15368
|
}
|
|
15203
15369
|
];
|
|
15204
15370
|
|
|
@@ -15217,7 +15383,7 @@ function ScorersTable({ scorers, isLoading }) {
|
|
|
15217
15383
|
);
|
|
15218
15384
|
const table = useReactTable({
|
|
15219
15385
|
data: scorersData,
|
|
15220
|
-
columns: columns$
|
|
15386
|
+
columns: columns$3,
|
|
15221
15387
|
getCoreRowModel: getCoreRowModel()
|
|
15222
15388
|
});
|
|
15223
15389
|
const ths = table.getHeaderGroups()[0];
|
|
@@ -16157,6 +16323,8 @@ const AgentMetadata = ({ agentId }) => {
|
|
|
16157
16323
|
const tools = Object.keys(agentTools).map((key) => agentTools[key]);
|
|
16158
16324
|
const agentWorkflows = agent.workflows ?? {};
|
|
16159
16325
|
const workflows = Object.keys(agentWorkflows).map((key) => ({ id: key, ...agentWorkflows[key] }));
|
|
16326
|
+
const inputProcessors = agent.inputProcessors ?? [];
|
|
16327
|
+
const outputProcessors = agent.outputProcessors ?? [];
|
|
16160
16328
|
return /* @__PURE__ */ jsxs(AgentMetadataWrapper, { children: [
|
|
16161
16329
|
agent?.description && /* @__PURE__ */ jsx(AgentMetadataSection, { title: "Description", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-neutral6", children: agent.description }) }),
|
|
16162
16330
|
agent.modelList ? /* @__PURE__ */ jsx(AgentMetadataSection, { title: "Models", children: /* @__PURE__ */ jsx(
|
|
@@ -16250,6 +16418,17 @@ const AgentMetadata = ({ agentId }) => {
|
|
|
16250
16418
|
children: /* @__PURE__ */ jsx(AgentMetadataWorkflowList, { workflows })
|
|
16251
16419
|
}
|
|
16252
16420
|
),
|
|
16421
|
+
(inputProcessors.length > 0 || outputProcessors.length > 0) && /* @__PURE__ */ jsx(
|
|
16422
|
+
AgentMetadataSection,
|
|
16423
|
+
{
|
|
16424
|
+
title: "Processors",
|
|
16425
|
+
hint: {
|
|
16426
|
+
link: "https://mastra.ai/docs/agents/processors",
|
|
16427
|
+
title: "Processors documentation"
|
|
16428
|
+
},
|
|
16429
|
+
children: /* @__PURE__ */ jsx(AgentMetadataCombinedProcessorList, { inputProcessors, outputProcessors })
|
|
16430
|
+
}
|
|
16431
|
+
),
|
|
16253
16432
|
/* @__PURE__ */ jsx(AgentMetadataSection, { title: "Scorers", children: /* @__PURE__ */ jsx(AgentMetadataScorerList, { entityId: agent.name, entityType: "AGENT" }) }),
|
|
16254
16433
|
/* @__PURE__ */ jsx(AgentMetadataSection, { title: "System Prompt", children: /* @__PURE__ */ jsx(PromptEnhancer, { agentId }) })
|
|
16255
16434
|
] });
|
|
@@ -16286,6 +16465,21 @@ const AgentMetadataScorerList = ({ entityId, entityType }) => {
|
|
|
16286
16465
|
}
|
|
16287
16466
|
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-neutral3" }), children: scorer.scorer.config.name }) }) }, scorer.id)) });
|
|
16288
16467
|
};
|
|
16468
|
+
const AgentMetadataCombinedProcessorList = ({
|
|
16469
|
+
inputProcessors,
|
|
16470
|
+
outputProcessors
|
|
16471
|
+
}) => {
|
|
16472
|
+
const { Link, paths } = useLinkComponent();
|
|
16473
|
+
if (inputProcessors.length === 0 && outputProcessors.length === 0) {
|
|
16474
|
+
return /* @__PURE__ */ jsx(AgentMetadataListEmpty, { children: "No processors" });
|
|
16475
|
+
}
|
|
16476
|
+
const inputProcessorId = inputProcessors[0]?.id;
|
|
16477
|
+
const outputProcessorId = outputProcessors[0]?.id;
|
|
16478
|
+
return /* @__PURE__ */ jsxs(AgentMetadataList, { children: [
|
|
16479
|
+
inputProcessors.length > 0 && inputProcessorId && /* @__PURE__ */ jsx(AgentMetadataListItem, { children: /* @__PURE__ */ jsx(Link, { href: `${paths.workflowLink(inputProcessorId)}/graph`, "data-testid": "processor-badge", children: /* @__PURE__ */ jsx(Badge, { icon: /* @__PURE__ */ jsx(ProcessorIcon, { className: "text-accent4" }), children: "input" }) }) }),
|
|
16480
|
+
outputProcessors.length > 0 && outputProcessorId && /* @__PURE__ */ jsx(AgentMetadataListItem, { children: /* @__PURE__ */ jsx(Link, { href: `${paths.workflowLink(outputProcessorId)}/graph`, "data-testid": "processor-badge", children: /* @__PURE__ */ jsx(Badge, { icon: /* @__PURE__ */ jsx(ProcessorIcon, { className: "text-accent5" }), children: "output" }) }) })
|
|
16481
|
+
] });
|
|
16482
|
+
};
|
|
16289
16483
|
|
|
16290
16484
|
const AgentEntityHeader = ({ agentId }) => {
|
|
16291
16485
|
const { data: agent, isLoading } = useAgent(agentId);
|
|
@@ -17485,6 +17679,320 @@ const AgentLayout = ({ agentId, children, leftSlot, rightSlot }) => {
|
|
|
17485
17679
|
] });
|
|
17486
17680
|
};
|
|
17487
17681
|
|
|
17682
|
+
const NameCell$2 = ({ row }) => {
|
|
17683
|
+
const { Link, paths } = useLinkComponent();
|
|
17684
|
+
const processor = row.original;
|
|
17685
|
+
return /* @__PURE__ */ jsx(
|
|
17686
|
+
EntryCell,
|
|
17687
|
+
{
|
|
17688
|
+
name: /* @__PURE__ */ jsx(Link, { className: "w-full space-y-0", href: paths.processorLink(processor.id), children: processor.name || processor.id }),
|
|
17689
|
+
description: processor.description
|
|
17690
|
+
}
|
|
17691
|
+
);
|
|
17692
|
+
};
|
|
17693
|
+
const PhasesCell = ({ row }) => {
|
|
17694
|
+
const processor = row.original;
|
|
17695
|
+
const phases = processor.phases || [];
|
|
17696
|
+
const phaseLabels = {
|
|
17697
|
+
input: "Input",
|
|
17698
|
+
inputStep: "Input Step",
|
|
17699
|
+
outputStream: "Output Stream",
|
|
17700
|
+
outputResult: "Output Result",
|
|
17701
|
+
outputStep: "Output Step"
|
|
17702
|
+
};
|
|
17703
|
+
return /* @__PURE__ */ jsx(Cell, { children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: phases.map((phase) => /* @__PURE__ */ jsx(Badge, { variant: "default", children: phaseLabels[phase] || phase }, phase)) }) });
|
|
17704
|
+
};
|
|
17705
|
+
const AgentsCell = ({ row }) => {
|
|
17706
|
+
const processor = row.original;
|
|
17707
|
+
const agentsCount = processor.agentIds?.length || 0;
|
|
17708
|
+
return /* @__PURE__ */ jsx(Cell, { children: /* @__PURE__ */ jsxs(Badge, { variant: "default", icon: /* @__PURE__ */ jsx(AgentIcon, { className: "text-accent1" }), children: [
|
|
17709
|
+
agentsCount,
|
|
17710
|
+
" agent",
|
|
17711
|
+
agentsCount !== 1 ? "s" : ""
|
|
17712
|
+
] }) });
|
|
17713
|
+
};
|
|
17714
|
+
const columns$2 = [
|
|
17715
|
+
{
|
|
17716
|
+
header: "Name",
|
|
17717
|
+
accessorKey: "name",
|
|
17718
|
+
cell: NameCell$2
|
|
17719
|
+
},
|
|
17720
|
+
{
|
|
17721
|
+
header: "Phases",
|
|
17722
|
+
accessorKey: "phases",
|
|
17723
|
+
cell: PhasesCell
|
|
17724
|
+
},
|
|
17725
|
+
{
|
|
17726
|
+
header: "Used by",
|
|
17727
|
+
accessorKey: "agentIds",
|
|
17728
|
+
cell: AgentsCell
|
|
17729
|
+
}
|
|
17730
|
+
];
|
|
17731
|
+
|
|
17732
|
+
function ProcessorTable({ processors, isLoading }) {
|
|
17733
|
+
const [search, setSearch] = useState("");
|
|
17734
|
+
const { navigate, paths } = useLinkComponent();
|
|
17735
|
+
const processorData = useMemo(() => {
|
|
17736
|
+
return Object.values(processors ?? {}).filter((p) => p.phases && p.phases.length > 0);
|
|
17737
|
+
}, [processors]);
|
|
17738
|
+
const table = useReactTable({
|
|
17739
|
+
data: processorData,
|
|
17740
|
+
columns: columns$2,
|
|
17741
|
+
getCoreRowModel: getCoreRowModel()
|
|
17742
|
+
});
|
|
17743
|
+
const ths = table.getHeaderGroups()[0];
|
|
17744
|
+
const rows = table.getRowModel().rows.concat();
|
|
17745
|
+
if (rows.length === 0 && !isLoading) {
|
|
17746
|
+
return /* @__PURE__ */ jsx(EmptyProcessorsTable, {});
|
|
17747
|
+
}
|
|
17748
|
+
const filteredRows = rows.filter((row) => {
|
|
17749
|
+
const id = row.original.id.toLowerCase();
|
|
17750
|
+
const name = (row.original.name || "").toLowerCase();
|
|
17751
|
+
const searchLower = search.toLowerCase();
|
|
17752
|
+
return id.includes(searchLower) || name.includes(searchLower);
|
|
17753
|
+
});
|
|
17754
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
17755
|
+
/* @__PURE__ */ jsx(SearchbarWrapper, { children: /* @__PURE__ */ jsx(Searchbar, { onSearch: setSearch, label: "Search processors", placeholder: "Search processors" }) }),
|
|
17756
|
+
isLoading ? /* @__PURE__ */ jsx(ProcessorTableSkeleton, {}) : /* @__PURE__ */ jsx(ScrollableContainer, { children: /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsxs(Table, { children: [
|
|
17757
|
+
/* @__PURE__ */ jsx(Thead, { className: "sticky top-0", children: ths.headers.map((header) => /* @__PURE__ */ jsx(Th, { style: { width: header.column.getSize() ?? "auto" }, children: flexRender(header.column.columnDef.header, header.getContext()) }, header.id)) }),
|
|
17758
|
+
/* @__PURE__ */ jsx(Tbody, { children: filteredRows.map((row) => {
|
|
17759
|
+
return /* @__PURE__ */ jsx(
|
|
17760
|
+
Row,
|
|
17761
|
+
{
|
|
17762
|
+
onClick: () => {
|
|
17763
|
+
if (row.original.isWorkflow) {
|
|
17764
|
+
navigate(paths.workflowLink(row.original.id) + "/graph");
|
|
17765
|
+
} else {
|
|
17766
|
+
navigate(paths.processorLink(row.original.id));
|
|
17767
|
+
}
|
|
17768
|
+
},
|
|
17769
|
+
children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(React__default.Fragment, { children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id))
|
|
17770
|
+
},
|
|
17771
|
+
row.id
|
|
17772
|
+
);
|
|
17773
|
+
}) })
|
|
17774
|
+
] }) }) })
|
|
17775
|
+
] });
|
|
17776
|
+
}
|
|
17777
|
+
const ProcessorTableSkeleton = () => /* @__PURE__ */ jsxs(Table, { children: [
|
|
17778
|
+
/* @__PURE__ */ jsxs(Thead, { children: [
|
|
17779
|
+
/* @__PURE__ */ jsx(Th, { children: "Name" }),
|
|
17780
|
+
/* @__PURE__ */ jsx(Th, { children: "Phases" }),
|
|
17781
|
+
/* @__PURE__ */ jsx(Th, { children: "Used by" })
|
|
17782
|
+
] }),
|
|
17783
|
+
/* @__PURE__ */ jsx(Tbody, { children: Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ jsxs(Row, { children: [
|
|
17784
|
+
/* @__PURE__ */ jsx(Cell, { children: /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-1/2" }) }),
|
|
17785
|
+
/* @__PURE__ */ jsx(Cell, { children: /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-1/2" }) }),
|
|
17786
|
+
/* @__PURE__ */ jsx(Cell, { children: /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-1/2" }) })
|
|
17787
|
+
] }, index)) })
|
|
17788
|
+
] });
|
|
17789
|
+
const EmptyProcessorsTable = () => /* @__PURE__ */ jsx("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx(
|
|
17790
|
+
EmptyState,
|
|
17791
|
+
{
|
|
17792
|
+
iconSlot: /* @__PURE__ */ jsx(Cpu, {}),
|
|
17793
|
+
titleSlot: "Configure Processors",
|
|
17794
|
+
descriptionSlot: "No processors are configured yet. Add input or output processors to your agents to transform messages.",
|
|
17795
|
+
actionSlot: /* @__PURE__ */ jsxs(
|
|
17796
|
+
Button,
|
|
17797
|
+
{
|
|
17798
|
+
size: "lg",
|
|
17799
|
+
className: "w-full",
|
|
17800
|
+
variant: "light",
|
|
17801
|
+
as: "a",
|
|
17802
|
+
href: "https://mastra.ai/en/docs/processors",
|
|
17803
|
+
target: "_blank",
|
|
17804
|
+
children: [
|
|
17805
|
+
/* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(Cpu, {}) }),
|
|
17806
|
+
"Docs"
|
|
17807
|
+
]
|
|
17808
|
+
}
|
|
17809
|
+
)
|
|
17810
|
+
}
|
|
17811
|
+
) });
|
|
17812
|
+
|
|
17813
|
+
const useProcessors = () => {
|
|
17814
|
+
const { requestContext } = usePlaygroundStore();
|
|
17815
|
+
const client = useMastraClient();
|
|
17816
|
+
return useQuery({
|
|
17817
|
+
queryKey: ["processors"],
|
|
17818
|
+
queryFn: () => client.listProcessors(requestContext)
|
|
17819
|
+
});
|
|
17820
|
+
};
|
|
17821
|
+
const useProcessor = (processorId, options) => {
|
|
17822
|
+
const client = useMastraClient();
|
|
17823
|
+
const { requestContext } = usePlaygroundStore();
|
|
17824
|
+
return useQuery({
|
|
17825
|
+
queryKey: ["processor", processorId],
|
|
17826
|
+
queryFn: () => client.getProcessor(processorId).details(requestContext),
|
|
17827
|
+
enabled: options?.enabled !== false && !!processorId
|
|
17828
|
+
});
|
|
17829
|
+
};
|
|
17830
|
+
const useExecuteProcessor = () => {
|
|
17831
|
+
const client = useMastraClient();
|
|
17832
|
+
const { requestContext } = usePlaygroundStore();
|
|
17833
|
+
return useMutation({
|
|
17834
|
+
mutationFn: async ({
|
|
17835
|
+
processorId,
|
|
17836
|
+
phase,
|
|
17837
|
+
messages,
|
|
17838
|
+
agentId
|
|
17839
|
+
}) => {
|
|
17840
|
+
return client.getProcessor(processorId).execute({
|
|
17841
|
+
phase,
|
|
17842
|
+
messages,
|
|
17843
|
+
agentId,
|
|
17844
|
+
requestContext
|
|
17845
|
+
});
|
|
17846
|
+
}
|
|
17847
|
+
});
|
|
17848
|
+
};
|
|
17849
|
+
|
|
17850
|
+
const PHASE_LABELS = {
|
|
17851
|
+
input: "Input - Process input messages before LLM (once at start)",
|
|
17852
|
+
inputStep: "Input Step - Process at each agentic loop step",
|
|
17853
|
+
outputStream: "Output Stream - Process streaming chunks",
|
|
17854
|
+
outputResult: "Output Result - Process complete output after streaming",
|
|
17855
|
+
outputStep: "Output Step - Process after each LLM response (before tools)"
|
|
17856
|
+
};
|
|
17857
|
+
function ProcessorPanel({ processorId }) {
|
|
17858
|
+
const { data: processor, isLoading, error } = useProcessor(processorId);
|
|
17859
|
+
useEffect(() => {
|
|
17860
|
+
if (error) {
|
|
17861
|
+
const errorMessage = error instanceof Error ? error.message : "Failed to load processor";
|
|
17862
|
+
toast.error(`Error loading processor: ${errorMessage}`);
|
|
17863
|
+
}
|
|
17864
|
+
}, [error]);
|
|
17865
|
+
if (isLoading) {
|
|
17866
|
+
return /* @__PURE__ */ jsxs("div", { className: "p-6", children: [
|
|
17867
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-48 mb-4" }),
|
|
17868
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-32 w-full" })
|
|
17869
|
+
] });
|
|
17870
|
+
}
|
|
17871
|
+
if (error) return null;
|
|
17872
|
+
if (!processor)
|
|
17873
|
+
return /* @__PURE__ */ jsx("div", { className: "py-12 text-center px-6", children: /* @__PURE__ */ jsx(Txt, { variant: "header-md", className: "text-neutral3", children: "Processor not found" }) });
|
|
17874
|
+
return /* @__PURE__ */ jsx(ProcessorDetailPanel, { processor });
|
|
17875
|
+
}
|
|
17876
|
+
function ProcessorDetailPanel({ processor }) {
|
|
17877
|
+
const theme = useCodemirrorTheme$1();
|
|
17878
|
+
const formId = useId();
|
|
17879
|
+
const [selectedPhase, setSelectedPhase] = useState(processor.phases[0] || "input");
|
|
17880
|
+
const [selectedAgentId, setSelectedAgentId] = useState(processor.configurations[0]?.agentId || "");
|
|
17881
|
+
const [testMessage, setTestMessage] = useState("Hello, this is a test message.");
|
|
17882
|
+
const [result, setResult] = useState(null);
|
|
17883
|
+
const [errorString, setErrorString] = useState();
|
|
17884
|
+
const executeProcessor = useExecuteProcessor();
|
|
17885
|
+
const handleExecute = async () => {
|
|
17886
|
+
setErrorString(void 0);
|
|
17887
|
+
setResult(null);
|
|
17888
|
+
const isOutputPhase = selectedPhase === "outputStep" || selectedPhase === "outputResult";
|
|
17889
|
+
const messageRole = isOutputPhase ? "assistant" : "user";
|
|
17890
|
+
const messages = [
|
|
17891
|
+
{
|
|
17892
|
+
id: crypto.randomUUID(),
|
|
17893
|
+
role: messageRole,
|
|
17894
|
+
createdAt: /* @__PURE__ */ new Date(),
|
|
17895
|
+
content: {
|
|
17896
|
+
format: 2,
|
|
17897
|
+
parts: [{ type: "text", text: testMessage }]
|
|
17898
|
+
}
|
|
17899
|
+
}
|
|
17900
|
+
];
|
|
17901
|
+
try {
|
|
17902
|
+
const response = await executeProcessor.mutateAsync({
|
|
17903
|
+
processorId: processor.id,
|
|
17904
|
+
phase: selectedPhase,
|
|
17905
|
+
messages,
|
|
17906
|
+
agentId: selectedAgentId || void 0
|
|
17907
|
+
});
|
|
17908
|
+
setResult(response);
|
|
17909
|
+
if (!response.success && response.error) {
|
|
17910
|
+
setErrorString(response.error);
|
|
17911
|
+
}
|
|
17912
|
+
} catch (error) {
|
|
17913
|
+
setErrorString(error.message || "An error occurred");
|
|
17914
|
+
}
|
|
17915
|
+
};
|
|
17916
|
+
const resultCode = result ? JSON.stringify(result, null, 2) : "{}";
|
|
17917
|
+
return /* @__PURE__ */ jsxs(MainContentContent, { hasLeftServiceColumn: true, className: "relative", children: [
|
|
17918
|
+
/* @__PURE__ */ jsxs("div", { className: "bg-surface2 border-r border-border1 w-[22rem] overflow-y-auto", children: [
|
|
17919
|
+
/* @__PURE__ */ jsx(ProcessorInformation, { processor }),
|
|
17920
|
+
/* @__PURE__ */ jsxs("div", { className: "p-5 space-y-5", children: [
|
|
17921
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
17922
|
+
/* @__PURE__ */ jsx(Txt, { as: "label", variant: "ui-sm", className: "text-icon3", children: "Phase" }),
|
|
17923
|
+
/* @__PURE__ */ jsxs(Select, { value: selectedPhase, onValueChange: (v) => setSelectedPhase(v), children: [
|
|
17924
|
+
/* @__PURE__ */ jsx(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select phase" }) }),
|
|
17925
|
+
/* @__PURE__ */ jsx(SelectContent, { children: processor.phases.map((phase) => /* @__PURE__ */ jsx(SelectItem, { value: phase, children: phase }, phase)) })
|
|
17926
|
+
] }),
|
|
17927
|
+
/* @__PURE__ */ jsx(Txt, { variant: "ui-xs", className: "text-icon4", children: PHASE_LABELS[selectedPhase] })
|
|
17928
|
+
] }),
|
|
17929
|
+
processor.configurations.length > 1 && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
17930
|
+
/* @__PURE__ */ jsx(Txt, { as: "label", variant: "ui-sm", className: "text-icon3", children: "Agent Configuration" }),
|
|
17931
|
+
/* @__PURE__ */ jsxs(Select, { value: selectedAgentId, onValueChange: setSelectedAgentId, children: [
|
|
17932
|
+
/* @__PURE__ */ jsx(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select agent" }) }),
|
|
17933
|
+
/* @__PURE__ */ jsx(SelectContent, { children: processor.configurations.map((config) => /* @__PURE__ */ jsxs(SelectItem, { value: config.agentId, children: [
|
|
17934
|
+
config.agentName,
|
|
17935
|
+
" (",
|
|
17936
|
+
config.type,
|
|
17937
|
+
")"
|
|
17938
|
+
] }, config.agentId)) })
|
|
17939
|
+
] })
|
|
17940
|
+
] }),
|
|
17941
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
17942
|
+
/* @__PURE__ */ jsx(Txt, { as: "label", htmlFor: formId, variant: "ui-sm", className: "text-icon3", children: "Test Message" }),
|
|
17943
|
+
/* @__PURE__ */ jsx(
|
|
17944
|
+
"textarea",
|
|
17945
|
+
{
|
|
17946
|
+
id: formId,
|
|
17947
|
+
value: testMessage,
|
|
17948
|
+
onChange: (e) => setTestMessage(e.target.value),
|
|
17949
|
+
placeholder: "Enter a test message...",
|
|
17950
|
+
rows: 4,
|
|
17951
|
+
className: "w-full bg-transparent border border-border1 rounded-md p-3 text-ui-sm text-neutral6 placeholder:text-neutral3 focus:outline-none focus:ring-2 focus:ring-accent1"
|
|
17952
|
+
}
|
|
17953
|
+
)
|
|
17954
|
+
] }),
|
|
17955
|
+
/* @__PURE__ */ jsx(
|
|
17956
|
+
Button,
|
|
17957
|
+
{
|
|
17958
|
+
onClick: handleExecute,
|
|
17959
|
+
disabled: executeProcessor.isPending || selectedPhase === "outputStream",
|
|
17960
|
+
className: "w-full",
|
|
17961
|
+
children: executeProcessor.isPending ? "Running..." : "Run Processor"
|
|
17962
|
+
}
|
|
17963
|
+
),
|
|
17964
|
+
selectedPhase === "outputStream" && /* @__PURE__ */ jsx(Txt, { variant: "ui-xs", className: "text-accent6", children: "Output Stream phase cannot be executed directly. Use streaming instead." }),
|
|
17965
|
+
result && /* @__PURE__ */ jsxs("div", { className: "space-y-2 pt-4 border-t border-border1", children: [
|
|
17966
|
+
/* @__PURE__ */ jsx(Txt, { variant: "ui-sm", className: "text-icon3", children: "Status" }),
|
|
17967
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
17968
|
+
/* @__PURE__ */ jsx(Badge, { variant: result.success ? "success" : "error", children: result.success ? "Success" : "Failed" }),
|
|
17969
|
+
result.tripwire?.triggered && /* @__PURE__ */ jsx(Badge, { variant: "info", children: "Tripwire Triggered" })
|
|
17970
|
+
] }),
|
|
17971
|
+
result.tripwire?.triggered && result.tripwire.reason && /* @__PURE__ */ jsxs("div", { className: "mt-2 p-3 bg-accent6Dark rounded-md border border-accent6/20", children: [
|
|
17972
|
+
/* @__PURE__ */ jsx(Txt, { variant: "ui-sm", className: "text-accent6 font-medium", children: "Tripwire Reason" }),
|
|
17973
|
+
/* @__PURE__ */ jsx(Txt, { variant: "ui-sm", className: "text-icon3 mt-1", children: result.tripwire.reason })
|
|
17974
|
+
] })
|
|
17975
|
+
] })
|
|
17976
|
+
] })
|
|
17977
|
+
] }),
|
|
17978
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-4 right-4 z-10", children: /* @__PURE__ */ jsx(CopyButton, { content: resultCode, tooltip: "Copy JSON result to clipboard" }) }),
|
|
17979
|
+
/* @__PURE__ */ jsx("div", { className: "p-5 h-full relative overflow-x-auto overflow-y-auto", children: /* @__PURE__ */ jsx(CodeMirror, { value: errorString || resultCode, editable: true, theme, extensions: [jsonLanguage] }) })
|
|
17980
|
+
] });
|
|
17981
|
+
}
|
|
17982
|
+
function ProcessorInformation({ processor }) {
|
|
17983
|
+
return /* @__PURE__ */ jsxs("div", { className: "px-5 pt-5 pb-4 border-b border-border1", children: [
|
|
17984
|
+
/* @__PURE__ */ jsx(Txt, { variant: "header-md", className: "text-icon1 mb-2", children: processor.name || processor.id }),
|
|
17985
|
+
processor.name && processor.name !== processor.id && /* @__PURE__ */ jsx(Txt, { variant: "ui-sm", className: "text-icon4 mb-3", children: processor.id }),
|
|
17986
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1 mt-3", children: processor.phases.map((phase) => /* @__PURE__ */ jsx(Badge, { variant: "default", children: phase }, phase)) }),
|
|
17987
|
+
/* @__PURE__ */ jsx("div", { className: "mt-3", children: /* @__PURE__ */ jsxs(Txt, { variant: "ui-xs", className: "text-icon4", children: [
|
|
17988
|
+
"Attached to ",
|
|
17989
|
+
processor.configurations.length,
|
|
17990
|
+
" agent",
|
|
17991
|
+
processor.configurations.length !== 1 ? "s" : ""
|
|
17992
|
+
] }) })
|
|
17993
|
+
] });
|
|
17994
|
+
}
|
|
17995
|
+
|
|
17488
17996
|
const NameCell$1 = ({ row }) => {
|
|
17489
17997
|
const { Link, paths } = useLinkComponent();
|
|
17490
17998
|
const tool = row.original;
|
|
@@ -21589,5 +22097,5 @@ const useMastraPlatform = () => {
|
|
|
21589
22097
|
return { isMastraPlatform, mastraPlatformEndpoint };
|
|
21590
22098
|
};
|
|
21591
22099
|
|
|
21592
|
-
export { AgentChat, AgentCoinIcon, AgentCombobox, AgentEntityHeader, AgentIcon, AgentInformation, AgentInformationLayout, AgentInformationTabLayout, AgentLayout, AgentMemory, AgentMetadata, AgentMetadataList, AgentMetadataListEmpty, AgentMetadataListItem, AgentMetadataNetworkList, AgentMetadataScorerList, AgentMetadataSection, AgentMetadataToolList, AgentMetadataWorkflowList, AgentMetadataWrapper, AgentNetworkCoinIcon, AgentPromptExperimentProvider, AgentSettings, AgentSettingsContext, AgentSettingsProvider, AgentToolPanel, AgentsTable, AiIcon, Alert, AlertDescription, AlertDialog, AlertTitle, ApiIcon, AutoForm, Avatar, Badge, BranchIcon, Breadcrumb, Button, ButtonsGroup, Cell, ChatThreads, CheckIcon, Checkbox, ChevronIcon, CodeEditor, Collapsible, CollapsibleContent, CollapsibleTrigger, CombinedButtons, Combobox, CommitIcon, CopyButton, CrossIcon, Crumb, DatePicker, DateTimeCell, DateTimePicker, DateTimePickerContent, DbIcon, DebugIcon, DefaultTrigger, DeploymentIcon, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DividerIcon, DocsIcon, DynamicForm, ElementSelect, EmptyState, Entity, EntityContent, EntityDescription, EntityHeader, EntityIcon, EntityName, Entry, EntryCell, EntryList, EntryListSkeleton, EnvIcon, FiltersIcon, FolderIcon, GithubCoinIcon, GithubIcon, GoogleIcon, Header, HeaderAction, HeaderGroup, HeaderTitle, HomeIcon, Icon, InfoIcon, Input, InputField, JudgeIcon, Kbd, KeyValueList, Label, LatencyIcon, LinkComponentProvider, LogoWithoutText, LogsIcon, MCPDetail, MCPServerCombobox, MCPTable, MCPToolPanel, MainContentContent, MainContentLayout, MainSidebar, MainSidebarProvider, MarkdownRenderer, MastraPackagesInfo, MastraVersionFooter, McpCoinIcon, McpServerIcon, MemoryIcon, MemorySearch, Notification, OpenAIIcon, PageHeader, PlaygroundConfigGuard, PlaygroundQueryClient, Popover, PopoverContent, PopoverTrigger, ProcessStepList, ProcessStepListItem, ProcessStepProgressBar, PromptIcon, RadioGroup, RadioGroupItem, RepoIcon, RequestContext, RequestContextWrapper, Row, ScoreDialog, ScorerCombobox, ScorersTable, ScoresList, ScoresTools, ScrollArea, ScrollBar, SearchField, Searchbar, SearchbarWrapper, Section, Sections, Select, SelectContent, SelectField$1 as SelectField, SelectGroup, SelectItem, SelectTrigger, SelectValue, SettingsIcon, ShadcnAutoFormFieldComponents, SideDialog, Skeleton, SlashIcon, Slider, SpanScoreList, SpanScoring, SpanTabs, Spinner, StudioConfigContext, StudioConfigForm, StudioConfigProvider, Switch, Tab, TabContent, TabList, Table, Tabs, Tbody, TemplateFailure, TemplateForm, TemplateInfo, TemplateInstallation, TemplateSuccess, TemplatesList, TemplatesTools, TextAndIcon, Th, Thead, ThreadDeleteButton, ThreadInputProvider, ThreadItem, ThreadLink, ThreadList, Threads, TimePicker, ToolCoinIcon, ToolCombobox, ToolFallback, ToolIconMap, ToolInformation, ToolPanel, ToolTable, ToolsIcon, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TraceDialog, TraceIcon, TraceTimeline, TraceTimelineSpan, TraceTimelineTools, TracesList, TracesTools, TracingSettingsContext, TracingSettingsProvider, TsIcon, Txt, TxtCell, VariablesIcon, WorkflowCoinIcon, WorkflowCombobox, WorkflowGraph, WorkflowIcon, WorkflowInformation, WorkflowLayout, WorkflowRunContext, WorkflowRunDetail, WorkflowRunList, WorkflowRunProvider, WorkflowStepDetailContext, WorkflowStepDetailProvider, WorkflowTable, WorkflowTrigger, WorkingMemoryContext, WorkingMemoryProvider, buttonVariants, cn, convertWorkflowRunStateToStreamResult, extractPrompt, fieldConfig, formatHierarchicalSpans, getColumnTemplate, getMainContentContentClassName, getShortId, getSpanTypeUi, getStatusIcon, getToNextEntryFn, getToPreviousEntryFn, highlight, inputVariants, parseError, providerMapToIcon, removeEmptyValues, resolveSerializedZodOutput, scoresListColumns, spanTypePrefixes, toast, traceScoresListColumns, tracesListColumns, useAgent, useAgentInformationSettings, useAgentInformationTab, useAgentPromptExperiment, useAgentSettings, useAgents, useCancelWorkflowRun, useCloneThread, useCodemirrorTheme$1 as useCodemirrorTheme, useCurrentRun, useDeleteThread, useDeleteWorkflowRun, useExecuteAgentTool, useExecuteMCPTool, useExecuteTool, useExecuteWorkflow, useInView, useLinkComponent, useMCPServerTool, useMCPServerTools, useMCPServers, useMainSidebar, useMastraPackages, useMastraPlatform, useMemory, useMemoryConfig, useMemorySearch, usePackageUpdates, usePlaygroundStore, useReorderModelList, useResetAgentModel, useScorer, useScorers, useScoresByScorerId, useSpeechRecognition, useStreamWorkflow, useStudioConfig, useThreadInput, useThreads, useTool, useTools, useTraceSpanScores, useTracingSettings, useUpdateAgentModel, useUpdateModelInModelList, useWorkflow, useWorkflowRun, useWorkflowRuns, useWorkflowStepDetail, useWorkflows, useWorkingMemory };
|
|
22100
|
+
export { AgentChat, AgentCoinIcon, AgentCombobox, AgentEntityHeader, AgentIcon, AgentInformation, AgentInformationLayout, AgentInformationTabLayout, AgentLayout, AgentMemory, AgentMetadata, AgentMetadataCombinedProcessorList, AgentMetadataList, AgentMetadataListEmpty, AgentMetadataListItem, AgentMetadataNetworkList, AgentMetadataScorerList, AgentMetadataSection, AgentMetadataToolList, AgentMetadataWorkflowList, AgentMetadataWrapper, AgentNetworkCoinIcon, AgentPromptExperimentProvider, AgentSettings, AgentSettingsContext, AgentSettingsProvider, AgentToolPanel, AgentsTable, AiIcon, Alert, AlertDescription, AlertDialog, AlertTitle, ApiIcon, AutoForm, Avatar, Badge, BranchIcon, Breadcrumb, Button, ButtonsGroup, Cell, ChatThreads, CheckIcon, Checkbox, ChevronIcon, CodeEditor, Collapsible, CollapsibleContent, CollapsibleTrigger, CombinedButtons, Combobox, CommitIcon, CopyButton, CrossIcon, Crumb, DatePicker, DateTimeCell, DateTimePicker, DateTimePickerContent, DbIcon, DebugIcon, DefaultTrigger, DeploymentIcon, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DividerIcon, DocsIcon, DynamicForm, ElementSelect, EmptyState, Entity, EntityContent, EntityDescription, EntityHeader, EntityIcon, EntityName, Entry, EntryCell, EntryList, EntryListSkeleton, EnvIcon, FiltersIcon, FolderIcon, GithubCoinIcon, GithubIcon, GoogleIcon, Header, HeaderAction, HeaderGroup, HeaderTitle, HomeIcon, Icon, InfoIcon, Input, InputField, JudgeIcon, Kbd, KeyValueList, Label, LatencyIcon, LinkComponentProvider, LogoWithoutText, LogsIcon, MCPDetail, MCPServerCombobox, MCPTable, MCPToolPanel, MainContentContent, MainContentLayout, MainSidebar, MainSidebarProvider, MarkdownRenderer, MastraPackagesInfo, MastraVersionFooter, McpCoinIcon, McpServerIcon, MemoryIcon, MemorySearch, Notification, OpenAIIcon, PageHeader, PlaygroundConfigGuard, PlaygroundQueryClient, Popover, PopoverContent, PopoverTrigger, ProcessStepList, ProcessStepListItem, ProcessStepProgressBar, ProcessorIcon, ProcessorPanel, ProcessorTable, PromptIcon, RadioGroup, RadioGroupItem, RepoIcon, RequestContext, RequestContextWrapper, Row, ScoreDialog, ScorerCombobox, ScorersTable, ScoresList, ScoresTools, ScrollArea, ScrollBar, SearchField, Searchbar, SearchbarWrapper, Section, Sections, Select, SelectContent, SelectField$1 as SelectField, SelectGroup, SelectItem, SelectTrigger, SelectValue, SettingsIcon, ShadcnAutoFormFieldComponents, SideDialog, Skeleton, SlashIcon, Slider, SpanScoreList, SpanScoring, SpanTabs, Spinner, StudioConfigContext, StudioConfigForm, StudioConfigProvider, Switch, Tab, TabContent, TabList, Table, Tabs, Tbody, TemplateFailure, TemplateForm, TemplateInfo, TemplateInstallation, TemplateSuccess, TemplatesList, TemplatesTools, TextAndIcon, Th, Thead, ThreadDeleteButton, ThreadInputProvider, ThreadItem, ThreadLink, ThreadList, Threads, TimePicker, ToolCoinIcon, ToolCombobox, ToolFallback, ToolIconMap, ToolInformation, ToolPanel, ToolTable, ToolsIcon, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TraceDialog, TraceIcon, TraceTimeline, TraceTimelineSpan, TraceTimelineTools, TracesList, TracesTools, TracingSettingsContext, TracingSettingsProvider, TsIcon, Txt, TxtCell, VariablesIcon, WorkflowCoinIcon, WorkflowCombobox, WorkflowGraph, WorkflowIcon, WorkflowInformation, WorkflowLayout, WorkflowRunContext, WorkflowRunDetail, WorkflowRunList, WorkflowRunProvider, WorkflowStepDetailContext, WorkflowStepDetailProvider, WorkflowTable, WorkflowTrigger, WorkingMemoryContext, WorkingMemoryProvider, buttonVariants, cn, columns$2 as columns, convertWorkflowRunStateToStreamResult, extractPrompt, fieldConfig, formatHierarchicalSpans, getColumnTemplate, getMainContentContentClassName, getShortId, getSpanTypeUi, getStatusIcon, getToNextEntryFn, getToPreviousEntryFn, highlight, inputVariants, parseError, providerMapToIcon, removeEmptyValues, resolveSerializedZodOutput, scoresListColumns, spanTypePrefixes, toast, traceScoresListColumns, tracesListColumns, useAgent, useAgentInformationSettings, useAgentInformationTab, useAgentPromptExperiment, useAgentSettings, useAgents, useCancelWorkflowRun, useCloneThread, useCodemirrorTheme$1 as useCodemirrorTheme, useCurrentRun, useDeleteThread, useDeleteWorkflowRun, useExecuteAgentTool, useExecuteMCPTool, useExecuteProcessor, useExecuteTool, useExecuteWorkflow, useInView, useLinkComponent, useMCPServerTool, useMCPServerTools, useMCPServers, useMainSidebar, useMastraPackages, useMastraPlatform, useMemory, useMemoryConfig, useMemorySearch, usePackageUpdates, usePlaygroundStore, useProcessor, useProcessors, useReorderModelList, useResetAgentModel, useScorer, useScorers, useScoresByScorerId, useSpeechRecognition, useStreamWorkflow, useStudioConfig, useThreadInput, useThreads, useTool, useTools, useTraceSpanScores, useTracingSettings, useUpdateAgentModel, useUpdateModelInModelList, useWorkflow, useWorkflowRun, useWorkflowRuns, useWorkflowStepDetail, useWorkflows, useWorkingMemory };
|
|
21593
22101
|
//# sourceMappingURL=index.es.js.map
|